{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./app/javascript/packs/application.js","webpack:///./node_modules/trix/dist/trix.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/attachment_upload.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/index.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","g","this","Function","e","window","sparkMd5","fn","createCommonjsModule","undefined","hex_chr","md5cycle","x","k","a","b","md5blk","md5blks","charCodeAt","md5blk_array","md51","length","tail","tmp","lo","hi","state","substring","toString","match","parseInt","rhex","j","hex","join","toUtf8","str","test","unescape","encodeURIComponent","hexToBinaryString","bytes","push","substr","String","fromCharCode","apply","SparkMD5","reset","ArrayBuffer","slice","clamp","val","Math","max","min","from","to","num","target","targetArray","sourceArray","byteLength","begin","end","Uint8Array","set","append","appendBinary","contents","_buff","_length","_hash","raw","ret","buff","_finish","getState","hash","setState","destroy","hashBinary","content","arr","first","second","returnUInt8Array","result","buffer","subarray","utf8Str2ArrayBuffer","md51_array","factory","classCallCheck","instance","Constructor","TypeError","createClass","defineProperties","props","descriptor","configurable","writable","protoProps","staticProps","fileSlice","File","mozSlice","webkitSlice","FileChecksum","file","chunkSize","chunkCount","ceil","size","chunkIndex","callback","_this","md5Buffer","fileReader","FileReader","addEventListener","event","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","start","readAsArrayBuffer","findElement","root","selector","document","querySelector","dispatchEvent","element","type","eventInit","arguments","disabled","bubbles","cancelable","detail","createEvent","initEvent","toArray$1","Array","isArray","BlobRecord","checksum","url","attributes","filename","content_type","byte_size","xhr","XMLHttpRequest","open","responseType","setRequestHeader","csrfToken","head","getAttribute","getMetaValue","requestDidLoad","requestDidError","send","JSON","stringify","blob","status","response","direct_upload","directUploadData","toJSON","_xhr","parse","BlobUpload","_blob$directUploadDat","headers","id","DirectUpload","delegate","error","notify","upload","methodName","_len","messages","_key","DirectUploadController","input","directUpload","dispatch","hiddenInput","createElement","insertAdjacentElement","parentNode","removeChild","dispatchError","signed_id","progress","loaded","total","defaultPrevented","alert","_this2","uploadRequestDidProgress","DirectUploadsController","form","inputs","querySelectorAll","filter","files","controllers","createDirectUploadControllers","startNextController","controller","shift","forEach","submitButtonsByForm","WeakMap","started","didClick","didSubmitForm","didSubmitRemoteElement","tagName","handleFormSubmissionEvent","hasAttribute","preventDefault","setAttribute","disable","removeAttribute","enable","button","focus","click","style","display","appendChild","delete","submitForm","setTimeout","ActiveStorage","require","Set","clear","values","has","indexOf","add","splice","_state","_handled","_value","_deferreds","h","onFulfilled","onRejected","promise","then","u","setImmediate","console","warn","all","resolve","constructor","reject","race","_setImmediateFn","_setUnhandledRejectionFn","Promise","customElements","registerElement","Date","now","random","A","sort","uid_","takeRecords","nodes_","observer","removeTransientObservers","callback_","options","subtree","enqueue","records_","C","addedNodes","removedNodes","previousSibling","nextSibling","attributeName","attributeNamespace","oldValue","w","f","transientObservedNodes","JsMutationObserver","navigator","userAgent","v","y","data","postMessage","observe","ShadowDOMPolyfill","wrapIfNeeded","childList","characterData","attributeOldValue","attributeFilter","characterDataOldValue","SyntaxError","removeListeners","addListeners","disconnect","addListeners_","removeListeners_","removeEventListener","addTransientObserver","handleEvent","stopImmediatePropagation","attrName","relatedNode","namespaceURI","attrChange","MutationEvent","ADDITION","prevValue","MutationObserver","_isPolyfilled","self","performance","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","clearTimeout","Event","CustomEvent","initCustomEvent","Boolean","WebComponents","CustomElements","flags","addModule","initializeModules","hasNative","isIE","useNative","register","HTMLImports","firstElementChild","firstChild","nodeType","Node","ELEMENT_NODE","nextElementSibling","shadowRoot","olderShadowRoot","IMPORT_LINK_TYPE","forDocumentTree","wrap","import","forSubtree","upgrade","__upgraded__","__attached","attachedCallback","detachedCallback","dom","host","URL","_URL","localName","split","pop","group","DOCUMENT_FRAGMENT_NODE","E","groupEnd","__observer","baseURI","hasPolyfillMutations","hasThrottledAttached","S","Element","createShadowRoot","watchShadow","__watched","log","upgradeDocumentTree","upgradeDocument","upgradeSubtree","upgradeAll","attached","is","createdCallback","__proto__","HTMLElement","getOwnPropertyNames","getOwnPropertyDescriptor","getPrototypeOf","native","HTMLTemplateElement","decorate","getRegisteredDefinition","tag","extends","upgradeWithDefinition","implementPrototype","_polyfilled","toLowerCase","attributeChangedCallback","ctor","createElementNS","Error","__name","lifecycle","ancestry","concat","ready","registry","instanceof","reservedTagList","readyTime","elapsed","unwrap","unwrapIfNeeded","__importsParsingHook","readyState","eager","attachEvent","Trix","VERSION","ZERO_WIDTH_SPACE","NON_BREAKING_SPACE","OBJECT_REPLACEMENT_CHARACTER","browser","composesExistingText","forcesObjectResizing","supportsInputEvents","InputEvent","config","BasicObject","proxyMethod","toMethod","toProperty","optional","__super__","fromJSONString","fromJSON","hasSameConstructorAs","isEqualTo","inspect","contentsForInspection","toJSONString","toUTF16String","UTF16String","box","getCacheKey","extend","defer","normalizeSpaces","replace","RegExp","normalizeNewlines","breakableWhitespacePattern","squishBreakableWhitespace","source","summarizeStringChange","added","removed","utf16String","offset","codepoints","fromCodepoints","charAt","copyObject","objectsAreEqual","keys","arraysAreEqual","arrayStartsWith","spliceArray","summarizeArrayChange","getAllAttributeNames","getTextAttributeNames","getBlockAttributeNames","getBlockConfig","blockAttributes","getTextConfig","textAttributes","getListAttributeNames","listAttribute","documentElement","matchesSelector","webkitMatchesSelector","msMatchesSelector","mozMatchesSelector","onElement","matchingSelector","withCallback","inPhase","times","findClosestElementFromNode","handleEventOnce","triggerEvent","elementMatchesSelector","untilNode","closest","findInnerElement","innerElementIsActive","activeElement","elementContainsNode","findNodeFromContainerAndOffset","TEXT_NODE","childNodes","item","findElementFromContainerAndOffset","findChildIndexOfNode","removeNode","walkTree","onlyNodesOfType","usingFilter","expandEntityReferences","NodeFilter","SHOW_ELEMENT","SHOW_TEXT","SHOW_COMMENT","SHOW_ALL","createTreeWalker","makeElement","editable","contenteditable","dataset","className","classList","textContent","getBlockTagNames","blockTagNames","nodeIsBlockContainer","nodeIsBlockStartComment","nodeProbablyIsBlockContainer","nodeIsBlockStart","strict","nodeIsCommentNode","COMMENT_NODE","nodeIsCursorTarget","nodeIsTextNode","trixCursorTarget","nodeIsAttachmentElement","AttachmentView","attachmentSelector","nodeIsEmptyTextNode","normalizeRange","rangeIsCollapsed","rangesAreEqual","defaultCSS","insertBefore","initialize","connect","initialized","connectedCallback","disconnectedCallback","Reflect","construct","setPrototypeOf","define","getDOMSelection","getSelection","rangeCount","getDOMRange","getRangeAt","setDOMRange","removeAllRanges","addRange","selectionChangeObserver","update","startContainer","endContainer","dataTransferIsPlainText","getData","DOMParser","parseFromString","body","dataTransferIsWritable","setData","keyEventIsKeyboardCommand","platform","metaKey","ctrlKey","RTL_PATTERN","getDirection","dir","dirName","FormData","matches","trim","Hash","fromCommonAttributesOfObjects","getKeys","getKeysCommonToHash","merge","remove","toArray","isEmpty","array","toObject","ObjectGroup","objects","depth","asTree","groupObjects","canBeGrouped","canBeGroupedWith","getObjects","getDepth","ObjectMap","find","ElementStore","elements","trixStoreKey","Operation","isPerforming","performing","hasPerformed","performed","hasSucceeded","succeeded","hasFailed","getPromise","perform","release","cancel","ucs2String","ucs2Length","fromUCS2String","offsetToUCS2Offset","offsetFromUCS2Offset","codePointAt","fromCodePoint","map","lang","attachFiles","bold","bullets","captionPlaceholder","code","heading1","indent","italic","link","numbers","outdent","quote","redo","strike","undo","unlink","urlPlaceholder","GB","KB","MB","PB","TB","css","attachment","attachmentCaption","attachmentCaptionEditor","attachmentMetadata","attachmentMetadataContainer","attachmentName","attachmentProgress","attachmentSize","attachmentToolbar","attachmentGallery","nestable","terminal","breakOnReturn","text","plaintext","bulletList","bullet","numberList","number","exclusive","fileSize","prefix","precision","formatter","byte","floor","pow","toFixed","inheritable","parser","getComputedStyle","fontWeight","fontStyle","href","groupTagName","frozen","backgroundColor","serializers","Document","fromHTML","innerHTML","toSerializableDocument","DocumentView","render","cloneNode","deserializers","serializeToContentType","deserializeFromContentType","toolbar","getDefaultHTML","undoInterval","attachments","preview","presentation","caption","keyNames","8","9","13","27","37","39","46","68","72","79","level2Enabled","getLevel","pickFiles","multiple","hidden","fileInputId","getElementById","ObjectView","childViews","rootView","getNodes","nodes","createNodes","invalidate","parentView","invalidateViewForObject","findViewForObject","findOrCreateCachedChildView","getCachedViewForObject","recordChildView","createChildView","cacheViewForObject","viewClass","ObjectGroupView","getAllChildViews","findElementForObject","getViewCache","isViewCachingEnabled","viewCache","shouldCacheViews","enableViewCaching","disableViewCaching","garbageCollectCachedViews","objectGroup","getChildViews","createContainerElement","Controller","didMutate","stop","mutations","findSignificantMutations","elementDidMutate","getMutationSummary","mutationIsSignificant","nodeIsMutable","nodesModifiedByMutation","nodeIsSignificant","getTextMutationSummary","getTextChangesFromCharacterData","additions","deletions","getTextChangesFromChildList","textAdded","textDeleted","getMutationsByType","FileVerificationOperation","onerror","onload","abort","InputController","mutationObserver","events","handlerFor","editorWillSyncDocumentView","editorDidSyncDocumentView","requestRender","inputControllerDidRequestRender","requestReparse","inputControllerDidRequestReparse","handleInput","inputControllerWillAttachFiles","responder","insertFiles","eventName","inputControllerWillHandleInput","inputControllerDidHandleInput","createLinkHTML","outerHTML","Level0InputController","resetInputSummary","setInputSummary","inputSummary","isComposing","inputControllerDidAllowUnhandledInput","mutationIsExpected","preferDocument","didDelete","getSelectedRange","positionIsBlockBreak","compositionInput","getEndData","keydown","didInput","keyCode","keyName","inputControllerDidReceiveKeyboardCommand","keypress","altKey","inputControllerWillPerformTyping","insertString","selectionIsExpanded","textInput","toUpperCase","setSelectedRange","dragenter","dragstart","serializeSelectionToDataTransfer","dataTransfer","draggedRange","inputControllerDidStartDrag","dragover","canAcceptDataTransfer","clientX","clientY","draggingPoint","inputControllerDidReceiveDragOverPoint","dragend","inputControllerDidCancelDrag","drop","setLocationRangeFromPointRange","inputControllerWillMoveText","moveTextFromRange","insertDocument","cut","clipboardData","inputControllerWillCutText","deleteInDirection","copy","paste","R","D","L","testClipboardData","clipboard","getPastedHTMLUsingHiddenElement","html","inputControllerWillPaste","insertHTML","inputControllerDidPaste","string","types","items","getAsFile","insertFile","compositionstart","getCompositionInput","compositionupdate","compositionend","beforeinput","stopPropagation","backspace","insertLineBreak","tab","canIncreaseNestingLevel","increaseNestingLevel","left","selectionIsInCursorTarget","moveCursorInDirection","right","control","updatePosition","canDecreaseNestingLevel","decreaseNestingLevel","expandSelectionInDirection","alt","meta","isEnded","getSelectedDocument","Files","position","pageXOffset","top","pageYOffset","opacity","which","charCode","inputController","isSignificant","insertPlaceholder","range","selectPlaceholder","forgetPlaceholder","canApplyToDocument","Level2InputController","scheduledRender","composing","reparse","scheduleRender","afterRender","shiftKey","withEvent","inputTypes","inputType","selectionContainsAttachments","dragging","point","ArrowLeft","shouldManageMovingCursorInDirection","ArrowRight","Backspace","shouldManageDeletingInDirection","Tab","deleteByComposition","recordUndoEntry","deleteByCut","deleteByDrag","withTargetDOMRange","deleteByDragRange","deleteCompositionText","deleteContent","deleteContentBackward","deleteContentForward","deleteEntireSoftLine","deleteHardLineBackward","deleteHardLineForward","deleteSoftLineBackward","deleteSoftLineForward","deleteWordBackward","deleteWordForward","formatBackColor","activateAttributeIfSupported","formatBold","toggleAttributeIfSupported","formatFontColor","formatFontName","formatIndent","formatItalic","formatJustifyCenter","formatJustifyFull","formatJustifyLeft","formatJustifyRight","formatOutdent","formatRemove","getCurrentAttributes","removeCurrentAttribute","formatSetBlockTextDirection","formatSetInlineTextDirection","formatStrikeThrough","formatSubscript","formatSuperscript","formatUnderline","historyRedo","inputControllerWillPerformRedo","historyUndo","inputControllerWillPerformUndo","insertCompositionText","insertFromComposition","insertFromDrop","insertFromPaste","insertFromYank","insertLink","insertOrderedList","insertParagraph","insertReplacementText","insertText","insertTranspose","insertUnorderedList","inputControllerWillPerformFormatting","toggleCurrentAttribute","setCurrentAttribute","getTargetDOMRange","minLength","getTargetRanges","createRange","setStart","startOffset","setEnd","endOffset","AttachmentEditorController","attachmentPiece","container","didBlurCaption","didChangeCaption","didInputCaption","didKeyDownCaption","didClickActionButton","didClickToolbar","install","undos","makeElementMutable","addToolbar","isPreviewable","installCaptionEditor","uninstall","savePendingCaption","didUninstallAttachmentEditor","pendingCaption","attachmentEditorDidRequestUpdatingAttributesForAttachment","attachmentEditorDidRequestRemovingAttributeForAttachment","trixMutable","title","trixAction","getFilename","getFormattedFilesize","placeholder","getCaption","tabIndex","height","scrollHeight","parentElement","editCaption","attachmentEditorDidRequestRemovalOfAttachment","attachmentEditorDidRequestDeselectingAttachment","uploadProgressDelegate","piece","createContentNodes","getClassName","getHref","tabindex","hasContent","getContent","createCaptionElement","isPending","progressElement","getUploadProgress","getCaptionConfig","createTextNode","getType","getExtension","trixAttachment","trixContentType","getContentType","trixId","trixAttributes","trixSerialize","findProgressElement","attachmentDidChangeUploadProgress","PreviewableAttachmentView","previewDelegate","image","src","refresh","updateAttributesForImage","getURL","getPreviewURL","getWidth","getHeight","width","attachmentDidChangeAttributes","PieceView","getAttributes","textConfig","context","createAttachmentNodes","createStringNodes","preserveSpaces","styleProperty","isLast","isFirst","followsWhitespace","TextView","getPieces","BlockView","block","createComment","getLastAttribute","shouldAddExtraNewlineElement","isRTL","getBlockBreakPosition","elementStore","setDocument","sync","shadowElement","getBlocks","isSynced","createDocumentFragmentForSync","lastChild","didSync","createDocumentFragment","replaceChild","CompositionController","composition","didClickAttachment","didBlur","didFocus","documentView","focused","compositionControllerDidFocus","blurPromise","compositionControllerDidBlur","findAttachmentForElement","compositionControllerDidSelectAttachment","getSerializableElement","isEditingAttachment","revision","canSyncDocumentView","compositionControllerWillSyncDocumentView","compositionControllerDidSyncDocumentView","compositionControllerDidRender","rerenderViewForObject","refreshViewCache","attachmentEditor","installAttachmentEditorForAttachment","uninstallAttachmentEditor","getAttachmentPieceForAttachment","compositionControllerWillUpdateAttachment","updateAttributesForAttachment","removeAttributeForAttachment","compositionControllerDidRequestRemovalOfAttachment","compositionControllerDidRequestDeselectingAttachment","getAttachmentById","ToolbarController","didKeyDownDialogInput","didClickDialogButton","didClickAttributeButton","actions","resetDialogInputs","toolbarDidClickButton","getDialog","toggleDialog","toolbarDidInvokeAction","toolbarDidToggleAttribute","refreshAttributeButtons","hideDialog","updateActions","refreshActionButtons","eachActionButton","updateAttributes","eachAttributeButton","dialogIsVisible","applyKeyboardCommand","showDialog","toolbarWillShowDialog","select","toolbarDidShowDialog","willValidate","checkValidity","toolbarDidUpdateAttribute","toolbarDidRemoveAttribute","toolbarDidHideDialog","ImagePreloadOperation","Image","naturalWidth","naturalHeight","Attachment","releaseFile","didChangeAttributes","previewablePattern","attachmentForFile","attributesForFile","setFile","filesize","contentType","setAttributes","preloadURL","getFilesize","getFile","preloadFile","releasePreloadedFile","uploadProgress","setUploadProgress","previewURL","preloadingURL","setPreviewURL","attachmentDidChangePreviewURL","preload","fileObjectURL","createObjectURL","revokeObjectURL","Piece","registerType","copyWithAttributes","getValue","copyWithAdditionalAttributes","copyWithoutAttribute","getAttributesHash","getCommonAttributes","pieceList","getPieceAtIndex","eachPiece","hasSameStringValueAsPiece","hasSameAttributesAsPiece","isBlockBreak","isSerializable","getLength","canBeConsolidatedWith","AttachmentPiece","ensureAttachmentExclusivelyHasAttribute","removeProhibitedAttributes","permittedAttributes","toConsole","StringPiece","consolidateWith","splitAtOffset","SplittableList","eachObject","insertObjectAtIndex","insertSplittableListAtIndex","insertSplittableListAtPosition","splitObjectAtPosition","editObjectAtIndex","replaceObjectAtIndex","removeObjectAtIndex","getObjectAtIndex","getSplittableListInRange","splitObjectsAtRange","selectSplittableList","removeObjectsInRange","transformObjectsInRange","getObjectAtPosition","findIndexAndOffsetAtPosition","index","consolidate","consolidateFromIndexToIndex","findPositionAtIndexAndOffset","getEndPosition","endPosition","Text","textForAttachmentWithAttributes","textForStringWithAttributes","copyWithPieceList","copyUsingObjectMap","appendText","insertTextAtPosition","removeTextAtRange","replaceTextAtRange","moveTextFromRangeToPosition","getTextAtRange","addAttributeAtRange","addAttributesAtRange","removeAttributeAtRange","setAttributesAtRange","getAttributesAtPosition","getCommonAttributesAtRange","getExpandedRangeForAttributeAtOffset","getStringAtRange","getStringAtPosition","startsWithString","endsWithString","getAttachmentPieces","getAttachments","getAttachmentAndPositionById","getRangeOfAttachment","getPieceAtPosition","toSerializableText","Block","copyWithText","copyWithoutText","copyWithoutAttributes","addAttribute","removeLastAttribute","getAttributeLevel","getAttributeAtLevel","hasAttributes","getLastNestableAttribute","getNestableAttributes","getNestingLevel","lastIndexOf","getListItemAttributes","isListItem","isTerminalBlock","breaksOnReturn","findLineBreakInDirectionFromPosition","getTextWithoutBlockBreak","blockBreak","HTMLSanitizer","allowedAttributes","forbiddenProtocols","forbiddenElements","sanitize","sanitizeElements","normalizeListElementNesting","getHTML","getBody","nextNode","currentNode","elementIsRemovable","sanitizeElement","protocol","previousElementSibling","elementIsForbidden","elementIsntSerializable","implementation","createHTMLDocument","HTMLParser","referenceElement","blocks","blockElements","processedElements","getDocument","createHiddenContainer","containerElement","processNode","translateBlockElementMarginsToNewlines","removeHiddenContainer","FILTER_REJECT","FILTER_ACCEPT","isInsignificantTextNode","appendBlockForTextNode","processTextNode","appendBlockForElement","processElement","currentBlockElement","isBlockElement","appendStringWithAttributes","getBlockAttributes","currentBlock","appendBlockForAttributesWithElement","findParentBlockElement","appendEmptyBlock","getTextAttributes","appendAttachmentWithAttributes","isExtraBR","appendPiece","appendStringToTextAtIndex","prependStringToTextAtIndex","unshift","findBlockElementAncestors","reverse","whiteSpace","getMarginOfDefaultBlockElement","getMarginOfBlockElementAtIndex","bottom","marginTop","marginBottom","blockList","fromString","getBlockAtIndex","consolidateBlocks","copyUsingObjectsFromDocument","copyWithBaseBlockAttributes","replaceBlock","insertDocumentAtRange","locationFromPosition","getBlockAtPosition","mergeDocumentAtRange","getBaseBlockAttributes","getBlockCount","insertTextAtRange","locationRangeFromRange","getDocumentAtRange","eachBlockAtRange","eachBlock","getTextAtIndex","insertBlockBreakAtRange","applyBlockAttributeAtRange","expandRangeToLineBreaksAndSplitBlocks","removeLastListAttributeAtRange","exceptAttributeName","convertLineBreaksToBlockBreaksInRange","removeBlockAttributesAtRange","removeLastTerminalAttributeAtRange","consolidateBlocksAtRange","positionFromLocation","getTextAtPosition","getCharacterAtPosition","getEditCount","editCount","getCommonAttributesAtPosition","getRangeOfCommonAttributeAtPosition","getLocationRangeOfAttachment","findRangesForBlockAttribute","findRangesForTextAttribute","withValue","locationRangeFromPosition","rangeFromLocationRange","getTexts","LineBreakInsertion","startPosition","startLocation","endLocation","previousCharacter","nextCharacter","shouldInsertBlockBreak","shouldBreakFormattedBlock","shouldDecreaseListLevel","shouldPrependListItem","shouldRemoveLastBlockAttribute","Composition","currentAttributes","refreshAttachments","compositionDidChangeDocument","getSnapshot","selectedRange","loadSnapshot","compositionWillLoadSnapshot","setSelection","compositionDidLoadSnapshot","notifyDelegateOfInsertionAtRange","insertBlock","getCurrentTextAttributes","insertBlockBreak","decreaseListLevel","removeLastBlockAttribute","breakFormattedBlock","replaceHTML","getLocationRange","compositionShouldAcceptFile","insertAttachments","insertAttachment","canDecreaseBlockAttributeLevel","getBlock","decreaseBlockAttributeLevel","getExpandedRangeInDirection","getAttachmentAtRange","editAttachment","removeAttachment","stopEditingAttachment","placeholderPosition","getPosition","hasCurrentAttribute","canSetCurrentAttribute","canSetCurrentBlockAttribute","canSetCurrentTextAttribute","setBlockAttribute","setTextAttribute","notifyDelegateOfCurrentAttributesChange","removeBlockAttribute","updateCurrentAttributes","removeTextAttribute","getPreviousBlock","ignoreLock","freezeSelection","thawSelection","hasFrozenSelection","compositionDidRequestChangingSelectionToLocationRange","getSelectionManager","setLocationRange","targetLocationRange","withTargetLocationRange","withTargetRange","createLocationRangeFromDOMRange","translateUTF16PositionFromOffset","editingAttachment","expandSelectionForEditing","expandSelectionAroundCommonAttribute","getSelectedAttachments","positionIsCursorTarget","locationIsCursorTarget","compositionDidRemoveAttachment","compositionDidAddAttachment","compositionDidEditAttachment","compositionDidChangeAttachmentPreviewURL","compositionDidStartEditingAttachment","compositionDidStopEditingAttachment","compositionDidChangeCurrentAttributes","compositionDidPerformInsertionAtRange","UndoManager","undoEntries","redoEntries","consolidatable","createEntry","description","snapshot","canUndo","canRedo","attachmentGalleryFilter","applyBlockAttribute","findRangesOfBlocks","findRangesOfPieces","moveSelectedRangeForward","Editor","selectionManager","undoManager","filters","loadDocument","loadHTML","loadJSON","getClientRectAtPosition","getClientRectAtLocationRange","activateAttribute","attributeIsActive","canActivateAttribute","deactivateAttribute","ManagedAttachment","attachmentManager","requestRemovalOfAttachment","AttachmentManager","managedAttachments","manageAttachment","attachmentIsManaged","attachmentManagerDidRequestRemovalOfAttachment","unmanageAttachment","LocationMapper","findLocationFromContainerAndOffset","findAttachmentElementParentForNode","findContainerAndOffsetFromLocation","findNodeAndOffsetFromLocation","getSignificantNodesForIndex","PointMapper","createDOMRangeFromPoint","caretPositionFromPoint","offsetNode","caretRangeFromPoint","createTextRange","moveToPoint","getClientRectsForDOMRange","getClientRects","SelectionChangeObserver","run","selectionManagers","registerSelectionManager","unregisterSelectionManager","notifySelectionManagersOfSelectionChange","selectionDidChange","domRange","SelectionManager","didMouseDown","locationMapper","pointMapper","lockCount","currentLocationRange","lockedLocationRange","createDOMRangeFromLocationRange","updateCurrentLocationRange","getLocationAtPoint","lock","unlock","clearSelection","selectionIsCollapsed","collapsed","domRangeWithinElement","pauseTemporarily","paused","locationRangeDidChange","EditorController","editorElement","compositionController","toolbarController","toolbarElement","editor","notifyEditorElement","handlingInput","updateCurrentActions","pasting","pastedRange","attachmentLocationRange","loadingSnapshot","isFocused","requestedLocationRange","compositionRevisionWhenLocationRangeRequested","renderedCompositionRevision","runEditorFilters","isFocusedInvisibly","requestedRender","recordTypingUndoEntry","recordFormattingUndoEntry","locationRangeBeforeDrag","invokeAction","selectionFrozen","dialogName","canInvokeAction","actionIsExternal","actionName","getCurrentActions","currentActions","updateInputElement","setInputElementValue","documentChangedSinceLastRender","getUndoContext","getLocationContext","getTimeContext","getTime","ownerDocument","queryCommandSupported","execCommand","labels","contains","inputElement","editorController","defaultValue","registerResetListener","registerClickListener","unregisterResetListener","unregisterClickListener","resetListener","resetBubbled","clickListener","clickBubbled","Timeout","clearFn","_id","_clearFn","scope","setInterval","clearInterval","timeout","close","unref","ref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","global","clearImmediate","registerImmediate","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","process","handle","nextTick","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","MessageChannel","port1","port2","script","onreadystatechange","args","task","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","len","marker","runClearTimeout","Item","noop","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","directUploadUrl","directUploadDidComplete","sgid","attachable_sgid","createBlobUrl","signedId","blobUrlTemplate"],"mappings":"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","file":"js/application-3fd0556224767279e2c3.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 2);\n","var g;\n\n// This works in non-strict mode\ng = function () {\n return this;\n}();\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;","(function (global, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([\"exports\"], factory) : factory(global.ActiveStorage = {});\n})(this, function (exports) {\n \"use strict\";\n\n function createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n }\n var sparkMd5 = createCommonjsModule(function (module, exports) {\n (function (factory) {\n {\n module.exports = factory();\n }\n })(function (undefined) {\n var hex_chr = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n function md5blk(s) {\n var md5blks = [],\n i;\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n return md5blks;\n }\n function md5blk_array(a) {\n var md5blks = [],\n i;\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n return md5blks;\n }\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n function rhex(n) {\n var s = \"\",\n j;\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n }\n return s;\n }\n function hex(x) {\n var i;\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n return x.join(\"\");\n }\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = val | 0 || 0;\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n return Math.min(val, length);\n }\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n if (to !== undefined) {\n end = clamp(to, length);\n }\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n return target;\n };\n })();\n }\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n return str;\n }\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n return returnUInt8Array ? arr : buff;\n }\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n return returnUInt8Array ? result : result.buffer;\n }\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n return String.fromCharCode.apply(String, bytes);\n }\n function SparkMD5() {\n this.reset();\n }\n SparkMD5.prototype.append = function (str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length,\n i;\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n this._finish(tail, length);\n ret = hex(this._hash);\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n this.reset();\n return ret;\n };\n SparkMD5.prototype.reset = function () {\n this._buff = \"\";\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash\n };\n };\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n return this;\n };\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(this._hash, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n SparkMD5.hash = function (str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n SparkMD5.ArrayBuffer = function () {\n this.reset();\n };\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n this._length += arr.byteLength;\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n this._finish(tail, length);\n ret = hex(this._hash);\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n this.reset();\n return ret;\n };\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n state.buff = arrayBuffer2Utf8Str(state.buff);\n return state;\n };\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n return SparkMD5;\n });\n });\n var classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n var createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n var FileChecksum = function () {\n createClass(FileChecksum, null, [{\n key: \"create\",\n value: function create(file, callback) {\n var instance = new FileChecksum(file);\n instance.create(callback);\n }\n }]);\n function FileChecksum(file) {\n classCallCheck(this, FileChecksum);\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n createClass(FileChecksum, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n this.callback = callback;\n this.md5Buffer = new sparkMd5.ArrayBuffer();\n this.fileReader = new FileReader();\n this.fileReader.addEventListener(\"load\", function (event) {\n return _this.fileReaderDidLoad(event);\n });\n this.fileReader.addEventListener(\"error\", function (event) {\n return _this.fileReaderDidError(event);\n });\n this.readNextChunk();\n }\n }, {\n key: \"fileReaderDidLoad\",\n value: function fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n if (!this.readNextChunk()) {\n var binaryDigest = this.md5Buffer.end(true);\n var base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n }, {\n key: \"fileReaderDidError\",\n value: function fileReaderDidError(event) {\n this.callback(\"Error reading \" + this.file.name);\n }\n }, {\n key: \"readNextChunk\",\n value: function readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n var start = this.chunkIndex * this.chunkSize;\n var end = Math.min(start + this.chunkSize, this.file.size);\n var bytes = fileSlice.call(this.file, start, end);\n this.fileReader.readAsArrayBuffer(bytes);\n this.chunkIndex++;\n return true;\n } else {\n return false;\n }\n }\n }]);\n return FileChecksum;\n }();\n function getMetaValue(name) {\n var element = findElement(document.head, 'meta[name=\"' + name + '\"]');\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n function findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n var elements = root.querySelectorAll(selector);\n return toArray$1(elements);\n }\n function findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n return root.querySelector(selector);\n }\n function dispatchEvent(element, type) {\n var eventInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var disabled = element.disabled;\n var bubbles = eventInit.bubbles,\n cancelable = eventInit.cancelable,\n detail = eventInit.detail;\n var event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n return event;\n }\n function toArray$1(value) {\n if (Array.isArray(value)) {\n return value;\n } else if (Array.from) {\n return Array.from(value);\n } else {\n return [].slice.call(value);\n }\n }\n var BlobRecord = function () {\n function BlobRecord(file, checksum, url) {\n var _this = this;\n classCallCheck(this, BlobRecord);\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type || \"application/octet-stream\",\n byte_size: file.size,\n checksum: checksum\n };\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"POST\", url, true);\n this.xhr.responseType = \"json\";\n this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n var csrfToken = getMetaValue(\"csrf-token\");\n if (csrfToken != undefined) {\n this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n createClass(BlobRecord, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n var response = this.response;\n var direct_upload = response.direct_upload;\n delete response.direct_upload;\n this.attributes = response;\n this.directUploadData = direct_upload;\n this.callback(null, this.toJSON());\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error creating Blob for \"' + this.file.name + '\". Status: ' + this.status);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var result = {};\n for (var key in this.attributes) {\n result[key] = this.attributes[key];\n }\n return result;\n }\n }, {\n key: \"status\",\n get: function get$$1() {\n return this.xhr.status;\n }\n }, {\n key: \"response\",\n get: function get$$1() {\n var _xhr = this.xhr,\n responseType = _xhr.responseType,\n response = _xhr.response;\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n }]);\n return BlobRecord;\n }();\n var BlobUpload = function () {\n function BlobUpload(blob) {\n var _this = this;\n classCallCheck(this, BlobUpload);\n this.blob = blob;\n this.file = blob.file;\n var _blob$directUploadDat = blob.directUploadData,\n url = _blob$directUploadDat.url,\n headers = _blob$directUploadDat.headers;\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n for (var key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n createClass(BlobUpload, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n var _xhr = this.xhr,\n status = _xhr.status,\n response = _xhr.response;\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error storing \"' + this.file.name + '\". Status: ' + this.xhr.status);\n }\n }]);\n return BlobUpload;\n }();\n var id = 0;\n var DirectUpload = function () {\n function DirectUpload(file, url, delegate) {\n classCallCheck(this, DirectUpload);\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n }\n createClass(DirectUpload, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n FileChecksum.create(this.file, function (error, checksum) {\n if (error) {\n callback(error);\n return;\n }\n var blob = new BlobRecord(_this.file, checksum, _this.url);\n notify(_this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create(function (error) {\n if (error) {\n callback(error);\n } else {\n var upload = new BlobUpload(blob);\n notify(_this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create(function (error) {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n });\n }\n });\n });\n }\n }]);\n return DirectUpload;\n }();\n function notify(object, methodName) {\n if (object && typeof object[methodName] == \"function\") {\n for (var _len = arguments.length, messages = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n messages[_key - 2] = arguments[_key];\n }\n return object[methodName].apply(object, messages);\n }\n }\n var DirectUploadController = function () {\n function DirectUploadController(input, file) {\n classCallCheck(this, DirectUploadController);\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n createClass(DirectUploadController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n var hiddenInput = document.createElement(\"input\");\n hiddenInput.type = \"hidden\";\n hiddenInput.name = this.input.name;\n this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n this.dispatch(\"start\");\n this.directUpload.create(function (error, attributes) {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n _this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n _this.dispatch(\"end\");\n callback(error);\n });\n }\n }, {\n key: \"uploadRequestDidProgress\",\n value: function uploadRequestDidProgress(event) {\n var progress = event.loaded / event.total * 100;\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n detail.file = this.file;\n detail.id = this.directUpload.id;\n return dispatchEvent(this.input, \"direct-upload:\" + name, {\n detail: detail\n });\n }\n }, {\n key: \"dispatchError\",\n value: function dispatchError(error) {\n var event = this.dispatch(\"error\", {\n error: error\n });\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n }, {\n key: \"directUploadWillCreateBlobWithXHR\",\n value: function directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n }, {\n key: \"directUploadWillStoreFileWithXHR\",\n value: function directUploadWillStoreFileWithXHR(xhr) {\n var _this2 = this;\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", function (event) {\n return _this2.uploadRequestDidProgress(event);\n });\n }\n }, {\n key: \"url\",\n get: function get$$1() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n }]);\n return DirectUploadController;\n }();\n var inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n var DirectUploadsController = function () {\n function DirectUploadsController(form) {\n classCallCheck(this, DirectUploadsController);\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter(function (input) {\n return input.files.length;\n });\n }\n createClass(DirectUploadsController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n var controllers = this.createDirectUploadControllers();\n var startNextController = function startNextController() {\n var controller = controllers.shift();\n if (controller) {\n controller.start(function (error) {\n if (error) {\n callback(error);\n _this.dispatch(\"end\");\n } else {\n startNextController();\n }\n });\n } else {\n callback();\n _this.dispatch(\"end\");\n }\n };\n this.dispatch(\"start\");\n startNextController();\n }\n }, {\n key: \"createDirectUploadControllers\",\n value: function createDirectUploadControllers() {\n var controllers = [];\n this.inputs.forEach(function (input) {\n toArray$1(input.files).forEach(function (file) {\n var controller = new DirectUploadController(input, file);\n controllers.push(controller);\n });\n });\n return controllers;\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return dispatchEvent(this.form, \"direct-uploads:\" + name, {\n detail: detail\n });\n }\n }]);\n return DirectUploadsController;\n }();\n var processingAttribute = \"data-direct-uploads-processing\";\n var submitButtonsByForm = new WeakMap();\n var started = false;\n function start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n }\n function didClick(event) {\n var target = event.target;\n if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n submitButtonsByForm.set(target.form, target);\n }\n }\n function didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n }\n function didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n }\n function handleFormSubmissionEvent(event) {\n var form = event.target;\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n var controller = new DirectUploadsController(form);\n var inputs = controller.inputs;\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start(function (error) {\n form.removeAttribute(processingAttribute);\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n }\n function submitForm(form) {\n var button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n if (button) {\n var _button = button,\n disabled = _button.disabled;\n button.disabled = false;\n button.focus();\n button.click();\n button.disabled = disabled;\n } else {\n button = document.createElement(\"input\");\n button.type = \"submit\";\n button.style.display = \"none\";\n form.appendChild(button);\n button.click();\n form.removeChild(button);\n }\n submitButtonsByForm.delete(form);\n }\n function disable(input) {\n input.disabled = true;\n }\n function enable(input) {\n input.disabled = false;\n }\n function autostart() {\n if (window.ActiveStorage) {\n start();\n }\n }\n setTimeout(autostart, 1);\n exports.start = start;\n exports.DirectUpload = DirectUpload;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});","// import \"…/src/jets/crud\"\n//= require jquery\n//= require jquery-ui\n//= require jquery-ui/widget\n//= require jquery-ui/sortable\n\n\nrequire(\"trix\")\nrequire(\"@rails/actiontext\")","/*\nTrix 1.3.1\nCopyright © 2020 Basecamp, LLC\nhttp://trix-editor.org/\n */\n(function () {}).call(this), function () {\n var t;\n null == window.Set && (window.Set = t = function () {\n function t() {\n this.clear();\n }\n return t.prototype.clear = function () {\n return this.values = [];\n }, t.prototype.has = function (t) {\n return -1 !== this.values.indexOf(t);\n }, t.prototype.add = function (t) {\n return this.has(t) || this.values.push(t), this;\n }, t.prototype[\"delete\"] = function (t) {\n var e;\n return -1 === (e = this.values.indexOf(t)) ? !1 : (this.values.splice(e, 1), !0);\n }, t.prototype.forEach = function () {\n var t;\n return (t = this.values).forEach.apply(t, arguments);\n }, t;\n }());\n}.call(this), function (t) {\n function e() {}\n function n(t, e) {\n return function () {\n t.apply(e, arguments);\n };\n }\n function i(t) {\n if (\"object\" != typeof this) throw new TypeError(\"Promises must be constructed via new\");\n if (\"function\" != typeof t) throw new TypeError(\"not a function\");\n this._state = 0, this._handled = !1, this._value = void 0, this._deferreds = [], c(t, this);\n }\n function o(t, e) {\n for (; 3 === t._state;) t = t._value;\n return 0 === t._state ? void t._deferreds.push(e) : (t._handled = !0, void h(function () {\n var n = 1 === t._state ? e.onFulfilled : e.onRejected;\n if (null === n) return void (1 === t._state ? r : s)(e.promise, t._value);\n var i;\n try {\n i = n(t._value);\n } catch (o) {\n return void s(e.promise, o);\n }\n r(e.promise, i);\n }));\n }\n function r(t, e) {\n try {\n if (e === t) throw new TypeError(\"A promise cannot be resolved with itself.\");\n if (e && (\"object\" == typeof e || \"function\" == typeof e)) {\n var o = e.then;\n if (e instanceof i) return t._state = 3, t._value = e, void a(t);\n if (\"function\" == typeof o) return void c(n(o, e), t);\n }\n t._state = 1, t._value = e, a(t);\n } catch (r) {\n s(t, r);\n }\n }\n function s(t, e) {\n t._state = 2, t._value = e, a(t);\n }\n function a(t) {\n 2 === t._state && 0 === t._deferreds.length && setTimeout(function () {\n t._handled || p(t._value);\n }, 1);\n for (var e = 0, n = t._deferreds.length; n > e; e++) o(t, t._deferreds[e]);\n t._deferreds = null;\n }\n function u(t, e, n) {\n this.onFulfilled = \"function\" == typeof t ? t : null, this.onRejected = \"function\" == typeof e ? e : null, this.promise = n;\n }\n function c(t, e) {\n var n = !1;\n try {\n t(function (t) {\n n || (n = !0, r(e, t));\n }, function (t) {\n n || (n = !0, s(e, t));\n });\n } catch (i) {\n if (n) return;\n n = !0, s(e, i);\n }\n }\n var l = setTimeout,\n h = \"function\" == typeof setImmediate && setImmediate || function (t) {\n l(t, 1);\n },\n p = function (t) {\n \"undefined\" != typeof console && console && console.warn(\"Possible Unhandled Promise Rejection:\", t);\n };\n i.prototype[\"catch\"] = function (t) {\n return this.then(null, t);\n }, i.prototype.then = function (t, n) {\n var r = new i(e);\n return o(this, new u(t, n, r)), r;\n }, i.all = function (t) {\n var e = Array.prototype.slice.call(t);\n return new i(function (t, n) {\n function i(r, s) {\n try {\n if (s && (\"object\" == typeof s || \"function\" == typeof s)) {\n var a = s.then;\n if (\"function\" == typeof a) return void a.call(s, function (t) {\n i(r, t);\n }, n);\n }\n e[r] = s, 0 === --o && t(e);\n } catch (u) {\n n(u);\n }\n }\n if (0 === e.length) return t([]);\n for (var o = e.length, r = 0; r < e.length; r++) i(r, e[r]);\n });\n }, i.resolve = function (t) {\n return t && \"object\" == typeof t && t.constructor === i ? t : new i(function (e) {\n e(t);\n });\n }, i.reject = function (t) {\n return new i(function (e, n) {\n n(t);\n });\n }, i.race = function (t) {\n return new i(function (e, n) {\n for (var i = 0, o = t.length; o > i; i++) t[i].then(e, n);\n });\n }, i._setImmediateFn = function (t) {\n h = t;\n }, i._setUnhandledRejectionFn = function (t) {\n p = t;\n }, \"undefined\" != typeof module && module.exports ? module.exports = i : t.Promise || (t.Promise = i);\n}(this), function () {\n var t = \"object\" == typeof window.customElements,\n e = \"function\" == typeof document.registerElement,\n n = t || e;\n n || (\n /**\n * @license\n * Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n \"undefined\" == typeof WeakMap && !function () {\n var t = Object.defineProperty,\n e = Date.now() % 1e9,\n n = function () {\n this.name = \"__st\" + (1e9 * Math.random() >>> 0) + (e++ + \"__\");\n };\n n.prototype = {\n set: function (e, n) {\n var i = e[this.name];\n return i && i[0] === e ? i[1] = n : t(e, this.name, {\n value: [e, n],\n writable: !0\n }), this;\n },\n get: function (t) {\n var e;\n return (e = t[this.name]) && e[0] === t ? e[1] : void 0;\n },\n \"delete\": function (t) {\n var e = t[this.name];\n return e && e[0] === t ? (e[0] = e[1] = void 0, !0) : !1;\n },\n has: function (t) {\n var e = t[this.name];\n return e ? e[0] === t : !1;\n }\n }, window.WeakMap = n;\n }(), function (t) {\n function e(t) {\n A.push(t), b || (b = !0, g(i));\n }\n function n(t) {\n return window.ShadowDOMPolyfill && window.ShadowDOMPolyfill.wrapIfNeeded(t) || t;\n }\n function i() {\n b = !1;\n var t = A;\n A = [], t.sort(function (t, e) {\n return t.uid_ - e.uid_;\n });\n var e = !1;\n t.forEach(function (t) {\n var n = t.takeRecords();\n o(t), n.length && (t.callback_(n, t), e = !0);\n }), e && i();\n }\n function o(t) {\n t.nodes_.forEach(function (e) {\n var n = m.get(e);\n n && n.forEach(function (e) {\n e.observer === t && e.removeTransientObservers();\n });\n });\n }\n function r(t, e) {\n for (var n = t; n; n = n.parentNode) {\n var i = m.get(n);\n if (i) for (var o = 0; o < i.length; o++) {\n var r = i[o],\n s = r.options;\n if (n === t || s.subtree) {\n var a = e(s);\n a && r.enqueue(a);\n }\n }\n }\n }\n function s(t) {\n this.callback_ = t, this.nodes_ = [], this.records_ = [], this.uid_ = ++C;\n }\n function a(t, e) {\n this.type = t, this.target = e, this.addedNodes = [], this.removedNodes = [], this.previousSibling = null, this.nextSibling = null, this.attributeName = null, this.attributeNamespace = null, this.oldValue = null;\n }\n function u(t) {\n var e = new a(t.type, t.target);\n return e.addedNodes = t.addedNodes.slice(), e.removedNodes = t.removedNodes.slice(), e.previousSibling = t.previousSibling, e.nextSibling = t.nextSibling, e.attributeName = t.attributeName, e.attributeNamespace = t.attributeNamespace, e.oldValue = t.oldValue, e;\n }\n function c(t, e) {\n return x = new a(t, e);\n }\n function l(t) {\n return w ? w : (w = u(x), w.oldValue = t, w);\n }\n function h() {\n x = w = void 0;\n }\n function p(t) {\n return t === w || t === x;\n }\n function d(t, e) {\n return t === e ? t : w && p(t) ? w : null;\n }\n function f(t, e, n) {\n this.observer = t, this.target = e, this.options = n, this.transientObservedNodes = [];\n }\n if (!t.JsMutationObserver) {\n var g,\n m = new WeakMap();\n if (/Trident|Edge/.test(navigator.userAgent)) g = setTimeout;else if (window.setImmediate) g = window.setImmediate;else {\n var v = [],\n y = String(Math.random());\n window.addEventListener(\"message\", function (t) {\n if (t.data === y) {\n var e = v;\n v = [], e.forEach(function (t) {\n t();\n });\n }\n }), g = function (t) {\n v.push(t), window.postMessage(y, \"*\");\n };\n }\n var b = !1,\n A = [],\n C = 0;\n s.prototype = {\n observe: function (t, e) {\n if (t = n(t), !e.childList && !e.attributes && !e.characterData || e.attributeOldValue && !e.attributes || e.attributeFilter && e.attributeFilter.length && !e.attributes || e.characterDataOldValue && !e.characterData) throw new SyntaxError();\n var i = m.get(t);\n i || m.set(t, i = []);\n for (var o, r = 0; r < i.length; r++) if (i[r].observer === this) {\n o = i[r], o.removeListeners(), o.options = e;\n break;\n }\n o || (o = new f(this, t, e), i.push(o), this.nodes_.push(t)), o.addListeners();\n },\n disconnect: function () {\n this.nodes_.forEach(function (t) {\n for (var e = m.get(t), n = 0; n < e.length; n++) {\n var i = e[n];\n if (i.observer === this) {\n i.removeListeners(), e.splice(n, 1);\n break;\n }\n }\n }, this), this.records_ = [];\n },\n takeRecords: function () {\n var t = this.records_;\n return this.records_ = [], t;\n }\n };\n var x, w;\n f.prototype = {\n enqueue: function (t) {\n var n = this.observer.records_,\n i = n.length;\n if (n.length > 0) {\n var o = n[i - 1],\n r = d(o, t);\n if (r) return void (n[i - 1] = r);\n } else e(this.observer);\n n[i] = t;\n },\n addListeners: function () {\n this.addListeners_(this.target);\n },\n addListeners_: function (t) {\n var e = this.options;\n e.attributes && t.addEventListener(\"DOMAttrModified\", this, !0), e.characterData && t.addEventListener(\"DOMCharacterDataModified\", this, !0), e.childList && t.addEventListener(\"DOMNodeInserted\", this, !0), (e.childList || e.subtree) && t.addEventListener(\"DOMNodeRemoved\", this, !0);\n },\n removeListeners: function () {\n this.removeListeners_(this.target);\n },\n removeListeners_: function (t) {\n var e = this.options;\n e.attributes && t.removeEventListener(\"DOMAttrModified\", this, !0), e.characterData && t.removeEventListener(\"DOMCharacterDataModified\", this, !0), e.childList && t.removeEventListener(\"DOMNodeInserted\", this, !0), (e.childList || e.subtree) && t.removeEventListener(\"DOMNodeRemoved\", this, !0);\n },\n addTransientObserver: function (t) {\n if (t !== this.target) {\n this.addListeners_(t), this.transientObservedNodes.push(t);\n var e = m.get(t);\n e || m.set(t, e = []), e.push(this);\n }\n },\n removeTransientObservers: function () {\n var t = this.transientObservedNodes;\n this.transientObservedNodes = [], t.forEach(function (t) {\n this.removeListeners_(t);\n for (var e = m.get(t), n = 0; n < e.length; n++) if (e[n] === this) {\n e.splice(n, 1);\n break;\n }\n }, this);\n },\n handleEvent: function (t) {\n switch (t.stopImmediatePropagation(), t.type) {\n case \"DOMAttrModified\":\n var e = t.attrName,\n n = t.relatedNode.namespaceURI,\n i = t.target,\n o = new c(\"attributes\", i);\n o.attributeName = e, o.attributeNamespace = n;\n var s = t.attrChange === MutationEvent.ADDITION ? null : t.prevValue;\n r(i, function (t) {\n return !t.attributes || t.attributeFilter && t.attributeFilter.length && -1 === t.attributeFilter.indexOf(e) && -1 === t.attributeFilter.indexOf(n) ? void 0 : t.attributeOldValue ? l(s) : o;\n });\n break;\n case \"DOMCharacterDataModified\":\n var i = t.target,\n o = c(\"characterData\", i),\n s = t.prevValue;\n r(i, function (t) {\n return t.characterData ? t.characterDataOldValue ? l(s) : o : void 0;\n });\n break;\n case \"DOMNodeRemoved\":\n this.addTransientObserver(t.target);\n case \"DOMNodeInserted\":\n var a,\n u,\n p = t.target;\n \"DOMNodeInserted\" === t.type ? (a = [p], u = []) : (a = [], u = [p]);\n var d = p.previousSibling,\n f = p.nextSibling,\n o = c(\"childList\", t.target.parentNode);\n o.addedNodes = a, o.removedNodes = u, o.previousSibling = d, o.nextSibling = f, r(t.relatedNode, function (t) {\n return t.childList ? o : void 0;\n });\n }\n h();\n }\n }, t.JsMutationObserver = s, t.MutationObserver || (t.MutationObserver = s, s._isPolyfilled = !0);\n }\n }(self), function () {\n \"use strict\";\n\n if (!window.performance || !window.performance.now) {\n var t = Date.now();\n window.performance = {\n now: function () {\n return Date.now() - t;\n }\n };\n }\n window.requestAnimationFrame || (window.requestAnimationFrame = function () {\n var t = window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame;\n return t ? function (e) {\n return t(function () {\n e(performance.now());\n });\n } : function (t) {\n return window.setTimeout(t, 1e3 / 60);\n };\n }()), window.cancelAnimationFrame || (window.cancelAnimationFrame = function () {\n return window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || function (t) {\n clearTimeout(t);\n };\n }());\n var e = function () {\n var t = document.createEvent(\"Event\");\n return t.initEvent(\"foo\", !0, !0), t.preventDefault(), t.defaultPrevented;\n }();\n if (!e) {\n var n = Event.prototype.preventDefault;\n Event.prototype.preventDefault = function () {\n this.cancelable && (n.call(this), Object.defineProperty(this, \"defaultPrevented\", {\n get: function () {\n return !0;\n },\n configurable: !0\n }));\n };\n }\n var i = /Trident/.test(navigator.userAgent);\n if ((!window.CustomEvent || i && \"function\" != typeof window.CustomEvent) && (window.CustomEvent = function (t, e) {\n e = e || {};\n var n = document.createEvent(\"CustomEvent\");\n return n.initCustomEvent(t, Boolean(e.bubbles), Boolean(e.cancelable), e.detail), n;\n }, window.CustomEvent.prototype = window.Event.prototype), !window.Event || i && \"function\" != typeof window.Event) {\n var o = window.Event;\n window.Event = function (t, e) {\n e = e || {};\n var n = document.createEvent(\"Event\");\n return n.initEvent(t, Boolean(e.bubbles), Boolean(e.cancelable)), n;\n }, window.Event.prototype = o.prototype;\n }\n }(window.WebComponents), window.CustomElements = window.CustomElements || {\n flags: {}\n }, function (t) {\n var e = t.flags,\n n = [],\n i = function (t) {\n n.push(t);\n },\n o = function () {\n n.forEach(function (e) {\n e(t);\n });\n };\n t.addModule = i, t.initializeModules = o, t.hasNative = Boolean(document.registerElement), t.isIE = /Trident/.test(navigator.userAgent), t.useNative = !e.register && t.hasNative && !window.ShadowDOMPolyfill && (!window.HTMLImports || window.HTMLImports.useNative);\n }(window.CustomElements), window.CustomElements.addModule(function (t) {\n function e(t, e) {\n n(t, function (t) {\n return e(t) ? !0 : void i(t, e);\n }), i(t, e);\n }\n function n(t, e, i) {\n var o = t.firstElementChild;\n if (!o) for (o = t.firstChild; o && o.nodeType !== Node.ELEMENT_NODE;) o = o.nextSibling;\n for (; o;) e(o, i) !== !0 && n(o, e, i), o = o.nextElementSibling;\n return null;\n }\n function i(t, n) {\n for (var i = t.shadowRoot; i;) e(i, n), i = i.olderShadowRoot;\n }\n function o(t, e) {\n r(t, e, []);\n }\n function r(t, e, n) {\n if (t = window.wrap(t), !(n.indexOf(t) >= 0)) {\n n.push(t);\n for (var i, o = t.querySelectorAll(\"link[rel=\" + s + \"]\"), a = 0, u = o.length; u > a && (i = o[a]); a++) i.import && r(i.import, e, n);\n e(t);\n }\n }\n var s = window.HTMLImports ? window.HTMLImports.IMPORT_LINK_TYPE : \"none\";\n t.forDocumentTree = o, t.forSubtree = e;\n }), window.CustomElements.addModule(function (t) {\n function e(t, e) {\n return n(t, e) || i(t, e);\n }\n function n(e, n) {\n return t.upgrade(e, n) ? !0 : void (n && s(e));\n }\n function i(t, e) {\n b(t, function (t) {\n return n(t, e) ? !0 : void 0;\n });\n }\n function o(t) {\n w.push(t), x || (x = !0, setTimeout(r));\n }\n function r() {\n x = !1;\n for (var t, e = w, n = 0, i = e.length; i > n && (t = e[n]); n++) t();\n w = [];\n }\n function s(t) {\n C ? o(function () {\n a(t);\n }) : a(t);\n }\n function a(t) {\n t.__upgraded__ && !t.__attached && (t.__attached = !0, t.attachedCallback && t.attachedCallback());\n }\n function u(t) {\n c(t), b(t, function (t) {\n c(t);\n });\n }\n function c(t) {\n C ? o(function () {\n l(t);\n }) : l(t);\n }\n function l(t) {\n t.__upgraded__ && t.__attached && (t.__attached = !1, t.detachedCallback && t.detachedCallback());\n }\n function h(t) {\n for (var e = t, n = window.wrap(document); e;) {\n if (e == n) return !0;\n e = e.parentNode || e.nodeType === Node.DOCUMENT_FRAGMENT_NODE && e.host;\n }\n }\n function p(t) {\n if (t.shadowRoot && !t.shadowRoot.__watched) {\n y.dom && console.log(\"watching shadow-root for: \", t.localName);\n for (var e = t.shadowRoot; e;) g(e), e = e.olderShadowRoot;\n }\n }\n function d(t, n) {\n if (y.dom) {\n var i = n[0];\n if (i && \"childList\" === i.type && i.addedNodes && i.addedNodes) {\n for (var o = i.addedNodes[0]; o && o !== document && !o.host;) o = o.parentNode;\n var r = o && (o.URL || o._URL || o.host && o.host.localName) || \"\";\n r = r.split(\"/?\").shift().split(\"/\").pop();\n }\n console.group(\"mutations (%d) [%s]\", n.length, r || \"\");\n }\n var s = h(t);\n n.forEach(function (t) {\n \"childList\" === t.type && (E(t.addedNodes, function (t) {\n t.localName && e(t, s);\n }), E(t.removedNodes, function (t) {\n t.localName && u(t);\n }));\n }), y.dom && console.groupEnd();\n }\n function f(t) {\n for (t = window.wrap(t), t || (t = window.wrap(document)); t.parentNode;) t = t.parentNode;\n var e = t.__observer;\n e && (d(t, e.takeRecords()), r());\n }\n function g(t) {\n if (!t.__observer) {\n var e = new MutationObserver(d.bind(this, t));\n e.observe(t, {\n childList: !0,\n subtree: !0\n }), t.__observer = e;\n }\n }\n function m(t) {\n t = window.wrap(t), y.dom && console.group(\"upgradeDocument: \", t.baseURI.split(\"/\").pop());\n var n = t === window.wrap(document);\n e(t, n), g(t), y.dom && console.groupEnd();\n }\n function v(t) {\n A(t, m);\n }\n var y = t.flags,\n b = t.forSubtree,\n A = t.forDocumentTree,\n C = window.MutationObserver._isPolyfilled && y[\"throttle-attached\"];\n t.hasPolyfillMutations = C, t.hasThrottledAttached = C;\n var x = !1,\n w = [],\n E = Array.prototype.forEach.call.bind(Array.prototype.forEach),\n S = Element.prototype.createShadowRoot;\n S && (Element.prototype.createShadowRoot = function () {\n var t = S.call(this);\n return window.CustomElements.watchShadow(this), t;\n }), t.watchShadow = p, t.upgradeDocumentTree = v, t.upgradeDocument = m, t.upgradeSubtree = i, t.upgradeAll = e, t.attached = s, t.takeRecords = f;\n }), window.CustomElements.addModule(function (t) {\n function e(e, i) {\n if (\"template\" === e.localName && window.HTMLTemplateElement && HTMLTemplateElement.decorate && HTMLTemplateElement.decorate(e), !e.__upgraded__ && e.nodeType === Node.ELEMENT_NODE) {\n var o = e.getAttribute(\"is\"),\n r = t.getRegisteredDefinition(e.localName) || t.getRegisteredDefinition(o);\n if (r && (o && r.tag == e.localName || !o && !r.extends)) return n(e, r, i);\n }\n }\n function n(e, n, o) {\n return s.upgrade && console.group(\"upgrade:\", e.localName), n.is && e.setAttribute(\"is\", n.is), i(e, n), e.__upgraded__ = !0, r(e), o && t.attached(e), t.upgradeSubtree(e, o), s.upgrade && console.groupEnd(), e;\n }\n function i(t, e) {\n Object.__proto__ ? t.__proto__ = e.prototype : (o(t, e.prototype, e.native), t.__proto__ = e.prototype);\n }\n function o(t, e, n) {\n for (var i = {}, o = e; o !== n && o !== HTMLElement.prototype;) {\n for (var r, s = Object.getOwnPropertyNames(o), a = 0; r = s[a]; a++) i[r] || (Object.defineProperty(t, r, Object.getOwnPropertyDescriptor(o, r)), i[r] = 1);\n o = Object.getPrototypeOf(o);\n }\n }\n function r(t) {\n t.createdCallback && t.createdCallback();\n }\n var s = t.flags;\n t.upgrade = e, t.upgradeWithDefinition = n, t.implementPrototype = i;\n }), window.CustomElements.addModule(function (t) {\n function e(e, i) {\n var u = i || {};\n if (!e) throw new Error(\"document.registerElement: first argument `name` must not be empty\");\n if (e.indexOf(\"-\") < 0) throw new Error(\"document.registerElement: first argument ('name') must contain a dash ('-'). Argument provided was '\" + String(e) + \"'.\");\n if (o(e)) throw new Error(\"Failed to execute 'registerElement' on 'Document': Registration failed for type '\" + String(e) + \"'. The type name is invalid.\");\n if (c(e)) throw new Error(\"DuplicateDefinitionError: a type with name '\" + String(e) + \"' is already registered\");\n return u.prototype || (u.prototype = Object.create(HTMLElement.prototype)), u.__name = e.toLowerCase(), u.extends && (u.extends = u.extends.toLowerCase()), u.lifecycle = u.lifecycle || {}, u.ancestry = r(u.extends), s(u), a(u), n(u.prototype), l(u.__name, u), u.ctor = h(u), u.ctor.prototype = u.prototype, u.prototype.constructor = u.ctor, t.ready && m(document), u.ctor;\n }\n function n(t) {\n if (!t.setAttribute._polyfilled) {\n var e = t.setAttribute;\n t.setAttribute = function (t, n) {\n i.call(this, t, n, e);\n };\n var n = t.removeAttribute;\n t.removeAttribute = function (t) {\n i.call(this, t, null, n);\n }, t.setAttribute._polyfilled = !0;\n }\n }\n function i(t, e, n) {\n t = t.toLowerCase();\n var i = this.getAttribute(t);\n n.apply(this, arguments);\n var o = this.getAttribute(t);\n this.attributeChangedCallback && o !== i && this.attributeChangedCallback(t, i, o);\n }\n function o(t) {\n for (var e = 0; e < C.length; e++) if (t === C[e]) return !0;\n }\n function r(t) {\n var e = c(t);\n return e ? r(e.extends).concat([e]) : [];\n }\n function s(t) {\n for (var e, n = t.extends, i = 0; e = t.ancestry[i]; i++) n = e.is && e.tag;\n t.tag = n || t.__name, n && (t.is = t.__name);\n }\n function a(t) {\n if (!Object.__proto__) {\n var e = HTMLElement.prototype;\n if (t.is) {\n var n = document.createElement(t.tag);\n e = Object.getPrototypeOf(n);\n }\n for (var i, o = t.prototype, r = !1; o;) o == e && (r = !0), i = Object.getPrototypeOf(o), i && (o.__proto__ = i), o = i;\n r || console.warn(t.tag + \" prototype not found in prototype chain for \" + t.is), t.native = e;\n }\n }\n function u(t) {\n return y(E(t.tag), t);\n }\n function c(t) {\n return t ? x[t.toLowerCase()] : void 0;\n }\n function l(t, e) {\n x[t] = e;\n }\n function h(t) {\n return function () {\n return u(t);\n };\n }\n function p(t, e, n) {\n return t === w ? d(e, n) : S(t, e);\n }\n function d(t, e) {\n t && (t = t.toLowerCase()), e && (e = e.toLowerCase());\n var n = c(e || t);\n if (n) {\n if (t == n.tag && e == n.is) return new n.ctor();\n if (!e && !n.is) return new n.ctor();\n }\n var i;\n return e ? (i = d(t), i.setAttribute(\"is\", e), i) : (i = E(t), t.indexOf(\"-\") >= 0 && b(i, HTMLElement), i);\n }\n function f(t, e) {\n var n = t[e];\n t[e] = function () {\n var t = n.apply(this, arguments);\n return v(t), t;\n };\n }\n var g,\n m = (t.isIE, t.upgradeDocumentTree),\n v = t.upgradeAll,\n y = t.upgradeWithDefinition,\n b = t.implementPrototype,\n A = t.useNative,\n C = [\"annotation-xml\", \"color-profile\", \"font-face\", \"font-face-src\", \"font-face-uri\", \"font-face-format\", \"font-face-name\", \"missing-glyph\"],\n x = {},\n w = \"http://www.w3.org/1999/xhtml\",\n E = document.createElement.bind(document),\n S = document.createElementNS.bind(document);\n g = Object.__proto__ || A ? function (t, e) {\n return t instanceof e;\n } : function (t, e) {\n if (t instanceof e) return !0;\n for (var n = t; n;) {\n if (n === e.prototype) return !0;\n n = n.__proto__;\n }\n return !1;\n }, f(Node.prototype, \"cloneNode\"), f(document, \"importNode\"), document.registerElement = e, document.createElement = d, document.createElementNS = p, t.registry = x, t.instanceof = g, t.reservedTagList = C, t.getRegisteredDefinition = c, document.register = document.registerElement;\n }), function (t) {\n function e() {\n r(window.wrap(document)), window.CustomElements.ready = !0;\n var t = window.requestAnimationFrame || function (t) {\n setTimeout(t, 16);\n };\n t(function () {\n setTimeout(function () {\n window.CustomElements.readyTime = Date.now(), window.HTMLImports && (window.CustomElements.elapsed = window.CustomElements.readyTime - window.HTMLImports.readyTime), document.dispatchEvent(new CustomEvent(\"WebComponentsReady\", {\n bubbles: !0\n }));\n });\n });\n }\n var n = t.useNative,\n i = t.initializeModules;\n if (t.isIE, n) {\n var o = function () {};\n t.watchShadow = o, t.upgrade = o, t.upgradeAll = o, t.upgradeDocumentTree = o, t.upgradeSubtree = o, t.takeRecords = o, t.instanceof = function (t, e) {\n return t instanceof e;\n };\n } else i();\n var r = t.upgradeDocumentTree,\n s = t.upgradeDocument;\n if (window.wrap || (window.ShadowDOMPolyfill ? (window.wrap = window.ShadowDOMPolyfill.wrapIfNeeded, window.unwrap = window.ShadowDOMPolyfill.unwrapIfNeeded) : window.wrap = window.unwrap = function (t) {\n return t;\n }), window.HTMLImports && (window.HTMLImports.__importsParsingHook = function (t) {\n t.import && s(wrap(t.import));\n }), \"complete\" === document.readyState || t.flags.eager) e();else if (\"interactive\" !== document.readyState || window.attachEvent || window.HTMLImports && !window.HTMLImports.ready) {\n var a = window.HTMLImports && !window.HTMLImports.ready ? \"HTMLImportsLoaded\" : \"DOMContentLoaded\";\n window.addEventListener(a, e);\n } else e();\n }(window.CustomElements));\n}.call(this), function () {}.call(this), function () {\n var t = this;\n (function () {\n (function () {\n this.Trix = {\n VERSION: \"1.3.1\",\n ZERO_WIDTH_SPACE: \"\\ufeff\",\n NON_BREAKING_SPACE: \"\\xa0\",\n OBJECT_REPLACEMENT_CHARACTER: \"\\ufffc\",\n browser: {\n composesExistingText: /Android.*Chrome/.test(navigator.userAgent),\n forcesObjectResizing: /Trident.*rv:11/.test(navigator.userAgent),\n supportsInputEvents: function () {\n var t, e, n, i;\n if (\"undefined\" == typeof InputEvent) return !1;\n for (i = [\"data\", \"getTargetRanges\", \"inputType\"], t = 0, e = i.length; e > t; t++) if (n = i[t], !(n in InputEvent.prototype)) return !1;\n return !0;\n }()\n },\n config: {}\n };\n }).call(this);\n }).call(t);\n var e = t.Trix;\n (function () {\n (function () {\n e.BasicObject = function () {\n function t() {}\n var e, n, i;\n return t.proxyMethod = function (t) {\n var i, o, r, s, a;\n return r = n(t), i = r.name, s = r.toMethod, a = r.toProperty, o = r.optional, this.prototype[i] = function () {\n var t, n;\n return t = null != s ? o ? \"function\" == typeof this[s] ? this[s]() : void 0 : this[s]() : null != a ? this[a] : void 0, o ? (n = null != t ? t[i] : void 0, null != n ? e.call(n, t, arguments) : void 0) : (n = t[i], e.call(n, t, arguments));\n };\n }, n = function (t) {\n var e, n;\n if (!(n = t.match(i))) throw new Error(\"can't parse @proxyMethod expression: \" + t);\n return e = {\n name: n[4]\n }, null != n[2] ? e.toMethod = n[1] : e.toProperty = n[1], null != n[3] && (e.optional = !0), e;\n }, e = Function.prototype.apply, i = /^(.+?)(\\(\\))?(\\?)?\\.(.+?)$/, t;\n }();\n }).call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.Object = function (n) {\n function i() {\n this.id = ++o;\n }\n var o;\n return t(i, n), o = 0, i.fromJSONString = function (t) {\n return this.fromJSON(JSON.parse(t));\n }, i.prototype.hasSameConstructorAs = function (t) {\n return this.constructor === (null != t ? t.constructor : void 0);\n }, i.prototype.isEqualTo = function (t) {\n return this === t;\n }, i.prototype.inspect = function () {\n var t, e, n;\n return t = function () {\n var t, i, o;\n i = null != (t = this.contentsForInspection()) ? t : {}, o = [];\n for (e in i) n = i[e], o.push(e + \"=\" + n);\n return o;\n }.call(this), \"#<\" + this.constructor.name + \":\" + this.id + (t.length ? \" \" + t.join(\", \") : \"\") + \">\";\n }, i.prototype.contentsForInspection = function () {}, i.prototype.toJSONString = function () {\n return JSON.stringify(this);\n }, i.prototype.toUTF16String = function () {\n return e.UTF16String.box(this);\n }, i.prototype.getCacheKey = function () {\n return this.id.toString();\n }, i;\n }(e.BasicObject);\n }.call(this), function () {\n e.extend = function (t) {\n var e, n;\n for (e in t) n = t[e], this[e] = n;\n return this;\n };\n }.call(this), function () {\n e.extend({\n defer: function (t) {\n return setTimeout(t, 1);\n }\n });\n }.call(this), function () {\n var t, n;\n e.extend({\n normalizeSpaces: function (t) {\n return t.replace(RegExp(\"\" + e.ZERO_WIDTH_SPACE, \"g\"), \"\").replace(RegExp(\"\" + e.NON_BREAKING_SPACE, \"g\"), \" \");\n },\n normalizeNewlines: function (t) {\n return t.replace(/\\r\\n/g, \"\\n\");\n },\n breakableWhitespacePattern: RegExp(\"[^\\\\S\" + e.NON_BREAKING_SPACE + \"]\"),\n squishBreakableWhitespace: function (t) {\n return t.replace(RegExp(\"\" + e.breakableWhitespacePattern.source, \"g\"), \" \").replace(/\\ {2,}/g, \" \");\n },\n summarizeStringChange: function (t, i) {\n var o, r, s, a;\n return t = e.UTF16String.box(t), i = e.UTF16String.box(i), i.length < t.length ? (r = n(t, i), a = r[0], o = r[1]) : (s = n(i, t), o = s[0], a = s[1]), {\n added: o,\n removed: a\n };\n }\n }), n = function (n, i) {\n var o, r, s, a, u;\n return n.isEqualTo(i) ? [\"\", \"\"] : (r = t(n, i), a = r.utf16String.length, s = a ? (u = r.offset, r, o = n.codepoints.slice(0, u).concat(n.codepoints.slice(u + a)), t(i, e.UTF16String.fromCodepoints(o))) : t(i, n), [r.utf16String.toString(), s.utf16String.toString()]);\n }, t = function (t, e) {\n var n, i, o;\n for (n = 0, i = t.length, o = e.length; i > n && t.charAt(n).isEqualTo(e.charAt(n));) n++;\n for (; i > n + 1 && t.charAt(i - 1).isEqualTo(e.charAt(o - 1));) i--, o--;\n return {\n utf16String: t.slice(n, i),\n offset: n\n };\n };\n }.call(this), function () {\n e.extend({\n copyObject: function (t) {\n var e, n, i;\n null == t && (t = {}), n = {};\n for (e in t) i = t[e], n[e] = i;\n return n;\n },\n objectsAreEqual: function (t, e) {\n var n, i;\n if (null == t && (t = {}), null == e && (e = {}), Object.keys(t).length !== Object.keys(e).length) return !1;\n for (n in t) if (i = t[n], i !== e[n]) return !1;\n return !0;\n }\n });\n }.call(this), function () {\n var t = [].slice;\n e.extend({\n arraysAreEqual: function (t, e) {\n var n, i, o, r;\n if (null == t && (t = []), null == e && (e = []), t.length !== e.length) return !1;\n for (i = n = 0, o = t.length; o > n; i = ++n) if (r = t[i], r !== e[i]) return !1;\n return !0;\n },\n arrayStartsWith: function (t, n) {\n return null == t && (t = []), null == n && (n = []), e.arraysAreEqual(t.slice(0, n.length), n);\n },\n spliceArray: function () {\n var e, n, i;\n return n = arguments[0], e = 2 <= arguments.length ? t.call(arguments, 1) : [], i = n.slice(0), i.splice.apply(i, e), i;\n },\n summarizeArrayChange: function (t, e) {\n var n, i, o, r, s, a, u, c, l, h, p;\n for (null == t && (t = []), null == e && (e = []), n = [], h = [], o = new Set(), r = 0, u = t.length; u > r; r++) p = t[r], o.add(p);\n for (i = new Set(), s = 0, c = e.length; c > s; s++) p = e[s], i.add(p), o.has(p) || n.push(p);\n for (a = 0, l = t.length; l > a; a++) p = t[a], i.has(p) || h.push(p);\n return {\n added: n,\n removed: h\n };\n }\n });\n }.call(this), function () {\n var t, n, i, o;\n t = null, n = null, o = null, i = null, e.extend({\n getAllAttributeNames: function () {\n return null != t ? t : t = e.getTextAttributeNames().concat(e.getBlockAttributeNames());\n },\n getBlockConfig: function (t) {\n return e.config.blockAttributes[t];\n },\n getBlockAttributeNames: function () {\n return null != n ? n : n = Object.keys(e.config.blockAttributes);\n },\n getTextConfig: function (t) {\n return e.config.textAttributes[t];\n },\n getTextAttributeNames: function () {\n return null != o ? o : o = Object.keys(e.config.textAttributes);\n },\n getListAttributeNames: function () {\n var t, n;\n return null != i ? i : i = function () {\n var i, o;\n i = e.config.blockAttributes, o = [];\n for (t in i) n = i[t].listAttribute, null != n && o.push(n);\n return o;\n }();\n }\n });\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n };\n t = document.documentElement, n = null != (i = null != (o = null != (r = t.matchesSelector) ? r : t.webkitMatchesSelector) ? o : t.msMatchesSelector) ? i : t.mozMatchesSelector, e.extend({\n handleEvent: function (n, i) {\n var o, r, s, a, u, c, l, h, p, d, f, g;\n return h = null != i ? i : {}, c = h.onElement, u = h.matchingSelector, g = h.withCallback, a = h.inPhase, l = h.preventDefault, d = h.times, r = null != c ? c : t, p = u, o = g, f = \"capturing\" === a, s = function (t) {\n var n;\n return null != d && 0 === --d && s.destroy(), n = e.findClosestElementFromNode(t.target, {\n matchingSelector: p\n }), null != n && (null != g && g.call(n, t, n), l) ? t.preventDefault() : void 0;\n }, s.destroy = function () {\n return r.removeEventListener(n, s, f);\n }, r.addEventListener(n, s, f), s;\n },\n handleEventOnce: function (t, n) {\n return null == n && (n = {}), n.times = 1, e.handleEvent(t, n);\n },\n triggerEvent: function (n, i) {\n var o, r, s, a, u, c, l;\n return l = null != i ? i : {}, c = l.onElement, r = l.bubbles, s = l.cancelable, o = l.attributes, a = null != c ? c : t, r = r !== !1, s = s !== !1, u = document.createEvent(\"Events\"), u.initEvent(n, r, s), null != o && e.extend.call(u, o), a.dispatchEvent(u);\n },\n elementMatchesSelector: function (t, e) {\n return 1 === (null != t ? t.nodeType : void 0) ? n.call(t, e) : void 0;\n },\n findClosestElementFromNode: function (t, n) {\n var i, o, r;\n for (o = null != n ? n : {}, i = o.matchingSelector, r = o.untilNode; null != t && t.nodeType !== Node.ELEMENT_NODE;) t = t.parentNode;\n if (null != t) {\n if (null == i) return t;\n if (t.closest && null == r) return t.closest(i);\n for (; t && t !== r;) {\n if (e.elementMatchesSelector(t, i)) return t;\n t = t.parentNode;\n }\n }\n },\n findInnerElement: function (t) {\n for (; null != t ? t.firstElementChild : void 0;) t = t.firstElementChild;\n return t;\n },\n innerElementIsActive: function (t) {\n return document.activeElement !== t && e.elementContainsNode(t, document.activeElement);\n },\n elementContainsNode: function (t, e) {\n if (t && e) for (; e;) {\n if (e === t) return !0;\n e = e.parentNode;\n }\n },\n findNodeFromContainerAndOffset: function (t, e) {\n var n;\n if (t) return t.nodeType === Node.TEXT_NODE ? t : 0 === e ? null != (n = t.firstChild) ? n : t : t.childNodes.item(e - 1);\n },\n findElementFromContainerAndOffset: function (t, n) {\n var i;\n return i = e.findNodeFromContainerAndOffset(t, n), e.findClosestElementFromNode(i);\n },\n findChildIndexOfNode: function (t) {\n var e;\n if (null != t ? t.parentNode : void 0) {\n for (e = 0; t = t.previousSibling;) e++;\n return e;\n }\n },\n removeNode: function (t) {\n var e;\n return null != t && null != (e = t.parentNode) ? e.removeChild(t) : void 0;\n },\n walkTree: function (t, e) {\n var n, i, o, r, s;\n return o = null != e ? e : {}, i = o.onlyNodesOfType, r = o.usingFilter, n = o.expandEntityReferences, s = function () {\n switch (i) {\n case \"element\":\n return NodeFilter.SHOW_ELEMENT;\n case \"text\":\n return NodeFilter.SHOW_TEXT;\n case \"comment\":\n return NodeFilter.SHOW_COMMENT;\n default:\n return NodeFilter.SHOW_ALL;\n }\n }(), document.createTreeWalker(t, s, null != r ? r : null, n === !0);\n },\n tagName: function (t) {\n var e;\n return null != t && null != (e = t.tagName) ? e.toLowerCase() : void 0;\n },\n makeElement: function (t, e) {\n var n, i, o, r, s, a, u, c, l, h, p, d, f, g;\n if (null == e && (e = {}), \"object\" == typeof t ? (e = t, t = e.tagName) : e = {\n attributes: e\n }, o = document.createElement(t), null != e.editable && (null == e.attributes && (e.attributes = {}), e.attributes.contenteditable = e.editable), e.attributes) {\n l = e.attributes;\n for (a in l) g = l[a], o.setAttribute(a, g);\n }\n if (e.style) {\n h = e.style;\n for (a in h) g = h[a], o.style[a] = g;\n }\n if (e.data) {\n p = e.data;\n for (a in p) g = p[a], o.dataset[a] = g;\n }\n if (e.className) for (d = e.className.split(\" \"), r = 0, u = d.length; u > r; r++) i = d[r], o.classList.add(i);\n if (e.textContent && (o.textContent = e.textContent), e.childNodes) for (f = [].concat(e.childNodes), s = 0, c = f.length; c > s; s++) n = f[s], o.appendChild(n);\n return o;\n },\n getBlockTagNames: function () {\n var t, n;\n return null != e.blockTagNames ? e.blockTagNames : e.blockTagNames = function () {\n var i, o;\n i = e.config.blockAttributes, o = [];\n for (t in i) n = i[t].tagName, n && o.push(n);\n return o;\n }();\n },\n nodeIsBlockContainer: function (t) {\n return e.nodeIsBlockStartComment(null != t ? t.firstChild : void 0);\n },\n nodeProbablyIsBlockContainer: function (t) {\n var n, i;\n return n = e.tagName(t), s.call(e.getBlockTagNames(), n) >= 0 && (i = e.tagName(t.firstChild), s.call(e.getBlockTagNames(), i) < 0);\n },\n nodeIsBlockStart: function (t, n) {\n var i;\n return i = (null != n ? n : {\n strict: !0\n }).strict, i ? e.nodeIsBlockStartComment(t) : e.nodeIsBlockStartComment(t) || !e.nodeIsBlockStartComment(t.firstChild) && e.nodeProbablyIsBlockContainer(t);\n },\n nodeIsBlockStartComment: function (t) {\n return e.nodeIsCommentNode(t) && \"block\" === (null != t ? t.data : void 0);\n },\n nodeIsCommentNode: function (t) {\n return (null != t ? t.nodeType : void 0) === Node.COMMENT_NODE;\n },\n nodeIsCursorTarget: function (t, n) {\n var i;\n return i = (null != n ? n : {}).name, t ? e.nodeIsTextNode(t) ? t.data === e.ZERO_WIDTH_SPACE ? i ? t.parentNode.dataset.trixCursorTarget === i : !0 : void 0 : e.nodeIsCursorTarget(t.firstChild) : void 0;\n },\n nodeIsAttachmentElement: function (t) {\n return e.elementMatchesSelector(t, e.AttachmentView.attachmentSelector);\n },\n nodeIsEmptyTextNode: function (t) {\n return e.nodeIsTextNode(t) && \"\" === (null != t ? t.data : void 0);\n },\n nodeIsTextNode: function (t) {\n return (null != t ? t.nodeType : void 0) === Node.TEXT_NODE;\n }\n });\n }.call(this), function () {\n var t, n, i, o, r;\n t = e.copyObject, o = e.objectsAreEqual, e.extend({\n normalizeRange: i = function (t) {\n var e;\n if (null != t) return Array.isArray(t) || (t = [t, t]), [n(t[0]), n(null != (e = t[1]) ? e : t[0])];\n },\n rangeIsCollapsed: function (t) {\n var e, n, o;\n if (null != t) return n = i(t), o = n[0], e = n[1], r(o, e);\n },\n rangesAreEqual: function (t, e) {\n var n, o, s, a, u, c;\n if (null != t && null != e) return s = i(t), o = s[0], n = s[1], a = i(e), c = a[0], u = a[1], r(o, c) && r(n, u);\n }\n }), n = function (e) {\n return \"number\" == typeof e ? e : t(e);\n }, r = function (t, e) {\n return \"number\" == typeof t ? t === e : o(t, e);\n };\n }.call(this), function () {\n var t, n, i, o, r, s, a;\n e.registerElement = function (t, e) {\n var n, i;\n return null == e && (e = {}), t = t.toLowerCase(), e = a(e), i = s(e), (n = i.defaultCSS) && (delete i.defaultCSS, o(n, t)), r(t, i);\n }, o = function (t, e) {\n var n;\n return n = i(e), n.textContent = t.replace(/%t/g, e);\n }, i = function (e) {\n var n, i;\n return n = document.createElement(\"style\"), n.setAttribute(\"type\", \"text/css\"), n.setAttribute(\"data-tag-name\", e.toLowerCase()), (i = t()) && n.setAttribute(\"nonce\", i), document.head.insertBefore(n, document.head.firstChild), n;\n }, t = function () {\n var t;\n return (t = n(\"trix-csp-nonce\") || n(\"csp-nonce\")) ? t.getAttribute(\"content\") : void 0;\n }, n = function (t) {\n return document.head.querySelector(\"meta[name=\" + t + \"]\");\n }, s = function (t) {\n var e, n, i;\n n = {};\n for (e in t) i = t[e], n[e] = \"function\" == typeof i ? {\n value: i\n } : i;\n return n;\n }, a = function () {\n var t;\n return t = function (t) {\n var e, n, i, o, r;\n for (e = {}, r = [\"initialize\", \"connect\", \"disconnect\"], n = 0, o = r.length; o > n; n++) i = r[n], e[i] = t[i], delete t[i];\n return e;\n }, window.customElements ? function (e) {\n var n, i, o, r, s;\n return s = t(e), o = s.initialize, n = s.connect, i = s.disconnect, o && (r = n, n = function () {\n return this.initialized || (this.initialized = !0, o.call(this)), null != r ? r.call(this) : void 0;\n }), n && (e.connectedCallback = n), i && (e.disconnectedCallback = i), e;\n } : function (e) {\n var n, i, o, r;\n return r = t(e), o = r.initialize, n = r.connect, i = r.disconnect, o && (e.createdCallback = o), n && (e.attachedCallback = n), i && (e.detachedCallback = i), e;\n };\n }(), r = function () {\n return window.customElements ? function (t, e) {\n var n;\n return n = function () {\n return \"object\" == typeof Reflect ? Reflect.construct(HTMLElement, [], n) : HTMLElement.apply(this);\n }, Object.setPrototypeOf(n.prototype, HTMLElement.prototype), Object.setPrototypeOf(n, HTMLElement), Object.defineProperties(n.prototype, e), window.customElements.define(t, n), n;\n } : function (t, e) {\n var n, i;\n return i = Object.create(HTMLElement.prototype, e), n = document.registerElement(t, {\n prototype: i\n }), Object.defineProperty(i, \"constructor\", {\n value: n\n }), n;\n };\n }();\n }.call(this), function () {\n var t, n;\n e.extend({\n getDOMSelection: function () {\n var t;\n return t = window.getSelection(), t.rangeCount > 0 ? t : void 0;\n },\n getDOMRange: function () {\n var n, i;\n return (n = null != (i = e.getDOMSelection()) ? i.getRangeAt(0) : void 0) && !t(n) ? n : void 0;\n },\n setDOMRange: function (t) {\n var n;\n return n = window.getSelection(), n.removeAllRanges(), n.addRange(t), e.selectionChangeObserver.update();\n }\n }), t = function (t) {\n return n(t.startContainer) || n(t.endContainer);\n }, n = function (t) {\n return !Object.getPrototypeOf(t);\n };\n }.call(this), function () {\n var t;\n t = {\n \"application/x-trix-feature-detection\": \"test\"\n }, e.extend({\n dataTransferIsPlainText: function (t) {\n var e, n, i;\n return i = t.getData(\"text/plain\"), n = t.getData(\"text/html\"), i && n ? (e = new DOMParser().parseFromString(n, \"text/html\").body, e.textContent === i ? !e.querySelector(\"*\") : void 0) : null != i ? i.length : void 0;\n },\n dataTransferIsWritable: function (e) {\n var n, i;\n if (null != (null != e ? e.setData : void 0)) {\n for (n in t) if (i = t[n], !function () {\n try {\n return e.setData(n, i), e.getData(n) === i;\n } catch (t) {}\n }()) return;\n return !0;\n }\n },\n keyEventIsKeyboardCommand: function () {\n return /Mac|^iP/.test(navigator.platform) ? function (t) {\n return t.metaKey;\n } : function (t) {\n return t.ctrlKey;\n };\n }()\n });\n }.call(this), function () {\n e.extend({\n RTL_PATTERN: /[\\u05BE\\u05C0\\u05C3\\u05D0-\\u05EA\\u05F0-\\u05F4\\u061B\\u061F\\u0621-\\u063A\\u0640-\\u064A\\u066D\\u0671-\\u06B7\\u06BA-\\u06BE\\u06C0-\\u06CE\\u06D0-\\u06D5\\u06E5\\u06E6\\u200F\\u202B\\u202E\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE72\\uFE74\\uFE76-\\uFEFC]/,\n getDirection: function () {\n var t, n, i, o;\n return n = e.makeElement(\"input\", {\n dir: \"auto\",\n name: \"x\",\n dirName: \"x.dir\"\n }), t = e.makeElement(\"form\"), t.appendChild(n), i = function () {\n try {\n return new FormData(t).has(n.dirName);\n } catch (e) {}\n }(), o = function () {\n try {\n return n.matches(\":dir(ltr),:dir(rtl)\");\n } catch (t) {}\n }(), i ? function (e) {\n return n.value = e, new FormData(t).get(n.dirName);\n } : o ? function (t) {\n return n.value = t, n.matches(\":dir(rtl)\") ? \"rtl\" : \"ltr\";\n } : function (t) {\n var n;\n return n = t.trim().charAt(0), e.RTL_PATTERN.test(n) ? \"rtl\" : \"ltr\";\n };\n }()\n });\n }.call(this), function () {}.call(this), function () {\n var t,\n n = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var o in e) i.call(e, o) && (t[o] = e[o]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n t = e.arraysAreEqual, e.Hash = function (i) {\n function o(t) {\n null == t && (t = {}), this.values = s(t), o.__super__.constructor.apply(this, arguments);\n }\n var r, s, a, u, c;\n return n(o, i), o.fromCommonAttributesOfObjects = function (t) {\n var e, n, i, o, s, a;\n if (null == t && (t = []), !t.length) return new this();\n for (e = r(t[0]), i = e.getKeys(), a = t.slice(1), n = 0, o = a.length; o > n; n++) s = a[n], i = e.getKeysCommonToHash(r(s)), e = e.slice(i);\n return e;\n }, o.box = function (t) {\n return r(t);\n }, o.prototype.add = function (t, e) {\n return this.merge(u(t, e));\n }, o.prototype.remove = function (t) {\n return new e.Hash(s(this.values, t));\n }, o.prototype.get = function (t) {\n return this.values[t];\n }, o.prototype.has = function (t) {\n return t in this.values;\n }, o.prototype.merge = function (t) {\n return new e.Hash(a(this.values, c(t)));\n }, o.prototype.slice = function (t) {\n var n, i, o, r;\n for (r = {}, n = 0, o = t.length; o > n; n++) i = t[n], this.has(i) && (r[i] = this.values[i]);\n return new e.Hash(r);\n }, o.prototype.getKeys = function () {\n return Object.keys(this.values);\n }, o.prototype.getKeysCommonToHash = function (t) {\n var e, n, i, o, s;\n for (t = r(t), o = this.getKeys(), s = [], e = 0, i = o.length; i > e; e++) n = o[e], this.values[n] === t.values[n] && s.push(n);\n return s;\n }, o.prototype.isEqualTo = function (e) {\n return t(this.toArray(), r(e).toArray());\n }, o.prototype.isEmpty = function () {\n return 0 === this.getKeys().length;\n }, o.prototype.toArray = function () {\n var t, e, n;\n return (null != this.array ? this.array : this.array = function () {\n var i;\n e = [], i = this.values;\n for (t in i) n = i[t], e.push(t, n);\n return e;\n }.call(this)).slice(0);\n }, o.prototype.toObject = function () {\n return s(this.values);\n }, o.prototype.toJSON = function () {\n return this.toObject();\n }, o.prototype.contentsForInspection = function () {\n return {\n values: JSON.stringify(this.values)\n };\n }, u = function (t, e) {\n var n;\n return n = {}, n[t] = e, n;\n }, a = function (t, e) {\n var n, i, o;\n i = s(t);\n for (n in e) o = e[n], i[n] = o;\n return i;\n }, s = function (t, e) {\n var n, i, o, r, s;\n for (r = {}, s = Object.keys(t).sort(), n = 0, o = s.length; o > n; n++) i = s[n], i !== e && (r[i] = t[i]);\n return r;\n }, r = function (t) {\n return t instanceof e.Hash ? t : new e.Hash(t);\n }, c = function (t) {\n return t instanceof e.Hash ? t.values : t;\n }, o;\n }(e.Object);\n }.call(this), function () {\n e.ObjectGroup = function () {\n function t(t, e) {\n var n, i;\n this.objects = null != t ? t : [], i = e.depth, n = e.asTree, n && (this.depth = i, this.objects = this.constructor.groupObjects(this.objects, {\n asTree: n,\n depth: this.depth + 1\n }));\n }\n return t.groupObjects = function (t, e) {\n var n, i, o, r, s, a, u, c, l;\n for (null == t && (t = []), l = null != e ? e : {}, o = l.depth, n = l.asTree, n && null == o && (o = 0), c = [], s = 0, a = t.length; a > s; s++) {\n if (u = t[s], r) {\n if ((\"function\" == typeof u.canBeGrouped ? u.canBeGrouped(o) : void 0) && (\"function\" == typeof (i = r[r.length - 1]).canBeGroupedWith ? i.canBeGroupedWith(u, o) : void 0)) {\n r.push(u);\n continue;\n }\n c.push(new this(r, {\n depth: o,\n asTree: n\n })), r = null;\n }\n (\"function\" == typeof u.canBeGrouped ? u.canBeGrouped(o) : void 0) ? r = [u] : c.push(u);\n }\n return r && c.push(new this(r, {\n depth: o,\n asTree: n\n })), c;\n }, t.prototype.getObjects = function () {\n return this.objects;\n }, t.prototype.getDepth = function () {\n return this.depth;\n }, t.prototype.getCacheKey = function () {\n var t, e, n, i, o;\n for (e = [\"objectGroup\"], o = this.getObjects(), t = 0, n = o.length; n > t; t++) i = o[t], e.push(i.getCacheKey());\n return e.join(\"/\");\n }, t;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.ObjectMap = function (e) {\n function n(t) {\n var e, n, i, o, r;\n for (null == t && (t = []), this.objects = {}, i = 0, o = t.length; o > i; i++) r = t[i], n = JSON.stringify(r), null == (e = this.objects)[n] && (e[n] = r);\n }\n return t(n, e), n.prototype.find = function (t) {\n var e;\n return e = JSON.stringify(t), this.objects[e];\n }, n;\n }(e.BasicObject);\n }.call(this), function () {\n e.ElementStore = function () {\n function t(t) {\n this.reset(t);\n }\n var e;\n return t.prototype.add = function (t) {\n var n;\n return n = e(t), this.elements[n] = t;\n }, t.prototype.remove = function (t) {\n var n, i;\n return n = e(t), (i = this.elements[n]) ? (delete this.elements[n], i) : void 0;\n }, t.prototype.reset = function (t) {\n var e, n, i;\n for (null == t && (t = []), this.elements = {}, n = 0, i = t.length; i > n; n++) e = t[n], this.add(e);\n return t;\n }, e = function (t) {\n return t.dataset.trixStoreKey;\n }, t;\n }();\n }.call(this), function () {}.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.Operation = function (e) {\n function n() {\n return n.__super__.constructor.apply(this, arguments);\n }\n return t(n, e), n.prototype.isPerforming = function () {\n return this.performing === !0;\n }, n.prototype.hasPerformed = function () {\n return this.performed === !0;\n }, n.prototype.hasSucceeded = function () {\n return this.performed && this.succeeded;\n }, n.prototype.hasFailed = function () {\n return this.performed && !this.succeeded;\n }, n.prototype.getPromise = function () {\n return null != this.promise ? this.promise : this.promise = new Promise(function (t) {\n return function (e, n) {\n return t.performing = !0, t.perform(function (i, o) {\n return t.succeeded = i, t.performing = !1, t.performed = !0, t.succeeded ? e(o) : n(o);\n });\n };\n }(this));\n }, n.prototype.perform = function (t) {\n return t(!1);\n }, n.prototype.release = function () {\n var t;\n return null != (t = this.promise) && \"function\" == typeof t.cancel && t.cancel(), this.promise = null, this.performing = null, this.performed = null, this.succeeded = null;\n }, n.proxyMethod(\"getPromise().then\"), n.proxyMethod(\"getPromise().catch\"), n;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) a.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n a = {}.hasOwnProperty;\n e.UTF16String = function (t) {\n function e(t, e) {\n this.ucs2String = t, this.codepoints = e, this.length = this.codepoints.length, this.ucs2Length = this.ucs2String.length;\n }\n return s(e, t), e.box = function (t) {\n return null == t && (t = \"\"), t instanceof this ? t : this.fromUCS2String(null != t ? t.toString() : void 0);\n }, e.fromUCS2String = function (t) {\n return new this(t, o(t));\n }, e.fromCodepoints = function (t) {\n return new this(r(t), t);\n }, e.prototype.offsetToUCS2Offset = function (t) {\n return r(this.codepoints.slice(0, Math.max(0, t))).length;\n }, e.prototype.offsetFromUCS2Offset = function (t) {\n return o(this.ucs2String.slice(0, Math.max(0, t))).length;\n }, e.prototype.slice = function () {\n var t;\n return this.constructor.fromCodepoints((t = this.codepoints).slice.apply(t, arguments));\n }, e.prototype.charAt = function (t) {\n return this.slice(t, t + 1);\n }, e.prototype.isEqualTo = function (t) {\n return this.constructor.box(t).ucs2String === this.ucs2String;\n }, e.prototype.toJSON = function () {\n return this.ucs2String;\n }, e.prototype.getCacheKey = function () {\n return this.ucs2String;\n }, e.prototype.toString = function () {\n return this.ucs2String;\n }, e;\n }(e.BasicObject), t = 1 === (\"function\" == typeof Array.from ? Array.from(\"\\ud83d\\udc7c\").length : void 0), n = null != (\"function\" == typeof \" \".codePointAt ? \" \".codePointAt(0) : void 0), i = \" \\ud83d\\udc7c\" === (\"function\" == typeof String.fromCodePoint ? String.fromCodePoint(32, 128124) : void 0), o = t && n ? function (t) {\n return Array.from(t).map(function (t) {\n return t.codePointAt(0);\n });\n } : function (t) {\n var e, n, i, o, r;\n for (o = [], e = 0, i = t.length; i > e;) r = t.charCodeAt(e++), r >= 55296 && 56319 >= r && i > e && (n = t.charCodeAt(e++), 56320 === (64512 & n) ? r = ((1023 & r) << 10) + (1023 & n) + 65536 : e--), o.push(r);\n return o;\n }, r = i ? function (t) {\n return String.fromCodePoint.apply(String, t);\n } : function (t) {\n var e, n, i;\n return e = function () {\n var e, o, r;\n for (r = [], e = 0, o = t.length; o > e; e++) i = t[e], n = \"\", i > 65535 && (i -= 65536, n += String.fromCharCode(i >>> 10 & 1023 | 55296), i = 56320 | 1023 & i), r.push(n + String.fromCharCode(i));\n return r;\n }(), e.join(\"\");\n };\n }.call(this), function () {}.call(this), function () {}.call(this), function () {\n e.config.lang = {\n attachFiles: \"Attach Files\",\n bold: \"Bold\",\n bullets: \"Bullets\",\n \"byte\": \"Byte\",\n bytes: \"Bytes\",\n captionPlaceholder: \"Add a caption\\u2026\",\n code: \"Code\",\n heading1: \"Heading\",\n indent: \"Increase Level\",\n italic: \"Italic\",\n link: \"Link\",\n numbers: \"Numbers\",\n outdent: \"Decrease Level\",\n quote: \"Quote\",\n redo: \"Redo\",\n remove: \"Remove\",\n strike: \"Strikethrough\",\n undo: \"Undo\",\n unlink: \"Unlink\",\n url: \"URL\",\n urlPlaceholder: \"Enter a URL\\u2026\",\n GB: \"GB\",\n KB: \"KB\",\n MB: \"MB\",\n PB: \"PB\",\n TB: \"TB\"\n };\n }.call(this), function () {\n e.config.css = {\n attachment: \"attachment\",\n attachmentCaption: \"attachment__caption\",\n attachmentCaptionEditor: \"attachment__caption-editor\",\n attachmentMetadata: \"attachment__metadata\",\n attachmentMetadataContainer: \"attachment__metadata-container\",\n attachmentName: \"attachment__name\",\n attachmentProgress: \"attachment__progress\",\n attachmentSize: \"attachment__size\",\n attachmentToolbar: \"attachment__toolbar\",\n attachmentGallery: \"attachment-gallery\"\n };\n }.call(this), function () {\n var t;\n e.config.blockAttributes = t = {\n \"default\": {\n tagName: \"div\",\n parse: !1\n },\n quote: {\n tagName: \"blockquote\",\n nestable: !0\n },\n heading1: {\n tagName: \"h1\",\n terminal: !0,\n breakOnReturn: !0,\n group: !1\n },\n code: {\n tagName: \"pre\",\n terminal: !0,\n text: {\n plaintext: !0\n }\n },\n bulletList: {\n tagName: \"ul\",\n parse: !1\n },\n bullet: {\n tagName: \"li\",\n listAttribute: \"bulletList\",\n group: !1,\n nestable: !0,\n test: function (n) {\n return e.tagName(n.parentNode) === t[this.listAttribute].tagName;\n }\n },\n numberList: {\n tagName: \"ol\",\n parse: !1\n },\n number: {\n tagName: \"li\",\n listAttribute: \"numberList\",\n group: !1,\n nestable: !0,\n test: function (n) {\n return e.tagName(n.parentNode) === t[this.listAttribute].tagName;\n }\n },\n attachmentGallery: {\n tagName: \"div\",\n exclusive: !0,\n terminal: !0,\n parse: !1,\n group: !1\n }\n };\n }.call(this), function () {\n var t, n;\n t = e.config.lang, n = [t.bytes, t.KB, t.MB, t.GB, t.TB, t.PB], e.config.fileSize = {\n prefix: \"IEC\",\n precision: 2,\n formatter: function (e) {\n var i, o, r, s, a;\n switch (e) {\n case 0:\n return \"0 \" + t.bytes;\n case 1:\n return \"1 \" + t.byte;\n default:\n return i = function () {\n switch (this.prefix) {\n case \"SI\":\n return 1e3;\n case \"IEC\":\n return 1024;\n }\n }.call(this), o = Math.floor(Math.log(e) / Math.log(i)), r = e / Math.pow(i, o), s = r.toFixed(this.precision), a = s.replace(/0*$/, \"\").replace(/\\.$/, \"\"), a + \" \" + n[o];\n }\n }\n };\n }.call(this), function () {\n e.config.textAttributes = {\n bold: {\n tagName: \"strong\",\n inheritable: !0,\n parser: function (t) {\n var e;\n return e = window.getComputedStyle(t), \"bold\" === e.fontWeight || e.fontWeight >= 600;\n }\n },\n italic: {\n tagName: \"em\",\n inheritable: !0,\n parser: function (t) {\n var e;\n return e = window.getComputedStyle(t), \"italic\" === e.fontStyle;\n }\n },\n href: {\n groupTagName: \"a\",\n parser: function (t) {\n var n, i, o;\n return n = e.AttachmentView.attachmentSelector, o = \"a:not(\" + n + \")\", (i = e.findClosestElementFromNode(t, {\n matchingSelector: o\n })) ? i.getAttribute(\"href\") : void 0;\n }\n },\n strike: {\n tagName: \"del\",\n inheritable: !0\n },\n frozen: {\n style: {\n backgroundColor: \"highlight\"\n }\n }\n };\n }.call(this), function () {\n var t, n, i, o, r;\n r = \"[data-trix-serialize=false]\", o = [\"contenteditable\", \"data-trix-id\", \"data-trix-store-key\", \"data-trix-mutable\", \"data-trix-placeholder\", \"tabindex\"], n = \"data-trix-serialized-attributes\", i = \"[\" + n + \"]\", t = new RegExp(\"\", \"g\"), e.extend({\n serializers: {\n \"application/json\": function (t) {\n var n;\n if (t instanceof e.Document) n = t;else {\n if (!(t instanceof HTMLElement)) throw new Error(\"unserializable object\");\n n = e.Document.fromHTML(t.innerHTML);\n }\n return n.toSerializableDocument().toJSONString();\n },\n \"text/html\": function (s) {\n var a, u, c, l, h, p, d, f, g, m, v, y, b, A, C, x, w;\n if (s instanceof e.Document) l = e.DocumentView.render(s);else {\n if (!(s instanceof HTMLElement)) throw new Error(\"unserializable object\");\n l = s.cloneNode(!0);\n }\n for (A = l.querySelectorAll(r), h = 0, g = A.length; g > h; h++) c = A[h], e.removeNode(c);\n for (p = 0, m = o.length; m > p; p++) for (a = o[p], C = l.querySelectorAll(\"[\" + a + \"]\"), d = 0, v = C.length; v > d; d++) c = C[d], c.removeAttribute(a);\n for (x = l.querySelectorAll(i), f = 0, y = x.length; y > f; f++) {\n c = x[f];\n try {\n u = JSON.parse(c.getAttribute(n)), c.removeAttribute(n);\n for (b in u) w = u[b], c.setAttribute(b, w);\n } catch (E) {}\n }\n return l.innerHTML.replace(t, \"\");\n }\n },\n deserializers: {\n \"application/json\": function (t) {\n return e.Document.fromJSONString(t);\n },\n \"text/html\": function (t) {\n return e.Document.fromHTML(t);\n }\n },\n serializeToContentType: function (t, n) {\n var i;\n if (i = e.serializers[n]) return i(t);\n throw new Error(\"unknown content type: \" + n);\n },\n deserializeFromContentType: function (t, n) {\n var i;\n if (i = e.deserializers[n]) return i(t);\n throw new Error(\"unknown content type: \" + n);\n }\n });\n }.call(this), function () {\n var t;\n t = e.config.lang, e.config.toolbar = {\n getDefaultHTML: function () {\n return '
\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n\\n \\n\\n \\n \\n \\n \\n
\\n\\n
\\n
\\n \\n
\\n
';\n }\n };\n }.call(this), function () {\n e.config.undoInterval = 5e3;\n }.call(this), function () {\n e.config.attachments = {\n preview: {\n presentation: \"gallery\",\n caption: {\n name: !0,\n size: !0\n }\n },\n file: {\n caption: {\n size: !0\n }\n }\n };\n }.call(this), function () {\n e.config.keyNames = {\n 8: \"backspace\",\n 9: \"tab\",\n 13: \"return\",\n 27: \"escape\",\n 37: \"left\",\n 39: \"right\",\n 46: \"delete\",\n 68: \"d\",\n 72: \"h\",\n 79: \"o\"\n };\n }.call(this), function () {\n e.config.input = {\n level2Enabled: !0,\n getLevel: function () {\n return this.level2Enabled && e.browser.supportsInputEvents ? 2 : 0;\n },\n pickFiles: function (t) {\n var n;\n return n = e.makeElement(\"input\", {\n type: \"file\",\n multiple: !0,\n hidden: !0,\n id: this.fileInputId\n }), n.addEventListener(\"change\", function () {\n return t(n.files), e.removeNode(n);\n }), e.removeNode(document.getElementById(this.fileInputId)), document.body.appendChild(n), n.click();\n },\n fileInputId: \"trix-file-input-\" + Date.now().toString(16)\n };\n }.call(this), function () {}.call(this), function () {\n e.registerElement(\"trix-toolbar\", {\n defaultCSS: \"%t {\\n display: block;\\n}\\n\\n%t {\\n white-space: nowrap;\\n}\\n\\n%t [data-trix-dialog] {\\n display: none;\\n}\\n\\n%t [data-trix-dialog][data-trix-active] {\\n display: block;\\n}\\n\\n%t [data-trix-dialog] [data-trix-validate]:invalid {\\n background-color: #ffdddd;\\n}\",\n initialize: function () {\n return \"\" === this.innerHTML ? this.innerHTML = e.config.toolbar.getDefaultHTML() : void 0;\n }\n });\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty,\n i = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n };\n e.ObjectView = function (n) {\n function o(t, e) {\n this.object = t, this.options = null != e ? e : {}, this.childViews = [], this.rootView = this;\n }\n return t(o, n), o.prototype.getNodes = function () {\n var t, e, n, i, o;\n for (null == this.nodes && (this.nodes = this.createNodes()), i = this.nodes, o = [], t = 0, e = i.length; e > t; t++) n = i[t], o.push(n.cloneNode(!0));\n return o;\n }, o.prototype.invalidate = function () {\n var t;\n return this.nodes = null, this.childViews = [], null != (t = this.parentView) ? t.invalidate() : void 0;\n }, o.prototype.invalidateViewForObject = function (t) {\n var e;\n return null != (e = this.findViewForObject(t)) ? e.invalidate() : void 0;\n }, o.prototype.findOrCreateCachedChildView = function (t, e) {\n var n;\n return (n = this.getCachedViewForObject(e)) ? this.recordChildView(n) : (n = this.createChildView.apply(this, arguments), this.cacheViewForObject(n, e)), n;\n }, o.prototype.createChildView = function (t, n, i) {\n var o;\n return null == i && (i = {}), n instanceof e.ObjectGroup && (i.viewClass = t, t = e.ObjectGroupView), o = new t(n, i), this.recordChildView(o);\n }, o.prototype.recordChildView = function (t) {\n return t.parentView = this, t.rootView = this.rootView, this.childViews.push(t), t;\n }, o.prototype.getAllChildViews = function () {\n var t, e, n, i, o;\n for (o = [], i = this.childViews, e = 0, n = i.length; n > e; e++) t = i[e], o.push(t), o = o.concat(t.getAllChildViews());\n return o;\n }, o.prototype.findElement = function () {\n return this.findElementForObject(this.object);\n }, o.prototype.findElementForObject = function (t) {\n var e;\n return (e = null != t ? t.id : void 0) ? this.rootView.element.querySelector(\"[data-trix-id='\" + e + \"']\") : void 0;\n }, o.prototype.findViewForObject = function (t) {\n var e, n, i, o;\n for (i = this.getAllChildViews(), e = 0, n = i.length; n > e; e++) if (o = i[e], o.object === t) return o;\n }, o.prototype.getViewCache = function () {\n return this.rootView !== this ? this.rootView.getViewCache() : this.isViewCachingEnabled() ? null != this.viewCache ? this.viewCache : this.viewCache = {} : void 0;\n }, o.prototype.isViewCachingEnabled = function () {\n return this.shouldCacheViews !== !1;\n }, o.prototype.enableViewCaching = function () {\n return this.shouldCacheViews = !0;\n }, o.prototype.disableViewCaching = function () {\n return this.shouldCacheViews = !1;\n }, o.prototype.getCachedViewForObject = function (t) {\n var e;\n return null != (e = this.getViewCache()) ? e[t.getCacheKey()] : void 0;\n }, o.prototype.cacheViewForObject = function (t, e) {\n var n;\n return null != (n = this.getViewCache()) ? n[e.getCacheKey()] = t : void 0;\n }, o.prototype.garbageCollectCachedViews = function () {\n var t, e, n, o, r, s;\n if (t = this.getViewCache()) {\n s = this.getAllChildViews().concat(this), n = function () {\n var t, e, n;\n for (n = [], t = 0, e = s.length; e > t; t++) r = s[t], n.push(r.object.getCacheKey());\n return n;\n }(), o = [];\n for (e in t) i.call(n, e) < 0 && o.push(delete t[e]);\n return o;\n }\n }, o;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.ObjectGroupView = function (e) {\n function n() {\n n.__super__.constructor.apply(this, arguments), this.objectGroup = this.object, this.viewClass = this.options.viewClass, delete this.options.viewClass;\n }\n return t(n, e), n.prototype.getChildViews = function () {\n var t, e, n, i;\n if (!this.childViews.length) for (i = this.objectGroup.getObjects(), t = 0, e = i.length; e > t; t++) n = i[t], this.findOrCreateCachedChildView(this.viewClass, n, this.options);\n return this.childViews;\n }, n.prototype.createNodes = function () {\n var t, e, n, i, o, r, s, a, u;\n for (t = this.createContainerElement(), s = this.getChildViews(), e = 0, i = s.length; i > e; e++) for (u = s[e], a = u.getNodes(), n = 0, o = a.length; o > n; n++) r = a[n], t.appendChild(r);\n return [t];\n }, n.prototype.createContainerElement = function (t) {\n return null == t && (t = this.objectGroup.getDepth()), this.getChildViews()[0].createContainerElement(t);\n }, n;\n }(e.ObjectView);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.Controller = function (e) {\n function n() {\n return n.__super__.constructor.apply(this, arguments);\n }\n return t(n, e), n;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n u = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) c.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n c = {}.hasOwnProperty,\n l = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n };\n t = e.findClosestElementFromNode, i = e.nodeIsEmptyTextNode, n = e.nodeIsBlockStartComment, o = e.normalizeSpaces, r = e.summarizeStringChange, s = e.tagName, e.MutationObserver = function (e) {\n function c(t) {\n this.element = t, this.didMutate = a(this.didMutate, this), this.observer = new window.MutationObserver(this.didMutate), this.start();\n }\n var h, p, d, f;\n return u(c, e), p = \"data-trix-mutable\", d = \"[\" + p + \"]\", f = {\n attributes: !0,\n childList: !0,\n characterData: !0,\n characterDataOldValue: !0,\n subtree: !0\n }, c.prototype.start = function () {\n return this.reset(), this.observer.observe(this.element, f);\n }, c.prototype.stop = function () {\n return this.observer.disconnect();\n }, c.prototype.didMutate = function (t) {\n var e, n;\n return (e = this.mutations).push.apply(e, this.findSignificantMutations(t)), this.mutations.length ? (null != (n = this.delegate) && \"function\" == typeof n.elementDidMutate && n.elementDidMutate(this.getMutationSummary()), this.reset()) : void 0;\n }, c.prototype.reset = function () {\n return this.mutations = [];\n }, c.prototype.findSignificantMutations = function (t) {\n var e, n, i, o;\n for (o = [], e = 0, n = t.length; n > e; e++) i = t[e], this.mutationIsSignificant(i) && o.push(i);\n return o;\n }, c.prototype.mutationIsSignificant = function (t) {\n var e, n, i, o;\n if (this.nodeIsMutable(t.target)) return !1;\n for (o = this.nodesModifiedByMutation(t), e = 0, n = o.length; n > e; e++) if (i = o[e], this.nodeIsSignificant(i)) return !0;\n return !1;\n }, c.prototype.nodeIsSignificant = function (t) {\n return t !== this.element && !this.nodeIsMutable(t) && !i(t);\n }, c.prototype.nodeIsMutable = function (e) {\n return t(e, {\n matchingSelector: d\n });\n }, c.prototype.nodesModifiedByMutation = function (t) {\n var e;\n switch (e = [], t.type) {\n case \"attributes\":\n t.attributeName !== p && e.push(t.target);\n break;\n case \"characterData\":\n e.push(t.target.parentNode), e.push(t.target);\n break;\n case \"childList\":\n e.push.apply(e, t.addedNodes), e.push.apply(e, t.removedNodes);\n }\n return e;\n }, c.prototype.getMutationSummary = function () {\n return this.getTextMutationSummary();\n }, c.prototype.getTextMutationSummary = function () {\n var t, e, n, i, o, r, s, a, u, c, h;\n for (a = this.getTextChangesFromCharacterData(), n = a.additions, o = a.deletions, h = this.getTextChangesFromChildList(), u = h.additions, r = 0, s = u.length; s > r; r++) e = u[r], l.call(n, e) < 0 && n.push(e);\n return o.push.apply(o, h.deletions), c = {}, (t = n.join(\"\")) && (c.textAdded = t), (i = o.join(\"\")) && (c.textDeleted = i), c;\n }, c.prototype.getMutationsByType = function (t) {\n var e, n, i, o, r;\n for (o = this.mutations, r = [], e = 0, n = o.length; n > e; e++) i = o[e], i.type === t && r.push(i);\n return r;\n }, c.prototype.getTextChangesFromChildList = function () {\n var t, e, i, r, s, a, u, c, l, p, d;\n for (t = [], u = [], a = this.getMutationsByType(\"childList\"), e = 0, r = a.length; r > e; e++) s = a[e], t.push.apply(t, s.addedNodes), u.push.apply(u, s.removedNodes);\n return c = 0 === t.length && 1 === u.length && n(u[0]), c ? (p = [], d = [\"\\n\"]) : (p = h(t), d = h(u)), {\n additions: function () {\n var t, e, n;\n for (n = [], i = t = 0, e = p.length; e > t; i = ++t) l = p[i], l !== d[i] && n.push(o(l));\n return n;\n }(),\n deletions: function () {\n var t, e, n;\n for (n = [], i = t = 0, e = d.length; e > t; i = ++t) l = d[i], l !== p[i] && n.push(o(l));\n return n;\n }()\n };\n }, c.prototype.getTextChangesFromCharacterData = function () {\n var t, e, n, i, s, a, u, c;\n return e = this.getMutationsByType(\"characterData\"), e.length && (c = e[0], n = e[e.length - 1], s = o(c.oldValue), i = o(n.target.data), a = r(s, i), t = a.added, u = a.removed), {\n additions: t ? [t] : [],\n deletions: u ? [u] : []\n };\n }, h = function (t) {\n var e, n, i, o;\n for (null == t && (t = []), o = [], e = 0, n = t.length; n > e; e++) switch (i = t[e], i.nodeType) {\n case Node.TEXT_NODE:\n o.push(i.data);\n break;\n case Node.ELEMENT_NODE:\n \"br\" === s(i) ? o.push(\"\\n\") : o.push.apply(o, h(i.childNodes));\n }\n return o;\n }, c;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.FileVerificationOperation = function (e) {\n function n(t) {\n this.file = t;\n }\n return t(n, e), n.prototype.perform = function (t) {\n var e;\n return e = new FileReader(), e.onerror = function () {\n return t(!1);\n }, e.onload = function (n) {\n return function () {\n e.onerror = null;\n try {\n e.abort();\n } catch (i) {}\n return t(!0, n.file);\n };\n }(this), e.readAsArrayBuffer(this.file);\n }, n;\n }(e.Operation);\n }.call(this), function () {\n var t,\n n,\n i = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) o.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n t = e.handleEvent, n = e.innerElementIsActive, e.InputController = function (o) {\n function r(n) {\n var i;\n this.element = n, this.mutationObserver = new e.MutationObserver(this.element), this.mutationObserver.delegate = this;\n for (i in this.events) t(i, {\n onElement: this.element,\n withCallback: this.handlerFor(i)\n });\n }\n return i(r, o), r.prototype.events = {}, r.prototype.elementDidMutate = function () {}, r.prototype.editorWillSyncDocumentView = function () {\n return this.mutationObserver.stop();\n }, r.prototype.editorDidSyncDocumentView = function () {\n return this.mutationObserver.start();\n }, r.prototype.requestRender = function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidRequestRender ? t.inputControllerDidRequestRender() : void 0;\n }, r.prototype.requestReparse = function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidRequestReparse && t.inputControllerDidRequestReparse(), this.requestRender();\n }, r.prototype.attachFiles = function (t) {\n var n, i;\n return i = function () {\n var i, o, r;\n for (r = [], i = 0, o = t.length; o > i; i++) n = t[i], r.push(new e.FileVerificationOperation(n));\n return r;\n }(), Promise.all(i).then(function (t) {\n return function (e) {\n return t.handleInput(function () {\n var t, n;\n return null != (t = this.delegate) && t.inputControllerWillAttachFiles(), null != (n = this.responder) && n.insertFiles(e), this.requestRender();\n });\n };\n }(this));\n }, r.prototype.handlerFor = function (t) {\n return function (e) {\n return function (i) {\n return i.defaultPrevented ? void 0 : e.handleInput(function () {\n return n(this.element) ? void 0 : (this.eventName = t, this.events[t].call(this, i));\n });\n };\n }(this);\n }, r.prototype.handleInput = function (t) {\n var e, n;\n try {\n return null != (e = this.delegate) && e.inputControllerWillHandleInput(), t.call(this);\n } finally {\n null != (n = this.delegate) && n.inputControllerDidHandleInput();\n }\n }, r.prototype.createLinkHTML = function (t, e) {\n var n;\n return n = document.createElement(\"a\"), n.href = t, n.textContent = null != e ? e : t, n.outerHTML;\n }, r;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h,\n p,\n d,\n f = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) g.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n g = {}.hasOwnProperty,\n m = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n };\n c = e.makeElement, l = e.objectsAreEqual, d = e.tagName, n = e.browser, a = e.keyEventIsKeyboardCommand, o = e.dataTransferIsWritable, i = e.dataTransferIsPlainText, u = e.config.keyNames, e.Level0InputController = function (n) {\n function s() {\n s.__super__.constructor.apply(this, arguments), this.resetInputSummary();\n }\n var d;\n return f(s, n), d = 0, s.prototype.setInputSummary = function (t) {\n var e, n;\n null == t && (t = {}), this.inputSummary.eventName = this.eventName;\n for (e in t) n = t[e], this.inputSummary[e] = n;\n return this.inputSummary;\n }, s.prototype.resetInputSummary = function () {\n return this.inputSummary = {};\n }, s.prototype.reset = function () {\n return this.resetInputSummary(), e.selectionChangeObserver.reset();\n }, s.prototype.elementDidMutate = function (t) {\n var e;\n return this.isComposing() ? null != (e = this.delegate) && \"function\" == typeof e.inputControllerDidAllowUnhandledInput ? e.inputControllerDidAllowUnhandledInput() : void 0 : this.handleInput(function () {\n return this.mutationIsSignificant(t) && (this.mutationIsExpected(t) ? this.requestRender() : this.requestReparse()), this.reset();\n });\n }, s.prototype.mutationIsExpected = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n return a = t.textAdded, u = t.textDeleted, this.inputSummary.preferDocument ? !0 : (e = null != a ? a === this.inputSummary.textAdded : !this.inputSummary.textAdded, n = null != u ? this.inputSummary.didDelete : !this.inputSummary.didDelete, c = (\"\\n\" === a || \" \\n\" === a) && !e, l = \"\\n\" === u && !n, s = c && !l || l && !c, s && (o = this.getSelectedRange()) && (i = c ? a.replace(/\\n$/, \"\").length || -1 : (null != a ? a.length : void 0) || 1, null != (r = this.responder) ? r.positionIsBlockBreak(o[1] + i) : void 0) ? !0 : e && n);\n }, s.prototype.mutationIsSignificant = function (t) {\n var e, n, i;\n return i = Object.keys(t).length > 0, e = \"\" === (null != (n = this.compositionInput) ? n.getEndData() : void 0), i || !e;\n }, s.prototype.events = {\n keydown: function (t) {\n var n, i, o, r, s, c, l, h, p;\n if (this.isComposing() || this.resetInputSummary(), this.inputSummary.didInput = !0, r = u[t.keyCode]) {\n for (i = this.keys, h = [\"ctrl\", \"alt\", \"shift\", \"meta\"], o = 0, c = h.length; c > o; o++) l = h[o], t[l + \"Key\"] && (\"ctrl\" === l && (l = \"control\"), i = null != i ? i[l] : void 0);\n null != (null != i ? i[r] : void 0) && (this.setInputSummary({\n keyName: r\n }), e.selectionChangeObserver.reset(), i[r].call(this, t));\n }\n return a(t) && (n = String.fromCharCode(t.keyCode).toLowerCase()) && (s = function () {\n var e, n, i, o;\n for (i = [\"alt\", \"shift\"], o = [], e = 0, n = i.length; n > e; e++) l = i[e], t[l + \"Key\"] && o.push(l);\n return o;\n }(), s.push(n), null != (p = this.delegate) ? p.inputControllerDidReceiveKeyboardCommand(s) : void 0) ? t.preventDefault() : void 0;\n },\n keypress: function (t) {\n var e, n, i;\n if (null == this.inputSummary.eventName && !t.metaKey && (!t.ctrlKey || t.altKey)) return (i = p(t)) ? (null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.insertString(i), this.setInputSummary({\n textAdded: i,\n didDelete: this.selectionIsExpanded()\n })) : void 0;\n },\n textInput: function (t) {\n var e, n, i, o;\n return e = t.data, o = this.inputSummary.textAdded, o && o !== e && o.toUpperCase() === e ? (n = this.getSelectedRange(), this.setSelectedRange([n[0], n[1] + o.length]), null != (i = this.responder) && i.insertString(e), this.setInputSummary({\n textAdded: e\n }), this.setSelectedRange(n)) : void 0;\n },\n dragenter: function (t) {\n return t.preventDefault();\n },\n dragstart: function (t) {\n var e, n;\n return n = t.target, this.serializeSelectionToDataTransfer(t.dataTransfer), this.draggedRange = this.getSelectedRange(), null != (e = this.delegate) && \"function\" == typeof e.inputControllerDidStartDrag ? e.inputControllerDidStartDrag() : void 0;\n },\n dragover: function (t) {\n var e, n;\n return !this.draggedRange && !this.canAcceptDataTransfer(t.dataTransfer) || (t.preventDefault(), e = {\n x: t.clientX,\n y: t.clientY\n }, l(e, this.draggingPoint)) ? void 0 : (this.draggingPoint = e, null != (n = this.delegate) && \"function\" == typeof n.inputControllerDidReceiveDragOverPoint ? n.inputControllerDidReceiveDragOverPoint(this.draggingPoint) : void 0);\n },\n dragend: function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidCancelDrag && t.inputControllerDidCancelDrag(), this.draggedRange = null, this.draggingPoint = null;\n },\n drop: function (t) {\n var n, i, o, r, s, a, u, c, l;\n return t.preventDefault(), o = null != (s = t.dataTransfer) ? s.files : void 0, r = {\n x: t.clientX,\n y: t.clientY\n }, null != (a = this.responder) && a.setLocationRangeFromPointRange(r), (null != o ? o.length : void 0) ? this.attachFiles(o) : this.draggedRange ? (null != (u = this.delegate) && u.inputControllerWillMoveText(), null != (c = this.responder) && c.moveTextFromRange(this.draggedRange), this.draggedRange = null, this.requestRender()) : (i = t.dataTransfer.getData(\"application/x-trix-document\")) && (n = e.Document.fromJSONString(i), null != (l = this.responder) && l.insertDocument(n), this.requestRender()), this.draggedRange = null, this.draggingPoint = null;\n },\n cut: function (t) {\n var e, n;\n return (null != (e = this.responder) ? e.selectionIsExpanded() : void 0) && (this.serializeSelectionToDataTransfer(t.clipboardData) && t.preventDefault(), null != (n = this.delegate) && n.inputControllerWillCutText(), this.deleteInDirection(\"backward\"), t.defaultPrevented) ? this.requestRender() : void 0;\n },\n copy: function (t) {\n var e;\n return (null != (e = this.responder) ? e.selectionIsExpanded() : void 0) && this.serializeSelectionToDataTransfer(t.clipboardData) ? t.preventDefault() : void 0;\n },\n paste: function (t) {\n var n, o, s, a, u, c, l, p, f, g, v, y, b, A, C, x, w, E, S, R, k, D, L;\n return n = null != (p = t.clipboardData) ? p : t.testClipboardData, l = {\n clipboard: n\n }, null == n || h(t) ? void this.getPastedHTMLUsingHiddenElement(function (t) {\n return function (e) {\n var n, i, o;\n return l.type = \"text/html\", l.html = e, null != (n = t.delegate) && n.inputControllerWillPaste(l), null != (i = t.responder) && i.insertHTML(l.html), t.requestRender(), null != (o = t.delegate) ? o.inputControllerDidPaste(l) : void 0;\n };\n }(this)) : ((a = n.getData(\"URL\")) ? (l.type = \"text/html\", L = (c = n.getData(\"public.url-name\")) ? e.squishBreakableWhitespace(c).trim() : a, l.html = this.createLinkHTML(a, L), null != (f = this.delegate) && f.inputControllerWillPaste(l), this.setInputSummary({\n textAdded: L,\n didDelete: this.selectionIsExpanded()\n }), null != (C = this.responder) && C.insertHTML(l.html), this.requestRender(), null != (x = this.delegate) && x.inputControllerDidPaste(l)) : i(n) ? (l.type = \"text/plain\", l.string = n.getData(\"text/plain\"), null != (w = this.delegate) && w.inputControllerWillPaste(l), this.setInputSummary({\n textAdded: l.string,\n didDelete: this.selectionIsExpanded()\n }), null != (E = this.responder) && E.insertString(l.string), this.requestRender(), null != (S = this.delegate) && S.inputControllerDidPaste(l)) : (u = n.getData(\"text/html\")) ? (l.type = \"text/html\", l.html = u, null != (R = this.delegate) && R.inputControllerWillPaste(l), null != (k = this.responder) && k.insertHTML(l.html), this.requestRender(), null != (D = this.delegate) && D.inputControllerDidPaste(l)) : m.call(n.types, \"Files\") >= 0 && (s = null != (g = n.items) && null != (v = g[0]) && \"function\" == typeof v.getAsFile ? v.getAsFile() : void 0) && (!s.name && (o = r(s)) && (s.name = \"pasted-file-\" + ++d + \".\" + o), l.type = \"File\", l.file = s, null != (y = this.delegate) && y.inputControllerWillAttachFiles(), null != (b = this.responder) && b.insertFile(l.file), this.requestRender(), null != (A = this.delegate) && A.inputControllerDidPaste(l)), t.preventDefault());\n },\n compositionstart: function (t) {\n return this.getCompositionInput().start(t.data);\n },\n compositionupdate: function (t) {\n return this.getCompositionInput().update(t.data);\n },\n compositionend: function (t) {\n return this.getCompositionInput().end(t.data);\n },\n beforeinput: function () {\n return this.inputSummary.didInput = !0;\n },\n input: function (t) {\n return this.inputSummary.didInput = !0, t.stopPropagation();\n }\n }, s.prototype.keys = {\n backspace: function (t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"backward\", t);\n },\n \"delete\": function (t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"forward\", t);\n },\n \"return\": function () {\n var t, e;\n return this.setInputSummary({\n preferDocument: !0\n }), null != (t = this.delegate) && t.inputControllerWillPerformTyping(), null != (e = this.responder) ? e.insertLineBreak() : void 0;\n },\n tab: function (t) {\n var e, n;\n return (null != (e = this.responder) ? e.canIncreaseNestingLevel() : void 0) ? (null != (n = this.responder) && n.increaseNestingLevel(), this.requestRender(), t.preventDefault()) : void 0;\n },\n left: function (t) {\n var e;\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"backward\") : void 0) : void 0;\n },\n right: function (t) {\n var e;\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"forward\") : void 0) : void 0;\n },\n control: {\n d: function (t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"forward\", t);\n },\n h: function (t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"backward\", t);\n },\n o: function (t) {\n var e, n;\n return t.preventDefault(), null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.insertString(\"\\n\", {\n updatePosition: !1\n }), this.requestRender();\n }\n },\n shift: {\n \"return\": function (t) {\n var e, n;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.insertString(\"\\n\"), this.requestRender(), t.preventDefault();\n },\n tab: function (t) {\n var e, n;\n return (null != (e = this.responder) ? e.canDecreaseNestingLevel() : void 0) ? (null != (n = this.responder) && n.decreaseNestingLevel(), this.requestRender(), t.preventDefault()) : void 0;\n },\n left: function (t) {\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), this.expandSelectionInDirection(\"backward\")) : void 0;\n },\n right: function (t) {\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), this.expandSelectionInDirection(\"forward\")) : void 0;\n }\n },\n alt: {\n backspace: function () {\n var t;\n return this.setInputSummary({\n preferDocument: !1\n }), null != (t = this.delegate) ? t.inputControllerWillPerformTyping() : void 0;\n }\n },\n meta: {\n backspace: function () {\n var t;\n return this.setInputSummary({\n preferDocument: !1\n }), null != (t = this.delegate) ? t.inputControllerWillPerformTyping() : void 0;\n }\n }\n }, s.prototype.getCompositionInput = function () {\n return this.isComposing() ? this.compositionInput : this.compositionInput = new t(this);\n }, s.prototype.isComposing = function () {\n return null != this.compositionInput && !this.compositionInput.isEnded();\n }, s.prototype.deleteInDirection = function (t, e) {\n var n;\n return (null != (n = this.responder) ? n.deleteInDirection(t) : void 0) !== !1 ? this.setInputSummary({\n didDelete: !0\n }) : e ? (e.preventDefault(), this.requestRender()) : void 0;\n }, s.prototype.serializeSelectionToDataTransfer = function (t) {\n var n, i;\n if (o(t)) return n = null != (i = this.responder) ? i.getSelectedDocument().toSerializableDocument() : void 0, t.setData(\"application/x-trix-document\", JSON.stringify(n)), t.setData(\"text/html\", e.DocumentView.render(n).innerHTML), t.setData(\"text/plain\", n.toString().replace(/\\n$/, \"\")), !0;\n }, s.prototype.canAcceptDataTransfer = function (t) {\n var e, n, i, o, r, s;\n for (s = {}, o = null != (i = null != t ? t.types : void 0) ? i : [], e = 0, n = o.length; n > e; e++) r = o[e], s[r] = !0;\n return s.Files || s[\"application/x-trix-document\"] || s[\"text/html\"] || s[\"text/plain\"];\n }, s.prototype.getPastedHTMLUsingHiddenElement = function (t) {\n var n, i, o;\n return i = this.getSelectedRange(), o = {\n position: \"absolute\",\n left: window.pageXOffset + \"px\",\n top: window.pageYOffset + \"px\",\n opacity: 0\n }, n = c({\n style: o,\n tagName: \"div\",\n editable: !0\n }), document.body.appendChild(n), n.focus(), requestAnimationFrame(function (o) {\n return function () {\n var r;\n return r = n.innerHTML, e.removeNode(n), o.setSelectedRange(i), t(r);\n };\n }(this));\n }, s.proxyMethod(\"responder?.getSelectedRange\"), s.proxyMethod(\"responder?.setSelectedRange\"), s.proxyMethod(\"responder?.expandSelectionInDirection\"), s.proxyMethod(\"responder?.selectionIsInCursorTarget\"), s.proxyMethod(\"responder?.selectionIsExpanded\"), s;\n }(e.InputController), r = function (t) {\n var e, n;\n return null != (e = t.type) && null != (n = e.match(/\\/(\\w+)$/)) ? n[1] : void 0;\n }, s = null != (\"function\" == typeof \" \".codePointAt ? \" \".codePointAt(0) : void 0), p = function (t) {\n var n;\n return t.key && s && t.key.codePointAt(0) === t.keyCode ? t.key : (null === t.which ? n = t.keyCode : 0 !== t.which && 0 !== t.charCode && (n = t.charCode), null != n && \"escape\" !== u[n] ? e.UTF16String.fromCodepoints([n]).toString() : void 0);\n }, h = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n if (u = t.clipboardData) {\n if (m.call(u.types, \"text/html\") >= 0) {\n for (c = u.types, i = 0, s = c.length; s > i; i++) if (l = c[i], e = /^CorePasteboardFlavorType/.test(l), n = /^dyn\\./.test(l) && u.getData(l), a = e || n) return !0;\n return !1;\n }\n return o = m.call(u.types, \"com.apple.webarchive\") >= 0, r = m.call(u.types, \"com.apple.flat-rtfd\") >= 0, o || r;\n }\n }, t = function (t) {\n function e(t) {\n var e;\n this.inputController = t, e = this.inputController, this.responder = e.responder, this.delegate = e.delegate, this.inputSummary = e.inputSummary, this.data = {};\n }\n return f(e, t), e.prototype.start = function (t) {\n var e, n;\n return this.data.start = t, this.isSignificant() ? (\"keypress\" === this.inputSummary.eventName && this.inputSummary.textAdded && null != (e = this.responder) && e.deleteInDirection(\"left\"), this.selectionIsExpanded() || (this.insertPlaceholder(), this.requestRender()), this.range = null != (n = this.responder) ? n.getSelectedRange() : void 0) : void 0;\n }, e.prototype.update = function (t) {\n var e;\n return this.data.update = t, this.isSignificant() && (e = this.selectPlaceholder()) ? (this.forgetPlaceholder(), this.range = e) : void 0;\n }, e.prototype.end = function (t) {\n var e, n, i, o;\n return this.data.end = t, this.isSignificant() ? (this.forgetPlaceholder(), this.canApplyToDocument() ? (this.setInputSummary({\n preferDocument: !0,\n didInput: !1\n }), null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.setSelectedRange(this.range), null != (i = this.responder) && i.insertString(this.data.end), null != (o = this.responder) ? o.setSelectedRange(this.range[0] + this.data.end.length) : void 0) : null != this.data.start || null != this.data.update ? (this.requestReparse(), this.inputController.reset()) : void 0) : this.inputController.reset();\n }, e.prototype.getEndData = function () {\n return this.data.end;\n }, e.prototype.isEnded = function () {\n return null != this.getEndData();\n }, e.prototype.isSignificant = function () {\n return n.composesExistingText ? this.inputSummary.didInput : !0;\n }, e.prototype.canApplyToDocument = function () {\n var t, e;\n return 0 === (null != (t = this.data.start) ? t.length : void 0) && (null != (e = this.data.end) ? e.length : void 0) > 0 && null != this.range;\n }, e.proxyMethod(\"inputController.setInputSummary\"), e.proxyMethod(\"inputController.requestRender\"), e.proxyMethod(\"inputController.requestReparse\"), e.proxyMethod(\"responder?.selectionIsExpanded\"), e.proxyMethod(\"responder?.insertPlaceholder\"), e.proxyMethod(\"responder?.selectPlaceholder\"), e.proxyMethod(\"responder?.forgetPlaceholder\"), e;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n r = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) s.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n };\n t = e.dataTransferIsPlainText, n = e.keyEventIsKeyboardCommand, i = e.objectsAreEqual, e.Level2InputController = function (s) {\n function u() {\n return this.render = o(this.render, this), u.__super__.constructor.apply(this, arguments);\n }\n var c, l, h, p, d, f;\n return r(u, s), u.prototype.elementDidMutate = function () {\n var t;\n return this.scheduledRender ? this.composing && null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidAllowUnhandledInput ? t.inputControllerDidAllowUnhandledInput() : void 0 : this.reparse();\n }, u.prototype.scheduleRender = function () {\n return null != this.scheduledRender ? this.scheduledRender : this.scheduledRender = requestAnimationFrame(this.render);\n }, u.prototype.render = function () {\n var t;\n return cancelAnimationFrame(this.scheduledRender), this.scheduledRender = null, this.composing || null != (t = this.delegate) && t.render(), \"function\" == typeof this.afterRender && this.afterRender(), this.afterRender = null;\n }, u.prototype.reparse = function () {\n var t;\n return null != (t = this.delegate) ? t.reparse() : void 0;\n }, u.prototype.events = {\n keydown: function (t) {\n var e, i, o, r;\n if (n(t)) {\n if (e = l(t), null != (r = this.delegate) ? r.inputControllerDidReceiveKeyboardCommand(e) : void 0) return t.preventDefault();\n } else if (o = t.key, t.altKey && (o += \"+Alt\"), t.shiftKey && (o += \"+Shift\"), i = this.keys[o]) return this.withEvent(t, i);\n },\n paste: function (t) {\n var e, n, i, o, r, s, a, u, c;\n return h(t) ? (t.preventDefault(), this.attachFiles(t.clipboardData.files)) : p(t) ? (t.preventDefault(), n = {\n type: \"text/plain\",\n string: t.clipboardData.getData(\"text/plain\")\n }, null != (i = this.delegate) && i.inputControllerWillPaste(n), null != (o = this.responder) && o.insertString(n.string), this.render(), null != (r = this.delegate) ? r.inputControllerDidPaste(n) : void 0) : (e = null != (s = t.clipboardData) ? s.getData(\"URL\") : void 0) ? (t.preventDefault(), n = {\n type: \"text/html\",\n html: this.createLinkHTML(e)\n }, null != (a = this.delegate) && a.inputControllerWillPaste(n), null != (u = this.responder) && u.insertHTML(n.html), this.render(), null != (c = this.delegate) ? c.inputControllerDidPaste(n) : void 0) : void 0;\n },\n beforeinput: function (t) {\n var e;\n return (e = this.inputTypes[t.inputType]) ? (this.withEvent(t, e), this.scheduleRender()) : void 0;\n },\n input: function () {\n return e.selectionChangeObserver.reset();\n },\n dragstart: function (t) {\n var e, n;\n return (null != (e = this.responder) ? e.selectionContainsAttachments() : void 0) ? (t.dataTransfer.setData(\"application/x-trix-dragging\", !0), this.dragging = {\n range: null != (n = this.responder) ? n.getSelectedRange() : void 0,\n point: d(t)\n }) : void 0;\n },\n dragenter: function (t) {\n return c(t) ? t.preventDefault() : void 0;\n },\n dragover: function (t) {\n var e, n;\n if (this.dragging) {\n if (t.preventDefault(), e = d(t), !i(e, this.dragging.point)) return this.dragging.point = e, null != (n = this.responder) ? n.setLocationRangeFromPointRange(e) : void 0;\n } else if (c(t)) return t.preventDefault();\n },\n drop: function (t) {\n var e, n, i, o;\n return this.dragging ? (t.preventDefault(), null != (n = this.delegate) && n.inputControllerWillMoveText(), null != (i = this.responder) && i.moveTextFromRange(this.dragging.range), this.dragging = null, this.scheduleRender()) : c(t) ? (t.preventDefault(), e = d(t), null != (o = this.responder) && o.setLocationRangeFromPointRange(e), this.attachFiles(t.dataTransfer.files)) : void 0;\n },\n dragend: function () {\n var t;\n return this.dragging ? (null != (t = this.responder) && t.setSelectedRange(this.dragging.range), this.dragging = null) : void 0;\n },\n compositionend: function () {\n return this.composing ? (this.composing = !1, this.scheduleRender()) : void 0;\n }\n }, u.prototype.keys = {\n ArrowLeft: function () {\n var t, e;\n return (null != (t = this.responder) ? t.shouldManageMovingCursorInDirection(\"backward\") : void 0) ? (this.event.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"backward\") : void 0) : void 0;\n },\n ArrowRight: function () {\n var t, e;\n return (null != (t = this.responder) ? t.shouldManageMovingCursorInDirection(\"forward\") : void 0) ? (this.event.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"forward\") : void 0) : void 0;\n },\n Backspace: function () {\n var t, e, n;\n return (null != (t = this.responder) ? t.shouldManageDeletingInDirection(\"backward\") : void 0) ? (this.event.preventDefault(), null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.deleteInDirection(\"backward\"), this.render()) : void 0;\n },\n Tab: function () {\n var t, e;\n return (null != (t = this.responder) ? t.canIncreaseNestingLevel() : void 0) ? (this.event.preventDefault(), null != (e = this.responder) && e.increaseNestingLevel(), this.render()) : void 0;\n },\n \"Tab+Shift\": function () {\n var t, e;\n return (null != (t = this.responder) ? t.canDecreaseNestingLevel() : void 0) ? (this.event.preventDefault(), null != (e = this.responder) && e.decreaseNestingLevel(), this.render()) : void 0;\n }\n }, u.prototype.inputTypes = {\n deleteByComposition: function () {\n return this.deleteInDirection(\"backward\", {\n recordUndoEntry: !1\n });\n },\n deleteByCut: function () {\n return this.deleteInDirection(\"backward\");\n },\n deleteByDrag: function () {\n return this.event.preventDefault(), this.withTargetDOMRange(function () {\n var t;\n return this.deleteByDragRange = null != (t = this.responder) ? t.getSelectedRange() : void 0;\n });\n },\n deleteCompositionText: function () {\n return this.deleteInDirection(\"backward\", {\n recordUndoEntry: !1\n });\n },\n deleteContent: function () {\n return this.deleteInDirection(\"backward\");\n },\n deleteContentBackward: function () {\n return this.deleteInDirection(\"backward\");\n },\n deleteContentForward: function () {\n return this.deleteInDirection(\"forward\");\n },\n deleteEntireSoftLine: function () {\n return this.deleteInDirection(\"forward\");\n },\n deleteHardLineBackward: function () {\n return this.deleteInDirection(\"backward\");\n },\n deleteHardLineForward: function () {\n return this.deleteInDirection(\"forward\");\n },\n deleteSoftLineBackward: function () {\n return this.deleteInDirection(\"backward\");\n },\n deleteSoftLineForward: function () {\n return this.deleteInDirection(\"forward\");\n },\n deleteWordBackward: function () {\n return this.deleteInDirection(\"backward\");\n },\n deleteWordForward: function () {\n return this.deleteInDirection(\"forward\");\n },\n formatBackColor: function () {\n return this.activateAttributeIfSupported(\"backgroundColor\", this.event.data);\n },\n formatBold: function () {\n return this.toggleAttributeIfSupported(\"bold\");\n },\n formatFontColor: function () {\n return this.activateAttributeIfSupported(\"color\", this.event.data);\n },\n formatFontName: function () {\n return this.activateAttributeIfSupported(\"font\", this.event.data);\n },\n formatIndent: function () {\n var t;\n return (null != (t = this.responder) ? t.canIncreaseNestingLevel() : void 0) ? this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.increaseNestingLevel() : void 0;\n }) : void 0;\n },\n formatItalic: function () {\n return this.toggleAttributeIfSupported(\"italic\");\n },\n formatJustifyCenter: function () {\n return this.toggleAttributeIfSupported(\"justifyCenter\");\n },\n formatJustifyFull: function () {\n return this.toggleAttributeIfSupported(\"justifyFull\");\n },\n formatJustifyLeft: function () {\n return this.toggleAttributeIfSupported(\"justifyLeft\");\n },\n formatJustifyRight: function () {\n return this.toggleAttributeIfSupported(\"justifyRight\");\n },\n formatOutdent: function () {\n var t;\n return (null != (t = this.responder) ? t.canDecreaseNestingLevel() : void 0) ? this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.decreaseNestingLevel() : void 0;\n }) : void 0;\n },\n formatRemove: function () {\n return this.withTargetDOMRange(function () {\n var t, e, n, i;\n i = [];\n for (t in null != (e = this.responder) ? e.getCurrentAttributes() : void 0) i.push(null != (n = this.responder) ? n.removeCurrentAttribute(t) : void 0);\n return i;\n });\n },\n formatSetBlockTextDirection: function () {\n return this.activateAttributeIfSupported(\"blockDir\", this.event.data);\n },\n formatSetInlineTextDirection: function () {\n return this.activateAttributeIfSupported(\"textDir\", this.event.data);\n },\n formatStrikeThrough: function () {\n return this.toggleAttributeIfSupported(\"strike\");\n },\n formatSubscript: function () {\n return this.toggleAttributeIfSupported(\"sub\");\n },\n formatSuperscript: function () {\n return this.toggleAttributeIfSupported(\"sup\");\n },\n formatUnderline: function () {\n return this.toggleAttributeIfSupported(\"underline\");\n },\n historyRedo: function () {\n var t;\n return null != (t = this.delegate) ? t.inputControllerWillPerformRedo() : void 0;\n },\n historyUndo: function () {\n var t;\n return null != (t = this.delegate) ? t.inputControllerWillPerformUndo() : void 0;\n },\n insertCompositionText: function () {\n return this.composing = !0, this.insertString(this.event.data);\n },\n insertFromComposition: function () {\n return this.composing = !1, this.insertString(this.event.data);\n },\n insertFromDrop: function () {\n var t, e;\n return (t = this.deleteByDragRange) ? (this.deleteByDragRange = null, null != (e = this.delegate) && e.inputControllerWillMoveText(), this.withTargetDOMRange(function () {\n var e;\n return null != (e = this.responder) ? e.moveTextFromRange(t) : void 0;\n })) : void 0;\n },\n insertFromPaste: function () {\n var n, i, o, r, s, a, u, c, l, h, p;\n return n = this.event.dataTransfer, s = {\n dataTransfer: n\n }, (i = n.getData(\"URL\")) ? (this.event.preventDefault(), s.type = \"text/html\", p = (r = n.getData(\"public.url-name\")) ? e.squishBreakableWhitespace(r).trim() : i, s.html = this.createLinkHTML(i, p), null != (a = this.delegate) && a.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertHTML(s.html) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : t(n) ? (s.type = \"text/plain\", s.string = n.getData(\"text/plain\"), null != (u = this.delegate) && u.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertString(s.string) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : (o = n.getData(\"text/html\")) ? (this.event.preventDefault(), s.type = \"text/html\", s.html = o, null != (c = this.delegate) && c.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertHTML(s.html) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : (null != (l = n.files) ? l.length : void 0) ? (s.type = \"File\", s.file = n.files[0], null != (h = this.delegate) && h.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertFile(s.file) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : void 0;\n },\n insertFromYank: function () {\n return this.insertString(this.event.data);\n },\n insertLineBreak: function () {\n return this.insertString(\"\\n\");\n },\n insertLink: function () {\n return this.activateAttributeIfSupported(\"href\", this.event.data);\n },\n insertOrderedList: function () {\n return this.toggleAttributeIfSupported(\"number\");\n },\n insertParagraph: function () {\n var t;\n return null != (t = this.delegate) && t.inputControllerWillPerformTyping(), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertLineBreak() : void 0;\n });\n },\n insertReplacementText: function () {\n return this.insertString(this.event.dataTransfer.getData(\"text/plain\"), {\n updatePosition: !1\n });\n },\n insertText: function () {\n var t, e;\n return this.insertString(null != (t = this.event.data) ? t : null != (e = this.event.dataTransfer) ? e.getData(\"text/plain\") : void 0);\n },\n insertTranspose: function () {\n return this.insertString(this.event.data);\n },\n insertUnorderedList: function () {\n return this.toggleAttributeIfSupported(\"bullet\");\n }\n }, u.prototype.insertString = function (t, e) {\n var n;\n return null == t && (t = \"\"), null != (n = this.delegate) && n.inputControllerWillPerformTyping(), this.withTargetDOMRange(function () {\n var n;\n return null != (n = this.responder) ? n.insertString(t, e) : void 0;\n });\n }, u.prototype.toggleAttributeIfSupported = function (t) {\n var n;\n return a.call(e.getAllAttributeNames(), t) >= 0 ? (null != (n = this.delegate) && n.inputControllerWillPerformFormatting(t), this.withTargetDOMRange(function () {\n var e;\n return null != (e = this.responder) ? e.toggleCurrentAttribute(t) : void 0;\n })) : void 0;\n }, u.prototype.activateAttributeIfSupported = function (t, n) {\n var i;\n return a.call(e.getAllAttributeNames(), t) >= 0 ? (null != (i = this.delegate) && i.inputControllerWillPerformFormatting(t), this.withTargetDOMRange(function () {\n var e;\n return null != (e = this.responder) ? e.setCurrentAttribute(t, n) : void 0;\n })) : void 0;\n }, u.prototype.deleteInDirection = function (t, e) {\n var n, i, o, r;\n return o = (null != e ? e : {\n recordUndoEntry: !0\n }).recordUndoEntry, o && null != (r = this.delegate) && r.inputControllerWillPerformTyping(), i = function (e) {\n return function () {\n var n;\n return null != (n = e.responder) ? n.deleteInDirection(t) : void 0;\n };\n }(this), (n = this.getTargetDOMRange({\n minLength: 2\n })) ? this.withTargetDOMRange(n, i) : i();\n }, u.prototype.withTargetDOMRange = function (t, n) {\n var i;\n return \"function\" == typeof t && (n = t, t = this.getTargetDOMRange()), t ? null != (i = this.responder) ? i.withTargetDOMRange(t, n.bind(this)) : void 0 : (e.selectionChangeObserver.reset(), n.call(this));\n }, u.prototype.getTargetDOMRange = function (t) {\n var e, n, i, o;\n return i = (null != t ? t : {\n minLength: 0\n }).minLength, (o = \"function\" == typeof (e = this.event).getTargetRanges ? e.getTargetRanges() : void 0) && o.length && (n = f(o[0]), 0 === i || n.toString().length >= i) ? n : void 0;\n }, f = function (t) {\n var e;\n return e = document.createRange(), e.setStart(t.startContainer, t.startOffset), e.setEnd(t.endContainer, t.endOffset), e;\n }, u.prototype.withEvent = function (t, e) {\n var n;\n this.event = t;\n try {\n n = e.call(this);\n } finally {\n this.event = null;\n }\n return n;\n }, c = function (t) {\n var e, n;\n return a.call(null != (e = null != (n = t.dataTransfer) ? n.types : void 0) ? e : [], \"Files\") >= 0;\n }, h = function (t) {\n var e;\n return (e = t.clipboardData) ? a.call(e.types, \"Files\") >= 0 && 1 === e.types.length && e.files.length >= 1 : void 0;\n }, p = function (t) {\n var e;\n return (e = t.clipboardData) ? a.call(e.types, \"text/plain\") >= 0 && 1 === e.types.length : void 0;\n }, l = function (t) {\n var e;\n return e = [], t.altKey && e.push(\"alt\"), t.shiftKey && e.push(\"shift\"), e.push(t.key), e;\n }, d = function (t) {\n return {\n x: t.clientX,\n y: t.clientY\n };\n }, u;\n }(e.InputController);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n l = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) h.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n h = {}.hasOwnProperty;\n n = e.defer, i = e.handleEvent, s = e.makeElement, u = e.tagName, a = e.config, r = a.lang, t = a.css, o = a.keyNames, e.AttachmentEditorController = function (a) {\n function h(t, e, n, i) {\n this.attachmentPiece = t, this.element = e, this.container = n, this.options = null != i ? i : {}, this.didBlurCaption = c(this.didBlurCaption, this), this.didChangeCaption = c(this.didChangeCaption, this), this.didInputCaption = c(this.didInputCaption, this), this.didKeyDownCaption = c(this.didKeyDownCaption, this), this.didClickActionButton = c(this.didClickActionButton, this), this.didClickToolbar = c(this.didClickToolbar, this), this.attachment = this.attachmentPiece.attachment, \"a\" === u(this.element) && (this.element = this.element.firstChild), this.install();\n }\n var p;\n return l(h, a), p = function (t) {\n return function () {\n var e;\n return e = t.apply(this, arguments), e[\"do\"](), null == this.undos && (this.undos = []), this.undos.push(e.undo);\n };\n }, h.prototype.install = function () {\n return this.makeElementMutable(), this.addToolbar(), this.attachment.isPreviewable() ? this.installCaptionEditor() : void 0;\n }, h.prototype.uninstall = function () {\n var t, e;\n for (this.savePendingCaption(); e = this.undos.pop();) e();\n return null != (t = this.delegate) ? t.didUninstallAttachmentEditor(this) : void 0;\n }, h.prototype.savePendingCaption = function () {\n var t, e, n;\n return null != this.pendingCaption ? (t = this.pendingCaption, this.pendingCaption = null, t ? null != (e = this.delegate) && \"function\" == typeof e.attachmentEditorDidRequestUpdatingAttributesForAttachment ? e.attachmentEditorDidRequestUpdatingAttributesForAttachment({\n caption: t\n }, this.attachment) : void 0 : null != (n = this.delegate) && \"function\" == typeof n.attachmentEditorDidRequestRemovingAttributeForAttachment ? n.attachmentEditorDidRequestRemovingAttributeForAttachment(\"caption\", this.attachment) : void 0) : void 0;\n }, h.prototype.makeElementMutable = p(function () {\n return {\n \"do\": function (t) {\n return function () {\n return t.element.dataset.trixMutable = !0;\n };\n }(this),\n undo: function (t) {\n return function () {\n return delete t.element.dataset.trixMutable;\n };\n }(this)\n };\n }), h.prototype.addToolbar = p(function () {\n var n;\n return n = s({\n tagName: \"div\",\n className: t.attachmentToolbar,\n data: {\n trixMutable: !0\n },\n childNodes: s({\n tagName: \"div\",\n className: \"trix-button-row\",\n childNodes: s({\n tagName: \"span\",\n className: \"trix-button-group trix-button-group--actions\",\n childNodes: s({\n tagName: \"button\",\n className: \"trix-button trix-button--remove\",\n textContent: r.remove,\n attributes: {\n title: r.remove\n },\n data: {\n trixAction: \"remove\"\n }\n })\n })\n })\n }), this.attachment.isPreviewable() && n.appendChild(s({\n tagName: \"div\",\n className: t.attachmentMetadataContainer,\n childNodes: s({\n tagName: \"span\",\n className: t.attachmentMetadata,\n childNodes: [s({\n tagName: \"span\",\n className: t.attachmentName,\n textContent: this.attachment.getFilename(),\n attributes: {\n title: this.attachment.getFilename()\n }\n }), s({\n tagName: \"span\",\n className: t.attachmentSize,\n textContent: this.attachment.getFormattedFilesize()\n })]\n })\n })), i(\"click\", {\n onElement: n,\n withCallback: this.didClickToolbar\n }), i(\"click\", {\n onElement: n,\n matchingSelector: \"[data-trix-action]\",\n withCallback: this.didClickActionButton\n }), {\n \"do\": function (t) {\n return function () {\n return t.element.appendChild(n);\n };\n }(this),\n undo: function () {\n return function () {\n return e.removeNode(n);\n };\n }(this)\n };\n }), h.prototype.installCaptionEditor = p(function () {\n var o, a, u, c, l;\n return c = s({\n tagName: \"textarea\",\n className: t.attachmentCaptionEditor,\n attributes: {\n placeholder: r.captionPlaceholder\n },\n data: {\n trixMutable: !0\n }\n }), c.value = this.attachmentPiece.getCaption(), l = c.cloneNode(), l.classList.add(\"trix-autoresize-clone\"), l.tabIndex = -1, o = function () {\n return l.value = c.value, c.style.height = l.scrollHeight + \"px\";\n }, i(\"input\", {\n onElement: c,\n withCallback: o\n }), i(\"input\", {\n onElement: c,\n withCallback: this.didInputCaption\n }), i(\"keydown\", {\n onElement: c,\n withCallback: this.didKeyDownCaption\n }), i(\"change\", {\n onElement: c,\n withCallback: this.didChangeCaption\n }), i(\"blur\", {\n onElement: c,\n withCallback: this.didBlurCaption\n }), u = this.element.querySelector(\"figcaption\"), a = u.cloneNode(), {\n \"do\": function (e) {\n return function () {\n return u.style.display = \"none\", a.appendChild(c), a.appendChild(l), a.classList.add(t.attachmentCaption + \"--editing\"), u.parentElement.insertBefore(a, u), o(), e.options.editCaption ? n(function () {\n return c.focus();\n }) : void 0;\n };\n }(this),\n undo: function () {\n return e.removeNode(a), u.style.display = null;\n }\n };\n }), h.prototype.didClickToolbar = function (t) {\n return t.preventDefault(), t.stopPropagation();\n }, h.prototype.didClickActionButton = function (t) {\n var e, n;\n switch (e = t.target.getAttribute(\"data-trix-action\")) {\n case \"remove\":\n return null != (n = this.delegate) ? n.attachmentEditorDidRequestRemovalOfAttachment(this.attachment) : void 0;\n }\n }, h.prototype.didKeyDownCaption = function (t) {\n var e;\n return \"return\" === o[t.keyCode] ? (t.preventDefault(), this.savePendingCaption(), null != (e = this.delegate) && \"function\" == typeof e.attachmentEditorDidRequestDeselectingAttachment ? e.attachmentEditorDidRequestDeselectingAttachment(this.attachment) : void 0) : void 0;\n }, h.prototype.didInputCaption = function (t) {\n return this.pendingCaption = t.target.value.replace(/\\s/g, \" \").trim();\n }, h.prototype.didChangeCaption = function () {\n return this.savePendingCaption();\n }, h.prototype.didBlurCaption = function () {\n return this.savePendingCaption();\n }, h;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) r.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n i = e.makeElement, t = e.config.css, e.AttachmentView = function (r) {\n function s() {\n s.__super__.constructor.apply(this, arguments), this.attachment = this.object, this.attachment.uploadProgressDelegate = this, this.attachmentPiece = this.options.piece;\n }\n var a;\n return o(s, r), s.attachmentSelector = \"[data-trix-attachment]\", s.prototype.createContentNodes = function () {\n return [];\n }, s.prototype.createNodes = function () {\n var e, n, o, r, s, u, c;\n if (e = r = i({\n tagName: \"figure\",\n className: this.getClassName(),\n data: this.getData(),\n editable: !1\n }), (n = this.getHref()) && (r = i({\n tagName: \"a\",\n editable: !1,\n attributes: {\n href: n,\n tabindex: -1\n }\n }), e.appendChild(r)), this.attachment.hasContent()) r.innerHTML = this.attachment.getContent();else for (c = this.createContentNodes(), o = 0, s = c.length; s > o; o++) u = c[o], r.appendChild(u);\n return r.appendChild(this.createCaptionElement()), this.attachment.isPending() && (this.progressElement = i({\n tagName: \"progress\",\n attributes: {\n \"class\": t.attachmentProgress,\n value: this.attachment.getUploadProgress(),\n max: 100\n },\n data: {\n trixMutable: !0,\n trixStoreKey: [\"progressElement\", this.attachment.id].join(\"/\")\n }\n }), e.appendChild(this.progressElement)), [a(\"left\"), e, a(\"right\")];\n }, s.prototype.createCaptionElement = function () {\n var e, n, o, r, s, a, u;\n return o = i({\n tagName: \"figcaption\",\n className: t.attachmentCaption\n }), (e = this.attachmentPiece.getCaption()) ? (o.classList.add(t.attachmentCaption + \"--edited\"), o.textContent = e) : (n = this.getCaptionConfig(), n.name && (r = this.attachment.getFilename()), n.size && (a = this.attachment.getFormattedFilesize()), r && (s = i({\n tagName: \"span\",\n className: t.attachmentName,\n textContent: r\n }), o.appendChild(s)), a && (r && o.appendChild(document.createTextNode(\" \")), u = i({\n tagName: \"span\",\n className: t.attachmentSize,\n textContent: a\n }), o.appendChild(u))), o;\n }, s.prototype.getClassName = function () {\n var e, n;\n return n = [t.attachment, t.attachment + \"--\" + this.attachment.getType()], (e = this.attachment.getExtension()) && n.push(t.attachment + \"--\" + e), n.join(\" \");\n }, s.prototype.getData = function () {\n var t, e;\n return e = {\n trixAttachment: JSON.stringify(this.attachment),\n trixContentType: this.attachment.getContentType(),\n trixId: this.attachment.id\n }, t = this.attachmentPiece.attributes, t.isEmpty() || (e.trixAttributes = JSON.stringify(t)), this.attachment.isPending() && (e.trixSerialize = !1), e;\n }, s.prototype.getHref = function () {\n return n(this.attachment.getContent(), \"a\") ? void 0 : this.attachment.getHref();\n }, s.prototype.getCaptionConfig = function () {\n var t, n, i;\n return i = this.attachment.getType(), t = e.copyObject(null != (n = e.config.attachments[i]) ? n.caption : void 0), \"file\" === i && (t.name = !0), t;\n }, s.prototype.findProgressElement = function () {\n var t;\n return null != (t = this.findElement()) ? t.querySelector(\"progress\") : void 0;\n }, a = function (t) {\n return i({\n tagName: \"span\",\n textContent: e.ZERO_WIDTH_SPACE,\n data: {\n trixCursorTarget: t,\n trixSerialize: !1\n }\n });\n }, s.prototype.attachmentDidChangeUploadProgress = function () {\n var t, e;\n return e = this.attachment.getUploadProgress(), null != (t = this.findProgressElement()) ? t.value = e : void 0;\n }, s;\n }(e.ObjectView), n = function (t, e) {\n var n;\n return n = i(\"div\"), n.innerHTML = null != t ? t : \"\", n.querySelector(e);\n };\n }.call(this), function () {\n var t,\n n = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var o in e) i.call(e, o) && (t[o] = e[o]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n t = e.makeElement, e.PreviewableAttachmentView = function (i) {\n function o() {\n o.__super__.constructor.apply(this, arguments), this.attachment.previewDelegate = this;\n }\n return n(o, i), o.prototype.createContentNodes = function () {\n return this.image = t({\n tagName: \"img\",\n attributes: {\n src: \"\"\n },\n data: {\n trixMutable: !0\n }\n }), this.refresh(this.image), [this.image];\n }, o.prototype.createCaptionElement = function () {\n var t;\n return t = o.__super__.createCaptionElement.apply(this, arguments), t.textContent || t.setAttribute(\"data-trix-placeholder\", e.config.lang.captionPlaceholder), t;\n }, o.prototype.refresh = function (t) {\n var e;\n return null == t && (t = null != (e = this.findElement()) ? e.querySelector(\"img\") : void 0), t ? this.updateAttributesForImage(t) : void 0;\n }, o.prototype.updateAttributesForImage = function (t) {\n var e, n, i, o, r, s;\n return r = this.attachment.getURL(), n = this.attachment.getPreviewURL(), t.src = n || r, n === r ? t.removeAttribute(\"data-trix-serialized-attributes\") : (i = JSON.stringify({\n src: r\n }), t.setAttribute(\"data-trix-serialized-attributes\", i)), s = this.attachment.getWidth(), e = this.attachment.getHeight(), null != s && (t.width = s), null != e && (t.height = e), o = [\"imageElement\", this.attachment.id, t.src, t.width, t.height].join(\"/\"), t.dataset.trixStoreKey = o;\n }, o.prototype.attachmentDidChangeAttributes = function () {\n return this.refresh(this.image), this.refresh();\n }, o;\n }(e.AttachmentView);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) r.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n i = e.makeElement, t = e.findInnerElement, n = e.getTextConfig, e.PieceView = function (r) {\n function s() {\n var t;\n s.__super__.constructor.apply(this, arguments), this.piece = this.object, this.attributes = this.piece.getAttributes(), t = this.options, this.textConfig = t.textConfig, this.context = t.context, this.piece.attachment ? this.attachment = this.piece.attachment : this.string = this.piece.toString();\n }\n var a;\n return o(s, r), s.prototype.createNodes = function () {\n var e, n, i, o, r, s;\n if (s = this.attachment ? this.createAttachmentNodes() : this.createStringNodes(), e = this.createElement()) {\n for (i = t(e), n = 0, o = s.length; o > n; n++) r = s[n], i.appendChild(r);\n s = [e];\n }\n return s;\n }, s.prototype.createAttachmentNodes = function () {\n var t, n;\n return t = this.attachment.isPreviewable() ? e.PreviewableAttachmentView : e.AttachmentView, n = this.createChildView(t, this.piece.attachment, {\n piece: this.piece\n }), n.getNodes();\n }, s.prototype.createStringNodes = function () {\n var t, e, n, o, r, s, a, u, c, l;\n if (null != (u = this.textConfig) ? u.plaintext : void 0) return [document.createTextNode(this.string)];\n for (a = [], c = this.string.split(\"\\n\"), n = e = 0, o = c.length; o > e; n = ++e) l = c[n], n > 0 && (t = i(\"br\"), a.push(t)), (r = l.length) && (s = document.createTextNode(this.preserveSpaces(l)), a.push(s));\n return a;\n }, s.prototype.createElement = function () {\n var t, e, o, r, s, a, u, c, l;\n c = {}, a = this.attributes;\n for (r in a) if (l = a[r], (t = n(r)) && (t.tagName && (s = i(t.tagName), o ? (o.appendChild(s), o = s) : e = o = s), t.styleProperty && (c[t.styleProperty] = l), t.style)) {\n u = t.style;\n for (r in u) l = u[r], c[r] = l;\n }\n if (Object.keys(c).length) {\n null == e && (e = i(\"span\"));\n for (r in c) l = c[r], e.style[r] = l;\n }\n return e;\n }, s.prototype.createContainerElement = function () {\n var t, e, o, r, s;\n r = this.attributes;\n for (o in r) if (s = r[o], (e = n(o)) && e.groupTagName) return t = {}, t[o] = s, i(e.groupTagName, t);\n }, a = e.NON_BREAKING_SPACE, s.prototype.preserveSpaces = function (t) {\n return this.context.isLast && (t = t.replace(/\\ $/, a)), t = t.replace(/(\\S)\\ {3}(\\S)/g, \"$1 \" + a + \" $2\").replace(/\\ {2}/g, a + \" \").replace(/\\ {2}/g, \" \" + a), (this.context.isFirst || this.context.followsWhitespace) && (t = t.replace(/^\\ /, a)), t;\n }, s;\n }(e.ObjectView);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.TextView = function (n) {\n function i() {\n i.__super__.constructor.apply(this, arguments), this.text = this.object, this.textConfig = this.options.textConfig;\n }\n var o;\n return t(i, n), i.prototype.createNodes = function () {\n var t, n, i, r, s, a, u, c, l, h;\n for (a = [], c = e.ObjectGroup.groupObjects(this.getPieces()), r = c.length - 1, i = n = 0, s = c.length; s > n; i = ++n) u = c[i], t = {}, 0 === i && (t.isFirst = !0), i === r && (t.isLast = !0), o(l) && (t.followsWhitespace = !0), h = this.findOrCreateCachedChildView(e.PieceView, u, {\n textConfig: this.textConfig,\n context: t\n }), a.push.apply(a, h.getNodes()), l = u;\n return a;\n }, i.prototype.getPieces = function () {\n var t, e, n, i, o;\n for (i = this.text.getPieces(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], n.hasAttribute(\"blockBreak\") || o.push(n);\n return o;\n }, o = function (t) {\n return /\\s$/.test(null != t ? t.toString() : void 0);\n }, i;\n }(e.ObjectView);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) r.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n i = e.makeElement, n = e.getBlockConfig, t = e.config.css, e.BlockView = function (r) {\n function s() {\n s.__super__.constructor.apply(this, arguments), this.block = this.object, this.attributes = this.block.getAttributes();\n }\n return o(s, r), s.prototype.createNodes = function () {\n var t, o, r, s, a, u, c, l, h, p, d;\n if (o = document.createComment(\"block\"), c = [o], this.block.isEmpty() ? c.push(i(\"br\")) : (p = null != (l = n(this.block.getLastAttribute())) ? l.text : void 0, d = this.findOrCreateCachedChildView(e.TextView, this.block.text, {\n textConfig: p\n }), c.push.apply(c, d.getNodes()), this.shouldAddExtraNewlineElement() && c.push(i(\"br\"))), this.attributes.length) return c;\n for (h = e.config.blockAttributes[\"default\"].tagName, this.block.isRTL() && (t = {\n dir: \"rtl\"\n }), r = i({\n tagName: h,\n attributes: t\n }), s = 0, a = c.length; a > s; s++) u = c[s], r.appendChild(u);\n return [r];\n }, s.prototype.createContainerElement = function (e) {\n var o, r, s, a, u;\n return o = this.attributes[e], u = n(o).tagName, 0 === e && this.block.isRTL() && (r = {\n dir: \"rtl\"\n }), \"attachmentGallery\" === o && (a = this.block.getBlockBreakPosition(), s = t.attachmentGallery + \" \" + t.attachmentGallery + \"--\" + a), i({\n tagName: u,\n className: s,\n attributes: r\n });\n }, s.prototype.shouldAddExtraNewlineElement = function () {\n return /\\n\\n$/.test(this.block.toString());\n }, s;\n }(e.ObjectView);\n }.call(this), function () {\n var t,\n n,\n i = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) o.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n t = e.defer, n = e.makeElement, e.DocumentView = function (o) {\n function r() {\n r.__super__.constructor.apply(this, arguments), this.element = this.options.element, this.elementStore = new e.ElementStore(), this.setDocument(this.object);\n }\n var s, a, u;\n return i(r, o), r.render = function (t) {\n var e, i;\n return e = n(\"div\"), i = new this(t, {\n element: e\n }), i.render(), i.sync(), e;\n }, r.prototype.setDocument = function (t) {\n return t.isEqualTo(this.document) ? void 0 : this.document = this.object = t;\n }, r.prototype.render = function () {\n var t, i, o, r, s, a, u;\n if (this.childViews = [], this.shadowElement = n(\"div\"), !this.document.isEmpty()) {\n for (s = e.ObjectGroup.groupObjects(this.document.getBlocks(), {\n asTree: !0\n }), a = [], t = 0, i = s.length; i > t; t++) r = s[t], u = this.findOrCreateCachedChildView(e.BlockView, r), a.push(function () {\n var t, e, n, i;\n for (n = u.getNodes(), i = [], t = 0, e = n.length; e > t; t++) o = n[t], i.push(this.shadowElement.appendChild(o));\n return i;\n }.call(this));\n return a;\n }\n }, r.prototype.isSynced = function () {\n return s(this.shadowElement, this.element);\n }, r.prototype.sync = function () {\n var t;\n for (t = this.createDocumentFragmentForSync(); this.element.lastChild;) this.element.removeChild(this.element.lastChild);\n return this.element.appendChild(t), this.didSync();\n }, r.prototype.didSync = function () {\n return this.elementStore.reset(a(this.element)), t(function (t) {\n return function () {\n return t.garbageCollectCachedViews();\n };\n }(this));\n }, r.prototype.createDocumentFragmentForSync = function () {\n var t, e, n, i, o, r, s, u, c, l;\n for (e = document.createDocumentFragment(), u = this.shadowElement.childNodes, n = 0, o = u.length; o > n; n++) s = u[n], e.appendChild(s.cloneNode(!0));\n for (c = a(e), i = 0, r = c.length; r > i; i++) t = c[i], (l = this.elementStore.remove(t)) && t.parentNode.replaceChild(l, t);\n return e;\n }, a = function (t) {\n return t.querySelectorAll(\"[data-trix-store-key]\");\n }, s = function (t, e) {\n return u(t.innerHTML) === u(e.innerHTML);\n }, u = function (t) {\n return t.replace(/ /g, \" \");\n }, r;\n }(e.ObjectView);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n a = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) u.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n u = {}.hasOwnProperty;\n i = e.findClosestElementFromNode, o = e.handleEvent, r = e.innerElementIsActive, n = e.defer, t = e.AttachmentView.attachmentSelector, e.CompositionController = function (u) {\n function c(n, i) {\n this.element = n, this.composition = i, this.didClickAttachment = s(this.didClickAttachment, this), this.didBlur = s(this.didBlur, this), this.didFocus = s(this.didFocus, this), this.documentView = new e.DocumentView(this.composition.document, {\n element: this.element\n }), o(\"focus\", {\n onElement: this.element,\n withCallback: this.didFocus\n }), o(\"blur\", {\n onElement: this.element,\n withCallback: this.didBlur\n }), o(\"click\", {\n onElement: this.element,\n matchingSelector: \"a[contenteditable=false]\",\n preventDefault: !0\n }), o(\"mousedown\", {\n onElement: this.element,\n matchingSelector: t,\n withCallback: this.didClickAttachment\n }), o(\"click\", {\n onElement: this.element,\n matchingSelector: \"a\" + t,\n preventDefault: !0\n });\n }\n return a(c, u), c.prototype.didFocus = function () {\n var t, e, n;\n return t = function (t) {\n return function () {\n var e;\n return t.focused ? void 0 : (t.focused = !0, null != (e = t.delegate) && \"function\" == typeof e.compositionControllerDidFocus ? e.compositionControllerDidFocus() : void 0);\n };\n }(this), null != (e = null != (n = this.blurPromise) ? n.then(t) : void 0) ? e : t();\n }, c.prototype.didBlur = function () {\n return this.blurPromise = new Promise(function (t) {\n return function (e) {\n return n(function () {\n var n;\n return r(t.element) || (t.focused = null, null != (n = t.delegate) && \"function\" == typeof n.compositionControllerDidBlur && n.compositionControllerDidBlur()), t.blurPromise = null, e();\n });\n };\n }(this));\n }, c.prototype.didClickAttachment = function (t, e) {\n var n, o, r;\n return n = this.findAttachmentForElement(e), o = null != i(t.target, {\n matchingSelector: \"figcaption\"\n }), null != (r = this.delegate) && \"function\" == typeof r.compositionControllerDidSelectAttachment ? r.compositionControllerDidSelectAttachment(n, {\n editCaption: o\n }) : void 0;\n }, c.prototype.getSerializableElement = function () {\n return this.isEditingAttachment() ? this.documentView.shadowElement : this.element;\n }, c.prototype.render = function () {\n var t, e, n;\n return this.revision !== this.composition.revision && (this.documentView.setDocument(this.composition.document), this.documentView.render(), this.revision = this.composition.revision), this.canSyncDocumentView() && !this.documentView.isSynced() && (null != (t = this.delegate) && \"function\" == typeof t.compositionControllerWillSyncDocumentView && t.compositionControllerWillSyncDocumentView(), this.documentView.sync(), null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidSyncDocumentView && e.compositionControllerDidSyncDocumentView()), null != (n = this.delegate) && \"function\" == typeof n.compositionControllerDidRender ? n.compositionControllerDidRender() : void 0;\n }, c.prototype.rerenderViewForObject = function (t) {\n return this.invalidateViewForObject(t), this.render();\n }, c.prototype.invalidateViewForObject = function (t) {\n return this.documentView.invalidateViewForObject(t);\n }, c.prototype.isViewCachingEnabled = function () {\n return this.documentView.isViewCachingEnabled();\n }, c.prototype.enableViewCaching = function () {\n return this.documentView.enableViewCaching();\n }, c.prototype.disableViewCaching = function () {\n return this.documentView.disableViewCaching();\n }, c.prototype.refreshViewCache = function () {\n return this.documentView.garbageCollectCachedViews();\n }, c.prototype.isEditingAttachment = function () {\n return null != this.attachmentEditor;\n }, c.prototype.installAttachmentEditorForAttachment = function (t, n) {\n var i, o, r;\n if ((null != (r = this.attachmentEditor) ? r.attachment : void 0) !== t && (o = this.documentView.findElementForObject(t))) return this.uninstallAttachmentEditor(), i = this.composition.document.getAttachmentPieceForAttachment(t), this.attachmentEditor = new e.AttachmentEditorController(i, o, this.element, n), this.attachmentEditor.delegate = this;\n }, c.prototype.uninstallAttachmentEditor = function () {\n var t;\n return null != (t = this.attachmentEditor) ? t.uninstall() : void 0;\n }, c.prototype.didUninstallAttachmentEditor = function () {\n return this.attachmentEditor = null, this.render();\n }, c.prototype.attachmentEditorDidRequestUpdatingAttributesForAttachment = function (t, e) {\n var n;\n return null != (n = this.delegate) && \"function\" == typeof n.compositionControllerWillUpdateAttachment && n.compositionControllerWillUpdateAttachment(e), this.composition.updateAttributesForAttachment(t, e);\n }, c.prototype.attachmentEditorDidRequestRemovingAttributeForAttachment = function (t, e) {\n var n;\n return null != (n = this.delegate) && \"function\" == typeof n.compositionControllerWillUpdateAttachment && n.compositionControllerWillUpdateAttachment(e), this.composition.removeAttributeForAttachment(t, e);\n }, c.prototype.attachmentEditorDidRequestRemovalOfAttachment = function (t) {\n var e;\n return null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidRequestRemovalOfAttachment ? e.compositionControllerDidRequestRemovalOfAttachment(t) : void 0;\n }, c.prototype.attachmentEditorDidRequestDeselectingAttachment = function (t) {\n var e;\n return null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidRequestDeselectingAttachment ? e.compositionControllerDidRequestDeselectingAttachment(t) : void 0;\n }, c.prototype.canSyncDocumentView = function () {\n return !this.isEditingAttachment();\n }, c.prototype.findAttachmentForElement = function (t) {\n return this.composition.document.getAttachmentById(parseInt(t.dataset.trixId, 10));\n }, c;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n r = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) s.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty;\n n = e.handleEvent, i = e.triggerEvent, t = e.findClosestElementFromNode, e.ToolbarController = function (e) {\n function s(t) {\n this.element = t, this.didKeyDownDialogInput = o(this.didKeyDownDialogInput, this), this.didClickDialogButton = o(this.didClickDialogButton, this), this.didClickAttributeButton = o(this.didClickAttributeButton, this), this.didClickActionButton = o(this.didClickActionButton, this), this.attributes = {}, this.actions = {}, this.resetDialogInputs(), n(\"mousedown\", {\n onElement: this.element,\n matchingSelector: a,\n withCallback: this.didClickActionButton\n }), n(\"mousedown\", {\n onElement: this.element,\n matchingSelector: c,\n withCallback: this.didClickAttributeButton\n }), n(\"click\", {\n onElement: this.element,\n matchingSelector: v,\n preventDefault: !0\n }), n(\"click\", {\n onElement: this.element,\n matchingSelector: l,\n withCallback: this.didClickDialogButton\n }), n(\"keydown\", {\n onElement: this.element,\n matchingSelector: h,\n withCallback: this.didKeyDownDialogInput\n });\n }\n var a, u, c, l, h, p, d, f, g, m, v;\n return r(s, e), c = \"[data-trix-attribute]\", a = \"[data-trix-action]\", v = c + \", \" + a, p = \"[data-trix-dialog]\", u = p + \"[data-trix-active]\", l = p + \" [data-trix-method]\", h = p + \" [data-trix-input]\", s.prototype.didClickActionButton = function (t, e) {\n var n, i, o;\n return null != (i = this.delegate) && i.toolbarDidClickButton(), t.preventDefault(), n = d(e), this.getDialog(n) ? this.toggleDialog(n) : null != (o = this.delegate) ? o.toolbarDidInvokeAction(n) : void 0;\n }, s.prototype.didClickAttributeButton = function (t, e) {\n var n, i, o;\n return null != (i = this.delegate) && i.toolbarDidClickButton(), t.preventDefault(), n = f(e), this.getDialog(n) ? this.toggleDialog(n) : null != (o = this.delegate) && o.toolbarDidToggleAttribute(n), this.refreshAttributeButtons();\n }, s.prototype.didClickDialogButton = function (e, n) {\n var i, o;\n return i = t(n, {\n matchingSelector: p\n }), o = n.getAttribute(\"data-trix-method\"), this[o].call(this, i);\n }, s.prototype.didKeyDownDialogInput = function (t, e) {\n var n, i;\n return 13 === t.keyCode && (t.preventDefault(), n = e.getAttribute(\"name\"), i = this.getDialog(n), this.setAttribute(i)), 27 === t.keyCode ? (t.preventDefault(), this.hideDialog()) : void 0;\n }, s.prototype.updateActions = function (t) {\n return this.actions = t, this.refreshActionButtons();\n }, s.prototype.refreshActionButtons = function () {\n return this.eachActionButton(function (t) {\n return function (e, n) {\n return e.disabled = t.actions[n] === !1;\n };\n }(this));\n }, s.prototype.eachActionButton = function (t) {\n var e, n, i, o, r;\n for (o = this.element.querySelectorAll(a), r = [], n = 0, i = o.length; i > n; n++) e = o[n], r.push(t(e, d(e)));\n return r;\n }, s.prototype.updateAttributes = function (t) {\n return this.attributes = t, this.refreshAttributeButtons();\n }, s.prototype.refreshAttributeButtons = function () {\n return this.eachAttributeButton(function (t) {\n return function (e, n) {\n return e.disabled = t.attributes[n] === !1, t.attributes[n] || t.dialogIsVisible(n) ? (e.setAttribute(\"data-trix-active\", \"\"), e.classList.add(\"trix-active\")) : (e.removeAttribute(\"data-trix-active\"), e.classList.remove(\"trix-active\"));\n };\n }(this));\n }, s.prototype.eachAttributeButton = function (t) {\n var e, n, i, o, r;\n for (o = this.element.querySelectorAll(c), r = [], n = 0, i = o.length; i > n; n++) e = o[n], r.push(t(e, f(e)));\n return r;\n }, s.prototype.applyKeyboardCommand = function (t) {\n var e, n, o, r, s, a, u;\n for (s = JSON.stringify(t.sort()), u = this.element.querySelectorAll(\"[data-trix-key]\"), r = 0, a = u.length; a > r; r++) if (e = u[r], o = e.getAttribute(\"data-trix-key\").split(\"+\"), n = JSON.stringify(o.sort()), n === s) return i(\"mousedown\", {\n onElement: e\n }), !0;\n return !1;\n }, s.prototype.dialogIsVisible = function (t) {\n var e;\n return (e = this.getDialog(t)) ? e.hasAttribute(\"data-trix-active\") : void 0;\n }, s.prototype.toggleDialog = function (t) {\n return this.dialogIsVisible(t) ? this.hideDialog() : this.showDialog(t);\n }, s.prototype.showDialog = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n for (this.hideDialog(), null != (a = this.delegate) && a.toolbarWillShowDialog(), i = this.getDialog(t), i.setAttribute(\"data-trix-active\", \"\"), i.classList.add(\"trix-active\"), u = i.querySelectorAll(\"input[disabled]\"), o = 0, s = u.length; s > o; o++) n = u[o], n.removeAttribute(\"disabled\");\n return (e = f(i)) && (r = m(i, t)) && (r.value = null != (c = this.attributes[e]) ? c : \"\", r.select()), null != (l = this.delegate) ? l.toolbarDidShowDialog(t) : void 0;\n }, s.prototype.setAttribute = function (t) {\n var e, n, i;\n return e = f(t), n = m(t, e), n.willValidate && !n.checkValidity() ? (n.setAttribute(\"data-trix-validate\", \"\"), n.classList.add(\"trix-validate\"), n.focus()) : (null != (i = this.delegate) && i.toolbarDidUpdateAttribute(e, n.value), this.hideDialog());\n }, s.prototype.removeAttribute = function (t) {\n var e, n;\n return e = f(t), null != (n = this.delegate) && n.toolbarDidRemoveAttribute(e), this.hideDialog();\n }, s.prototype.hideDialog = function () {\n var t, e;\n return (t = this.element.querySelector(u)) ? (t.removeAttribute(\"data-trix-active\"), t.classList.remove(\"trix-active\"), this.resetDialogInputs(), null != (e = this.delegate) ? e.toolbarDidHideDialog(g(t)) : void 0) : void 0;\n }, s.prototype.resetDialogInputs = function () {\n var t, e, n, i, o;\n for (i = this.element.querySelectorAll(h), o = [], t = 0, n = i.length; n > t; t++) e = i[t], e.setAttribute(\"disabled\", \"disabled\"), e.removeAttribute(\"data-trix-validate\"), o.push(e.classList.remove(\"trix-validate\"));\n return o;\n }, s.prototype.getDialog = function (t) {\n return this.element.querySelector(\"[data-trix-dialog=\" + t + \"]\");\n }, m = function (t, e) {\n return null == e && (e = f(t)), t.querySelector(\"[data-trix-input][name='\" + e + \"']\");\n }, d = function (t) {\n return t.getAttribute(\"data-trix-action\");\n }, f = function (t) {\n var e;\n return null != (e = t.getAttribute(\"data-trix-attribute\")) ? e : t.getAttribute(\"data-trix-dialog-attribute\");\n }, g = function (t) {\n return t.getAttribute(\"data-trix-dialog\");\n }, s;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.ImagePreloadOperation = function (e) {\n function n(t) {\n this.url = t;\n }\n return t(n, e), n.prototype.perform = function (t) {\n var e;\n return e = new Image(), e.onload = function (n) {\n return function () {\n return e.width = n.width = e.naturalWidth, e.height = n.height = e.naturalHeight, t(!0, e);\n };\n }(this), e.onerror = function () {\n return t(!1);\n }, e.src = this.url;\n }, n;\n }(e.Operation);\n }.call(this), function () {\n var t = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n n = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var o in e) i.call(e, o) && (t[o] = e[o]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n e.Attachment = function (i) {\n function o(n) {\n null == n && (n = {}), this.releaseFile = t(this.releaseFile, this), o.__super__.constructor.apply(this, arguments), this.attributes = e.Hash.box(n), this.didChangeAttributes();\n }\n return n(o, i), o.previewablePattern = /^image(\\/(gif|png|jpe?g)|$)/, o.attachmentForFile = function (t) {\n var e, n;\n return n = this.attributesForFile(t), e = new this(n), e.setFile(t), e;\n }, o.attributesForFile = function (t) {\n return new e.Hash({\n filename: t.name,\n filesize: t.size,\n contentType: t.type\n });\n }, o.fromJSON = function (t) {\n return new this(t);\n }, o.prototype.getAttribute = function (t) {\n return this.attributes.get(t);\n }, o.prototype.hasAttribute = function (t) {\n return this.attributes.has(t);\n }, o.prototype.getAttributes = function () {\n return this.attributes.toObject();\n }, o.prototype.setAttributes = function (t) {\n var e, n, i;\n return null == t && (t = {}), e = this.attributes.merge(t), this.attributes.isEqualTo(e) ? void 0 : (this.attributes = e, this.didChangeAttributes(), null != (n = this.previewDelegate) && \"function\" == typeof n.attachmentDidChangeAttributes && n.attachmentDidChangeAttributes(this), null != (i = this.delegate) && \"function\" == typeof i.attachmentDidChangeAttributes ? i.attachmentDidChangeAttributes(this) : void 0);\n }, o.prototype.didChangeAttributes = function () {\n return this.isPreviewable() ? this.preloadURL() : void 0;\n }, o.prototype.isPending = function () {\n return null != this.file && !(this.getURL() || this.getHref());\n }, o.prototype.isPreviewable = function () {\n return this.attributes.has(\"previewable\") ? this.attributes.get(\"previewable\") : this.constructor.previewablePattern.test(this.getContentType());\n }, o.prototype.getType = function () {\n return this.hasContent() ? \"content\" : this.isPreviewable() ? \"preview\" : \"file\";\n }, o.prototype.getURL = function () {\n return this.attributes.get(\"url\");\n }, o.prototype.getHref = function () {\n return this.attributes.get(\"href\");\n }, o.prototype.getFilename = function () {\n var t;\n return null != (t = this.attributes.get(\"filename\")) ? t : \"\";\n }, o.prototype.getFilesize = function () {\n return this.attributes.get(\"filesize\");\n }, o.prototype.getFormattedFilesize = function () {\n var t;\n return t = this.attributes.get(\"filesize\"), \"number\" == typeof t ? e.config.fileSize.formatter(t) : \"\";\n }, o.prototype.getExtension = function () {\n var t;\n return null != (t = this.getFilename().match(/\\.(\\w+)$/)) ? t[1].toLowerCase() : void 0;\n }, o.prototype.getContentType = function () {\n return this.attributes.get(\"contentType\");\n }, o.prototype.hasContent = function () {\n return this.attributes.has(\"content\");\n }, o.prototype.getContent = function () {\n return this.attributes.get(\"content\");\n }, o.prototype.getWidth = function () {\n return this.attributes.get(\"width\");\n }, o.prototype.getHeight = function () {\n return this.attributes.get(\"height\");\n }, o.prototype.getFile = function () {\n return this.file;\n }, o.prototype.setFile = function (t) {\n return this.file = t, this.isPreviewable() ? this.preloadFile() : void 0;\n }, o.prototype.releaseFile = function () {\n return this.releasePreloadedFile(), this.file = null;\n }, o.prototype.getUploadProgress = function () {\n var t;\n return null != (t = this.uploadProgress) ? t : 0;\n }, o.prototype.setUploadProgress = function (t) {\n var e;\n return this.uploadProgress !== t ? (this.uploadProgress = t, null != (e = this.uploadProgressDelegate) && \"function\" == typeof e.attachmentDidChangeUploadProgress ? e.attachmentDidChangeUploadProgress(this) : void 0) : void 0;\n }, o.prototype.toJSON = function () {\n return this.getAttributes();\n }, o.prototype.getCacheKey = function () {\n return [o.__super__.getCacheKey.apply(this, arguments), this.attributes.getCacheKey(), this.getPreviewURL()].join(\"/\");\n }, o.prototype.getPreviewURL = function () {\n return this.previewURL || this.preloadingURL;\n }, o.prototype.setPreviewURL = function (t) {\n var e, n;\n return t !== this.getPreviewURL() ? (this.previewURL = t, null != (e = this.previewDelegate) && \"function\" == typeof e.attachmentDidChangeAttributes && e.attachmentDidChangeAttributes(this), null != (n = this.delegate) && \"function\" == typeof n.attachmentDidChangePreviewURL ? n.attachmentDidChangePreviewURL(this) : void 0) : void 0;\n }, o.prototype.preloadURL = function () {\n return this.preload(this.getURL(), this.releaseFile);\n }, o.prototype.preloadFile = function () {\n return this.file ? (this.fileObjectURL = URL.createObjectURL(this.file), this.preload(this.fileObjectURL)) : void 0;\n }, o.prototype.releasePreloadedFile = function () {\n return this.fileObjectURL ? (URL.revokeObjectURL(this.fileObjectURL), this.fileObjectURL = null) : void 0;\n }, o.prototype.preload = function (t, n) {\n var i;\n return t && t !== this.getPreviewURL() ? (this.preloadingURL = t, i = new e.ImagePreloadOperation(t), i.then(function (e) {\n return function (i) {\n var o, r;\n return r = i.width, o = i.height, e.getWidth() && e.getHeight() || e.setAttributes({\n width: r,\n height: o\n }), e.preloadingURL = null, e.setPreviewURL(t), \"function\" == typeof n ? n() : void 0;\n };\n }(this))[\"catch\"](function (t) {\n return function () {\n return t.preloadingURL = null, \"function\" == typeof n ? n() : void 0;\n };\n }(this))) : void 0;\n }, o;\n }(e.Object);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.Piece = function (n) {\n function i(t, n) {\n null == n && (n = {}), i.__super__.constructor.apply(this, arguments), this.attributes = e.Hash.box(n);\n }\n return t(i, n), i.types = {}, i.registerType = function (t, e) {\n return e.type = t, this.types[t] = e;\n }, i.fromJSON = function (t) {\n var e;\n return (e = this.types[t.type]) ? e.fromJSON(t) : void 0;\n }, i.prototype.copyWithAttributes = function (t) {\n return new this.constructor(this.getValue(), t);\n }, i.prototype.copyWithAdditionalAttributes = function (t) {\n return this.copyWithAttributes(this.attributes.merge(t));\n }, i.prototype.copyWithoutAttribute = function (t) {\n return this.copyWithAttributes(this.attributes.remove(t));\n }, i.prototype.copy = function () {\n return this.copyWithAttributes(this.attributes);\n }, i.prototype.getAttribute = function (t) {\n return this.attributes.get(t);\n }, i.prototype.getAttributesHash = function () {\n return this.attributes;\n }, i.prototype.getAttributes = function () {\n return this.attributes.toObject();\n }, i.prototype.getCommonAttributes = function () {\n var t, e, n;\n return (n = pieceList.getPieceAtIndex(0)) ? (t = n.attributes, e = t.getKeys(), pieceList.eachPiece(function (n) {\n return e = t.getKeysCommonToHash(n.attributes), t = t.slice(e);\n }), t.toObject()) : {};\n }, i.prototype.hasAttribute = function (t) {\n return this.attributes.has(t);\n }, i.prototype.hasSameStringValueAsPiece = function (t) {\n return null != t && this.toString() === t.toString();\n }, i.prototype.hasSameAttributesAsPiece = function (t) {\n return null != t && (this.attributes === t.attributes || this.attributes.isEqualTo(t.attributes));\n }, i.prototype.isBlockBreak = function () {\n return !1;\n }, i.prototype.isEqualTo = function (t) {\n return i.__super__.isEqualTo.apply(this, arguments) || this.hasSameConstructorAs(t) && this.hasSameStringValueAsPiece(t) && this.hasSameAttributesAsPiece(t);\n }, i.prototype.isEmpty = function () {\n return 0 === this.length;\n }, i.prototype.isSerializable = function () {\n return !0;\n }, i.prototype.toJSON = function () {\n return {\n type: this.constructor.type,\n attributes: this.getAttributes()\n };\n }, i.prototype.contentsForInspection = function () {\n return {\n type: this.constructor.type,\n attributes: this.attributes.inspect()\n };\n }, i.prototype.canBeGrouped = function () {\n return this.hasAttribute(\"href\");\n }, i.prototype.canBeGroupedWith = function (t) {\n return this.getAttribute(\"href\") === t.getAttribute(\"href\");\n }, i.prototype.getLength = function () {\n return this.length;\n }, i.prototype.canBeConsolidatedWith = function () {\n return !1;\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.Piece.registerType(\"attachment\", e.AttachmentPiece = function (n) {\n function i(t) {\n this.attachment = t, i.__super__.constructor.apply(this, arguments), this.length = 1, this.ensureAttachmentExclusivelyHasAttribute(\"href\"), this.attachment.hasContent() || this.removeProhibitedAttributes();\n }\n return t(i, n), i.fromJSON = function (t) {\n return new this(e.Attachment.fromJSON(t.attachment), t.attributes);\n }, i.permittedAttributes = [\"caption\", \"presentation\"], i.prototype.ensureAttachmentExclusivelyHasAttribute = function (t) {\n return this.hasAttribute(t) ? (this.attachment.hasAttribute(t) || this.attachment.setAttributes(this.attributes.slice(t)), this.attributes = this.attributes.remove(t)) : void 0;\n }, i.prototype.removeProhibitedAttributes = function () {\n var t;\n return t = this.attributes.slice(this.constructor.permittedAttributes), t.isEqualTo(this.attributes) ? void 0 : this.attributes = t;\n }, i.prototype.getValue = function () {\n return this.attachment;\n }, i.prototype.isSerializable = function () {\n return !this.attachment.isPending();\n }, i.prototype.getCaption = function () {\n var t;\n return null != (t = this.attributes.get(\"caption\")) ? t : \"\";\n }, i.prototype.isEqualTo = function (t) {\n var e;\n return i.__super__.isEqualTo.apply(this, arguments) && this.attachment.id === (null != t && null != (e = t.attachment) ? e.id : void 0);\n }, i.prototype.toString = function () {\n return e.OBJECT_REPLACEMENT_CHARACTER;\n }, i.prototype.toJSON = function () {\n var t;\n return t = i.__super__.toJSON.apply(this, arguments), t.attachment = this.attachment, t;\n }, i.prototype.getCacheKey = function () {\n return [i.__super__.getCacheKey.apply(this, arguments), this.attachment.getCacheKey()].join(\"/\");\n }, i.prototype.toConsole = function () {\n return JSON.stringify(this.toString());\n }, i;\n }(e.Piece));\n }.call(this), function () {\n var t,\n n = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var o in e) i.call(e, o) && (t[o] = e[o]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n t = e.normalizeNewlines, e.Piece.registerType(\"string\", e.StringPiece = function (e) {\n function i(e) {\n i.__super__.constructor.apply(this, arguments), this.string = t(e), this.length = this.string.length;\n }\n return n(i, e), i.fromJSON = function (t) {\n return new this(t.string, t.attributes);\n }, i.prototype.getValue = function () {\n return this.string;\n }, i.prototype.toString = function () {\n return this.string.toString();\n }, i.prototype.isBlockBreak = function () {\n return \"\\n\" === this.toString() && this.getAttribute(\"blockBreak\") === !0;\n }, i.prototype.toJSON = function () {\n var t;\n return t = i.__super__.toJSON.apply(this, arguments), t.string = this.string, t;\n }, i.prototype.canBeConsolidatedWith = function (t) {\n return null != t && this.hasSameConstructorAs(t) && this.hasSameAttributesAsPiece(t);\n }, i.prototype.consolidateWith = function (t) {\n return new this.constructor(this.toString() + t.toString(), this.attributes);\n }, i.prototype.splitAtOffset = function (t) {\n var e, n;\n return 0 === t ? (e = null, n = this) : t === this.length ? (e = this, n = null) : (e = new this.constructor(this.string.slice(0, t), this.attributes), n = new this.constructor(this.string.slice(t), this.attributes)), [e, n];\n }, i.prototype.toConsole = function () {\n var t;\n return t = this.string, t.length > 15 && (t = t.slice(0, 14) + \"\\u2026\"), JSON.stringify(t.toString());\n }, i;\n }(e.Piece));\n }.call(this), function () {\n var t,\n n = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var o in e) i.call(e, o) && (t[o] = e[o]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty,\n o = [].slice;\n t = e.spliceArray, e.SplittableList = function (e) {\n function i(t) {\n null == t && (t = []), i.__super__.constructor.apply(this, arguments), this.objects = t.slice(0), this.length = this.objects.length;\n }\n var r, s, a;\n return n(i, e), i.box = function (t) {\n return t instanceof this ? t : new this(t);\n }, i.prototype.indexOf = function (t) {\n return this.objects.indexOf(t);\n }, i.prototype.splice = function () {\n var e;\n return e = 1 <= arguments.length ? o.call(arguments, 0) : [], new this.constructor(t.apply(null, [this.objects].concat(o.call(e))));\n }, i.prototype.eachObject = function (t) {\n var e, n, i, o, r, s;\n for (r = this.objects, s = [], n = e = 0, i = r.length; i > e; n = ++e) o = r[n], s.push(t(o, n));\n return s;\n }, i.prototype.insertObjectAtIndex = function (t, e) {\n return this.splice(e, 0, t);\n }, i.prototype.insertSplittableListAtIndex = function (t, e) {\n return this.splice.apply(this, [e, 0].concat(o.call(t.objects)));\n }, i.prototype.insertSplittableListAtPosition = function (t, e) {\n var n, i, o;\n return o = this.splitObjectAtPosition(e), i = o[0], n = o[1], new this.constructor(i).insertSplittableListAtIndex(t, n);\n }, i.prototype.editObjectAtIndex = function (t, e) {\n return this.replaceObjectAtIndex(e(this.objects[t]), t);\n }, i.prototype.replaceObjectAtIndex = function (t, e) {\n return this.splice(e, 1, t);\n }, i.prototype.removeObjectAtIndex = function (t) {\n return this.splice(t, 1);\n }, i.prototype.getObjectAtIndex = function (t) {\n return this.objects[t];\n }, i.prototype.getSplittableListInRange = function (t) {\n var e, n, i, o;\n return i = this.splitObjectsAtRange(t), n = i[0], e = i[1], o = i[2], new this.constructor(n.slice(e, o + 1));\n }, i.prototype.selectSplittableList = function (t) {\n var e, n;\n return n = function () {\n var n, i, o, r;\n for (o = this.objects, r = [], n = 0, i = o.length; i > n; n++) e = o[n], t(e) && r.push(e);\n return r;\n }.call(this), new this.constructor(n);\n }, i.prototype.removeObjectsInRange = function (t) {\n var e, n, i, o;\n return i = this.splitObjectsAtRange(t), n = i[0], e = i[1], o = i[2], new this.constructor(n).splice(e, o - e + 1);\n }, i.prototype.transformObjectsInRange = function (t, e) {\n var n, i, o, r, s, a, u;\n return s = this.splitObjectsAtRange(t), r = s[0], i = s[1], a = s[2], u = function () {\n var t, s, u;\n for (u = [], n = t = 0, s = r.length; s > t; n = ++t) o = r[n], u.push(n >= i && a >= n ? e(o) : o);\n return u;\n }(), new this.constructor(u);\n }, i.prototype.splitObjectsAtRange = function (t) {\n var e, n, i, o, s, u;\n return o = this.splitObjectAtPosition(a(t)), n = o[0], e = o[1], i = o[2], s = new this.constructor(n).splitObjectAtPosition(r(t) + i), n = s[0], u = s[1], [n, e, u - 1];\n }, i.prototype.getObjectAtPosition = function (t) {\n var e, n, i;\n return i = this.findIndexAndOffsetAtPosition(t), e = i.index, n = i.offset, this.objects[e];\n }, i.prototype.splitObjectAtPosition = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n return s = this.findIndexAndOffsetAtPosition(t), e = s.index, r = s.offset, o = this.objects.slice(0), null != e ? 0 === r ? (c = e, l = 0) : (i = this.getObjectAtIndex(e), a = i.splitAtOffset(r), n = a[0], u = a[1], o.splice(e, 1, n, u), c = e + 1, l = n.getLength() - r) : (c = o.length, l = 0), [o, c, l];\n }, i.prototype.consolidate = function () {\n var t, e, n, i, o, r;\n for (i = [], o = this.objects[0], r = this.objects.slice(1), t = 0, e = r.length; e > t; t++) n = r[t], (\"function\" == typeof o.canBeConsolidatedWith ? o.canBeConsolidatedWith(n) : void 0) ? o = o.consolidateWith(n) : (i.push(o), o = n);\n return null != o && i.push(o), new this.constructor(i);\n }, i.prototype.consolidateFromIndexToIndex = function (t, e) {\n var n, i, r;\n return i = this.objects.slice(0), r = i.slice(t, e + 1), n = new this.constructor(r).consolidate().toArray(), this.splice.apply(this, [t, r.length].concat(o.call(n)));\n }, i.prototype.findIndexAndOffsetAtPosition = function (t) {\n var e, n, i, o, r, s, a;\n for (e = 0, a = this.objects, i = n = 0, o = a.length; o > n; i = ++n) {\n if (s = a[i], r = e + s.getLength(), t >= e && r > t) return {\n index: i,\n offset: t - e\n };\n e = r;\n }\n return {\n index: null,\n offset: null\n };\n }, i.prototype.findPositionAtIndexAndOffset = function (t, e) {\n var n, i, o, r, s, a;\n for (s = 0, a = this.objects, n = i = 0, o = a.length; o > i; n = ++i) if (r = a[n], t > n) s += r.getLength();else if (n === t) {\n s += e;\n break;\n }\n return s;\n }, i.prototype.getEndPosition = function () {\n var t, e;\n return null != this.endPosition ? this.endPosition : this.endPosition = function () {\n var n, i, o;\n for (e = 0, o = this.objects, n = 0, i = o.length; i > n; n++) t = o[n], e += t.getLength();\n return e;\n }.call(this);\n }, i.prototype.toString = function () {\n return this.objects.join(\"\");\n }, i.prototype.toArray = function () {\n return this.objects.slice(0);\n }, i.prototype.toJSON = function () {\n return this.toArray();\n }, i.prototype.isEqualTo = function (t) {\n return i.__super__.isEqualTo.apply(this, arguments) || s(this.objects, null != t ? t.objects : void 0);\n }, s = function (t, e) {\n var n, i, o, r, s;\n if (null == e && (e = []), t.length !== e.length) return !1;\n for (s = !0, i = n = 0, o = t.length; o > n; i = ++n) r = t[i], s && !r.isEqualTo(e[i]) && (s = !1);\n return s;\n }, i.prototype.contentsForInspection = function () {\n var t;\n return {\n objects: \"[\" + function () {\n var e, n, i, o;\n for (i = this.objects, o = [], e = 0, n = i.length; n > e; e++) t = i[e], o.push(t.inspect());\n return o;\n }.call(this).join(\", \") + \"]\"\n };\n }, a = function (t) {\n return t[0];\n }, r = function (t) {\n return t[1];\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.Text = function (n) {\n function i(t) {\n var n;\n null == t && (t = []), i.__super__.constructor.apply(this, arguments), this.pieceList = new e.SplittableList(function () {\n var e, i, o;\n for (o = [], e = 0, i = t.length; i > e; e++) n = t[e], n.isEmpty() || o.push(n);\n return o;\n }());\n }\n return t(i, n), i.textForAttachmentWithAttributes = function (t, n) {\n var i;\n return i = new e.AttachmentPiece(t, n), new this([i]);\n }, i.textForStringWithAttributes = function (t, n) {\n var i;\n return i = new e.StringPiece(t, n), new this([i]);\n }, i.fromJSON = function (t) {\n var n, i;\n return i = function () {\n var i, o, r;\n for (r = [], i = 0, o = t.length; o > i; i++) n = t[i], r.push(e.Piece.fromJSON(n));\n return r;\n }(), new this(i);\n }, i.prototype.copy = function () {\n return this.copyWithPieceList(this.pieceList);\n }, i.prototype.copyWithPieceList = function (t) {\n return new this.constructor(t.consolidate().toArray());\n }, i.prototype.copyUsingObjectMap = function (t) {\n var e, n;\n return n = function () {\n var n, i, o, r, s;\n for (o = this.getPieces(), s = [], n = 0, i = o.length; i > n; n++) e = o[n], s.push(null != (r = t.find(e)) ? r : e);\n return s;\n }.call(this), new this.constructor(n);\n }, i.prototype.appendText = function (t) {\n return this.insertTextAtPosition(t, this.getLength());\n }, i.prototype.insertTextAtPosition = function (t, e) {\n return this.copyWithPieceList(this.pieceList.insertSplittableListAtPosition(t.pieceList, e));\n }, i.prototype.removeTextAtRange = function (t) {\n return this.copyWithPieceList(this.pieceList.removeObjectsInRange(t));\n }, i.prototype.replaceTextAtRange = function (t, e) {\n return this.removeTextAtRange(e).insertTextAtPosition(t, e[0]);\n }, i.prototype.moveTextFromRangeToPosition = function (t, e) {\n var n, i;\n if (!(t[0] <= e && e <= t[1])) return i = this.getTextAtRange(t), n = i.getLength(), t[0] < e && (e -= n), this.removeTextAtRange(t).insertTextAtPosition(i, e);\n }, i.prototype.addAttributeAtRange = function (t, e, n) {\n var i;\n return i = {}, i[t] = e, this.addAttributesAtRange(i, n);\n }, i.prototype.addAttributesAtRange = function (t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n return e.copyWithAdditionalAttributes(t);\n }));\n }, i.prototype.removeAttributeAtRange = function (t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n return e.copyWithoutAttribute(t);\n }));\n }, i.prototype.setAttributesAtRange = function (t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n return e.copyWithAttributes(t);\n }));\n }, i.prototype.getAttributesAtPosition = function (t) {\n var e, n;\n return null != (e = null != (n = this.pieceList.getObjectAtPosition(t)) ? n.getAttributes() : void 0) ? e : {};\n }, i.prototype.getCommonAttributes = function () {\n var t, n;\n return t = function () {\n var t, e, i, o;\n for (i = this.pieceList.toArray(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], o.push(n.getAttributes());\n return o;\n }.call(this), e.Hash.fromCommonAttributesOfObjects(t).toObject();\n }, i.prototype.getCommonAttributesAtRange = function (t) {\n var e;\n return null != (e = this.getTextAtRange(t).getCommonAttributes()) ? e : {};\n }, i.prototype.getExpandedRangeForAttributeAtOffset = function (t, e) {\n var n, i, o;\n for (n = o = e, i = this.getLength(); n > 0 && this.getCommonAttributesAtRange([n - 1, o])[t];) n--;\n for (; i > o && this.getCommonAttributesAtRange([e, o + 1])[t];) o++;\n return [n, o];\n }, i.prototype.getTextAtRange = function (t) {\n return this.copyWithPieceList(this.pieceList.getSplittableListInRange(t));\n }, i.prototype.getStringAtRange = function (t) {\n return this.pieceList.getSplittableListInRange(t).toString();\n }, i.prototype.getStringAtPosition = function (t) {\n return this.getStringAtRange([t, t + 1]);\n }, i.prototype.startsWithString = function (t) {\n return this.getStringAtRange([0, t.length]) === t;\n }, i.prototype.endsWithString = function (t) {\n var e;\n return e = this.getLength(), this.getStringAtRange([e - t.length, e]) === t;\n }, i.prototype.getAttachmentPieces = function () {\n var t, e, n, i, o;\n for (i = this.pieceList.toArray(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], null != n.attachment && o.push(n);\n return o;\n }, i.prototype.getAttachments = function () {\n var t, e, n, i, o;\n for (i = this.getAttachmentPieces(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], o.push(n.attachment);\n return o;\n }, i.prototype.getAttachmentAndPositionById = function (t) {\n var e, n, i, o, r, s;\n for (o = 0, r = this.pieceList.toArray(), e = 0, n = r.length; n > e; e++) {\n if (i = r[e], (null != (s = i.attachment) ? s.id : void 0) === t) return {\n attachment: i.attachment,\n position: o\n };\n o += i.length;\n }\n return {\n attachment: null,\n position: null\n };\n }, i.prototype.getAttachmentById = function (t) {\n var e, n, i;\n return i = this.getAttachmentAndPositionById(t), e = i.attachment, n = i.position, e;\n }, i.prototype.getRangeOfAttachment = function (t) {\n var e, n;\n return n = this.getAttachmentAndPositionById(t.id), t = n.attachment, e = n.position, null != t ? [e, e + 1] : void 0;\n }, i.prototype.updateAttributesForAttachment = function (t, e) {\n var n;\n return (n = this.getRangeOfAttachment(e)) ? this.addAttributesAtRange(t, n) : this;\n }, i.prototype.getLength = function () {\n return this.pieceList.getEndPosition();\n }, i.prototype.isEmpty = function () {\n return 0 === this.getLength();\n }, i.prototype.isEqualTo = function (t) {\n var e;\n return i.__super__.isEqualTo.apply(this, arguments) || (null != t && null != (e = t.pieceList) ? e.isEqualTo(this.pieceList) : void 0);\n }, i.prototype.isBlockBreak = function () {\n return 1 === this.getLength() && this.pieceList.getObjectAtIndex(0).isBlockBreak();\n }, i.prototype.eachPiece = function (t) {\n return this.pieceList.eachObject(t);\n }, i.prototype.getPieces = function () {\n return this.pieceList.toArray();\n }, i.prototype.getPieceAtPosition = function (t) {\n return this.pieceList.getObjectAtPosition(t);\n }, i.prototype.contentsForInspection = function () {\n return {\n pieceList: this.pieceList.inspect()\n };\n }, i.prototype.toSerializableText = function () {\n var t;\n return t = this.pieceList.selectSplittableList(function (t) {\n return t.isSerializable();\n }), this.copyWithPieceList(t);\n }, i.prototype.toString = function () {\n return this.pieceList.toString();\n }, i.prototype.toJSON = function () {\n return this.pieceList.toJSON();\n }, i.prototype.toConsole = function () {\n var t;\n return JSON.stringify(function () {\n var e, n, i, o;\n for (i = this.pieceList.toArray(), o = [], e = 0, n = i.length; n > e; e++) t = i[e], o.push(JSON.parse(t.toConsole()));\n return o;\n }.call(this));\n }, i.prototype.getDirection = function () {\n return e.getDirection(this.toString());\n }, i.prototype.isRTL = function () {\n return \"rtl\" === this.getDirection();\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) a.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n a = {}.hasOwnProperty,\n u = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n },\n c = [].slice;\n t = e.arraysAreEqual, r = e.spliceArray, i = e.getBlockConfig, n = e.getBlockAttributeNames, o = e.getListAttributeNames, e.Block = function (n) {\n function a(t, n) {\n null == t && (t = new e.Text()), null == n && (n = []), a.__super__.constructor.apply(this, arguments), this.text = h(t), this.attributes = n;\n }\n var l, h, p, d, f, g, m, v, y;\n return s(a, n), a.fromJSON = function (t) {\n var n;\n return n = e.Text.fromJSON(t.text), new this(n, t.attributes);\n }, a.prototype.isEmpty = function () {\n return this.text.isBlockBreak();\n }, a.prototype.isEqualTo = function (e) {\n return a.__super__.isEqualTo.apply(this, arguments) || this.text.isEqualTo(null != e ? e.text : void 0) && t(this.attributes, null != e ? e.attributes : void 0);\n }, a.prototype.copyWithText = function (t) {\n return new this.constructor(t, this.attributes);\n }, a.prototype.copyWithoutText = function () {\n return this.copyWithText(null);\n }, a.prototype.copyWithAttributes = function (t) {\n return new this.constructor(this.text, t);\n }, a.prototype.copyWithoutAttributes = function () {\n return this.copyWithAttributes(null);\n }, a.prototype.copyUsingObjectMap = function (t) {\n var e;\n return this.copyWithText((e = t.find(this.text)) ? e : this.text.copyUsingObjectMap(t));\n }, a.prototype.addAttribute = function (t) {\n var e;\n return e = this.attributes.concat(d(t)), this.copyWithAttributes(e);\n }, a.prototype.removeAttribute = function (t) {\n var e, n;\n return n = i(t).listAttribute, e = g(g(this.attributes, t), n), this.copyWithAttributes(e);\n }, a.prototype.removeLastAttribute = function () {\n return this.removeAttribute(this.getLastAttribute());\n }, a.prototype.getLastAttribute = function () {\n return f(this.attributes);\n }, a.prototype.getAttributes = function () {\n return this.attributes.slice(0);\n }, a.prototype.getAttributeLevel = function () {\n return this.attributes.length;\n }, a.prototype.getAttributeAtLevel = function (t) {\n return this.attributes[t - 1];\n }, a.prototype.hasAttribute = function (t) {\n return u.call(this.attributes, t) >= 0;\n }, a.prototype.hasAttributes = function () {\n return this.getAttributeLevel() > 0;\n }, a.prototype.getLastNestableAttribute = function () {\n return f(this.getNestableAttributes());\n }, a.prototype.getNestableAttributes = function () {\n var t, e, n, o, r;\n for (o = this.attributes, r = [], e = 0, n = o.length; n > e; e++) t = o[e], i(t).nestable && r.push(t);\n return r;\n }, a.prototype.getNestingLevel = function () {\n return this.getNestableAttributes().length;\n }, a.prototype.decreaseNestingLevel = function () {\n var t;\n return (t = this.getLastNestableAttribute()) ? this.removeAttribute(t) : this;\n }, a.prototype.increaseNestingLevel = function () {\n var t, e, n;\n return (t = this.getLastNestableAttribute()) ? (n = this.attributes.lastIndexOf(t), e = r.apply(null, [this.attributes, n + 1, 0].concat(c.call(d(t)))), this.copyWithAttributes(e)) : this;\n }, a.prototype.getListItemAttributes = function () {\n var t, e, n, o, r;\n for (o = this.attributes, r = [], e = 0, n = o.length; n > e; e++) t = o[e], i(t).listAttribute && r.push(t);\n return r;\n }, a.prototype.isListItem = function () {\n var t;\n return null != (t = i(this.getLastAttribute())) ? t.listAttribute : void 0;\n }, a.prototype.isTerminalBlock = function () {\n var t;\n return null != (t = i(this.getLastAttribute())) ? t.terminal : void 0;\n }, a.prototype.breaksOnReturn = function () {\n var t;\n return null != (t = i(this.getLastAttribute())) ? t.breakOnReturn : void 0;\n }, a.prototype.findLineBreakInDirectionFromPosition = function (t, e) {\n var n, i;\n return i = this.toString(), n = function () {\n switch (t) {\n case \"forward\":\n return i.indexOf(\"\\n\", e);\n case \"backward\":\n return i.slice(0, e).lastIndexOf(\"\\n\");\n }\n }(), -1 !== n ? n : void 0;\n }, a.prototype.contentsForInspection = function () {\n return {\n text: this.text.inspect(),\n attributes: this.attributes\n };\n }, a.prototype.toString = function () {\n return this.text.toString();\n }, a.prototype.toJSON = function () {\n return {\n text: this.text,\n attributes: this.attributes\n };\n }, a.prototype.getDirection = function () {\n return this.text.getDirection();\n }, a.prototype.isRTL = function () {\n return this.text.isRTL();\n }, a.prototype.getLength = function () {\n return this.text.getLength();\n }, a.prototype.canBeConsolidatedWith = function (t) {\n return !this.hasAttributes() && !t.hasAttributes() && this.getDirection() === t.getDirection();\n }, a.prototype.consolidateWith = function (t) {\n var n, i;\n return n = e.Text.textForStringWithAttributes(\"\\n\"), i = this.getTextWithoutBlockBreak().appendText(n), this.copyWithText(i.appendText(t.text));\n }, a.prototype.splitAtOffset = function (t) {\n var e, n;\n return 0 === t ? (e = null, n = this) : t === this.getLength() ? (e = this, n = null) : (e = this.copyWithText(this.text.getTextAtRange([0, t])), n = this.copyWithText(this.text.getTextAtRange([t, this.getLength()]))), [e, n];\n }, a.prototype.getBlockBreakPosition = function () {\n return this.text.getLength() - 1;\n }, a.prototype.getTextWithoutBlockBreak = function () {\n return m(this.text) ? this.text.getTextAtRange([0, this.getBlockBreakPosition()]) : this.text.copy();\n }, a.prototype.canBeGrouped = function (t) {\n return this.attributes[t];\n }, a.prototype.canBeGroupedWith = function (t, e) {\n var n, r, s, a;\n return s = t.getAttributes(), r = s[e], n = this.attributes[e], !(n !== r || i(n).group === !1 && (a = s[e + 1], u.call(o(), a) < 0) || this.getDirection() !== t.getDirection() && !t.isEmpty());\n }, h = function (t) {\n return t = y(t), t = l(t);\n }, y = function (t) {\n var n, i, o, r, s, a;\n return r = !1, a = t.getPieces(), i = 2 <= a.length ? c.call(a, 0, n = a.length - 1) : (n = 0, []), o = a[n++], null == o ? t : (i = function () {\n var t, e, n;\n for (n = [], t = 0, e = i.length; e > t; t++) s = i[t], s.isBlockBreak() ? (r = !0, n.push(v(s))) : n.push(s);\n return n;\n }(), r ? new e.Text(c.call(i).concat([o])) : t);\n }, p = e.Text.textForStringWithAttributes(\"\\n\", {\n blockBreak: !0\n }), l = function (t) {\n return m(t) ? t : t.appendText(p);\n }, m = function (t) {\n var e, n;\n return n = t.getLength(), 0 === n ? !1 : (e = t.getTextAtRange([n - 1, n]), e.isBlockBreak());\n }, v = function (t) {\n return t.copyWithoutAttribute(\"blockBreak\");\n }, d = function (t) {\n var e;\n return e = i(t).listAttribute, null != e ? [e, t] : [t];\n }, f = function (t) {\n return t.slice(-1)[0];\n }, g = function (t, e) {\n var n;\n return n = t.lastIndexOf(e), -1 === n ? t : r(t, n, 1);\n }, a;\n }(e.Object);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) r.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty,\n s = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n },\n a = [].slice;\n n = e.tagName, i = e.walkTree, t = e.nodeIsAttachmentElement, e.HTMLSanitizer = function (r) {\n function u(t, e) {\n var n;\n n = null != e ? e : {}, this.allowedAttributes = n.allowedAttributes, this.forbiddenProtocols = n.forbiddenProtocols, this.forbiddenElements = n.forbiddenElements, null == this.allowedAttributes && (this.allowedAttributes = c), null == this.forbiddenProtocols && (this.forbiddenProtocols = h), null == this.forbiddenElements && (this.forbiddenElements = l), this.body = p(t);\n }\n var c, l, h, p;\n return o(u, r), c = \"style href src width height class\".split(\" \"), h = \"javascript:\".split(\" \"), l = \"script iframe\".split(\" \"), u.sanitize = function (t, e) {\n var n;\n return n = new this(t, e), n.sanitize(), n;\n }, u.prototype.sanitize = function () {\n return this.sanitizeElements(), this.normalizeListElementNesting();\n }, u.prototype.getHTML = function () {\n return this.body.innerHTML;\n }, u.prototype.getBody = function () {\n return this.body;\n }, u.prototype.sanitizeElements = function () {\n var t, n, o, r, s;\n for (s = i(this.body), r = []; s.nextNode();) switch (o = s.currentNode, o.nodeType) {\n case Node.ELEMENT_NODE:\n this.elementIsRemovable(o) ? r.push(o) : this.sanitizeElement(o);\n break;\n case Node.COMMENT_NODE:\n r.push(o);\n }\n for (t = 0, n = r.length; n > t; t++) o = r[t], e.removeNode(o);\n return this.body;\n }, u.prototype.sanitizeElement = function (t) {\n var e, n, i, o, r;\n for (t.hasAttribute(\"href\") && (o = t.protocol, s.call(this.forbiddenProtocols, o) >= 0 && t.removeAttribute(\"href\")), r = a.call(t.attributes), e = 0, n = r.length; n > e; e++) i = r[e].name, s.call(this.allowedAttributes, i) >= 0 || 0 === i.indexOf(\"data-trix\") || t.removeAttribute(i);\n return t;\n }, u.prototype.normalizeListElementNesting = function () {\n var t, e, i, o, r;\n for (r = a.call(this.body.querySelectorAll(\"ul,ol\")), t = 0, e = r.length; e > t; t++) i = r[t], (o = i.previousElementSibling) && \"li\" === n(o) && o.appendChild(i);\n return this.body;\n }, u.prototype.elementIsRemovable = function (t) {\n return (null != t ? t.nodeType : void 0) === Node.ELEMENT_NODE ? this.elementIsForbidden(t) || this.elementIsntSerializable(t) : void 0;\n }, u.prototype.elementIsForbidden = function (t) {\n var e;\n return e = n(t), s.call(this.forbiddenElements, e) >= 0;\n }, u.prototype.elementIsntSerializable = function (e) {\n return \"false\" === e.getAttribute(\"data-trix-serialize\") && !t(e);\n }, p = function (t) {\n var e, n, i, o, r;\n for (null == t && (t = \"\"), t = t.replace(/<\\/html[^>]*>[^]*$/i, \"\"), e = document.implementation.createHTMLDocument(\"\"), e.documentElement.innerHTML = t, r = e.head.querySelectorAll(\"style\"), i = 0, o = r.length; o > i; i++) n = r[i], e.body.appendChild(n);\n return e.body;\n }, u;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h,\n p = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) d.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n d = {}.hasOwnProperty,\n f = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n };\n t = e.arraysAreEqual, s = e.makeElement, l = e.tagName, r = e.getBlockTagNames, h = e.walkTree, o = e.findClosestElementFromNode, i = e.elementContainsNode, a = e.nodeIsAttachmentElement, u = e.normalizeSpaces, n = e.breakableWhitespacePattern, c = e.squishBreakableWhitespace, e.HTMLParser = function (d) {\n function g(t, e) {\n this.html = t, this.referenceElement = (null != e ? e : {}).referenceElement, this.blocks = [], this.blockElements = [], this.processedElements = [];\n }\n var m, v, y, b, A, C, x, w, E, S, R, k;\n return p(g, d), g.parse = function (t, e) {\n var n;\n return n = new this(t, e), n.parse(), n;\n }, g.prototype.getDocument = function () {\n return e.Document.fromJSON(this.blocks);\n }, g.prototype.parse = function () {\n var t, n;\n try {\n for (this.createHiddenContainer(), t = e.HTMLSanitizer.sanitize(this.html).getHTML(), this.containerElement.innerHTML = t, n = h(this.containerElement, {\n usingFilter: x\n }); n.nextNode();) this.processNode(n.currentNode);\n return this.translateBlockElementMarginsToNewlines();\n } finally {\n this.removeHiddenContainer();\n }\n }, g.prototype.createHiddenContainer = function () {\n return this.referenceElement ? (this.containerElement = this.referenceElement.cloneNode(!1), this.containerElement.removeAttribute(\"id\"), this.containerElement.setAttribute(\"data-trix-internal\", \"\"), this.containerElement.style.display = \"none\", this.referenceElement.parentNode.insertBefore(this.containerElement, this.referenceElement.nextSibling)) : (this.containerElement = s({\n tagName: \"div\",\n style: {\n display: \"none\"\n }\n }), document.body.appendChild(this.containerElement));\n }, g.prototype.removeHiddenContainer = function () {\n return e.removeNode(this.containerElement);\n }, x = function (t) {\n return \"style\" === l(t) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, g.prototype.processNode = function (t) {\n switch (t.nodeType) {\n case Node.TEXT_NODE:\n if (!this.isInsignificantTextNode(t)) return this.appendBlockForTextNode(t), this.processTextNode(t);\n break;\n case Node.ELEMENT_NODE:\n return this.appendBlockForElement(t), this.processElement(t);\n }\n }, g.prototype.appendBlockForTextNode = function (e) {\n var n, i, o;\n return i = e.parentNode, i === this.currentBlockElement && this.isBlockElement(e.previousSibling) ? this.appendStringWithAttributes(\"\\n\") : i !== this.containerElement && !this.isBlockElement(i) || (n = this.getBlockAttributes(i), t(n, null != (o = this.currentBlock) ? o.attributes : void 0)) ? void 0 : (this.currentBlock = this.appendBlockForAttributesWithElement(n, i), this.currentBlockElement = i);\n }, g.prototype.appendBlockForElement = function (e) {\n var n, o, r, s;\n if (r = this.isBlockElement(e), o = i(this.currentBlockElement, e), r && !this.isBlockElement(e.firstChild)) {\n if ((!this.isInsignificantTextNode(e.firstChild) || !this.isBlockElement(e.firstElementChild)) && (n = this.getBlockAttributes(e), e.firstChild)) return o && t(n, this.currentBlock.attributes) ? this.appendStringWithAttributes(\"\\n\") : (this.currentBlock = this.appendBlockForAttributesWithElement(n, e), this.currentBlockElement = e);\n } else if (this.currentBlockElement && !o && !r) return (s = this.findParentBlockElement(e)) ? this.appendBlockForElement(s) : (this.currentBlock = this.appendEmptyBlock(), this.currentBlockElement = null);\n }, g.prototype.findParentBlockElement = function (t) {\n var e;\n for (e = t.parentElement; e && e !== this.containerElement;) {\n if (this.isBlockElement(e) && f.call(this.blockElements, e) >= 0) return e;\n e = e.parentElement;\n }\n return null;\n }, g.prototype.processTextNode = function (t) {\n var e, n;\n return n = t.data, v(t.parentNode) || (n = c(n), R(null != (e = t.previousSibling) ? e.textContent : void 0) && (n = A(n))), this.appendStringWithAttributes(n, this.getTextAttributes(t.parentNode));\n }, g.prototype.processElement = function (t) {\n var e, n, i, o, r;\n if (a(t)) return e = w(t, \"attachment\"), Object.keys(e).length && (o = this.getTextAttributes(t), this.appendAttachmentWithAttributes(e, o), t.innerHTML = \"\"), this.processedElements.push(t);\n switch (l(t)) {\n case \"br\":\n return this.isExtraBR(t) || this.isBlockElement(t.nextSibling) || this.appendStringWithAttributes(\"\\n\", this.getTextAttributes(t)), this.processedElements.push(t);\n case \"img\":\n e = {\n url: t.getAttribute(\"src\"),\n contentType: \"image\"\n }, i = b(t);\n for (n in i) r = i[n], e[n] = r;\n return this.appendAttachmentWithAttributes(e, this.getTextAttributes(t)), this.processedElements.push(t);\n case \"tr\":\n if (t.parentNode.firstChild !== t) return this.appendStringWithAttributes(\"\\n\");\n break;\n case \"td\":\n if (t.parentNode.firstChild !== t) return this.appendStringWithAttributes(\" | \");\n }\n }, g.prototype.appendBlockForAttributesWithElement = function (t, e) {\n var n;\n return this.blockElements.push(e), n = m(t), this.blocks.push(n), n;\n }, g.prototype.appendEmptyBlock = function () {\n return this.appendBlockForAttributesWithElement([], null);\n }, g.prototype.appendStringWithAttributes = function (t, e) {\n return this.appendPiece(S(t, e));\n }, g.prototype.appendAttachmentWithAttributes = function (t, e) {\n return this.appendPiece(E(t, e));\n }, g.prototype.appendPiece = function (t) {\n return 0 === this.blocks.length && this.appendEmptyBlock(), this.blocks[this.blocks.length - 1].text.push(t);\n }, g.prototype.appendStringToTextAtIndex = function (t, e) {\n var n, i;\n return i = this.blocks[e].text, n = i[i.length - 1], \"string\" === (null != n ? n.type : void 0) ? n.string += t : i.push(S(t));\n }, g.prototype.prependStringToTextAtIndex = function (t, e) {\n var n, i;\n return i = this.blocks[e].text, n = i[0], \"string\" === (null != n ? n.type : void 0) ? n.string = t + n.string : i.unshift(S(t));\n }, S = function (t, e) {\n var n;\n return null == e && (e = {}), n = \"string\", t = u(t), {\n string: t,\n attributes: e,\n type: n\n };\n }, E = function (t, e) {\n var n;\n return null == e && (e = {}), n = \"attachment\", {\n attachment: t,\n attributes: e,\n type: n\n };\n }, m = function (t) {\n var e;\n return null == t && (t = {}), e = [], {\n text: e,\n attributes: t\n };\n }, g.prototype.getTextAttributes = function (t) {\n var n, i, r, s, u, c, l, h, p, d, f, g;\n r = {}, p = e.config.textAttributes;\n for (n in p) if (u = p[n], u.tagName && o(t, {\n matchingSelector: u.tagName,\n untilNode: this.containerElement\n })) r[n] = !0;else if (u.parser) {\n if (g = u.parser(t)) {\n for (i = !1, d = this.findBlockElementAncestors(t), c = 0, h = d.length; h > c; c++) if (s = d[c], u.parser(s) === g) {\n i = !0;\n break;\n }\n i || (r[n] = g);\n }\n } else u.styleProperty && (g = t.style[u.styleProperty]) && (r[n] = g);\n if (a(t)) {\n f = w(t, \"attributes\");\n for (l in f) g = f[l], r[l] = g;\n }\n return r;\n }, g.prototype.getBlockAttributes = function (t) {\n var n, i, o, r;\n for (i = []; t && t !== this.containerElement;) {\n r = e.config.blockAttributes;\n for (n in r) o = r[n], o.parse !== !1 && l(t) === o.tagName && ((\"function\" == typeof o.test ? o.test(t) : void 0) || !o.test) && (i.push(n), o.listAttribute && i.push(o.listAttribute));\n t = t.parentNode;\n }\n return i.reverse();\n }, g.prototype.findBlockElementAncestors = function (t) {\n var e, n;\n for (e = []; t && t !== this.containerElement;) n = l(t), f.call(r(), n) >= 0 && e.push(t), t = t.parentNode;\n return e;\n }, w = function (t, e) {\n try {\n return JSON.parse(t.getAttribute(\"data-trix-\" + e));\n } catch (n) {\n return {};\n }\n }, b = function (t) {\n var e, n, i;\n return i = t.getAttribute(\"width\"), n = t.getAttribute(\"height\"), e = {}, i && (e.width = parseInt(i, 10)), n && (e.height = parseInt(n, 10)), e;\n }, g.prototype.isBlockElement = function (t) {\n var e;\n if ((null != t ? t.nodeType : void 0) === Node.ELEMENT_NODE && !a(t) && !o(t, {\n matchingSelector: \"td\",\n untilNode: this.containerElement\n })) return e = l(t), f.call(r(), e) >= 0 || \"block\" === window.getComputedStyle(t).display;\n }, g.prototype.isInsignificantTextNode = function (t) {\n var e, n, i;\n if ((null != t ? t.nodeType : void 0) === Node.TEXT_NODE && k(t.data) && (n = t.parentNode, i = t.previousSibling, e = t.nextSibling, (!C(n.previousSibling) || this.isBlockElement(n.previousSibling)) && !v(n))) return !i || this.isBlockElement(i) || !e || this.isBlockElement(e);\n }, g.prototype.isExtraBR = function (t) {\n return \"br\" === l(t) && this.isBlockElement(t.parentNode) && t.parentNode.lastChild === t;\n }, v = function (t) {\n var e;\n return e = window.getComputedStyle(t).whiteSpace, \"pre\" === e || \"pre-wrap\" === e || \"pre-line\" === e;\n }, C = function (t) {\n return t && !R(t.textContent);\n }, g.prototype.translateBlockElementMarginsToNewlines = function () {\n var t, e, n, i, o, r, s, a;\n for (e = this.getMarginOfDefaultBlockElement(), s = this.blocks, a = [], i = n = 0, o = s.length; o > n; i = ++n) t = s[i], (r = this.getMarginOfBlockElementAtIndex(i)) && (r.top > 2 * e.top && this.prependStringToTextAtIndex(\"\\n\", i), a.push(r.bottom > 2 * e.bottom ? this.appendStringToTextAtIndex(\"\\n\", i) : void 0));\n return a;\n }, g.prototype.getMarginOfBlockElementAtIndex = function (t) {\n var e, n;\n return !(e = this.blockElements[t]) || !e.textContent || (n = l(e), f.call(r(), n) >= 0 || f.call(this.processedElements, e) >= 0) ? void 0 : y(e);\n }, g.prototype.getMarginOfDefaultBlockElement = function () {\n var t;\n return t = s(e.config.blockAttributes[\"default\"].tagName), this.containerElement.appendChild(t), y(t);\n }, y = function (t) {\n var e;\n return e = window.getComputedStyle(t), \"block\" === e.display ? {\n top: parseInt(e.marginTop),\n bottom: parseInt(e.marginBottom)\n } : void 0;\n }, A = function (t) {\n return t.replace(RegExp(\"^\" + n.source + \"+\"), \"\");\n }, k = function (t) {\n return RegExp(\"^\" + n.source + \"*$\").test(t);\n }, R = function (t) {\n return /\\s$/.test(t);\n }, g;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) s.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].slice,\n u = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n };\n t = e.arraysAreEqual, i = e.normalizeRange, o = e.rangeIsCollapsed, n = e.getBlockConfig, e.Document = function (s) {\n function c(t) {\n null == t && (t = []), c.__super__.constructor.apply(this, arguments), 0 === t.length && (t = [new e.Block()]), this.blockList = e.SplittableList.box(t);\n }\n var l;\n return r(c, s), c.fromJSON = function (t) {\n var n, i;\n return i = function () {\n var i, o, r;\n for (r = [], i = 0, o = t.length; o > i; i++) n = t[i], r.push(e.Block.fromJSON(n));\n return r;\n }(), new this(i);\n }, c.fromHTML = function (t, n) {\n return e.HTMLParser.parse(t, n).getDocument();\n }, c.fromString = function (t, n) {\n var i;\n return i = e.Text.textForStringWithAttributes(t, n), new this([new e.Block(i)]);\n }, c.prototype.isEmpty = function () {\n var t;\n return 1 === this.blockList.length && (t = this.getBlockAtIndex(0), t.isEmpty() && !t.hasAttributes());\n }, c.prototype.copy = function (t) {\n var e;\n return null == t && (t = {}), e = t.consolidateBlocks ? this.blockList.consolidate().toArray() : this.blockList.toArray(), new this.constructor(e);\n }, c.prototype.copyUsingObjectsFromDocument = function (t) {\n var n;\n return n = new e.ObjectMap(t.getObjects()), this.copyUsingObjectMap(n);\n }, c.prototype.copyUsingObjectMap = function (t) {\n var e, n, i;\n return n = function () {\n var n, o, r, s;\n for (r = this.getBlocks(), s = [], n = 0, o = r.length; o > n; n++) e = r[n], s.push((i = t.find(e)) ? i : e.copyUsingObjectMap(t));\n return s;\n }.call(this), new this.constructor(n);\n }, c.prototype.copyWithBaseBlockAttributes = function (t) {\n var e, n, i;\n return null == t && (t = []), i = function () {\n var i, o, r, s;\n for (r = this.getBlocks(), s = [], i = 0, o = r.length; o > i; i++) n = r[i], e = t.concat(n.getAttributes()), s.push(n.copyWithAttributes(e));\n return s;\n }.call(this), new this.constructor(i);\n }, c.prototype.replaceBlock = function (t, e) {\n var n;\n return n = this.blockList.indexOf(t), -1 === n ? this : new this.constructor(this.blockList.replaceObjectAtIndex(e, n));\n }, c.prototype.insertDocumentAtRange = function (t, e) {\n var n, r, s, a, u, c, l;\n return r = t.blockList, u = (e = i(e))[0], c = this.locationFromPosition(u), s = c.index, a = c.offset, l = this, n = this.getBlockAtPosition(u), o(e) && n.isEmpty() && !n.hasAttributes() ? l = new this.constructor(l.blockList.removeObjectAtIndex(s)) : n.getBlockBreakPosition() === a && u++, l = l.removeTextAtRange(e), new this.constructor(l.blockList.insertSplittableListAtPosition(r, u));\n }, c.prototype.mergeDocumentAtRange = function (e, n) {\n var o, r, s, a, u, c, l, h, p, d, f, g;\n return f = (n = i(n))[0], d = this.locationFromPosition(f), r = this.getBlockAtIndex(d.index).getAttributes(), o = e.getBaseBlockAttributes(), g = r.slice(-o.length), t(o, g) ? (l = r.slice(0, -o.length), c = e.copyWithBaseBlockAttributes(l)) : c = e.copy({\n consolidateBlocks: !0\n }).copyWithBaseBlockAttributes(r), s = c.getBlockCount(), a = c.getBlockAtIndex(0), t(r, a.getAttributes()) ? (u = a.getTextWithoutBlockBreak(), p = this.insertTextAtRange(u, n), s > 1 && (c = new this.constructor(c.getBlocks().slice(1)), h = f + u.getLength(), p = p.insertDocumentAtRange(c, h))) : p = this.insertDocumentAtRange(c, n), p;\n }, c.prototype.insertTextAtRange = function (t, e) {\n var n, o, r, s, a;\n return a = (e = i(e))[0], s = this.locationFromPosition(a), o = s.index, r = s.offset, n = this.removeTextAtRange(e), new this.constructor(n.blockList.editObjectAtIndex(o, function (e) {\n return e.copyWithText(e.text.insertTextAtPosition(t, r));\n }));\n }, c.prototype.removeTextAtRange = function (t) {\n var e, n, r, s, a, u, c, l, h, p, d, f, g, m, v, y, b, A, C, x, w;\n return p = t = i(t), l = p[0], A = p[1], o(t) ? this : (d = this.locationRangeFromRange(t), u = d[0], y = d[1], a = u.index, c = u.offset, s = this.getBlockAtIndex(a), v = y.index, b = y.offset, m = this.getBlockAtIndex(v), f = A - l === 1 && s.getBlockBreakPosition() === c && m.getBlockBreakPosition() !== b && \"\\n\" === m.text.getStringAtPosition(b), f ? r = this.blockList.editObjectAtIndex(v, function (t) {\n return t.copyWithText(t.text.removeTextAtRange([b, b + 1]));\n }) : (h = s.text.getTextAtRange([0, c]), C = m.text.getTextAtRange([b, m.getLength()]), x = h.appendText(C), g = a !== v && 0 === c, w = g && s.getAttributeLevel() >= m.getAttributeLevel(), n = w ? m.copyWithText(x) : s.copyWithText(x), e = v + 1 - a, r = this.blockList.splice(a, e, n)), new this.constructor(r));\n }, c.prototype.moveTextFromRangeToPosition = function (t, e) {\n var n, o, r, s, u, c, l, h, p, d;\n return c = t = i(t), p = c[0], r = c[1], e >= p && r >= e ? this : (o = this.getDocumentAtRange(t), h = this.removeTextAtRange(t), u = e > p, u && (e -= o.getLength()), l = o.getBlocks(), s = l[0], n = 2 <= l.length ? a.call(l, 1) : [], 0 === n.length ? (d = s.getTextWithoutBlockBreak(), u && (e += 1)) : d = s.text, h = h.insertTextAtRange(d, e), 0 === n.length ? h : (o = new this.constructor(n), e += d.getLength(), h.insertDocumentAtRange(o, e)));\n }, c.prototype.addAttributeAtRange = function (t, e, i) {\n var o;\n return o = this.blockList, this.eachBlockAtRange(i, function (i, r, s) {\n return o = o.editObjectAtIndex(s, function () {\n return n(t) ? i.addAttribute(t, e) : r[0] === r[1] ? i : i.copyWithText(i.text.addAttributeAtRange(t, e, r));\n });\n }), new this.constructor(o);\n }, c.prototype.addAttribute = function (t, e) {\n var n;\n return n = this.blockList, this.eachBlock(function (i, o) {\n return n = n.editObjectAtIndex(o, function () {\n return i.addAttribute(t, e);\n });\n }), new this.constructor(n);\n }, c.prototype.removeAttributeAtRange = function (t, e) {\n var i;\n return i = this.blockList, this.eachBlockAtRange(e, function (e, o, r) {\n return n(t) ? i = i.editObjectAtIndex(r, function () {\n return e.removeAttribute(t);\n }) : o[0] !== o[1] ? i = i.editObjectAtIndex(r, function () {\n return e.copyWithText(e.text.removeAttributeAtRange(t, o));\n }) : void 0;\n }), new this.constructor(i);\n }, c.prototype.updateAttributesForAttachment = function (t, e) {\n var n, i, o, r;\n return o = (i = this.getRangeOfAttachment(e))[0], n = this.locationFromPosition(o).index, r = this.getTextAtIndex(n), new this.constructor(this.blockList.editObjectAtIndex(n, function (n) {\n return n.copyWithText(r.updateAttributesForAttachment(t, e));\n }));\n }, c.prototype.removeAttributeForAttachment = function (t, e) {\n var n;\n return n = this.getRangeOfAttachment(e), this.removeAttributeAtRange(t, n);\n }, c.prototype.insertBlockBreakAtRange = function (t) {\n var n, o, r, s;\n return s = (t = i(t))[0], r = this.locationFromPosition(s).offset, o = this.removeTextAtRange(t), 0 === r && (n = [new e.Block()]), new this.constructor(o.blockList.insertSplittableListAtPosition(new e.SplittableList(n), s));\n }, c.prototype.applyBlockAttributeAtRange = function (t, e, i) {\n var o, r, s, a;\n return s = this.expandRangeToLineBreaksAndSplitBlocks(i), r = s.document, i = s.range, o = n(t), o.listAttribute ? (r = r.removeLastListAttributeAtRange(i, {\n exceptAttributeName: t\n }), a = r.convertLineBreaksToBlockBreaksInRange(i), r = a.document, i = a.range) : r = o.exclusive ? r.removeBlockAttributesAtRange(i) : o.terminal ? r.removeLastTerminalAttributeAtRange(i) : r.consolidateBlocksAtRange(i), r.addAttributeAtRange(t, e, i);\n }, c.prototype.removeLastListAttributeAtRange = function (t, e) {\n var i;\n return null == e && (e = {}), i = this.blockList, this.eachBlockAtRange(t, function (t, o, r) {\n var s;\n if ((s = t.getLastAttribute()) && n(s).listAttribute && s !== e.exceptAttributeName) return i = i.editObjectAtIndex(r, function () {\n return t.removeAttribute(s);\n });\n }), new this.constructor(i);\n }, c.prototype.removeLastTerminalAttributeAtRange = function (t) {\n var e;\n return e = this.blockList, this.eachBlockAtRange(t, function (t, i, o) {\n var r;\n if ((r = t.getLastAttribute()) && n(r).terminal) return e = e.editObjectAtIndex(o, function () {\n return t.removeAttribute(r);\n });\n }), new this.constructor(e);\n }, c.prototype.removeBlockAttributesAtRange = function (t) {\n var e;\n return e = this.blockList, this.eachBlockAtRange(t, function (t, n, i) {\n return t.hasAttributes() ? e = e.editObjectAtIndex(i, function () {\n return t.copyWithoutAttributes();\n }) : void 0;\n }), new this.constructor(e);\n }, c.prototype.expandRangeToLineBreaksAndSplitBlocks = function (t) {\n var e, n, o, r, s, a, u, c, l;\n return a = t = i(t), l = a[0], r = a[1], c = this.locationFromPosition(l), o = this.locationFromPosition(r), e = this, u = e.getBlockAtIndex(c.index), null != (c.offset = u.findLineBreakInDirectionFromPosition(\"backward\", c.offset)) && (s = e.positionFromLocation(c), e = e.insertBlockBreakAtRange([s, s + 1]), o.index += 1, o.offset -= e.getBlockAtIndex(c.index).getLength(), c.index += 1), c.offset = 0, 0 === o.offset && o.index > c.index ? (o.index -= 1, o.offset = e.getBlockAtIndex(o.index).getBlockBreakPosition()) : (n = e.getBlockAtIndex(o.index), \"\\n\" === n.text.getStringAtRange([o.offset - 1, o.offset]) ? o.offset -= 1 : o.offset = n.findLineBreakInDirectionFromPosition(\"forward\", o.offset), o.offset !== n.getBlockBreakPosition() && (s = e.positionFromLocation(o), e = e.insertBlockBreakAtRange([s, s + 1]))), l = e.positionFromLocation(c), r = e.positionFromLocation(o), t = i([l, r]), {\n document: e,\n range: t\n };\n }, c.prototype.convertLineBreaksToBlockBreaksInRange = function (t) {\n var e, n, o;\n return n = (t = i(t))[0], o = this.getStringAtRange(t).slice(0, -1), e = this, o.replace(/.*?\\n/g, function (t) {\n return n += t.length, e = e.insertBlockBreakAtRange([n - 1, n]);\n }), {\n document: e,\n range: t\n };\n }, c.prototype.consolidateBlocksAtRange = function (t) {\n var e, n, o, r, s;\n return o = t = i(t), s = o[0], n = o[1], r = this.locationFromPosition(s).index, e = this.locationFromPosition(n).index, new this.constructor(this.blockList.consolidateFromIndexToIndex(r, e));\n }, c.prototype.getDocumentAtRange = function (t) {\n var e;\n return t = i(t), e = this.blockList.getSplittableListInRange(t).toArray(), new this.constructor(e);\n }, c.prototype.getStringAtRange = function (t) {\n var e, n, o;\n return o = t = i(t), n = o[o.length - 1], n !== this.getLength() && (e = -1), this.getDocumentAtRange(t).toString().slice(0, e);\n }, c.prototype.getBlockAtIndex = function (t) {\n return this.blockList.getObjectAtIndex(t);\n }, c.prototype.getBlockAtPosition = function (t) {\n var e;\n return e = this.locationFromPosition(t).index, this.getBlockAtIndex(e);\n }, c.prototype.getTextAtIndex = function (t) {\n var e;\n return null != (e = this.getBlockAtIndex(t)) ? e.text : void 0;\n }, c.prototype.getTextAtPosition = function (t) {\n var e;\n return e = this.locationFromPosition(t).index, this.getTextAtIndex(e);\n }, c.prototype.getPieceAtPosition = function (t) {\n var e, n, i;\n return i = this.locationFromPosition(t), e = i.index, n = i.offset, this.getTextAtIndex(e).getPieceAtPosition(n);\n }, c.prototype.getCharacterAtPosition = function (t) {\n var e, n, i;\n return i = this.locationFromPosition(t), e = i.index, n = i.offset, this.getTextAtIndex(e).getStringAtRange([n, n + 1]);\n }, c.prototype.getLength = function () {\n return this.blockList.getEndPosition();\n }, c.prototype.getBlocks = function () {\n return this.blockList.toArray();\n }, c.prototype.getBlockCount = function () {\n return this.blockList.length;\n }, c.prototype.getEditCount = function () {\n return this.editCount;\n }, c.prototype.eachBlock = function (t) {\n return this.blockList.eachObject(t);\n }, c.prototype.eachBlockAtRange = function (t, e) {\n var n, o, r, s, a, u, c, l, h, p, d, f;\n if (u = t = i(t), d = u[0], r = u[1], p = this.locationFromPosition(d), o = this.locationFromPosition(r), p.index === o.index) return n = this.getBlockAtIndex(p.index), f = [p.offset, o.offset], e(n, f, p.index);\n for (h = [], a = s = c = p.index, l = o.index; l >= c ? l >= s : s >= l; a = l >= c ? ++s : --s) (n = this.getBlockAtIndex(a)) ? (f = function () {\n switch (a) {\n case p.index:\n return [p.offset, n.text.getLength()];\n case o.index:\n return [0, o.offset];\n default:\n return [0, n.text.getLength()];\n }\n }(), h.push(e(n, f, a))) : h.push(void 0);\n return h;\n }, c.prototype.getCommonAttributesAtRange = function (t) {\n var n, r, s;\n return r = (t = i(t))[0], o(t) ? this.getCommonAttributesAtPosition(r) : (s = [], n = [], this.eachBlockAtRange(t, function (t, e) {\n return e[0] !== e[1] ? (s.push(t.text.getCommonAttributesAtRange(e)), n.push(l(t))) : void 0;\n }), e.Hash.fromCommonAttributesOfObjects(s).merge(e.Hash.fromCommonAttributesOfObjects(n)).toObject());\n }, c.prototype.getCommonAttributesAtPosition = function (t) {\n var n, i, o, r, s, a, c, h, p, d;\n if (p = this.locationFromPosition(t), s = p.index, h = p.offset, o = this.getBlockAtIndex(s), !o) return {};\n r = l(o), n = o.text.getAttributesAtPosition(h), i = o.text.getAttributesAtPosition(h - 1), a = function () {\n var t, n;\n t = e.config.textAttributes, n = [];\n for (c in t) d = t[c], d.inheritable && n.push(c);\n return n;\n }();\n for (c in i) d = i[c], (d === n[c] || u.call(a, c) >= 0) && (r[c] = d);\n return r;\n }, c.prototype.getRangeOfCommonAttributeAtPosition = function (t, e) {\n var n, o, r, s, a, u, c, l, h;\n return a = this.locationFromPosition(e), r = a.index, s = a.offset, h = this.getTextAtIndex(r), u = h.getExpandedRangeForAttributeAtOffset(t, s), l = u[0], o = u[1], c = this.positionFromLocation({\n index: r,\n offset: l\n }), n = this.positionFromLocation({\n index: r,\n offset: o\n }), i([c, n]);\n }, c.prototype.getBaseBlockAttributes = function () {\n var t, e, n, i, o, r, s;\n for (t = this.getBlockAtIndex(0).getAttributes(), n = i = 1, s = this.getBlockCount(); s >= 1 ? s > i : i > s; n = s >= 1 ? ++i : --i) e = this.getBlockAtIndex(n).getAttributes(), r = Math.min(t.length, e.length), t = function () {\n var n, i, s;\n for (s = [], o = n = 0, i = r; (i >= 0 ? i > n : n > i) && e[o] === t[o]; o = i >= 0 ? ++n : --n) s.push(e[o]);\n return s;\n }();\n return t;\n }, l = function (t) {\n var e, n;\n return n = {}, (e = t.getLastAttribute()) && (n[e] = !0), n;\n }, c.prototype.getAttachmentById = function (t) {\n var e, n, i, o;\n for (o = this.getAttachments(), n = 0, i = o.length; i > n; n++) if (e = o[n], e.id === t) return e;\n }, c.prototype.getAttachmentPieces = function () {\n var t;\n return t = [], this.blockList.eachObject(function (e) {\n var n;\n return n = e.text, t = t.concat(n.getAttachmentPieces());\n }), t;\n }, c.prototype.getAttachments = function () {\n var t, e, n, i, o;\n for (i = this.getAttachmentPieces(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], o.push(n.attachment);\n return o;\n }, c.prototype.getRangeOfAttachment = function (t) {\n var e, n, o, r, s, a, u;\n for (r = 0, s = this.blockList.toArray(), n = e = 0, o = s.length; o > e; n = ++e) {\n if (a = s[n].text, u = a.getRangeOfAttachment(t)) return i([r + u[0], r + u[1]]);\n r += a.getLength();\n }\n }, c.prototype.getLocationRangeOfAttachment = function (t) {\n var e;\n return e = this.getRangeOfAttachment(t), this.locationRangeFromRange(e);\n }, c.prototype.getAttachmentPieceForAttachment = function (t) {\n var e, n, i, o;\n for (o = this.getAttachmentPieces(), e = 0, n = o.length; n > e; e++) if (i = o[e], i.attachment === t) return i;\n }, c.prototype.findRangesForBlockAttribute = function (t) {\n var e, n, i, o, r, s, a;\n for (r = 0, s = [], a = this.getBlocks(), n = 0, i = a.length; i > n; n++) e = a[n], o = e.getLength(), e.hasAttribute(t) && s.push([r, r + o]), r += o;\n return s;\n }, c.prototype.findRangesForTextAttribute = function (t, e) {\n var n, i, o, r, s, a, u, c, l, h;\n for (h = (null != e ? e : {}).withValue, a = 0, u = [], c = [], r = function (e) {\n return null != h ? e.getAttribute(t) === h : e.hasAttribute(t);\n }, l = this.getPieces(), n = 0, i = l.length; i > n; n++) s = l[n], o = s.getLength(), r(s) && (u[1] === a ? u[1] = a + o : c.push(u = [a, a + o])), a += o;\n return c;\n }, c.prototype.locationFromPosition = function (t) {\n var e, n;\n return n = this.blockList.findIndexAndOffsetAtPosition(Math.max(0, t)), null != n.index ? n : (e = this.getBlocks(), {\n index: e.length - 1,\n offset: e[e.length - 1].getLength()\n });\n }, c.prototype.positionFromLocation = function (t) {\n return this.blockList.findPositionAtIndexAndOffset(t.index, t.offset);\n }, c.prototype.locationRangeFromPosition = function (t) {\n return i(this.locationFromPosition(t));\n }, c.prototype.locationRangeFromRange = function (t) {\n var e, n, o, r;\n if (t = i(t)) return r = t[0], n = t[1], o = this.locationFromPosition(r), e = this.locationFromPosition(n), i([o, e]);\n }, c.prototype.rangeFromLocationRange = function (t) {\n var e, n;\n return t = i(t), e = this.positionFromLocation(t[0]), o(t) || (n = this.positionFromLocation(t[1])), i([e, n]);\n }, c.prototype.isEqualTo = function (t) {\n return this.blockList.isEqualTo(null != t ? t.blockList : void 0);\n }, c.prototype.getTexts = function () {\n var t, e, n, i, o;\n for (i = this.getBlocks(), o = [], e = 0, n = i.length; n > e; e++) t = i[e], o.push(t.text);\n return o;\n }, c.prototype.getPieces = function () {\n var t, e, n, i, o;\n for (n = [], i = this.getTexts(), t = 0, e = i.length; e > t; t++) o = i[t], n.push.apply(n, o.getPieces());\n return n;\n }, c.prototype.getObjects = function () {\n return this.getBlocks().concat(this.getTexts()).concat(this.getPieces());\n }, c.prototype.toSerializableDocument = function () {\n var t;\n return t = [], this.blockList.eachObject(function (e) {\n return t.push(e.copyWithText(e.text.toSerializableText()));\n }), new this.constructor(t);\n }, c.prototype.toString = function () {\n return this.blockList.toString();\n }, c.prototype.toJSON = function () {\n return this.blockList.toJSON();\n }, c.prototype.toConsole = function () {\n var t;\n return JSON.stringify(function () {\n var e, n, i, o;\n for (i = this.blockList.toArray(), o = [], e = 0, n = i.length; n > e; e++) t = i[e], o.push(JSON.parse(t.text.toConsole()));\n return o;\n }.call(this));\n }, c;\n }(e.Object);\n }.call(this), function () {\n e.LineBreakInsertion = function () {\n function t(t) {\n var e;\n this.composition = t, this.document = this.composition.document, e = this.composition.getSelectedRange(), this.startPosition = e[0], this.endPosition = e[1], this.startLocation = this.document.locationFromPosition(this.startPosition), this.endLocation = this.document.locationFromPosition(this.endPosition), this.block = this.document.getBlockAtIndex(this.endLocation.index), this.breaksOnReturn = this.block.breaksOnReturn(), this.previousCharacter = this.block.text.getStringAtPosition(this.endLocation.offset - 1), this.nextCharacter = this.block.text.getStringAtPosition(this.endLocation.offset);\n }\n return t.prototype.shouldInsertBlockBreak = function () {\n return this.block.hasAttributes() && this.block.isListItem() && !this.block.isEmpty() ? 0 !== this.startLocation.offset : this.breaksOnReturn && \"\\n\" !== this.nextCharacter;\n }, t.prototype.shouldBreakFormattedBlock = function () {\n return this.block.hasAttributes() && !this.block.isListItem() && (this.breaksOnReturn && \"\\n\" === this.nextCharacter || \"\\n\" === this.previousCharacter);\n }, t.prototype.shouldDecreaseListLevel = function () {\n return this.block.hasAttributes() && this.block.isListItem() && this.block.isEmpty();\n }, t.prototype.shouldPrependListItem = function () {\n return this.block.isListItem() && 0 === this.startLocation.offset && !this.block.isEmpty();\n }, t.prototype.shouldRemoveLastBlockAttribute = function () {\n return this.block.hasAttributes() && !this.block.isListItem() && this.block.isEmpty();\n }, t;\n }();\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) p.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n p = {}.hasOwnProperty;\n s = e.normalizeRange, c = e.rangesAreEqual, u = e.rangeIsCollapsed, a = e.objectsAreEqual, t = e.arrayStartsWith, l = e.summarizeArrayChange, i = e.getAllAttributeNames, o = e.getBlockConfig, r = e.getTextConfig, n = e.extend, e.Composition = function (p) {\n function d() {\n this.document = new e.Document(), this.attachments = [], this.currentAttributes = {}, this.revision = 0;\n }\n var f;\n return h(d, p), d.prototype.setDocument = function (t) {\n var e;\n return t.isEqualTo(this.document) ? void 0 : (this.document = t, this.refreshAttachments(), this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidChangeDocument ? e.compositionDidChangeDocument(t) : void 0);\n }, d.prototype.getSnapshot = function () {\n return {\n document: this.document,\n selectedRange: this.getSelectedRange()\n };\n }, d.prototype.loadSnapshot = function (t) {\n var n, i, o, r;\n return n = t.document, r = t.selectedRange, null != (i = this.delegate) && \"function\" == typeof i.compositionWillLoadSnapshot && i.compositionWillLoadSnapshot(), this.setDocument(null != n ? n : new e.Document()), this.setSelection(null != r ? r : [0, 0]), null != (o = this.delegate) && \"function\" == typeof o.compositionDidLoadSnapshot ? o.compositionDidLoadSnapshot() : void 0;\n }, d.prototype.insertText = function (t, e) {\n var n, i, o, r;\n return r = (null != e ? e : {\n updatePosition: !0\n }).updatePosition, i = this.getSelectedRange(), this.setDocument(this.document.insertTextAtRange(t, i)), o = i[0], n = o + t.getLength(), r && this.setSelection(n), this.notifyDelegateOfInsertionAtRange([o, n]);\n }, d.prototype.insertBlock = function (t) {\n var n;\n return null == t && (t = new e.Block()), n = new e.Document([t]), this.insertDocument(n);\n }, d.prototype.insertDocument = function (t) {\n var n, i, o;\n return null == t && (t = new e.Document()), i = this.getSelectedRange(), this.setDocument(this.document.insertDocumentAtRange(t, i)), o = i[0], n = o + t.getLength(), this.setSelection(n), this.notifyDelegateOfInsertionAtRange([o, n]);\n }, d.prototype.insertString = function (t, n) {\n var i, o;\n return i = this.getCurrentTextAttributes(), o = e.Text.textForStringWithAttributes(t, i), this.insertText(o, n);\n }, d.prototype.insertBlockBreak = function () {\n var t, e, n;\n return e = this.getSelectedRange(), this.setDocument(this.document.insertBlockBreakAtRange(e)), n = e[0], t = n + 1, this.setSelection(t), this.notifyDelegateOfInsertionAtRange([n, t]);\n }, d.prototype.insertLineBreak = function () {\n var t, n;\n return n = new e.LineBreakInsertion(this), n.shouldDecreaseListLevel() ? (this.decreaseListLevel(), this.setSelection(n.startPosition)) : n.shouldPrependListItem() ? (t = new e.Document([n.block.copyWithoutText()]), this.insertDocument(t)) : n.shouldInsertBlockBreak() ? this.insertBlockBreak() : n.shouldRemoveLastBlockAttribute() ? this.removeLastBlockAttribute() : n.shouldBreakFormattedBlock() ? this.breakFormattedBlock(n) : this.insertString(\"\\n\");\n }, d.prototype.insertHTML = function (t) {\n var n, i, o, r;\n return n = e.Document.fromHTML(t), o = this.getSelectedRange(), this.setDocument(this.document.mergeDocumentAtRange(n, o)), r = o[0], i = r + n.getLength() - 1, this.setSelection(i), this.notifyDelegateOfInsertionAtRange([r, i]);\n }, d.prototype.replaceHTML = function (t) {\n var n, i, o;\n return n = e.Document.fromHTML(t).copyUsingObjectsFromDocument(this.document), i = this.getLocationRange({\n strict: !1\n }), o = this.document.rangeFromLocationRange(i), this.setDocument(n), this.setSelection(o);\n }, d.prototype.insertFile = function (t) {\n return this.insertFiles([t]);\n }, d.prototype.insertFiles = function (t) {\n var n, i, o, r, s, a;\n for (i = [], r = 0, s = t.length; s > r; r++) o = t[r], (null != (a = this.delegate) ? a.compositionShouldAcceptFile(o) : void 0) && (n = e.Attachment.attachmentForFile(o), i.push(n));\n return this.insertAttachments(i);\n }, d.prototype.insertAttachment = function (t) {\n return this.insertAttachments([t]);\n }, d.prototype.insertAttachments = function (t) {\n var n, i, o, r, s, a, u, c, l;\n for (c = new e.Text(), r = 0, s = t.length; s > r; r++) n = t[r], l = n.getType(), a = null != (u = e.config.attachments[l]) ? u.presentation : void 0, o = this.getCurrentTextAttributes(), a && (o.presentation = a), i = e.Text.textForAttachmentWithAttributes(n, o), c = c.appendText(i);\n return this.insertText(c);\n }, d.prototype.shouldManageDeletingInDirection = function (t) {\n var e;\n if (e = this.getLocationRange(), u(e)) {\n if (\"backward\" === t && 0 === e[0].offset) return !0;\n if (this.shouldManageMovingCursorInDirection(t)) return !0;\n } else if (e[0].index !== e[1].index) return !0;\n return !1;\n }, d.prototype.deleteInDirection = function (t, e) {\n var n, i, o, r, s, a, c, l;\n return r = (null != e ? e : {}).length, s = this.getLocationRange(), a = this.getSelectedRange(), c = u(a), c ? o = \"backward\" === t && 0 === s[0].offset : l = s[0].index !== s[1].index, o && this.canDecreaseBlockAttributeLevel() && (i = this.getBlock(), i.isListItem() ? this.decreaseListLevel() : this.decreaseBlockAttributeLevel(), this.setSelection(a[0]), i.isEmpty()) ? !1 : (c && (a = this.getExpandedRangeInDirection(t, {\n length: r\n }), \"backward\" === t && (n = this.getAttachmentAtRange(a))), n ? (this.editAttachment(n), !1) : (this.setDocument(this.document.removeTextAtRange(a)), this.setSelection(a[0]), o || l ? !1 : void 0));\n }, d.prototype.moveTextFromRange = function (t) {\n var e;\n return e = this.getSelectedRange()[0], this.setDocument(this.document.moveTextFromRangeToPosition(t, e)), this.setSelection(e);\n }, d.prototype.removeAttachment = function (t) {\n var e;\n return (e = this.document.getRangeOfAttachment(t)) ? (this.stopEditingAttachment(), this.setDocument(this.document.removeTextAtRange(e)), this.setSelection(e[0])) : void 0;\n }, d.prototype.removeLastBlockAttribute = function () {\n var t, e, n, i;\n return n = this.getSelectedRange(), i = n[0], e = n[1], t = this.document.getBlockAtPosition(e), this.removeCurrentAttribute(t.getLastAttribute()), this.setSelection(i);\n }, f = \" \", d.prototype.insertPlaceholder = function () {\n return this.placeholderPosition = this.getPosition(), this.insertString(f);\n }, d.prototype.selectPlaceholder = function () {\n return null != this.placeholderPosition ? (this.setSelectedRange([this.placeholderPosition, this.placeholderPosition + f.length]), this.getSelectedRange()) : void 0;\n }, d.prototype.forgetPlaceholder = function () {\n return this.placeholderPosition = null;\n }, d.prototype.hasCurrentAttribute = function (t) {\n var e;\n return e = this.currentAttributes[t], null != e && e !== !1;\n }, d.prototype.toggleCurrentAttribute = function (t) {\n var e;\n return (e = !this.currentAttributes[t]) ? this.setCurrentAttribute(t, e) : this.removeCurrentAttribute(t);\n }, d.prototype.canSetCurrentAttribute = function (t) {\n return o(t) ? this.canSetCurrentBlockAttribute(t) : this.canSetCurrentTextAttribute(t);\n }, d.prototype.canSetCurrentTextAttribute = function () {\n var t, e, n, i, o;\n if (e = this.getSelectedDocument()) {\n for (o = e.getAttachments(), n = 0, i = o.length; i > n; n++) if (t = o[n], !t.hasContent()) return !1;\n return !0;\n }\n }, d.prototype.canSetCurrentBlockAttribute = function () {\n var t;\n if (t = this.getBlock()) return !t.isTerminalBlock();\n }, d.prototype.setCurrentAttribute = function (t, e) {\n return o(t) ? this.setBlockAttribute(t, e) : (this.setTextAttribute(t, e), this.currentAttributes[t] = e, this.notifyDelegateOfCurrentAttributesChange());\n }, d.prototype.setTextAttribute = function (t, n) {\n var i, o, r, s;\n if (o = this.getSelectedRange()) return r = o[0], i = o[1], r !== i ? this.setDocument(this.document.addAttributeAtRange(t, n, o)) : \"href\" === t ? (s = e.Text.textForStringWithAttributes(n, {\n href: n\n }), this.insertText(s)) : void 0;\n }, d.prototype.setBlockAttribute = function (t, e) {\n var n, i;\n if (i = this.getSelectedRange()) return this.canSetCurrentAttribute(t) ? (n = this.getBlock(), this.setDocument(this.document.applyBlockAttributeAtRange(t, e, i)), this.setSelection(i)) : void 0;\n }, d.prototype.removeCurrentAttribute = function (t) {\n return o(t) ? (this.removeBlockAttribute(t), this.updateCurrentAttributes()) : (this.removeTextAttribute(t), delete this.currentAttributes[t], this.notifyDelegateOfCurrentAttributesChange());\n }, d.prototype.removeTextAttribute = function (t) {\n var e;\n if (e = this.getSelectedRange()) return this.setDocument(this.document.removeAttributeAtRange(t, e));\n }, d.prototype.removeBlockAttribute = function (t) {\n var e;\n if (e = this.getSelectedRange()) return this.setDocument(this.document.removeAttributeAtRange(t, e));\n }, d.prototype.canDecreaseNestingLevel = function () {\n var t;\n return (null != (t = this.getBlock()) ? t.getNestingLevel() : void 0) > 0;\n }, d.prototype.canIncreaseNestingLevel = function () {\n var e, n, i;\n if (e = this.getBlock()) return (null != (i = o(e.getLastNestableAttribute())) ? i.listAttribute : 0) ? (n = this.getPreviousBlock()) ? t(n.getListItemAttributes(), e.getListItemAttributes()) : void 0 : e.getNestingLevel() > 0;\n }, d.prototype.decreaseNestingLevel = function () {\n var t;\n if (t = this.getBlock()) return this.setDocument(this.document.replaceBlock(t, t.decreaseNestingLevel()));\n }, d.prototype.increaseNestingLevel = function () {\n var t;\n if (t = this.getBlock()) return this.setDocument(this.document.replaceBlock(t, t.increaseNestingLevel()));\n }, d.prototype.canDecreaseBlockAttributeLevel = function () {\n var t;\n return (null != (t = this.getBlock()) ? t.getAttributeLevel() : void 0) > 0;\n }, d.prototype.decreaseBlockAttributeLevel = function () {\n var t, e;\n return (t = null != (e = this.getBlock()) ? e.getLastAttribute() : void 0) ? this.removeCurrentAttribute(t) : void 0;\n }, d.prototype.decreaseListLevel = function () {\n var t, e, n, i, o, r;\n for (r = this.getSelectedRange()[0], o = this.document.locationFromPosition(r).index, n = o, t = this.getBlock().getAttributeLevel(); (e = this.document.getBlockAtIndex(n + 1)) && e.isListItem() && e.getAttributeLevel() > t;) n++;\n return r = this.document.positionFromLocation({\n index: o,\n offset: 0\n }), i = this.document.positionFromLocation({\n index: n,\n offset: 0\n }), this.setDocument(this.document.removeLastListAttributeAtRange([r, i]));\n }, d.prototype.updateCurrentAttributes = function () {\n var t, e, n, o, r, s;\n if (s = this.getSelectedRange({\n ignoreLock: !0\n })) {\n for (e = this.document.getCommonAttributesAtRange(s), r = i(), n = 0, o = r.length; o > n; n++) t = r[n], e[t] || this.canSetCurrentAttribute(t) || (e[t] = !1);\n if (!a(e, this.currentAttributes)) return this.currentAttributes = e, this.notifyDelegateOfCurrentAttributesChange();\n }\n }, d.prototype.getCurrentAttributes = function () {\n return n.call({}, this.currentAttributes);\n }, d.prototype.getCurrentTextAttributes = function () {\n var t, e, n, i;\n t = {}, n = this.currentAttributes;\n for (e in n) i = n[e], i !== !1 && r(e) && (t[e] = i);\n return t;\n }, d.prototype.freezeSelection = function () {\n return this.setCurrentAttribute(\"frozen\", !0);\n }, d.prototype.thawSelection = function () {\n return this.removeCurrentAttribute(\"frozen\");\n }, d.prototype.hasFrozenSelection = function () {\n return this.hasCurrentAttribute(\"frozen\");\n }, d.proxyMethod(\"getSelectionManager().getPointRange\"), d.proxyMethod(\"getSelectionManager().setLocationRangeFromPointRange\"), d.proxyMethod(\"getSelectionManager().createLocationRangeFromDOMRange\"), d.proxyMethod(\"getSelectionManager().locationIsCursorTarget\"), d.proxyMethod(\"getSelectionManager().selectionIsExpanded\"), d.proxyMethod(\"delegate?.getSelectionManager\"), d.prototype.setSelection = function (t) {\n var e, n;\n return e = this.document.locationRangeFromRange(t), null != (n = this.delegate) ? n.compositionDidRequestChangingSelectionToLocationRange(e) : void 0;\n }, d.prototype.getSelectedRange = function () {\n var t;\n return (t = this.getLocationRange()) ? this.document.rangeFromLocationRange(t) : void 0;\n }, d.prototype.setSelectedRange = function (t) {\n var e;\n return e = this.document.locationRangeFromRange(t), this.getSelectionManager().setLocationRange(e);\n }, d.prototype.getPosition = function () {\n var t;\n return (t = this.getLocationRange()) ? this.document.positionFromLocation(t[0]) : void 0;\n }, d.prototype.getLocationRange = function (t) {\n var e, n;\n return null != (e = null != (n = this.targetLocationRange) ? n : this.getSelectionManager().getLocationRange(t)) ? e : s({\n index: 0,\n offset: 0\n });\n }, d.prototype.withTargetLocationRange = function (t, e) {\n var n;\n this.targetLocationRange = t;\n try {\n n = e();\n } finally {\n this.targetLocationRange = null;\n }\n return n;\n }, d.prototype.withTargetRange = function (t, e) {\n var n;\n return n = this.document.locationRangeFromRange(t), this.withTargetLocationRange(n, e);\n }, d.prototype.withTargetDOMRange = function (t, e) {\n var n;\n return n = this.createLocationRangeFromDOMRange(t, {\n strict: !1\n }), this.withTargetLocationRange(n, e);\n }, d.prototype.getExpandedRangeInDirection = function (t, e) {\n var n, i, o, r;\n return i = (null != e ? e : {}).length, o = this.getSelectedRange(), r = o[0], n = o[1], \"backward\" === t ? i ? r -= i : r = this.translateUTF16PositionFromOffset(r, -1) : i ? n += i : n = this.translateUTF16PositionFromOffset(n, 1), s([r, n]);\n }, d.prototype.shouldManageMovingCursorInDirection = function (t) {\n var e;\n return this.editingAttachment ? !0 : (e = this.getExpandedRangeInDirection(t), null != this.getAttachmentAtRange(e));\n }, d.prototype.moveCursorInDirection = function (t) {\n var e, n, i, o;\n return this.editingAttachment ? i = this.document.getRangeOfAttachment(this.editingAttachment) : (o = this.getSelectedRange(), i = this.getExpandedRangeInDirection(t), n = !c(o, i)), this.setSelectedRange(\"backward\" === t ? i[0] : i[1]), n && (e = this.getAttachmentAtRange(i)) ? this.editAttachment(e) : void 0;\n }, d.prototype.expandSelectionInDirection = function (t, e) {\n var n, i;\n return n = (null != e ? e : {}).length, i = this.getExpandedRangeInDirection(t, {\n length: n\n }), this.setSelectedRange(i);\n }, d.prototype.expandSelectionForEditing = function () {\n return this.hasCurrentAttribute(\"href\") ? this.expandSelectionAroundCommonAttribute(\"href\") : void 0;\n }, d.prototype.expandSelectionAroundCommonAttribute = function (t) {\n var e, n;\n return e = this.getPosition(), n = this.document.getRangeOfCommonAttributeAtPosition(t, e), this.setSelectedRange(n);\n }, d.prototype.selectionContainsAttachments = function () {\n var t;\n return (null != (t = this.getSelectedAttachments()) ? t.length : void 0) > 0;\n }, d.prototype.selectionIsInCursorTarget = function () {\n return this.editingAttachment || this.positionIsCursorTarget(this.getPosition());\n }, d.prototype.positionIsCursorTarget = function (t) {\n var e;\n return (e = this.document.locationFromPosition(t)) ? this.locationIsCursorTarget(e) : void 0;\n }, d.prototype.positionIsBlockBreak = function (t) {\n var e;\n return null != (e = this.document.getPieceAtPosition(t)) ? e.isBlockBreak() : void 0;\n }, d.prototype.getSelectedDocument = function () {\n var t;\n return (t = this.getSelectedRange()) ? this.document.getDocumentAtRange(t) : void 0;\n }, d.prototype.getSelectedAttachments = function () {\n var t;\n return null != (t = this.getSelectedDocument()) ? t.getAttachments() : void 0;\n }, d.prototype.getAttachments = function () {\n return this.attachments.slice(0);\n }, d.prototype.refreshAttachments = function () {\n var t, e, n, i, o, r, s, a, u, c, h, p;\n for (n = this.document.getAttachments(), a = l(this.attachments, n), t = a.added, h = a.removed, this.attachments = n, i = 0, r = h.length; r > i; i++) e = h[i], e.delegate = null, null != (u = this.delegate) && \"function\" == typeof u.compositionDidRemoveAttachment && u.compositionDidRemoveAttachment(e);\n for (p = [], o = 0, s = t.length; s > o; o++) e = t[o], e.delegate = this, p.push(null != (c = this.delegate) && \"function\" == typeof c.compositionDidAddAttachment ? c.compositionDidAddAttachment(e) : void 0);\n return p;\n }, d.prototype.attachmentDidChangeAttributes = function (t) {\n var e;\n return this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidEditAttachment ? e.compositionDidEditAttachment(t) : void 0;\n }, d.prototype.attachmentDidChangePreviewURL = function (t) {\n var e;\n return this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidChangeAttachmentPreviewURL ? e.compositionDidChangeAttachmentPreviewURL(t) : void 0;\n }, d.prototype.editAttachment = function (t, e) {\n var n;\n if (t !== this.editingAttachment) return this.stopEditingAttachment(), this.editingAttachment = t, null != (n = this.delegate) && \"function\" == typeof n.compositionDidStartEditingAttachment ? n.compositionDidStartEditingAttachment(this.editingAttachment, e) : void 0;\n }, d.prototype.stopEditingAttachment = function () {\n var t;\n if (this.editingAttachment) return null != (t = this.delegate) && \"function\" == typeof t.compositionDidStopEditingAttachment && t.compositionDidStopEditingAttachment(this.editingAttachment), this.editingAttachment = null;\n }, d.prototype.updateAttributesForAttachment = function (t, e) {\n return this.setDocument(this.document.updateAttributesForAttachment(t, e));\n }, d.prototype.removeAttributeForAttachment = function (t, e) {\n return this.setDocument(this.document.removeAttributeForAttachment(t, e));\n }, d.prototype.breakFormattedBlock = function (t) {\n var n, i, o, r, s;\n return i = t.document, n = t.block, r = t.startPosition, s = [r - 1, r], n.getBlockBreakPosition() === t.startLocation.offset ? (n.breaksOnReturn() && \"\\n\" === t.nextCharacter ? r += 1 : i = i.removeTextAtRange(s), s = [r, r]) : \"\\n\" === t.nextCharacter ? \"\\n\" === t.previousCharacter ? s = [r - 1, r + 1] : (s = [r, r + 1], r += 1) : t.startLocation.offset - 1 !== 0 && (r += 1), o = new e.Document([n.removeLastAttribute().copyWithoutText()]), this.setDocument(i.insertDocumentAtRange(o, s)), this.setSelection(r);\n }, d.prototype.getPreviousBlock = function () {\n var t, e;\n return (e = this.getLocationRange()) && (t = e[0].index, t > 0) ? this.document.getBlockAtIndex(t - 1) : void 0;\n }, d.prototype.getBlock = function () {\n var t;\n return (t = this.getLocationRange()) ? this.document.getBlockAtIndex(t[0].index) : void 0;\n }, d.prototype.getAttachmentAtRange = function (t) {\n var n;\n return n = this.document.getDocumentAtRange(t), n.toString() === e.OBJECT_REPLACEMENT_CHARACTER + \"\\n\" ? n.getAttachments()[0] : void 0;\n }, d.prototype.notifyDelegateOfCurrentAttributesChange = function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.compositionDidChangeCurrentAttributes ? t.compositionDidChangeCurrentAttributes(this.currentAttributes) : void 0;\n }, d.prototype.notifyDelegateOfInsertionAtRange = function (t) {\n var e;\n return null != (e = this.delegate) && \"function\" == typeof e.compositionDidPerformInsertionAtRange ? e.compositionDidPerformInsertionAtRange(t) : void 0;\n }, d.prototype.translateUTF16PositionFromOffset = function (t, e) {\n var n, i;\n return i = this.document.toUTF16String(), n = i.offsetFromUCS2Offset(t), i.offsetToUCS2Offset(n + e);\n }, d;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.UndoManager = function (e) {\n function n(t) {\n this.composition = t, this.undoEntries = [], this.redoEntries = [];\n }\n var i;\n return t(n, e), n.prototype.recordUndoEntry = function (t, e) {\n var n, o, r, s, a;\n return s = null != e ? e : {}, o = s.context, n = s.consolidatable, r = this.undoEntries.slice(-1)[0], n && i(r, t, o) ? void 0 : (a = this.createEntry({\n description: t,\n context: o\n }), this.undoEntries.push(a), this.redoEntries = []);\n }, n.prototype.undo = function () {\n var t, e;\n return (e = this.undoEntries.pop()) ? (t = this.createEntry(e), this.redoEntries.push(t), this.composition.loadSnapshot(e.snapshot)) : void 0;\n }, n.prototype.redo = function () {\n var t, e;\n return (t = this.redoEntries.pop()) ? (e = this.createEntry(t), this.undoEntries.push(e), this.composition.loadSnapshot(t.snapshot)) : void 0;\n }, n.prototype.canUndo = function () {\n return this.undoEntries.length > 0;\n }, n.prototype.canRedo = function () {\n return this.redoEntries.length > 0;\n }, n.prototype.createEntry = function (t) {\n var e, n, i;\n return i = null != t ? t : {}, n = i.description, e = i.context, {\n description: null != n ? n.toString() : void 0,\n context: JSON.stringify(e),\n snapshot: this.composition.getSnapshot()\n };\n }, i = function (t, e, n) {\n return (null != t ? t.description : void 0) === (null != e ? e.toString() : void 0) && (null != t ? t.context : void 0) === JSON.stringify(n);\n }, n;\n }(e.BasicObject);\n }.call(this), function () {\n var t;\n e.attachmentGalleryFilter = function (e) {\n var n;\n return n = new t(e), n.perform(), n.getSnapshot();\n }, t = function () {\n function t(t) {\n this.document = t.document, this.selectedRange = t.selectedRange;\n }\n var e, n, i;\n return e = \"attachmentGallery\", n = \"presentation\", i = \"gallery\", t.prototype.perform = function () {\n return this.removeBlockAttribute(), this.applyBlockAttribute();\n }, t.prototype.getSnapshot = function () {\n return {\n document: this.document,\n selectedRange: this.selectedRange\n };\n }, t.prototype.removeBlockAttribute = function () {\n var t, n, i, o, r;\n for (o = this.findRangesOfBlocks(), r = [], t = 0, n = o.length; n > t; t++) i = o[t], r.push(this.document = this.document.removeAttributeAtRange(e, i));\n return r;\n }, t.prototype.applyBlockAttribute = function () {\n var t, n, i, o, r, s;\n for (i = 0, r = this.findRangesOfPieces(), s = [], t = 0, n = r.length; n > t; t++) o = r[t], o[1] - o[0] > 1 && (o[0] += i, o[1] += i, \"\\n\" !== this.document.getCharacterAtPosition(o[1]) && (this.document = this.document.insertBlockBreakAtRange(o[1]), o[1] < this.selectedRange[1] && this.moveSelectedRangeForward(), o[1]++, i++), 0 !== o[0] && \"\\n\" !== this.document.getCharacterAtPosition(o[0] - 1) && (this.document = this.document.insertBlockBreakAtRange(o[0]), o[0] < this.selectedRange[0] && this.moveSelectedRangeForward(), o[0]++, i++), s.push(this.document = this.document.applyBlockAttributeAtRange(e, !0, o)));\n return s;\n }, t.prototype.findRangesOfBlocks = function () {\n return this.document.findRangesForBlockAttribute(e);\n }, t.prototype.findRangesOfPieces = function () {\n return this.document.findRangesForTextAttribute(n, {\n withValue: i\n });\n }, t.prototype.moveSelectedRangeForward = function () {\n return this.selectedRange[0] += 1, this.selectedRange[1] += 1;\n }, t;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n };\n e.Editor = function () {\n function n(n, o, r) {\n this.composition = n, this.selectionManager = o, this.element = r, this.insertFiles = t(this.insertFiles, this), this.undoManager = new e.UndoManager(this.composition), this.filters = i.slice(0);\n }\n var i;\n return i = [e.attachmentGalleryFilter], n.prototype.loadDocument = function (t) {\n return this.loadSnapshot({\n document: t,\n selectedRange: [0, 0]\n });\n }, n.prototype.loadHTML = function (t) {\n return null == t && (t = \"\"), this.loadDocument(e.Document.fromHTML(t, {\n referenceElement: this.element\n }));\n }, n.prototype.loadJSON = function (t) {\n var n, i;\n return n = t.document, i = t.selectedRange, n = e.Document.fromJSON(n), this.loadSnapshot({\n document: n,\n selectedRange: i\n });\n }, n.prototype.loadSnapshot = function (t) {\n return this.undoManager = new e.UndoManager(this.composition), this.composition.loadSnapshot(t);\n }, n.prototype.getDocument = function () {\n return this.composition.document;\n }, n.prototype.getSelectedDocument = function () {\n return this.composition.getSelectedDocument();\n }, n.prototype.getSnapshot = function () {\n return this.composition.getSnapshot();\n }, n.prototype.toJSON = function () {\n return this.getSnapshot();\n }, n.prototype.deleteInDirection = function (t) {\n return this.composition.deleteInDirection(t);\n }, n.prototype.insertAttachment = function (t) {\n return this.composition.insertAttachment(t);\n }, n.prototype.insertAttachments = function (t) {\n return this.composition.insertAttachments(t);\n }, n.prototype.insertDocument = function (t) {\n return this.composition.insertDocument(t);\n }, n.prototype.insertFile = function (t) {\n return this.composition.insertFile(t);\n }, n.prototype.insertFiles = function (t) {\n return this.composition.insertFiles(t);\n }, n.prototype.insertHTML = function (t) {\n return this.composition.insertHTML(t);\n }, n.prototype.insertString = function (t) {\n return this.composition.insertString(t);\n }, n.prototype.insertText = function (t) {\n return this.composition.insertText(t);\n }, n.prototype.insertLineBreak = function () {\n return this.composition.insertLineBreak();\n }, n.prototype.getSelectedRange = function () {\n return this.composition.getSelectedRange();\n }, n.prototype.getPosition = function () {\n return this.composition.getPosition();\n }, n.prototype.getClientRectAtPosition = function (t) {\n var e;\n return e = this.getDocument().locationRangeFromRange([t, t + 1]), this.selectionManager.getClientRectAtLocationRange(e);\n }, n.prototype.expandSelectionInDirection = function (t) {\n return this.composition.expandSelectionInDirection(t);\n }, n.prototype.moveCursorInDirection = function (t) {\n return this.composition.moveCursorInDirection(t);\n }, n.prototype.setSelectedRange = function (t) {\n return this.composition.setSelectedRange(t);\n }, n.prototype.activateAttribute = function (t, e) {\n return null == e && (e = !0), this.composition.setCurrentAttribute(t, e);\n }, n.prototype.attributeIsActive = function (t) {\n return this.composition.hasCurrentAttribute(t);\n }, n.prototype.canActivateAttribute = function (t) {\n return this.composition.canSetCurrentAttribute(t);\n }, n.prototype.deactivateAttribute = function (t) {\n return this.composition.removeCurrentAttribute(t);\n }, n.prototype.canDecreaseNestingLevel = function () {\n return this.composition.canDecreaseNestingLevel();\n }, n.prototype.canIncreaseNestingLevel = function () {\n return this.composition.canIncreaseNestingLevel();\n }, n.prototype.decreaseNestingLevel = function () {\n return this.canDecreaseNestingLevel() ? this.composition.decreaseNestingLevel() : void 0;\n }, n.prototype.increaseNestingLevel = function () {\n return this.canIncreaseNestingLevel() ? this.composition.increaseNestingLevel() : void 0;\n }, n.prototype.canRedo = function () {\n return this.undoManager.canRedo();\n }, n.prototype.canUndo = function () {\n return this.undoManager.canUndo();\n }, n.prototype.recordUndoEntry = function (t, e) {\n var n, i, o;\n return o = null != e ? e : {}, i = o.context, n = o.consolidatable, this.undoManager.recordUndoEntry(t, {\n context: i,\n consolidatable: n\n });\n }, n.prototype.redo = function () {\n return this.canRedo() ? this.undoManager.redo() : void 0;\n }, n.prototype.undo = function () {\n return this.canUndo() ? this.undoManager.undo() : void 0;\n }, n;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.ManagedAttachment = function (e) {\n function n(t, e) {\n var n;\n this.attachmentManager = t, this.attachment = e, n = this.attachment, this.id = n.id, this.file = n.file;\n }\n return t(n, e), n.prototype.remove = function () {\n return this.attachmentManager.requestRemovalOfAttachment(this.attachment);\n }, n.proxyMethod(\"attachment.getAttribute\"), n.proxyMethod(\"attachment.hasAttribute\"), n.proxyMethod(\"attachment.setAttribute\"), n.proxyMethod(\"attachment.getAttributes\"), n.proxyMethod(\"attachment.setAttributes\"), n.proxyMethod(\"attachment.isPending\"), n.proxyMethod(\"attachment.isPreviewable\"), n.proxyMethod(\"attachment.getURL\"), n.proxyMethod(\"attachment.getHref\"), n.proxyMethod(\"attachment.getFilename\"), n.proxyMethod(\"attachment.getFilesize\"), n.proxyMethod(\"attachment.getFormattedFilesize\"), n.proxyMethod(\"attachment.getExtension\"), n.proxyMethod(\"attachment.getContentType\"), n.proxyMethod(\"attachment.getFile\"), n.proxyMethod(\"attachment.setFile\"), n.proxyMethod(\"attachment.releaseFile\"), n.proxyMethod(\"attachment.getUploadProgress\"), n.proxyMethod(\"attachment.setUploadProgress\"), n;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n e.AttachmentManager = function (n) {\n function i(t) {\n var e, n, i;\n for (null == t && (t = []), this.managedAttachments = {}, n = 0, i = t.length; i > n; n++) e = t[n], this.manageAttachment(e);\n }\n return t(i, n), i.prototype.getAttachments = function () {\n var t, e, n, i;\n n = this.managedAttachments, i = [];\n for (e in n) t = n[e], i.push(t);\n return i;\n }, i.prototype.manageAttachment = function (t) {\n var n, i;\n return null != (n = this.managedAttachments)[i = t.id] ? n[i] : n[i] = new e.ManagedAttachment(this, t);\n }, i.prototype.attachmentIsManaged = function (t) {\n return t.id in this.managedAttachments;\n }, i.prototype.requestRemovalOfAttachment = function (t) {\n var e;\n return this.attachmentIsManaged(t) && null != (e = this.delegate) && \"function\" == typeof e.attachmentManagerDidRequestRemovalOfAttachment ? e.attachmentManagerDidRequestRemovalOfAttachment(t) : void 0;\n }, i.prototype.unmanageAttachment = function (t) {\n var e;\n return e = this.managedAttachments[t.id], delete this.managedAttachments[t.id], e;\n }, i;\n }(e.BasicObject);\n }.call(this), function () {\n var t, n, i, o, r, s, a, u, c, l, h;\n t = e.elementContainsNode, n = e.findChildIndexOfNode, r = e.nodeIsBlockStart, s = e.nodeIsBlockStartComment, o = e.nodeIsBlockContainer, a = e.nodeIsCursorTarget, u = e.nodeIsEmptyTextNode, c = e.nodeIsTextNode, i = e.nodeIsAttachmentElement, l = e.tagName, h = e.walkTree, e.LocationMapper = function () {\n function e(t) {\n this.element = t;\n }\n var p, d, f, g;\n return e.prototype.findLocationFromContainerAndOffset = function (e, i, o) {\n var s, u, l, p, g, m, v;\n for (m = (null != o ? o : {\n strict: !0\n }).strict, u = 0, l = !1, p = {\n index: 0,\n offset: 0\n }, (s = this.findAttachmentElementParentForNode(e)) && (e = s.parentNode, i = n(s)), v = h(this.element, {\n usingFilter: f\n }); v.nextNode();) {\n if (g = v.currentNode, g === e && c(e)) {\n a(g) || (p.offset += i);\n break;\n }\n if (g.parentNode === e) {\n if (u++ === i) break;\n } else if (!t(e, g) && u > 0) break;\n r(g, {\n strict: m\n }) ? (l && p.index++, p.offset = 0, l = !0) : p.offset += d(g);\n }\n return p;\n }, e.prototype.findContainerAndOffsetFromLocation = function (t) {\n var e, i, s, u, l;\n if (0 === t.index && 0 === t.offset) {\n for (e = this.element, u = 0; e.firstChild;) if (e = e.firstChild, o(e)) {\n u = 1;\n break;\n }\n return [e, u];\n }\n if (l = this.findNodeAndOffsetFromLocation(t), i = l[0], s = l[1], i) {\n if (c(i)) 0 === d(i) ? (e = i.parentNode.parentNode, u = n(i.parentNode), a(i, {\n name: \"right\"\n }) && u++) : (e = i, u = t.offset - s);else {\n if (e = i.parentNode, !r(i.previousSibling) && !o(e)) for (; i === e.lastChild && (i = e, e = e.parentNode, !o(e)););\n u = n(i), 0 !== t.offset && u++;\n }\n return [e, u];\n }\n }, e.prototype.findNodeAndOffsetFromLocation = function (t) {\n var e, n, i, o, r, s, u, l;\n for (u = 0, l = this.getSignificantNodesForIndex(t.index), n = 0, i = l.length; i > n; n++) {\n if (e = l[n], o = d(e), t.offset <= u + o) if (c(e)) {\n if (r = e, s = u, t.offset === s && a(r)) break;\n } else r || (r = e, s = u);\n if (u += o, u > t.offset) break;\n }\n return [r, s];\n }, e.prototype.findAttachmentElementParentForNode = function (t) {\n for (; t && t !== this.element;) {\n if (i(t)) return t;\n t = t.parentNode;\n }\n }, e.prototype.getSignificantNodesForIndex = function (t) {\n var e, n, i, o, r;\n for (i = [], r = h(this.element, {\n usingFilter: p\n }), o = !1; r.nextNode();) if (n = r.currentNode, s(n)) {\n if (\"undefined\" != typeof e && null !== e ? e++ : e = 0, e === t) o = !0;else if (o) break;\n } else o && i.push(n);\n return i;\n }, d = function (t) {\n var e;\n return t.nodeType === Node.TEXT_NODE ? a(t) ? 0 : (e = t.textContent, e.length) : \"br\" === l(t) || i(t) ? 1 : 0;\n }, p = function (t) {\n return g(t) === NodeFilter.FILTER_ACCEPT ? f(t) : NodeFilter.FILTER_REJECT;\n }, g = function (t) {\n return u(t) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, f = function (t) {\n return i(t.parentNode) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, e;\n }();\n }.call(this), function () {\n var t,\n n,\n i = [].slice;\n t = e.getDOMRange, n = e.setDOMRange, e.PointMapper = function () {\n function e() {}\n return e.prototype.createDOMRangeFromPoint = function (e) {\n var i, o, r, s, a, u, c, l;\n if (c = e.x, l = e.y, document.caretPositionFromPoint) return a = document.caretPositionFromPoint(c, l), r = a.offsetNode, o = a.offset, i = document.createRange(), i.setStart(r, o), i;\n if (document.caretRangeFromPoint) return document.caretRangeFromPoint(c, l);\n if (document.body.createTextRange) {\n s = t();\n try {\n u = document.body.createTextRange(), u.moveToPoint(c, l), u.select();\n } catch (h) {}\n return i = t(), n(s), i;\n }\n }, e.prototype.getClientRectsForDOMRange = function (t) {\n var e, n, o;\n return n = i.call(t.getClientRects()), o = n[0], e = n[n.length - 1], [o, e];\n }, e;\n }();\n }.call(this), function () {\n var t,\n n = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n i = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) o.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty,\n r = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n };\n t = e.getDOMRange, e.SelectionChangeObserver = function (e) {\n function o() {\n this.run = n(this.run, this), this.update = n(this.update, this), this.selectionManagers = [];\n }\n var s;\n return i(o, e), o.prototype.start = function () {\n return this.started ? void 0 : (this.started = !0, \"onselectionchange\" in document ? document.addEventListener(\"selectionchange\", this.update, !0) : this.run());\n }, o.prototype.stop = function () {\n return this.started ? (this.started = !1, document.removeEventListener(\"selectionchange\", this.update, !0)) : void 0;\n }, o.prototype.registerSelectionManager = function (t) {\n return r.call(this.selectionManagers, t) < 0 ? (this.selectionManagers.push(t), this.start()) : void 0;\n }, o.prototype.unregisterSelectionManager = function (t) {\n var e;\n return this.selectionManagers = function () {\n var n, i, o, r;\n for (o = this.selectionManagers, r = [], n = 0, i = o.length; i > n; n++) e = o[n], e !== t && r.push(e);\n return r;\n }.call(this), 0 === this.selectionManagers.length ? this.stop() : void 0;\n }, o.prototype.notifySelectionManagersOfSelectionChange = function () {\n var t, e, n, i, o;\n for (n = this.selectionManagers, i = [], t = 0, e = n.length; e > t; t++) o = n[t], i.push(o.selectionDidChange());\n return i;\n }, o.prototype.update = function () {\n var e;\n return e = t(), s(e, this.domRange) ? void 0 : (this.domRange = e, this.notifySelectionManagersOfSelectionChange());\n }, o.prototype.reset = function () {\n return this.domRange = null, this.update();\n }, o.prototype.run = function () {\n return this.started ? (this.update(), requestAnimationFrame(this.run)) : void 0;\n }, s = function (t, e) {\n return (null != t ? t.startContainer : void 0) === (null != e ? e.startContainer : void 0) && (null != t ? t.startOffset : void 0) === (null != e ? e.startOffset : void 0) && (null != t ? t.endContainer : void 0) === (null != e ? e.endContainer : void 0) && (null != t ? t.endOffset : void 0) === (null != e ? e.endOffset : void 0);\n }, o;\n }(e.BasicObject), null == e.selectionChangeObserver && (e.selectionChangeObserver = new e.SelectionChangeObserver());\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n p = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) d.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n d = {}.hasOwnProperty;\n i = e.getDOMSelection, n = e.getDOMRange, l = e.setDOMRange, t = e.elementContainsNode, s = e.nodeIsCursorTarget, r = e.innerElementIsActive, o = e.handleEvent, a = e.normalizeRange, u = e.rangeIsCollapsed, c = e.rangesAreEqual, e.SelectionManager = function (d) {\n function f(t) {\n this.element = t, this.selectionDidChange = h(this.selectionDidChange, this), this.didMouseDown = h(this.didMouseDown, this), this.locationMapper = new e.LocationMapper(this.element), this.pointMapper = new e.PointMapper(), this.lockCount = 0, o(\"mousedown\", {\n onElement: this.element,\n withCallback: this.didMouseDown\n });\n }\n return p(f, d), f.prototype.getLocationRange = function (t) {\n var e, i;\n return null == t && (t = {}), e = t.strict === !1 ? this.createLocationRangeFromDOMRange(n(), {\n strict: !1\n }) : t.ignoreLock ? this.currentLocationRange : null != (i = this.lockedLocationRange) ? i : this.currentLocationRange;\n }, f.prototype.setLocationRange = function (t) {\n var e;\n if (!this.lockedLocationRange) return t = a(t), (e = this.createDOMRangeFromLocationRange(t)) ? (l(e), this.updateCurrentLocationRange(t)) : void 0;\n }, f.prototype.setLocationRangeFromPointRange = function (t) {\n var e, n;\n return t = a(t), n = this.getLocationAtPoint(t[0]), e = this.getLocationAtPoint(t[1]), this.setLocationRange([n, e]);\n }, f.prototype.getClientRectAtLocationRange = function (t) {\n var e;\n return (e = this.createDOMRangeFromLocationRange(t)) ? this.getClientRectsForDOMRange(e)[1] : void 0;\n }, f.prototype.locationIsCursorTarget = function (t) {\n var e, n, i;\n return i = this.findNodeAndOffsetFromLocation(t), e = i[0], n = i[1], s(e);\n }, f.prototype.lock = function () {\n return 0 === this.lockCount++ ? (this.updateCurrentLocationRange(), this.lockedLocationRange = this.getLocationRange()) : void 0;\n }, f.prototype.unlock = function () {\n var t;\n return 0 === --this.lockCount && (t = this.lockedLocationRange, this.lockedLocationRange = null, null != t) ? this.setLocationRange(t) : void 0;\n }, f.prototype.clearSelection = function () {\n var t;\n return null != (t = i()) ? t.removeAllRanges() : void 0;\n }, f.prototype.selectionIsCollapsed = function () {\n var t;\n return (null != (t = n()) ? t.collapsed : void 0) === !0;\n }, f.prototype.selectionIsExpanded = function () {\n return !this.selectionIsCollapsed();\n }, f.prototype.createLocationRangeFromDOMRange = function (t, e) {\n var n, i;\n if (null != t && this.domRangeWithinElement(t) && (i = this.findLocationFromContainerAndOffset(t.startContainer, t.startOffset, e))) return t.collapsed || (n = this.findLocationFromContainerAndOffset(t.endContainer, t.endOffset, e)), a([i, n]);\n }, f.proxyMethod(\"locationMapper.findLocationFromContainerAndOffset\"), f.proxyMethod(\"locationMapper.findContainerAndOffsetFromLocation\"), f.proxyMethod(\"locationMapper.findNodeAndOffsetFromLocation\"), f.proxyMethod(\"pointMapper.createDOMRangeFromPoint\"), f.proxyMethod(\"pointMapper.getClientRectsForDOMRange\"), f.prototype.didMouseDown = function () {\n return this.pauseTemporarily();\n }, f.prototype.pauseTemporarily = function () {\n var e, n, i, r;\n return this.paused = !0, n = function (e) {\n return function () {\n var n, o, s;\n for (e.paused = !1, clearTimeout(r), o = 0, s = i.length; s > o; o++) n = i[o], n.destroy();\n return t(document, e.element) ? e.selectionDidChange() : void 0;\n };\n }(this), r = setTimeout(n, 200), i = function () {\n var t, i, r, s;\n for (r = [\"mousemove\", \"keydown\"], s = [], t = 0, i = r.length; i > t; t++) e = r[t], s.push(o(e, {\n onElement: document,\n withCallback: n\n }));\n return s;\n }();\n }, f.prototype.selectionDidChange = function () {\n return this.paused || r(this.element) ? void 0 : this.updateCurrentLocationRange();\n }, f.prototype.updateCurrentLocationRange = function (t) {\n var e;\n return (null != t ? t : t = this.createLocationRangeFromDOMRange(n())) && !c(t, this.currentLocationRange) ? (this.currentLocationRange = t, null != (e = this.delegate) && \"function\" == typeof e.locationRangeDidChange ? e.locationRangeDidChange(this.currentLocationRange.slice(0)) : void 0) : void 0;\n }, f.prototype.createDOMRangeFromLocationRange = function (t) {\n var e, n, i, o;\n return i = this.findContainerAndOffsetFromLocation(t[0]), n = u(t) ? i : null != (o = this.findContainerAndOffsetFromLocation(t[1])) ? o : i, null != i && null != n ? (e = document.createRange(), e.setStart.apply(e, i), e.setEnd.apply(e, n), e) : void 0;\n }, f.prototype.getLocationAtPoint = function (t) {\n var e, n;\n return (e = this.createDOMRangeFromPoint(t)) && null != (n = this.createLocationRangeFromDOMRange(e)) ? n[0] : void 0;\n }, f.prototype.domRangeWithinElement = function (e) {\n return e.collapsed ? t(this.element, e.startContainer) : t(this.element, e.startContainer) && t(this.element, e.endContainer);\n }, f;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var i in e) s.call(e, i) && (t[i] = e[i]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].slice;\n i = e.rangeIsCollapsed, o = e.rangesAreEqual, n = e.objectsAreEqual, t = e.getBlockConfig, e.EditorController = function (s) {\n function u(t) {\n var n, i;\n this.editorElement = t.editorElement, n = t.document, i = t.html, this.selectionManager = new e.SelectionManager(this.editorElement), this.selectionManager.delegate = this, this.composition = new e.Composition(), this.composition.delegate = this, this.attachmentManager = new e.AttachmentManager(this.composition.getAttachments()), this.attachmentManager.delegate = this, this.inputController = new e[\"Level\" + e.config.input.getLevel() + \"InputController\"](this.editorElement), this.inputController.delegate = this, this.inputController.responder = this.composition, this.compositionController = new e.CompositionController(this.editorElement, this.composition), this.compositionController.delegate = this, this.toolbarController = new e.ToolbarController(this.editorElement.toolbarElement), this.toolbarController.delegate = this, this.editor = new e.Editor(this.composition, this.selectionManager, this.editorElement), null != n ? this.editor.loadDocument(n) : this.editor.loadHTML(i);\n }\n var c;\n return r(u, s), u.prototype.registerSelectionManager = function () {\n return e.selectionChangeObserver.registerSelectionManager(this.selectionManager);\n }, u.prototype.unregisterSelectionManager = function () {\n return e.selectionChangeObserver.unregisterSelectionManager(this.selectionManager);\n }, u.prototype.render = function () {\n return this.compositionController.render();\n }, u.prototype.reparse = function () {\n return this.composition.replaceHTML(this.editorElement.innerHTML);\n }, u.prototype.compositionDidChangeDocument = function () {\n return this.notifyEditorElement(\"document-change\"), this.handlingInput ? void 0 : this.render();\n }, u.prototype.compositionDidChangeCurrentAttributes = function (t) {\n return this.currentAttributes = t, this.toolbarController.updateAttributes(this.currentAttributes), this.updateCurrentActions(), this.notifyEditorElement(\"attributes-change\", {\n attributes: this.currentAttributes\n });\n }, u.prototype.compositionDidPerformInsertionAtRange = function (t) {\n return this.pasting ? this.pastedRange = t : void 0;\n }, u.prototype.compositionShouldAcceptFile = function (t) {\n return this.notifyEditorElement(\"file-accept\", {\n file: t\n });\n }, u.prototype.compositionDidAddAttachment = function (t) {\n var e;\n return e = this.attachmentManager.manageAttachment(t), this.notifyEditorElement(\"attachment-add\", {\n attachment: e\n });\n }, u.prototype.compositionDidEditAttachment = function (t) {\n var e;\n return this.compositionController.rerenderViewForObject(t), e = this.attachmentManager.manageAttachment(t), this.notifyEditorElement(\"attachment-edit\", {\n attachment: e\n }), this.notifyEditorElement(\"change\");\n }, u.prototype.compositionDidChangeAttachmentPreviewURL = function (t) {\n return this.compositionController.invalidateViewForObject(t), this.notifyEditorElement(\"change\");\n }, u.prototype.compositionDidRemoveAttachment = function (t) {\n var e;\n return e = this.attachmentManager.unmanageAttachment(t), this.notifyEditorElement(\"attachment-remove\", {\n attachment: e\n });\n }, u.prototype.compositionDidStartEditingAttachment = function (t, e) {\n return this.attachmentLocationRange = this.composition.document.getLocationRangeOfAttachment(t), this.compositionController.installAttachmentEditorForAttachment(t, e), this.selectionManager.setLocationRange(this.attachmentLocationRange);\n }, u.prototype.compositionDidStopEditingAttachment = function () {\n return this.compositionController.uninstallAttachmentEditor(), this.attachmentLocationRange = null;\n }, u.prototype.compositionDidRequestChangingSelectionToLocationRange = function (t) {\n return !this.loadingSnapshot || this.isFocused() ? (this.requestedLocationRange = t, this.compositionRevisionWhenLocationRangeRequested = this.composition.revision, this.handlingInput ? void 0 : this.render()) : void 0;\n }, u.prototype.compositionWillLoadSnapshot = function () {\n return this.loadingSnapshot = !0;\n }, u.prototype.compositionDidLoadSnapshot = function () {\n return this.compositionController.refreshViewCache(), this.render(), this.loadingSnapshot = !1;\n }, u.prototype.getSelectionManager = function () {\n return this.selectionManager;\n }, u.proxyMethod(\"getSelectionManager().setLocationRange\"), u.proxyMethod(\"getSelectionManager().getLocationRange\"), u.prototype.attachmentManagerDidRequestRemovalOfAttachment = function (t) {\n return this.removeAttachment(t);\n }, u.prototype.compositionControllerWillSyncDocumentView = function () {\n return this.inputController.editorWillSyncDocumentView(), this.selectionManager.lock(), this.selectionManager.clearSelection();\n }, u.prototype.compositionControllerDidSyncDocumentView = function () {\n return this.inputController.editorDidSyncDocumentView(), this.selectionManager.unlock(), this.updateCurrentActions(), this.notifyEditorElement(\"sync\");\n }, u.prototype.compositionControllerDidRender = function () {\n return null != this.requestedLocationRange && (this.compositionRevisionWhenLocationRangeRequested === this.composition.revision && this.selectionManager.setLocationRange(this.requestedLocationRange), this.requestedLocationRange = null, this.compositionRevisionWhenLocationRangeRequested = null), this.renderedCompositionRevision !== this.composition.revision && (this.runEditorFilters(), this.composition.updateCurrentAttributes(), this.notifyEditorElement(\"render\")), this.renderedCompositionRevision = this.composition.revision;\n }, u.prototype.compositionControllerDidFocus = function () {\n return this.isFocusedInvisibly() && this.setLocationRange({\n index: 0,\n offset: 0\n }), this.toolbarController.hideDialog(), this.notifyEditorElement(\"focus\");\n }, u.prototype.compositionControllerDidBlur = function () {\n return this.notifyEditorElement(\"blur\");\n }, u.prototype.compositionControllerDidSelectAttachment = function (t, e) {\n return this.toolbarController.hideDialog(), this.composition.editAttachment(t, e);\n }, u.prototype.compositionControllerDidRequestDeselectingAttachment = function (t) {\n var e, n;\n return e = null != (n = this.attachmentLocationRange) ? n : this.composition.document.getLocationRangeOfAttachment(t), this.selectionManager.setLocationRange(e[1]);\n }, u.prototype.compositionControllerWillUpdateAttachment = function (t) {\n return this.editor.recordUndoEntry(\"Edit Attachment\", {\n context: t.id,\n consolidatable: !0\n });\n }, u.prototype.compositionControllerDidRequestRemovalOfAttachment = function (t) {\n return this.removeAttachment(t);\n }, u.prototype.inputControllerWillHandleInput = function () {\n return this.handlingInput = !0, this.requestedRender = !1;\n }, u.prototype.inputControllerDidRequestRender = function () {\n return this.requestedRender = !0;\n }, u.prototype.inputControllerDidHandleInput = function () {\n return this.handlingInput = !1, this.requestedRender ? (this.requestedRender = !1, this.render()) : void 0;\n }, u.prototype.inputControllerDidAllowUnhandledInput = function () {\n return this.notifyEditorElement(\"change\");\n }, u.prototype.inputControllerDidRequestReparse = function () {\n return this.reparse();\n }, u.prototype.inputControllerWillPerformTyping = function () {\n return this.recordTypingUndoEntry();\n }, u.prototype.inputControllerWillPerformFormatting = function (t) {\n return this.recordFormattingUndoEntry(t);\n }, u.prototype.inputControllerWillCutText = function () {\n return this.editor.recordUndoEntry(\"Cut\");\n }, u.prototype.inputControllerWillPaste = function (t) {\n return this.editor.recordUndoEntry(\"Paste\"), this.pasting = !0, this.notifyEditorElement(\"before-paste\", {\n paste: t\n });\n }, u.prototype.inputControllerDidPaste = function (t) {\n return t.range = this.pastedRange, this.pastedRange = null, this.pasting = null, this.notifyEditorElement(\"paste\", {\n paste: t\n });\n }, u.prototype.inputControllerWillMoveText = function () {\n return this.editor.recordUndoEntry(\"Move\");\n }, u.prototype.inputControllerWillAttachFiles = function () {\n return this.editor.recordUndoEntry(\"Drop Files\");\n }, u.prototype.inputControllerWillPerformUndo = function () {\n return this.editor.undo();\n }, u.prototype.inputControllerWillPerformRedo = function () {\n return this.editor.redo();\n }, u.prototype.inputControllerDidReceiveKeyboardCommand = function (t) {\n return this.toolbarController.applyKeyboardCommand(t);\n }, u.prototype.inputControllerDidStartDrag = function () {\n return this.locationRangeBeforeDrag = this.selectionManager.getLocationRange();\n }, u.prototype.inputControllerDidReceiveDragOverPoint = function (t) {\n return this.selectionManager.setLocationRangeFromPointRange(t);\n }, u.prototype.inputControllerDidCancelDrag = function () {\n return this.selectionManager.setLocationRange(this.locationRangeBeforeDrag), this.locationRangeBeforeDrag = null;\n }, u.prototype.locationRangeDidChange = function (t) {\n return this.composition.updateCurrentAttributes(), this.updateCurrentActions(), this.attachmentLocationRange && !o(this.attachmentLocationRange, t) && this.composition.stopEditingAttachment(), this.notifyEditorElement(\"selection-change\");\n }, u.prototype.toolbarDidClickButton = function () {\n return this.getLocationRange() ? void 0 : this.setLocationRange({\n index: 0,\n offset: 0\n });\n }, u.prototype.toolbarDidInvokeAction = function (t) {\n return this.invokeAction(t);\n }, u.prototype.toolbarDidToggleAttribute = function (t) {\n return this.recordFormattingUndoEntry(t), this.composition.toggleCurrentAttribute(t), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n }, u.prototype.toolbarDidUpdateAttribute = function (t, e) {\n return this.recordFormattingUndoEntry(t), this.composition.setCurrentAttribute(t, e), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n }, u.prototype.toolbarDidRemoveAttribute = function (t) {\n return this.recordFormattingUndoEntry(t), this.composition.removeCurrentAttribute(t), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n }, u.prototype.toolbarWillShowDialog = function () {\n return this.composition.expandSelectionForEditing(), this.freezeSelection();\n }, u.prototype.toolbarDidShowDialog = function (t) {\n return this.notifyEditorElement(\"toolbar-dialog-show\", {\n dialogName: t\n });\n }, u.prototype.toolbarDidHideDialog = function (t) {\n return this.thawSelection(), this.editorElement.focus(), this.notifyEditorElement(\"toolbar-dialog-hide\", {\n dialogName: t\n });\n }, u.prototype.freezeSelection = function () {\n return this.selectionFrozen ? void 0 : (this.selectionManager.lock(), this.composition.freezeSelection(), this.selectionFrozen = !0, this.render());\n }, u.prototype.thawSelection = function () {\n return this.selectionFrozen ? (this.composition.thawSelection(), this.selectionManager.unlock(), this.selectionFrozen = !1, this.render()) : void 0;\n }, u.prototype.actions = {\n undo: {\n test: function () {\n return this.editor.canUndo();\n },\n perform: function () {\n return this.editor.undo();\n }\n },\n redo: {\n test: function () {\n return this.editor.canRedo();\n },\n perform: function () {\n return this.editor.redo();\n }\n },\n link: {\n test: function () {\n return this.editor.canActivateAttribute(\"href\");\n }\n },\n increaseNestingLevel: {\n test: function () {\n return this.editor.canIncreaseNestingLevel();\n },\n perform: function () {\n return this.editor.increaseNestingLevel() && this.render();\n }\n },\n decreaseNestingLevel: {\n test: function () {\n return this.editor.canDecreaseNestingLevel();\n },\n perform: function () {\n return this.editor.decreaseNestingLevel() && this.render();\n }\n },\n attachFiles: {\n test: function () {\n return !0;\n },\n perform: function () {\n return e.config.input.pickFiles(this.editor.insertFiles);\n }\n }\n }, u.prototype.canInvokeAction = function (t) {\n var e, n;\n return this.actionIsExternal(t) ? !0 : !!(null != (e = this.actions[t]) && null != (n = e.test) ? n.call(this) : void 0);\n }, u.prototype.invokeAction = function (t) {\n var e, n;\n return this.actionIsExternal(t) ? this.notifyEditorElement(\"action-invoke\", {\n actionName: t\n }) : null != (e = this.actions[t]) && null != (n = e.perform) ? n.call(this) : void 0;\n }, u.prototype.actionIsExternal = function (t) {\n return /^x-./.test(t);\n }, u.prototype.getCurrentActions = function () {\n var t, e;\n e = {};\n for (t in this.actions) e[t] = this.canInvokeAction(t);\n return e;\n }, u.prototype.updateCurrentActions = function () {\n var t;\n return t = this.getCurrentActions(), n(t, this.currentActions) ? void 0 : (this.currentActions = t, this.toolbarController.updateActions(this.currentActions), this.notifyEditorElement(\"actions-change\", {\n actions: this.currentActions\n }));\n }, u.prototype.runEditorFilters = function () {\n var t, e, n, i, o, r, s, a;\n for (a = this.composition.getSnapshot(), o = this.editor.filters, n = 0, i = o.length; i > n; n++) e = o[n], t = a.document, s = a.selectedRange, a = null != (r = e.call(this.editor, a)) ? r : {}, null == a.document && (a.document = t), null == a.selectedRange && (a.selectedRange = s);\n return c(a, this.composition.getSnapshot()) ? void 0 : this.composition.loadSnapshot(a);\n }, c = function (t, e) {\n return o(t.selectedRange, e.selectedRange) && t.document.isEqualTo(e.document);\n }, u.prototype.updateInputElement = function () {\n var t, n;\n return t = this.compositionController.getSerializableElement(), n = e.serializeToContentType(t, \"text/html\"), this.editorElement.setInputElementValue(n);\n }, u.prototype.notifyEditorElement = function (t, e) {\n switch (t) {\n case \"document-change\":\n this.documentChangedSinceLastRender = !0;\n break;\n case \"render\":\n this.documentChangedSinceLastRender && (this.documentChangedSinceLastRender = !1, this.notifyEditorElement(\"change\"));\n break;\n case \"change\":\n case \"attachment-add\":\n case \"attachment-edit\":\n case \"attachment-remove\":\n this.updateInputElement();\n }\n return this.editorElement.notify(t, e);\n }, u.prototype.removeAttachment = function (t) {\n return this.editor.recordUndoEntry(\"Delete Attachment\"), this.composition.removeAttachment(t), this.render();\n }, u.prototype.recordFormattingUndoEntry = function (e) {\n var n, o;\n return n = t(e), o = this.selectionManager.getLocationRange(), n || !i(o) ? this.editor.recordUndoEntry(\"Formatting\", {\n context: this.getUndoContext(),\n consolidatable: !0\n }) : void 0;\n }, u.prototype.recordTypingUndoEntry = function () {\n return this.editor.recordUndoEntry(\"Typing\", {\n context: this.getUndoContext(this.currentAttributes),\n consolidatable: !0\n });\n }, u.prototype.getUndoContext = function () {\n var t;\n return t = 1 <= arguments.length ? a.call(arguments, 0) : [], [this.getLocationContext(), this.getTimeContext()].concat(a.call(t));\n }, u.prototype.getLocationContext = function () {\n var t;\n return t = this.selectionManager.getLocationRange(), i(t) ? t[0].index : t;\n }, u.prototype.getTimeContext = function () {\n return e.config.undoInterval > 0 ? Math.floor(new Date().getTime() / e.config.undoInterval) : 0;\n }, u.prototype.isFocused = function () {\n var t;\n return this.editorElement === (null != (t = this.editorElement.ownerDocument) ? t.activeElement : void 0);\n }, u.prototype.isFocusedInvisibly = function () {\n return this.isFocused() && !this.getLocationRange();\n }, u;\n }(e.Controller);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n return -1;\n };\n n = e.browser, s = e.makeElement, a = e.triggerEvent, o = e.handleEvent, r = e.handleEventOnce, i = e.findClosestElementFromNode, t = e.AttachmentView.attachmentSelector, e.registerElement(\"trix-editor\", function () {\n var c, l, h, p, d, f, g, m, v;\n return g = 0, l = function (t) {\n return !document.querySelector(\":focus\") && t.hasAttribute(\"autofocus\") && document.querySelector(\"[autofocus]\") === t ? t.focus() : void 0;\n }, m = function (t) {\n return t.hasAttribute(\"contenteditable\") ? void 0 : (t.setAttribute(\"contenteditable\", \"\"), r(\"focus\", {\n onElement: t,\n withCallback: function () {\n return h(t);\n }\n }));\n }, h = function (t) {\n return d(t), v(t);\n }, d = function (t) {\n return (\"function\" == typeof document.queryCommandSupported ? document.queryCommandSupported(\"enableObjectResizing\") : void 0) ? (document.execCommand(\"enableObjectResizing\", !1, !1), o(\"mscontrolselect\", {\n onElement: t,\n preventDefault: !0\n })) : void 0;\n }, v = function () {\n var t;\n return (\"function\" == typeof document.queryCommandSupported ? document.queryCommandSupported(\"DefaultParagraphSeparator\") : void 0) && (t = e.config.blockAttributes[\"default\"].tagName, \"div\" === t || \"p\" === t) ? document.execCommand(\"DefaultParagraphSeparator\", !1, t) : void 0;\n }, c = function (t) {\n return t.hasAttribute(\"role\") ? void 0 : t.setAttribute(\"role\", \"textbox\");\n }, f = function (t) {\n var e;\n if (!t.hasAttribute(\"aria-label\") && !t.hasAttribute(\"aria-labelledby\")) return (e = function () {\n var e, n, i;\n return i = function () {\n var n, i, o, r;\n for (o = t.labels, r = [], n = 0, i = o.length; i > n; n++) e = o[n], e.contains(t) || r.push(e.textContent);\n return r;\n }(), (n = i.join(\" \")) ? t.setAttribute(\"aria-label\", n) : t.removeAttribute(\"aria-label\");\n })(), o(\"focus\", {\n onElement: t,\n withCallback: e\n });\n }, p = function () {\n return n.forcesObjectResizing ? {\n display: \"inline\",\n width: \"auto\"\n } : {\n display: \"inline-block\",\n width: \"1px\"\n };\n }(), {\n defaultCSS: \"%t {\\n display: block;\\n}\\n\\n%t:empty:not(:focus)::before {\\n content: attr(placeholder);\\n color: graytext;\\n cursor: text;\\n pointer-events: none;\\n}\\n\\n%t a[contenteditable=false] {\\n cursor: text;\\n}\\n\\n%t img {\\n max-width: 100%;\\n height: auto;\\n}\\n\\n%t \" + t + \" figcaption textarea {\\n resize: none;\\n}\\n\\n%t \" + t + \" figcaption textarea.trix-autoresize-clone {\\n position: absolute;\\n left: -9999px;\\n max-height: 0px;\\n}\\n\\n%t \" + t + \" figcaption[data-trix-placeholder]:empty::before {\\n content: attr(data-trix-placeholder);\\n color: graytext;\\n}\\n\\n%t [data-trix-cursor-target] {\\n display: \" + p.display + \" !important;\\n width: \" + p.width + \" !important;\\n padding: 0 !important;\\n margin: 0 !important;\\n border: none !important;\\n}\\n\\n%t [data-trix-cursor-target=left] {\\n vertical-align: top !important;\\n margin-left: -1px !important;\\n}\\n\\n%t [data-trix-cursor-target=right] {\\n vertical-align: bottom !important;\\n margin-right: -1px !important;\\n}\",\n trixId: {\n get: function () {\n return this.hasAttribute(\"trix-id\") ? this.getAttribute(\"trix-id\") : (this.setAttribute(\"trix-id\", ++g), this.trixId);\n }\n },\n labels: {\n get: function () {\n var t, e, n;\n return e = [], this.id && this.ownerDocument && e.push.apply(e, this.ownerDocument.querySelectorAll(\"label[for='\" + this.id + \"']\")), (t = i(this, {\n matchingSelector: \"label\"\n })) && ((n = t.control) === this || null === n) && e.push(t), e;\n }\n },\n toolbarElement: {\n get: function () {\n var t, e, n;\n return this.hasAttribute(\"toolbar\") ? null != (e = this.ownerDocument) ? e.getElementById(this.getAttribute(\"toolbar\")) : void 0 : this.parentNode ? (n = \"trix-toolbar-\" + this.trixId, this.setAttribute(\"toolbar\", n), t = s(\"trix-toolbar\", {\n id: n\n }), this.parentNode.insertBefore(t, this), t) : void 0;\n }\n },\n inputElement: {\n get: function () {\n var t, e, n;\n return this.hasAttribute(\"input\") ? null != (n = this.ownerDocument) ? n.getElementById(this.getAttribute(\"input\")) : void 0 : this.parentNode ? (e = \"trix-input-\" + this.trixId, this.setAttribute(\"input\", e), t = s(\"input\", {\n type: \"hidden\",\n id: e\n }), this.parentNode.insertBefore(t, this.nextElementSibling), t) : void 0;\n }\n },\n editor: {\n get: function () {\n var t;\n return null != (t = this.editorController) ? t.editor : void 0;\n }\n },\n name: {\n get: function () {\n var t;\n return null != (t = this.inputElement) ? t.name : void 0;\n }\n },\n value: {\n get: function () {\n var t;\n return null != (t = this.inputElement) ? t.value : void 0;\n },\n set: function (t) {\n var e;\n return this.defaultValue = t, null != (e = this.editor) ? e.loadHTML(this.defaultValue) : void 0;\n }\n },\n notify: function (t, e) {\n return this.editorController ? a(\"trix-\" + t, {\n onElement: this,\n attributes: e\n }) : void 0;\n },\n setInputElementValue: function (t) {\n var e;\n return null != (e = this.inputElement) ? e.value = t : void 0;\n },\n initialize: function () {\n return this.hasAttribute(\"data-trix-internal\") ? void 0 : (m(this), c(this), f(this));\n },\n connect: function () {\n return this.hasAttribute(\"data-trix-internal\") ? void 0 : (this.editorController || (a(\"trix-before-initialize\", {\n onElement: this\n }), this.editorController = new e.EditorController({\n editorElement: this,\n html: this.defaultValue = this.value\n }), requestAnimationFrame(function (t) {\n return function () {\n return a(\"trix-initialize\", {\n onElement: t\n });\n };\n }(this))), this.editorController.registerSelectionManager(), this.registerResetListener(), this.registerClickListener(), l(this));\n },\n disconnect: function () {\n var t;\n return null != (t = this.editorController) && t.unregisterSelectionManager(), this.unregisterResetListener(), this.unregisterClickListener();\n },\n registerResetListener: function () {\n return this.resetListener = this.resetBubbled.bind(this), window.addEventListener(\"reset\", this.resetListener, !1);\n },\n unregisterResetListener: function () {\n return window.removeEventListener(\"reset\", this.resetListener, !1);\n },\n registerClickListener: function () {\n return this.clickListener = this.clickBubbled.bind(this), window.addEventListener(\"click\", this.clickListener, !1);\n },\n unregisterClickListener: function () {\n return window.removeEventListener(\"click\", this.clickListener, !1);\n },\n resetBubbled: function (t) {\n var e;\n if (!t.defaultPrevented && t.target === (null != (e = this.inputElement) ? e.form : void 0)) return this.reset();\n },\n clickBubbled: function (t) {\n var e;\n if (!(t.defaultPrevented || this.contains(t.target) || !(e = i(t.target, {\n matchingSelector: \"label\"\n })) || u.call(this.labels, e) < 0)) return this.focus();\n },\n reset: function () {\n return this.value = this.defaultValue;\n }\n };\n }());\n }.call(this), function () {}.call(this);\n }).call(this), \"object\" == typeof module && module.exports ? module.exports = e : \"function\" == typeof define && define.amd && define(e);\n}.call(this);","var scope = typeof global !== \"undefined\" && global || typeof self !== \"undefined\" && self || window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function () {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function () {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout = exports.clearInterval = function (timeout) {\n if (timeout) {\n timeout.close();\n }\n};\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function () {};\nTimeout.prototype.close = function () {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function (item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\nexports.unenroll = function (item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\nexports._unrefActive = exports.active = function (item) {\n clearTimeout(item._idleTimeoutId);\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout) item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = typeof self !== \"undefined\" && self.setImmediate || typeof global !== \"undefined\" && global.setImmediate || this && this.setImmediate;\nexports.clearImmediate = typeof self !== \"undefined\" && self.clearImmediate || typeof global !== \"undefined\" && global.clearImmediate || this && this.clearImmediate;","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = {\n callback: callback,\n args: args\n };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n function installNextTickImplementation() {\n registerImmediate = function (handle) {\n process.nextTick(function () {\n runIfPresent(handle);\n });\n };\n }\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function () {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function (event) {\n if (event.source === global && typeof event.data === \"string\" && event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n registerImmediate = function (handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function (event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n registerImmediate = function (handle) {\n channel.port2.postMessage(handle);\n };\n }\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function (handle) {\n // Create a