{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///(webpack)/buildin/global.js","webpack:///./frontend/packs/trix.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/attachment_upload.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/index.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/activestorage/app/assets/javascripts/activestorage.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","require","constructor","attachment","element","directUpload","file","directUploadUrl","start","directUploadDidComplete","directUploadWillStoreFileWithXHR","xhr","upload","addEventListener","event","progress","loaded","total","setUploadProgress","error","attributes","Error","setAttributes","sgid","attachable_sgid","url","createBlobUrl","signed_id","filename","signedId","blobUrlTemplate","replace","encodeURIComponent","dataset","target","Set","clear","values","has","indexOf","add","push","splice","forEach","apply","arguments","TypeError","_state","_handled","_value","_deferreds","h","onFulfilled","onRejected","promise","then","a","length","setTimeout","u","setImmediate","console","warn","all","Array","slice","resolve","reject","race","_setImmediateFn","_setUnhandledRejectionFn","Promise","customElements","document","registerElement","WeakMap","Date","now","Math","random","set","writable","A","b","sort","uid_","takeRecords","nodes_","observer","removeTransientObservers","callback_","parentNode","options","subtree","enqueue","records_","C","type","addedNodes","removedNodes","previousSibling","nextSibling","attributeName","attributeNamespace","oldValue","x","w","f","transientObservedNodes","JsMutationObserver","test","navigator","userAgent","v","y","String","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","createEvent","initEvent","preventDefault","defaultPrevented","Event","cancelable","configurable","CustomEvent","initCustomEvent","Boolean","bubbles","detail","WebComponents","CustomElements","flags","addModule","initializeModules","hasNative","isIE","useNative","register","HTMLImports","firstElementChild","firstChild","nodeType","Node","ELEMENT_NODE","nextElementSibling","shadowRoot","olderShadowRoot","wrap","querySelectorAll","import","IMPORT_LINK_TYPE","forDocumentTree","forSubtree","upgrade","__upgraded__","__attached","attachedCallback","detachedCallback","dom","host","URL","_URL","localName","split","shift","pop","group","DOCUMENT_FRAGMENT_NODE","E","groupEnd","__observer","baseURI","hasPolyfillMutations","hasThrottledAttached","S","Element","createShadowRoot","watchShadow","__watched","log","upgradeDocumentTree","upgradeDocument","upgradeSubtree","upgradeAll","attached","is","setAttribute","createdCallback","__proto__","HTMLElement","getOwnPropertyNames","getOwnPropertyDescriptor","getPrototypeOf","native","HTMLTemplateElement","decorate","getAttribute","getRegisteredDefinition","tag","extends","upgradeWithDefinition","implementPrototype","_polyfilled","removeAttribute","toLowerCase","attributeChangedCallback","concat","ctor","createElement","createElementNS","__name","lifecycle","ancestry","ready","registry","instanceof","reservedTagList","readyTime","elapsed","dispatchEvent","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","match","__super__","id","fromJSONString","fromJSON","JSON","parse","hasSameConstructorAs","isEqualTo","inspect","contentsForInspection","join","toJSONString","stringify","toUTF16String","UTF16String","box","getCacheKey","toString","extend","defer","normalizeSpaces","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","destroy","findClosestElementFromNode","handleEventOnce","triggerEvent","elementMatchesSelector","untilNode","closest","findInnerElement","innerElementIsActive","activeElement","elementContainsNode","findNodeFromContainerAndOffset","TEXT_NODE","childNodes","item","findElementFromContainerAndOffset","findChildIndexOfNode","removeNode","removeChild","walkTree","onlyNodesOfType","usingFilter","expandEntityReferences","NodeFilter","SHOW_ELEMENT","SHOW_TEXT","SHOW_COMMENT","SHOW_ALL","createTreeWalker","tagName","makeElement","editable","contenteditable","style","className","classList","textContent","appendChild","getBlockTagNames","blockTagNames","nodeIsBlockContainer","nodeIsBlockStartComment","nodeProbablyIsBlockContainer","nodeIsBlockStart","strict","nodeIsCommentNode","COMMENT_NODE","nodeIsCursorTarget","nodeIsTextNode","trixCursorTarget","nodeIsAttachmentElement","AttachmentView","attachmentSelector","nodeIsEmptyTextNode","normalizeRange","isArray","rangeIsCollapsed","rangesAreEqual","defaultCSS","head","insertBefore","querySelector","initialize","connect","initialized","connectedCallback","disconnectedCallback","Reflect","construct","setPrototypeOf","defineProperties","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","toJSON","ObjectGroup","objects","depth","asTree","groupObjects","canBeGrouped","canBeGroupedWith","getObjects","getDepth","ObjectMap","find","ElementStore","reset","elements","trixStoreKey","Operation","isPerforming","performing","hasPerformed","performed","hasSucceeded","succeeded","hasFailed","getPromise","perform","release","cancel","ucs2String","ucs2Length","fromUCS2String","offsetToUCS2Offset","max","offsetFromUCS2Offset","from","codePointAt","fromCodePoint","map","charCodeAt","fromCharCode","lang","attachFiles","bold","bullets","bytes","captionPlaceholder","code","heading1","indent","italic","link","numbers","outdent","quote","redo","strike","undo","unlink","urlPlaceholder","GB","KB","MB","PB","TB","css","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","size","keyNames","input","level2Enabled","getLevel","pickFiles","multiple","hidden","fileInputId","files","getElementById","click","ObjectView","childViews","rootView","getNodes","nodes","createNodes","invalidate","parentView","invalidateViewForObject","findViewForObject","findOrCreateCachedChildView","getCachedViewForObject","recordChildView","createChildView","cacheViewForObject","viewClass","ObjectGroupView","getAllChildViews","findElement","findElementForObject","getViewCache","isViewCachingEnabled","viewCache","shouldCacheViews","enableViewCaching","disableViewCaching","garbageCollectCachedViews","objectGroup","getChildViews","createContainerElement","Controller","didMutate","stop","mutations","findSignificantMutations","delegate","elementDidMutate","getMutationSummary","mutationIsSignificant","nodeIsMutable","nodesModifiedByMutation","nodeIsSignificant","getTextMutationSummary","getTextChangesFromCharacterData","additions","deletions","getTextChangesFromChildList","textAdded","textDeleted","getMutationsByType","FileVerificationOperation","FileReader","onerror","onload","abort","readAsArrayBuffer","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","k","D","L","testClipboardData","clipboard","getPastedHTMLUsingHiddenElement","html","inputControllerWillPaste","insertHTML","inputControllerDidPaste","string","types","items","getAsFile","insertFile","compositionstart","getCompositionInput","compositionupdate","compositionend","end","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","focus","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","display","parentElement","editCaption","attachmentEditorDidRequestRemovalOfAttachment","attachmentEditorDidRequestDeselectingAttachment","uploadProgressDelegate","piece","createContentNodes","getClassName","getHref","tabindex","hasContent","HTMLSanitizer","setHTML","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","hasAttribute","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","parseInt","ToolbarController","didKeyDownDialogInput","didClickDialogButton","didClickAttributeButton","actions","resetDialogInputs","toolbarDidClickButton","getDialog","toggleDialog","toolbarDidInvokeAction","toolbarDidToggleAttribute","refreshAttributeButtons","hideDialog","updateActions","refreshActionButtons","eachActionButton","disabled","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","preloadURL","getFilesize","getFile","preloadFile","releasePreloadedFile","uploadProgress","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","allowedAttributes","forbiddenProtocols","forbiddenElements","sanitize","getHTML","sanitizeElements","normalizeListElementNesting","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","min","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","started","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","notify","getUndoContext","getLocationContext","getTimeContext","getTime","ownerDocument","queryCommandSupported","execCommand","labels","contains","inputElement","editorController","defaultValue","registerResetListener","registerClickListener","unregisterResetListener","unregisterClickListener","resetListener","resetBubbled","clickListener","clickBubbled","form","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","callback","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","createCommonjsModule","fn","sparkMd5","factory","undefined","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","tail","tmp","lo","hi","state","substring","md51_array","subarray","Uint8Array","rhex","j","hex","toUtf8","str","unescape","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arr","arrayBuffer2Utf8Str","concatenateArrayBuffers","first","second","result","byteLength","buffer","hexToBinaryString","substr","SparkMD5","clamp","val","to","num","targetArray","sourceArray","begin","append","appendBinary","contents","_buff","_length","_hash","raw","ret","_finish","getState","hash","setState","hashBinary","content","classCallCheck","instance","Constructor","createClass","props","descriptor","protoProps","staticProps","fileSlice","File","mozSlice","webkitSlice","FileChecksum","chunkSize","chunkCount","ceil","chunkIndex","_this","md5Buffer","fileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","getMetaValue","findElements","root","selector","toArray$1","eventInit","BlobRecord","checksum","content_type","byte_size","XMLHttpRequest","open","responseType","setRequestHeader","csrfToken","requestDidLoad","requestDidError","send","blob","status","response","direct_upload","directUploadData","_xhr","BlobUpload","_blob$directUploadDat","headers","DirectUpload","methodName","_len","messages","_key","DirectUploadController","dispatch","hiddenInput","insertAdjacentElement","dispatchError","alert","_this2","uploadRequestDidProgress","inputSelector","DirectUploadsController","inputs","filter","controllers","createDirectUploadControllers","startNextController","controller","processingAttribute","submitButtonsByForm","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","disable","enable","submitForm","button","delete","autostart","ActiveStorage"],"mappings":"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","file":"js/trix-91bd4aeaae556c4fd80c.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 = 333);\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;","require(\"trix\")\nrequire(\"@rails/actiontext\")\nimport 'trix/dist/trix.css';\nimport '../components/html/trix/trix'\n","import { DirectUpload } from \"@rails/activestorage\";\nexport class AttachmentUpload {\n constructor(attachment, element) {\n this.attachment = attachment;\n this.element = element;\n this.directUpload = new DirectUpload(attachment.file, this.directUploadUrl, this);\n }\n start() {\n this.directUpload.create(this.directUploadDidComplete.bind(this));\n }\n directUploadWillStoreFileWithXHR(xhr) {\n xhr.upload.addEventListener(\"progress\", event => {\n const progress = event.loaded / event.total * 100;\n this.attachment.setUploadProgress(progress);\n });\n }\n directUploadDidComplete(error, attributes) {\n if (error) {\n throw new Error(`Direct upload failed: ${error}`);\n }\n this.attachment.setAttributes({\n sgid: attributes.attachable_sgid,\n url: this.createBlobUrl(attributes.signed_id, attributes.filename)\n });\n }\n createBlobUrl(signedId, filename) {\n return this.blobUrlTemplate.replace(\":signed_id\", signedId).replace(\":filename\", encodeURIComponent(filename));\n }\n get directUploadUrl() {\n return this.element.dataset.directUploadUrl;\n }\n get blobUrlTemplate() {\n return this.element.dataset.blobUrlTemplate;\n }\n}","import { AttachmentUpload } from \"./attachment_upload\";\naddEventListener(\"trix-attachment-add\", event => {\n const attachment = event.attachment,\n target = event.target;\n if (attachment.file) {\n const upload = new AttachmentUpload(attachment, target);\n upload.start();\n }\n});","/*\nTrix 1.3.5\nCopyright © 2024 37signals, 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.5\",\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(\"<!--block-->\", \"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 '<div class=\"trix-button-row\">\\n <span class=\"trix-button-group trix-button-group--text-tools\" data-trix-button-group=\"text-tools\">\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-bold\" data-trix-attribute=\"bold\" data-trix-key=\"b\" title=\"' + t.bold + '\" tabindex=\"-1\">' + t.bold + '</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-italic\" data-trix-attribute=\"italic\" data-trix-key=\"i\" title=\"' + t.italic + '\" tabindex=\"-1\">' + t.italic + '</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-strike\" data-trix-attribute=\"strike\" title=\"' + t.strike + '\" tabindex=\"-1\">' + t.strike + '</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-link\" data-trix-attribute=\"href\" data-trix-action=\"link\" data-trix-key=\"k\" title=\"' + t.link + '\" tabindex=\"-1\">' + t.link + '</button>\\n </span>\\n\\n <span class=\"trix-button-group trix-button-group--block-tools\" data-trix-button-group=\"block-tools\">\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-heading-1\" data-trix-attribute=\"heading1\" title=\"' + t.heading1 + '\" tabindex=\"-1\">' + t.heading1 + '</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-quote\" data-trix-attribute=\"quote\" title=\"' + t.quote + '\" tabindex=\"-1\">' + t.quote + '</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-code\" data-trix-attribute=\"code\" title=\"' + t.code + '\" tabindex=\"-1\">' + t.code + '</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-bullet-list\" data-trix-attribute=\"bullet\" title=\"' + t.bullets + '\" tabindex=\"-1\">' + t.bullets + '</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-number-list\" data-trix-attribute=\"number\" title=\"' + t.numbers + '\" tabindex=\"-1\">' + t.numbers + '</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-decrease-nesting-level\" data-trix-action=\"decreaseNestingLevel\" title=\"' + t.outdent + '\" tabindex=\"-1\">' + t.outdent + '</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-increase-nesting-level\" data-trix-action=\"increaseNestingLevel\" title=\"' + t.indent + '\" tabindex=\"-1\">' + t.indent + '</button>\\n </span>\\n\\n <span class=\"trix-button-group trix-button-group--file-tools\" data-trix-button-group=\"file-tools\">\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-attach\" data-trix-action=\"attachFiles\" title=\"' + t.attachFiles + '\" tabindex=\"-1\">' + t.attachFiles + '</button>\\n </span>\\n\\n <span class=\"trix-button-group-spacer\"></span>\\n\\n <span class=\"trix-button-group trix-button-group--history-tools\" data-trix-button-group=\"history-tools\">\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-undo\" data-trix-action=\"undo\" data-trix-key=\"z\" title=\"' + t.undo + '\" tabindex=\"-1\">' + t.undo + '</button>\\n <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-redo\" data-trix-action=\"redo\" data-trix-key=\"shift+z\" title=\"' + t.redo + '\" tabindex=\"-1\">' + t.redo + '</button>\\n </span>\\n</div>\\n\\n<div class=\"trix-dialogs\" data-trix-dialogs>\\n <div class=\"trix-dialog trix-dialog--link\" data-trix-dialog=\"href\" data-trix-dialog-attribute=\"href\">\\n <div class=\"trix-dialog__link-fields\">\\n <input type=\"url\" name=\"href\" class=\"trix-input trix-input--dialog\" placeholder=\"' + t.urlPlaceholder + '\" aria-label=\"' + t.url + '\" required data-trix-input>\\n <div class=\"trix-button-group\">\\n <input type=\"button\" class=\"trix-button trix-button--dialog\" value=\"' + t.link + '\" data-trix-method=\"setAttribute\">\\n <input type=\"button\" class=\"trix-button trix-button--dialog\" value=\"' + t.unlink + '\" data-trix-method=\"removeAttribute\">\\n </div>\\n </div>\\n </div>\\n</div>';\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 n, o, r, s, u, c, l;\n if (n = s = i({\n tagName: \"figure\",\n className: this.getClassName(),\n data: this.getData(),\n editable: !1\n }), (o = this.getHref()) && (s = i({\n tagName: \"a\",\n editable: !1,\n attributes: {\n href: o,\n tabindex: -1\n }\n }), n.appendChild(s)), this.attachment.hasContent()) e.HTMLSanitizer.setHTML(s, this.attachment.getContent());else for (l = this.createContentNodes(), r = 0, u = l.length; u > r; r++) c = l[r], s.appendChild(c);\n return s.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 }), n.appendChild(this.progressElement)), [a(\"left\"), n, 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, n) {\n var o;\n return o = i(\"div\"), e.HTMLSanitizer.setHTML(o, t || \"\"), o.querySelector(n);\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 form noscript embed math\".split(\" \"), u.setHTML = function (t, e) {\n var n, i, o;\n return o = new this(e), n = o.sanitize(), i = null != n.getHTML ? n.getHTML() : n.outerHTML, t.innerHTML = i;\n }, 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, \"</html>\"), 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 try {\n for (this.createHiddenContainer(), e.HTMLSanitizer.setHTML(this.containerElement, this.html), t = h(this.containerElement, {\n usingFilter: x\n }); t.nextNode();) this.processNode(t.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 <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var script = doc.createElement(\"script\");\n script.onreadystatechange = function () {\n runIfPresent(handle);\n script.onreadystatechange = null;\n html.removeChild(script);\n script = null;\n };\n html.appendChild(script);\n };\n }\n function installSetTimeoutImplementation() {\n registerImmediate = function (handle) {\n setTimeout(runIfPresent, 0, handle);\n };\n }\n\n // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.\n var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n attachTo = attachTo && attachTo.setTimeout ? attachTo : global;\n\n // Don't get fooled by e.g. browserify environments.\n if ({}.toString.call(global.process) === \"[object process]\") {\n // For Node.js before 0.9\n installNextTickImplementation();\n } else if (canUsePostMessage()) {\n // For non-IE10 modern browsers\n installPostMessageImplementation();\n } else if (global.MessageChannel) {\n // For web workers, where supported\n installMessageChannelImplementation();\n } else if (doc && \"onreadystatechange\" in doc.createElement(\"script\")) {\n // For IE 6–8\n installReadyStateChangeImplementation();\n } else {\n // For older browsers\n installSetTimeoutImplementation();\n }\n attachTo.setImmediate = setImmediate;\n attachTo.clearImmediate = clearImmediate;\n})(typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self);","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n while (len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\nfunction noop() {}\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\nprocess.listeners = function (name) {\n return [];\n};\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\nprocess.cwd = function () {\n return '/';\n};\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function () {\n return 0;\n};","(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});"],"sourceRoot":""}