{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///(webpack)/buildin/module.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./app/javascript/packs/application.js","webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/channels sync _channel\\.js$","webpack:///./node_modules/trix/dist/trix.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/attachment_upload.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/index.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","factory","_typeof","iterator","obj","constructor","sparkMd5","fn","createCommonjsModule","undefined","hex_chr","md5cycle","x","k","a","b","md5blk","md5blks","charCodeAt","md5blk_array","md51","length","tail","tmp","lo","hi","state","substring","toString","match","parseInt","md51_array","subarray","Uint8Array","rhex","j","hex","join","toUtf8","str","test","unescape","encodeURIComponent","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arr","arrayBuffer2Utf8Str","String","fromCharCode","apply","concatenateArrayBuffers","first","second","result","byteLength","set","buffer","hexToBinaryString","bytes","push","substr","SparkMD5","this","reset","slice","clamp","val","Math","max","min","from","to","num","target","targetArray","sourceArray","begin","end","append","appendBinary","contents","_buff","_length","_hash","raw","ret","_finish","getState","hash","setState","destroy","hashBinary","content","classCallCheck","instance","Constructor","TypeError","createClass","defineProperties","props","descriptor","configurable","writable","protoProps","staticProps","fileSlice","File","mozSlice","webkitSlice","FileChecksum","file","chunkSize","chunkCount","ceil","size","chunkIndex","callback","_this","md5Buffer","fileReader","FileReader","addEventListener","event","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","start","readAsArrayBuffer","findElement","root","selector","document","querySelector","dispatchEvent","element","type","eventInit","arguments","disabled","bubbles","cancelable","detail","createEvent","initEvent","toArray$1","Array","isArray","BlobRecord","checksum","url","attributes","filename","content_type","byte_size","xhr","XMLHttpRequest","open","responseType","setRequestHeader","csrfToken","head","getAttribute","getMetaValue","requestDidLoad","requestDidError","send","JSON","stringify","blob","status","response","direct_upload","directUploadData","toJSON","_xhr","parse","BlobUpload","_blob$directUploadDat","headers","id","DirectUpload","delegate","error","notify","upload","methodName","_len","messages","_key","DirectUploadController","input","directUpload","dispatch","hiddenInput","createElement","insertAdjacentElement","parentNode","removeChild","dispatchError","signed_id","progress","loaded","total","defaultPrevented","alert","_this2","uploadRequestDidProgress","DirectUploadsController","form","inputs","querySelectorAll","filter","files","controllers","createDirectUploadControllers","startNextController","controller","shift","forEach","processingAttribute","submitButtonsByForm","WeakMap","started","didClick","didSubmitForm","didSubmitRemoteElement","tagName","handleFormSubmissionEvent","hasAttribute","preventDefault","setAttribute","disable","removeAttribute","enable","button","focus","click","style","display","appendChild","submitForm","setTimeout","window","ActiveStorage","webpackPolyfill","deprecate","paths","children","g","Function","e","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","ref","cspNonce","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","getData","setData","$","csrfParam","meta","CSRFProtection","token","refreshCSRFTokens","param","CustomEvent","fire","params","evt","initCustomEvent","Event","data","stopEverything","stopPropagation","stopImmediatePropagation","eventType","handler","AcceptHeaders","createXHR","prepareOptions","processResponse","text","html","xml","json","script","ajax","options","responseText","getResponseHeader","floor","success","statusText","complete","beforeSend","readyState","OPENED","location","href","toUpperCase","indexOf","dataType","accept","done","crossDomain","withCredentials","onreadystatechange","DONE","parser","DOMParser","replace","parseFromString","isCrossDomain","originAnchor","urlAnchor","protocol","host","toArray","serializeElement","additionalParam","elements","option","selected","checked","map","formElements","el","allowAction","handleConfirm","confirm","message","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","innerHTML","originalText","removeEventListener","handleMethod","formContent","link","method","action","body","isRemote","handleRemote","enctype","FormData","args","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","metaKey","ctrlKey","jQuery","rails","Error","ajaxPrefilter","originalOptions","_rails_loaded","Trix","require","config","textAttributes","cloze","inheritable","blockAttributes","nestable","toolbarElement","insertAdjacentHTML","channels","keys","webpackEmptyContext","req","code","resolve","Set","clear","values","has","add","splice","_state","_handled","_value","_deferreds","h","onFulfilled","onRejected","promise","then","u","setImmediate","console","warn","all","reject","race","_setImmediateFn","_setUnhandledRejectionFn","Promise","customElements","registerElement","Date","now","random","A","sort","uid_","takeRecords","nodes_","observer","removeTransientObservers","callback_","subtree","enqueue","records_","C","addedNodes","removedNodes","previousSibling","nextSibling","attributeName","attributeNamespace","oldValue","w","f","transientObservedNodes","JsMutationObserver","navigator","userAgent","v","y","postMessage","observe","ShadowDOMPolyfill","wrapIfNeeded","childList","characterData","attributeOldValue","attributeFilter","characterDataOldValue","SyntaxError","removeListeners","addListeners","disconnect","addListeners_","removeListeners_","addTransientObserver","handleEvent","attrName","relatedNode","namespaceURI","attrChange","MutationEvent","ADDITION","prevValue","MutationObserver","_isPolyfilled","self","performance","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","clearTimeout","Boolean","WebComponents","CustomElements","flags","addModule","initializeModules","hasNative","isIE","useNative","register","HTMLImports","firstElementChild","firstChild","nodeType","Node","ELEMENT_NODE","nextElementSibling","shadowRoot","olderShadowRoot","wrap","IMPORT_LINK_TYPE","forDocumentTree","forSubtree","upgrade","__upgraded__","__attached","attachedCallback","detachedCallback","dom","URL","_URL","localName","split","pop","group","DOCUMENT_FRAGMENT_NODE","E","groupEnd","__observer","baseURI","hasPolyfillMutations","hasThrottledAttached","S","createShadowRoot","watchShadow","__watched","log","upgradeDocumentTree","upgradeDocument","upgradeSubtree","upgradeAll","attached","is","createdCallback","__proto__","HTMLElement","getOwnPropertyNames","getOwnPropertyDescriptor","getPrototypeOf","HTMLTemplateElement","decorate","getRegisteredDefinition","tag","upgradeWithDefinition","implementPrototype","_polyfilled","toLowerCase","attributeChangedCallback","concat","ctor","createElementNS","__name","lifecycle","ancestry","ready","registry","reservedTagList","readyTime","elapsed","unwrap","unwrapIfNeeded","__importsParsingHook","eager","attachEvent","VERSION","ZERO_WIDTH_SPACE","NON_BREAKING_SPACE","OBJECT_REPLACEMENT_CHARACTER","browser","composesExistingText","forcesObjectResizing","supportsInputEvents","InputEvent","BasicObject","proxyMethod","toMethod","toProperty","optional","_t","__super__","fromJSONString","fromJSON","hasSameConstructorAs","isEqualTo","inspect","contentsForInspection","toJSONString","toUTF16String","UTF16String","box","getCacheKey","extend","defer","normalizeSpaces","RegExp","normalizeNewlines","breakableWhitespacePattern","squishBreakableWhitespace","source","summarizeStringChange","added","removed","_n","utf16String","offset","codepoints","fromCodepoints","_t2","charAt","copyObject","objectsAreEqual","arraysAreEqual","arrayStartsWith","spliceArray","summarizeArrayChange","getAllAttributeNames","getTextAttributeNames","getBlockAttributeNames","getBlockConfig","getTextConfig","getListAttributeNames","listAttribute","documentElement","_s","onElement","matchingSelector","withCallback","inPhase","times","findClosestElementFromNode","handleEventOnce","triggerEvent","elementMatchesSelector","untilNode","closest","findInnerElement","innerElementIsActive","activeElement","elementContainsNode","findNodeFromContainerAndOffset","TEXT_NODE","childNodes","item","findElementFromContainerAndOffset","findChildIndexOfNode","removeNode","walkTree","onlyNodesOfType","usingFilter","expandEntityReferences","NodeFilter","SHOW_ELEMENT","SHOW_TEXT","SHOW_COMMENT","SHOW_ALL","createTreeWalker","makeElement","editable","contenteditable","dataset","className","classList","textContent","getBlockTagNames","blockTagNames","nodeIsBlockContainer","nodeIsBlockStartComment","nodeProbablyIsBlockContainer","nodeIsBlockStart","strict","nodeIsCommentNode","COMMENT_NODE","nodeIsCursorTarget","nodeIsTextNode","trixCursorTarget","nodeIsAttachmentElement","AttachmentView","attachmentSelector","nodeIsEmptyTextNode","normalizeRange","rangeIsCollapsed","rangesAreEqual","defaultCSS","insertBefore","_t3","initialize","connect","initialized","connectedCallback","disconnectedCallback","_n2","Reflect","construct","setPrototypeOf","define","getDOMSelection","getSelection","rangeCount","getDOMRange","getRangeAt","setDOMRange","removeAllRanges","addRange","selectionChangeObserver","update","_t4","startContainer","endContainer","dataTransferIsPlainText","dataTransferIsWritable","keyEventIsKeyboardCommand","platform","RTL_PATTERN","getDirection","dir","dirName","trim","Hash","fromCommonAttributesOfObjects","getKeys","getKeysCommonToHash","merge","remove","isEmpty","array","toObject","ObjectGroup","objects","depth","asTree","groupObjects","canBeGrouped","canBeGroupedWith","getObjects","getDepth","_t5","ObjectMap","find","ElementStore","trixStoreKey","_t6","Operation","isPerforming","performing","hasPerformed","performed","hasSucceeded","succeeded","hasFailed","getPromise","perform","release","cancel","ucs2String","ucs2Length","fromUCS2String","offsetToUCS2Offset","offsetFromUCS2Offset","codePointAt","fromCodePoint","lang","attachFiles","bold","bullets","captionPlaceholder","heading1","indent","italic","numbers","outdent","quote","redo","strike","undo","unlink","urlPlaceholder","GB","KB","MB","PB","TB","css","attachment","attachmentCaption","attachmentCaptionEditor","attachmentMetadata","attachmentMetadataContainer","attachmentName","attachmentProgress","attachmentSize","attachmentToolbar","attachmentGallery","terminal","breakOnReturn","plaintext","bulletList","bullet","numberList","number","exclusive","fileSize","prefix","precision","formatter","pow","toFixed","getComputedStyle","fontWeight","fontStyle","groupTagName","frozen","backgroundColor","serializers","Document","fromHTML","toSerializableDocument","DocumentView","render","cloneNode","deserializers","serializeToContentType","deserializeFromContentType","toolbar","getDefaultHTML","undoInterval","attachments","preview","presentation","caption","keyNames","8","9","13","27","37","39","46","68","72","79","level2Enabled","getLevel","pickFiles","multiple","hidden","fileInputId","getElementById","_t7","ObjectView","childViews","rootView","getNodes","nodes","createNodes","invalidate","parentView","invalidateViewForObject","findViewForObject","findOrCreateCachedChildView","getCachedViewForObject","recordChildView","createChildView","cacheViewForObject","viewClass","ObjectGroupView","getAllChildViews","findElementForObject","getViewCache","isViewCachingEnabled","viewCache","shouldCacheViews","enableViewCaching","disableViewCaching","garbageCollectCachedViews","_t8","objectGroup","getChildViews","createContainerElement","_t9","Controller","didMutate","_h","stop","mutations","findSignificantMutations","elementDidMutate","getMutationSummary","mutationIsSignificant","nodeIsMutable","nodesModifiedByMutation","nodeIsSignificant","getTextMutationSummary","getTextChangesFromCharacterData","additions","deletions","getTextChangesFromChildList","textAdded","textDeleted","getMutationsByType","_t10","FileVerificationOperation","onerror","onload","abort","InputController","mutationObserver","events","handlerFor","editorWillSyncDocumentView","editorDidSyncDocumentView","requestRender","inputControllerDidRequestRender","requestReparse","inputControllerDidRequestReparse","handleInput","inputControllerWillAttachFiles","responder","insertFiles","eventName","inputControllerWillHandleInput","inputControllerDidHandleInput","createLinkHTML","outerHTML","Level0InputController","resetInputSummary","setInputSummary","inputSummary","isComposing","inputControllerDidAllowUnhandledInput","mutationIsExpected","preferDocument","didDelete","getSelectedRange","positionIsBlockBreak","compositionInput","getEndData","keydown","didInput","keyCode","keyName","inputControllerDidReceiveKeyboardCommand","keypress","altKey","inputControllerWillPerformTyping","insertString","selectionIsExpanded","textInput","setSelectedRange","dragenter","dragstart","serializeSelectionToDataTransfer","dataTransfer","draggedRange","inputControllerDidStartDrag","dragover","canAcceptDataTransfer","clientX","clientY","draggingPoint","inputControllerDidReceiveDragOverPoint","dragend","inputControllerDidCancelDrag","drop","setLocationRangeFromPointRange","inputControllerWillMoveText","moveTextFromRange","insertDocument","cut","clipboardData","inputControllerWillCutText","deleteInDirection","copy","paste","R","D","L","testClipboardData","clipboard","getPastedHTMLUsingHiddenElement","inputControllerWillPaste","insertHTML","inputControllerDidPaste","string","types","items","getAsFile","insertFile","compositionstart","getCompositionInput","compositionupdate","compositionend","beforeinput","backspace","insertLineBreak","tab","canIncreaseNestingLevel","increaseNestingLevel","left","selectionIsInCursorTarget","moveCursorInDirection","right","control","updatePosition","canDecreaseNestingLevel","decreaseNestingLevel","expandSelectionInDirection","alt","isEnded","getSelectedDocument","Files","position","pageXOffset","top","pageYOffset","opacity","which","charCode","inputController","isSignificant","insertPlaceholder","range","selectPlaceholder","forgetPlaceholder","canApplyToDocument","Level2InputController","scheduledRender","composing","reparse","scheduleRender","afterRender","shiftKey","withEvent","inputTypes","inputType","selectionContainsAttachments","dragging","point","ArrowLeft","shouldManageMovingCursorInDirection","ArrowRight","Backspace","shouldManageDeletingInDirection","Tab","deleteByComposition","recordUndoEntry","deleteByCut","deleteByDrag","withTargetDOMRange","deleteByDragRange","deleteCompositionText","deleteContent","deleteContentBackward","deleteContentForward","deleteEntireSoftLine","deleteHardLineBackward","deleteHardLineForward","deleteSoftLineBackward","deleteSoftLineForward","deleteWordBackward","deleteWordForward","formatBackColor","activateAttributeIfSupported","formatBold","toggleAttributeIfSupported","formatFontColor","formatFontName","formatIndent","formatItalic","formatJustifyCenter","formatJustifyFull","formatJustifyLeft","formatJustifyRight","formatOutdent","formatRemove","getCurrentAttributes","removeCurrentAttribute","formatSetBlockTextDirection","formatSetInlineTextDirection","formatStrikeThrough","formatSubscript","formatSuperscript","formatUnderline","historyRedo","inputControllerWillPerformRedo","historyUndo","inputControllerWillPerformUndo","insertCompositionText","insertFromComposition","insertFromDrop","insertFromPaste","insertFromYank","insertLink","insertOrderedList","insertParagraph","insertReplacementText","insertText","insertTranspose","insertUnorderedList","inputControllerWillPerformFormatting","toggleCurrentAttribute","setCurrentAttribute","getTargetDOMRange","minLength","getTargetRanges","createRange","setStart","startOffset","setEnd","endOffset","AttachmentEditorController","attachmentPiece","container","didBlurCaption","didChangeCaption","didInputCaption","didKeyDownCaption","didClickActionButton","didClickToolbar","install","undos","makeElementMutable","addToolbar","isPreviewable","installCaptionEditor","uninstall","savePendingCaption","didUninstallAttachmentEditor","pendingCaption","attachmentEditorDidRequestUpdatingAttributesForAttachment","attachmentEditorDidRequestRemovingAttributeForAttachment","trixMutable","title","trixAction","getFilename","getFormattedFilesize","placeholder","getCaption","tabIndex","height","scrollHeight","parentElement","editCaption","attachmentEditorDidRequestRemovalOfAttachment","attachmentEditorDidRequestDeselectingAttachment","uploadProgressDelegate","piece","createContentNodes","getClassName","getHref","tabindex","hasContent","getContent","createCaptionElement","isPending","progressElement","getUploadProgress","getCaptionConfig","createTextNode","getType","getExtension","trixAttachment","trixContentType","getContentType","trixId","trixAttributes","trixSerialize","findProgressElement","attachmentDidChangeUploadProgress","PreviewableAttachmentView","previewDelegate","image","src","refresh","updateAttributesForImage","getURL","getPreviewURL","getWidth","getHeight","width","attachmentDidChangeAttributes","PieceView","getAttributes","textConfig","context","createAttachmentNodes","createStringNodes","preserveSpaces","styleProperty","isLast","isFirst","followsWhitespace","_t11","TextView","getPieces","BlockView","block","createComment","getLastAttribute","shouldAddExtraNewlineElement","isRTL","getBlockBreakPosition","elementStore","setDocument","sync","shadowElement","getBlocks","isSynced","createDocumentFragmentForSync","lastChild","didSync","createDocumentFragment","replaceChild","CompositionController","composition","didClickAttachment","didBlur","didFocus","documentView","focused","compositionControllerDidFocus","blurPromise","compositionControllerDidBlur","findAttachmentForElement","compositionControllerDidSelectAttachment","getSerializableElement","isEditingAttachment","revision","canSyncDocumentView","compositionControllerWillSyncDocumentView","compositionControllerDidSyncDocumentView","compositionControllerDidRender","rerenderViewForObject","refreshViewCache","attachmentEditor","installAttachmentEditorForAttachment","uninstallAttachmentEditor","getAttachmentPieceForAttachment","compositionControllerWillUpdateAttachment","updateAttributesForAttachment","removeAttributeForAttachment","compositionControllerDidRequestRemovalOfAttachment","compositionControllerDidRequestDeselectingAttachment","getAttachmentById","ToolbarController","didKeyDownDialogInput","didClickDialogButton","didClickAttributeButton","actions","resetDialogInputs","toolbarDidClickButton","getDialog","toggleDialog","toolbarDidInvokeAction","toolbarDidToggleAttribute","refreshAttributeButtons","hideDialog","updateActions","refreshActionButtons","eachActionButton","updateAttributes","eachAttributeButton","dialogIsVisible","applyKeyboardCommand","showDialog","toolbarWillShowDialog","select","toolbarDidShowDialog","willValidate","checkValidity","toolbarDidUpdateAttribute","toolbarDidRemoveAttribute","toolbarDidHideDialog","_t12","ImagePreloadOperation","Image","naturalWidth","naturalHeight","_t13","Attachment","releaseFile","didChangeAttributes","previewablePattern","attachmentForFile","attributesForFile","setFile","filesize","contentType","setAttributes","preloadURL","getFilesize","getFile","preloadFile","releasePreloadedFile","uploadProgress","setUploadProgress","previewURL","preloadingURL","setPreviewURL","attachmentDidChangePreviewURL","preload","fileObjectURL","createObjectURL","revokeObjectURL","_t14","Piece","registerType","copyWithAttributes","getValue","copyWithAdditionalAttributes","copyWithoutAttribute","getAttributesHash","getCommonAttributes","pieceList","getPieceAtIndex","eachPiece","hasSameStringValueAsPiece","hasSameAttributesAsPiece","isBlockBreak","isSerializable","getLength","canBeConsolidatedWith","_t15","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","_t16","Text","textForAttachmentWithAttributes","textForStringWithAttributes","copyWithPieceList","copyUsingObjectMap","appendText","insertTextAtPosition","removeTextAtRange","replaceTextAtRange","moveTextFromRangeToPosition","getTextAtRange","addAttributeAtRange","addAttributesAtRange","removeAttributeAtRange","setAttributesAtRange","getAttributesAtPosition","getCommonAttributesAtRange","getExpandedRangeForAttributeAtOffset","getStringAtRange","getStringAtPosition","startsWithString","endsWithString","getAttachmentPieces","getAttachments","getAttachmentAndPositionById","getRangeOfAttachment","getPieceAtPosition","toSerializableText","Block","copyWithText","copyWithoutText","copyWithoutAttributes","addAttribute","removeLastAttribute","getAttributeLevel","getAttributeAtLevel","hasAttributes","getLastNestableAttribute","getNestableAttributes","getNestingLevel","lastIndexOf","getListItemAttributes","isListItem","isTerminalBlock","breaksOnReturn","findLineBreakInDirectionFromPosition","getTextWithoutBlockBreak","blockBreak","HTMLSanitizer","allowedAttributes","forbiddenProtocols","forbiddenElements","sanitize","sanitizeElements","normalizeListElementNesting","getHTML","getBody","nextNode","currentNode","elementIsRemovable","sanitizeElement","previousElementSibling","elementIsForbidden","elementIsntSerializable","implementation","createHTMLDocument","HTMLParser","referenceElement","blocks","blockElements","processedElements","getDocument","createHiddenContainer","containerElement","processNode","translateBlockElementMarginsToNewlines","removeHiddenContainer","FILTER_REJECT","FILTER_ACCEPT","isInsignificantTextNode","appendBlockForTextNode","processTextNode","appendBlockForElement","processElement","currentBlockElement","isBlockElement","appendStringWithAttributes","getBlockAttributes","currentBlock","appendBlockForAttributesWithElement","findParentBlockElement","appendEmptyBlock","getTextAttributes","appendAttachmentWithAttributes","isExtraBR","appendPiece","appendStringToTextAtIndex","prependStringToTextAtIndex","unshift","findBlockElementAncestors","reverse","whiteSpace","getMarginOfDefaultBlockElement","getMarginOfBlockElementAtIndex","bottom","marginTop","marginBottom","blockList","fromString","getBlockAtIndex","consolidateBlocks","copyUsingObjectsFromDocument","copyWithBaseBlockAttributes","replaceBlock","insertDocumentAtRange","locationFromPosition","getBlockAtPosition","mergeDocumentAtRange","getBaseBlockAttributes","getBlockCount","insertTextAtRange","locationRangeFromRange","getDocumentAtRange","eachBlockAtRange","eachBlock","getTextAtIndex","insertBlockBreakAtRange","applyBlockAttributeAtRange","expandRangeToLineBreaksAndSplitBlocks","removeLastListAttributeAtRange","exceptAttributeName","convertLineBreaksToBlockBreaksInRange","removeBlockAttributesAtRange","removeLastTerminalAttributeAtRange","consolidateBlocksAtRange","positionFromLocation","getTextAtPosition","getCharacterAtPosition","getEditCount","editCount","getCommonAttributesAtPosition","getRangeOfCommonAttributeAtPosition","getLocationRangeOfAttachment","findRangesForBlockAttribute","findRangesForTextAttribute","withValue","locationRangeFromPosition","rangeFromLocationRange","getTexts","LineBreakInsertion","startPosition","startLocation","endLocation","previousCharacter","nextCharacter","shouldInsertBlockBreak","shouldBreakFormattedBlock","shouldDecreaseListLevel","shouldPrependListItem","shouldRemoveLastBlockAttribute","Composition","currentAttributes","refreshAttachments","compositionDidChangeDocument","getSnapshot","selectedRange","loadSnapshot","compositionWillLoadSnapshot","setSelection","compositionDidLoadSnapshot","notifyDelegateOfInsertionAtRange","insertBlock","getCurrentTextAttributes","insertBlockBreak","decreaseListLevel","removeLastBlockAttribute","breakFormattedBlock","replaceHTML","getLocationRange","compositionShouldAcceptFile","insertAttachments","insertAttachment","canDecreaseBlockAttributeLevel","getBlock","decreaseBlockAttributeLevel","getExpandedRangeInDirection","getAttachmentAtRange","editAttachment","removeAttachment","stopEditingAttachment","placeholderPosition","getPosition","hasCurrentAttribute","canSetCurrentAttribute","canSetCurrentBlockAttribute","canSetCurrentTextAttribute","setBlockAttribute","setTextAttribute","notifyDelegateOfCurrentAttributesChange","removeBlockAttribute","updateCurrentAttributes","removeTextAttribute","getPreviousBlock","ignoreLock","freezeSelection","thawSelection","hasFrozenSelection","compositionDidRequestChangingSelectionToLocationRange","getSelectionManager","setLocationRange","targetLocationRange","withTargetLocationRange","withTargetRange","createLocationRangeFromDOMRange","translateUTF16PositionFromOffset","editingAttachment","expandSelectionForEditing","expandSelectionAroundCommonAttribute","getSelectedAttachments","positionIsCursorTarget","locationIsCursorTarget","compositionDidRemoveAttachment","compositionDidAddAttachment","compositionDidEditAttachment","compositionDidChangeAttachmentPreviewURL","compositionDidStartEditingAttachment","compositionDidStopEditingAttachment","compositionDidChangeCurrentAttributes","compositionDidPerformInsertionAtRange","_t17","UndoManager","undoEntries","redoEntries","consolidatable","createEntry","description","snapshot","canUndo","canRedo","attachmentGalleryFilter","applyBlockAttribute","findRangesOfBlocks","findRangesOfPieces","moveSelectedRangeForward","Editor","selectionManager","_t18","undoManager","filters","loadDocument","loadHTML","loadJSON","getClientRectAtPosition","getClientRectAtLocationRange","activateAttribute","attributeIsActive","canActivateAttribute","deactivateAttribute","_t19","ManagedAttachment","attachmentManager","requestRemovalOfAttachment","_t20","AttachmentManager","managedAttachments","manageAttachment","attachmentIsManaged","attachmentManagerDidRequestRemovalOfAttachment","unmanageAttachment","LocationMapper","findLocationFromContainerAndOffset","findAttachmentElementParentForNode","findContainerAndOffsetFromLocation","findNodeAndOffsetFromLocation","getSignificantNodesForIndex","PointMapper","createDOMRangeFromPoint","caretPositionFromPoint","offsetNode","caretRangeFromPoint","createTextRange","moveToPoint","getClientRectsForDOMRange","getClientRects","SelectionChangeObserver","run","selectionManagers","registerSelectionManager","unregisterSelectionManager","notifySelectionManagersOfSelectionChange","selectionDidChange","domRange","SelectionManager","didMouseDown","locationMapper","pointMapper","lockCount","currentLocationRange","lockedLocationRange","createDOMRangeFromLocationRange","updateCurrentLocationRange","getLocationAtPoint","lock","unlock","clearSelection","selectionIsCollapsed","collapsed","domRangeWithinElement","pauseTemporarily","paused","locationRangeDidChange","EditorController","editorElement","compositionController","toolbarController","editor","notifyEditorElement","handlingInput","updateCurrentActions","pasting","pastedRange","attachmentLocationRange","loadingSnapshot","isFocused","requestedLocationRange","compositionRevisionWhenLocationRangeRequested","renderedCompositionRevision","runEditorFilters","isFocusedInvisibly","requestedRender","recordTypingUndoEntry","recordFormattingUndoEntry","locationRangeBeforeDrag","invokeAction","selectionFrozen","dialogName","canInvokeAction","actionIsExternal","actionName","getCurrentActions","currentActions","updateInputElement","setInputElementValue","documentChangedSinceLastRender","getUndoContext","getLocationContext","getTimeContext","getTime","ownerDocument","queryCommandSupported","execCommand","labels","contains","inputElement","editorController","defaultValue","registerResetListener","registerClickListener","unregisterResetListener","unregisterClickListener","resetListener","resetBubbled","clickListener","clickBubbled","Timeout","clearFn","_id","_clearFn","scope","setInterval","clearInterval","timeout","close","unref","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","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","_defineProperties","AttachmentUpload","_classCallCheck","directUploadUrl","directUploadDidComplete","sgid","attachable_sgid","createBlobUrl","signedId","blobUrlTemplate"],"mappings":"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","file":"js/application-b7b0bb8adec93b8d77fa.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 = 4);\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _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\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\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\n function md5blk(s) {\n var md5blks = [],\n i;\n\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\n return md5blks;\n }\n\n function md5blk_array(a) {\n var md5blks = [],\n i;\n\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\n return md5blks;\n }\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\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\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\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\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\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\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\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\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\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\n function rhex(n) {\n var s = \"\",\n j;\n\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\n return s;\n }\n\n function hex(x) {\n var i;\n\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n\n return x.join(\"\");\n }\n\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = val | 0 || 0;\n\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n\n return Math.min(val, length);\n }\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\n if (to !== undefined) {\n end = clamp(to, length);\n }\n\n if (begin > end) {\n return new ArrayBuffer(0);\n }\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\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n\n return str;\n }\n\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n\n return returnUInt8Array ? arr : buff;\n }\n\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\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\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n\n return String.fromCharCode.apply(String, bytes);\n }\n\n function SparkMD5() {\n this.reset();\n }\n\n SparkMD5.prototype.append = function (str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\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\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n\n this._buff = this._buff.substring(i - 64);\n return this;\n };\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\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\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\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash\n };\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\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\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\n if (i > 55) {\n md5cycle(this._hash, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\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\n SparkMD5.hash = function (str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n SparkMD5.ArrayBuffer = function () {\n this.reset();\n };\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\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\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\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\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\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\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\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\n return SparkMD5;\n });\n });\n\n var classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\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\n var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n\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\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\n createClass(FileChecksum, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\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\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\n function getMetaValue(name) {\n var element = findElement(document.head, 'meta[name=\"' + name + '\"]');\n\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n\n function findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n var elements = root.querySelectorAll(selector);\n return toArray$1(elements);\n }\n\n function findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n return root.querySelector(selector);\n }\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\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n\n return event;\n }\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\n var BlobRecord = function () {\n function BlobRecord(file, checksum, url) {\n var _this = this;\n\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\n if (csrfToken != undefined) {\n this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\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\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\n for (var key in this.attributes) {\n result[key] = this.attributes[key];\n }\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\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n }]);\n return BlobRecord;\n }();\n\n var BlobUpload = function () {\n function BlobUpload(blob) {\n var _this = this;\n\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\n for (var key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\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\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\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\n var id = 0;\n\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\n createClass(DirectUpload, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n FileChecksum.create(this.file, function (error, checksum) {\n if (error) {\n callback(error);\n return;\n }\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\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\n return object[methodName].apply(object, messages);\n }\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\n createClass(DirectUploadController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\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\n _this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n\n _this.dispatch(\"end\");\n\n callback(error);\n });\n }\n }, {\n key: \"uploadRequestDidProgress\",\n value: function uploadRequestDidProgress(event) {\n var progress = event.loaded / event.total * 100;\n\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\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\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\n var inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n\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\n createClass(DirectUploadsController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var controllers = this.createDirectUploadControllers();\n\n var startNextController = function startNextController() {\n var controller = controllers.shift();\n\n if (controller) {\n controller.start(function (error) {\n if (error) {\n callback(error);\n\n _this.dispatch(\"end\");\n } else {\n startNextController();\n }\n });\n } else {\n callback();\n\n _this.dispatch(\"end\");\n }\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\n var processingAttribute = \"data-direct-uploads-processing\";\n var submitButtonsByForm = new WeakMap();\n var started = false;\n\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\n function didClick(event) {\n var target = event.target;\n\n if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n submitButtonsByForm.set(target.form, target);\n }\n }\n\n function didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n }\n\n function didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n }\n\n function handleFormSubmissionEvent(event) {\n var form = event.target;\n\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n\n var controller = new DirectUploadsController(form);\n var inputs = controller.inputs;\n\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\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n }\n\n function submitForm(form) {\n var button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n\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\n submitButtonsByForm[\"delete\"](form);\n }\n\n function disable(input) {\n input.disabled = true;\n }\n\n function enable(input) {\n input.disabled = false;\n }\n\n function autostart() {\n if (window.ActiveStorage) {\n start();\n }\n }\n\n setTimeout(autostart, 1);\n exports.start = start;\n exports.DirectUpload = DirectUpload;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar g; // This works in non-strict mode\n\ng = function () {\n return this;\n}();\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 === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\") g = window;\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\n\nmodule.exports = g;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/master/actionview/app/assets/javascripts\nReleased under the MIT license\n */\n;\n(function () {\n var context = this;\n (function () {\n (function () {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form',\n formInputClickSelector: 'form input[type=submit], form input[type=image], form button[type=submit], form button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n }).call(this);\n }).call(context);\n var Rails = context.Rails;\n (function () {\n (function () {\n var nonce;\n nonce = null;\n\n Rails.loadCSPNonce = function () {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n\n Rails.cspNonce = function () {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n }).call(this);\n (function () {\n var expando, m;\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n Rails.matches = function (element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n\n expando = '_ujsData';\n\n Rails.getData = function (element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n\n Rails.setData = function (element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n\n return element[expando][key] = value;\n };\n\n Rails.$ = function (selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n }).call(this);\n (function () {\n var $, csrfParam, csrfToken;\n $ = Rails.$;\n\n csrfToken = Rails.csrfToken = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n\n csrfParam = Rails.csrfParam = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n\n Rails.CSRFProtection = function (xhr) {\n var token;\n token = csrfToken();\n\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n\n Rails.refreshCSRFTokens = function () {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n\n if (token != null && param != null) {\n return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n return input.value = token;\n });\n }\n };\n }).call(this);\n (function () {\n var CustomEvent, fire, matches, preventDefault;\n matches = Rails.matches;\n CustomEvent = window.CustomEvent;\n\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function CustomEvent(event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n\n CustomEvent.prototype.preventDefault = function () {\n var result;\n result = preventDefault.call(this);\n\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function get() {\n return true;\n }\n });\n }\n\n return result;\n };\n }\n\n fire = Rails.fire = function (obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n\n Rails.stopEverything = function (e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n\n Rails.delegate = function (element, selector, eventType, handler) {\n return element.addEventListener(eventType, function (e) {\n var target;\n target = e.target;\n\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n }).call(this);\n (function () {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n\n Rails.ajax = function (options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function () {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n\n if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n return false;\n }\n\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n\n prepareOptions = function prepareOptions(options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n\n options.accept = AcceptHeaders[options.dataType];\n\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n\n return options;\n };\n\n createXHR = function createXHR(options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n\n xhr.withCredentials = !!options.withCredentials;\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n\n return xhr;\n };\n\n processResponse = function processResponse(response, type) {\n var parser, script;\n\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n\n return response;\n };\n\n Rails.href = function (element) {\n return element.href;\n };\n\n Rails.isCrossDomain = function (url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n\n try {\n urlAnchor.href = url;\n return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n } catch (error) {\n e = error;\n return true;\n }\n };\n }).call(this);\n (function () {\n var matches, toArray;\n matches = Rails.matches;\n\n toArray = function toArray(e) {\n return Array.prototype.slice.call(e);\n };\n\n Rails.serializeElement = function (element, additionalParam) {\n var inputs, params;\n inputs = [element];\n\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n\n params = [];\n inputs.forEach(function (input) {\n if (!input.name || input.disabled) {\n return;\n }\n\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function (option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n\n if (additionalParam) {\n params.push(additionalParam);\n }\n\n return params.map(function (param) {\n if (param.name != null) {\n return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n } else {\n return param;\n }\n }).join('&');\n };\n\n Rails.formElements = function (form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function (el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n }).call(this);\n (function () {\n var allowAction, fire, stopEverything;\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n Rails.handleConfirm = function (e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n\n Rails.confirm = function (message, element) {\n return confirm(message);\n };\n\n allowAction = function allowAction(element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n\n if (!message) {\n return true;\n }\n\n answer = false;\n\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n\n callback = fire(element, 'confirm:complete', [answer]);\n }\n\n return answer && callback;\n };\n }).call(this);\n (function () {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n\n Rails.handleDisabledElement = function (e) {\n var element;\n element = this;\n\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n\n Rails.enableElement = function (e) {\n var element;\n\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n\n element = e.target;\n } else {\n element = e;\n }\n\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n\n Rails.disableElement = function (e) {\n var element;\n element = e instanceof Event ? e.target : e;\n\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n\n disableLinkElement = function disableLinkElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n\n enableLinkElement = function enableLinkElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n\n disableFormElements = function disableFormElements(form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n\n disableFormElement = function disableFormElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n\n enableFormElements = function enableFormElements(form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n\n enableFormElement = function enableFormElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n\n setData(element, 'ujs:enable-with', null);\n }\n\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n\n isXhrRedirect = function isXhrRedirect(event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n }).call(this);\n (function () {\n var stopEverything;\n stopEverything = Rails.stopEverything;\n\n Rails.handleMethod = function (e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n\n if (!method) {\n return;\n }\n\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n\n if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n formContent += \"\";\n }\n\n formContent += '';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n }).call(this);\n (function () {\n var ajax,\n fire,\n getData,\n isCrossDomain,\n isRemote,\n matches,\n serializeElement,\n setData,\n stopEverything,\n slice = [].slice;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n\n isRemote = function isRemote(element) {\n var value;\n value = element.getAttribute('data-remote');\n return value != null && value !== 'false';\n };\n\n Rails.handleRemote = function (e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n\n if (!isRemote(element)) {\n return true;\n }\n\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function beforeSend(xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function success() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function error() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function complete() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n\n Rails.formSubmitButtonClick = function (e) {\n var button, form;\n button = this;\n form = button.form;\n\n if (!form) {\n return;\n }\n\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n\n Rails.preventInsignificantClick = function (e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = e.button != null && e.button !== 0;\n\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n }).call(this);\n (function () {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n\n if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n\n Rails.start = function () {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n\n window.addEventListener('pageshow', function () {\n $(Rails.formEnableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n return setTimeout(function () {\n return disableElement(e);\n }, 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n }).call(this);\n }).call(this);\n\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","// This file is automatically compiled by Webpack, along with any other files\n// present in this directory. You're encouraged to place your actual application logic in\n// a relevant structure within app/javascript and only use these pack files to reference\n// that code so it'll be compiled.\n\nimport Rails from \"@rails/ujs\"\nimport * as ActiveStorage from \"@rails/activestorage\"\nimport \"channels\"\n\nRails.start()\nActiveStorage.start()\n\nconst Trix = require(\"trix\")\nrequire(\"@rails/actiontext\")\n\nTrix.config.textAttributes.cloze = {\n tagName: 'cloze',\n inheritable: true\n}\n\nTrix.config.blockAttributes.answer = {\n tagName: 'answer',\n nestable: true\n}\n\n\naddEventListener(\"trix-initialize\", function(event) {\n var clozeHTML = ''\n var answerHTML = ``\n var buttonGroup = ``\n\n event.target.toolbarElement.\n querySelector(\".trix-button-group.trix-button-group--block-tools\").\n insertAdjacentHTML(\"afterend\", buttonGroup);\n\n event.target.toolbarElement.\n querySelector(\".trix-button-group.trix-button-group--enki-tools\").\n insertAdjacentHTML(\"beforeend\", clozeHTML)\n\n event.target.toolbarElement.\n querySelector(\".trix-button-group.trix-button-group--enki-tools\").\n insertAdjacentHTML(\"beforeend\", answerHTML)\n})","// Load all the channels within this directory and all subdirectories.\n// Channel files must be named *_channel.js.\n\nconst channels = require.context('.', true, /_channel\\.js$/)\nchannels.keys().forEach(channels)\n","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 6;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*\nTrix 1.3.1\nCopyright © 2020 Basecamp, LLC\nhttp://trix-editor.org/\n */\n(function () {}).call(this), function () {\n var t;\n null == window.Set && (window.Set = t = function () {\n function t() {\n this.clear();\n }\n\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\n function n(t, e) {\n return function () {\n t.apply(e, arguments);\n };\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\n function o(t, e) {\n for (; 3 === t._state;) {\n t = t._value;\n }\n\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\n try {\n i = n(t._value);\n } catch (o) {\n return void s(e.promise, o);\n }\n\n r(e.promise, i);\n }));\n }\n\n function r(t, e) {\n try {\n if (e === t) throw new TypeError(\"A promise cannot be resolved with itself.\");\n\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\n t._state = 1, t._value = e, a(t);\n } catch (r) {\n s(t, r);\n }\n }\n\n function s(t, e) {\n t._state = 2, t._value = e, a(t);\n }\n\n function a(t) {\n 2 === t._state && 0 === t._deferreds.length && setTimeout(function () {\n t._handled || p(t._value);\n }, 1);\n\n for (var e = 0, n = t._deferreds.length; n > e; e++) {\n o(t, t._deferreds[e]);\n }\n\n t._deferreds = null;\n }\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\n function c(t, e) {\n var n = !1;\n\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\n var l = setTimeout,\n h = \"function\" == typeof setImmediate && setImmediate || function (t) {\n l(t, 1);\n },\n p = function p(t) {\n \"undefined\" != typeof console && console && console.warn(\"Possible Unhandled Promise Rejection:\", t);\n };\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\n e[r] = s, 0 === --o && t(e);\n } catch (u) {\n n(u);\n }\n }\n\n if (0 === e.length) return t([]);\n\n for (var o = e.length, r = 0; r < e.length; r++) {\n i(r, e[r]);\n }\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++) {\n t[i].then(e, n);\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 /**\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() {\n this.name = \"__st\" + (1e9 * Math.random() >>> 0) + (e++ + \"__\");\n };\n\n n.prototype = {\n set: function set(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 get(t) {\n var e;\n return (e = t[this.name]) && e[0] === t ? e[1] : void 0;\n },\n \"delete\": function _delete(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 has(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\n function n(t) {\n return window.ShadowDOMPolyfill && window.ShadowDOMPolyfill.wrapIfNeeded(t) || t;\n }\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\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\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\n if (n === t || s.subtree) {\n var a = e(s);\n a && r.enqueue(a);\n }\n }\n }\n }\n\n function s(t) {\n this.callback_ = t, this.nodes_ = [], this.records_ = [], this.uid_ = ++C;\n }\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\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\n function c(t, e) {\n return x = new a(t, e);\n }\n\n function l(t) {\n return w ? w : (w = u(x), w.oldValue = t, w);\n }\n\n function h() {\n x = w = void 0;\n }\n\n function p(t) {\n return t === w || t === x;\n }\n\n function d(t, e) {\n return t === e ? t : w && p(t) ? w : null;\n }\n\n function f(t, e, n) {\n this.observer = t, this.target = e, this.options = n, this.transientObservedNodes = [];\n }\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 g(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 observe(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\n for (var o, r = 0; r < i.length; r++) {\n if (i[r].observer === this) {\n o = i[r], o.removeListeners(), o.options = e;\n break;\n }\n }\n\n o || (o = new f(this, t, e), i.push(o), this.nodes_.push(t)), o.addListeners();\n },\n disconnect: function disconnect() {\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\n if (i.observer === this) {\n i.removeListeners(), e.splice(n, 1);\n break;\n }\n }\n }, this), this.records_ = [];\n },\n takeRecords: function takeRecords() {\n var t = this.records_;\n return this.records_ = [], t;\n }\n };\n var x, w;\n f.prototype = {\n enqueue: function enqueue(t) {\n var n = this.observer.records_,\n i = n.length;\n\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 n[i] = t;\n },\n addListeners: function addListeners() {\n this.addListeners_(this.target);\n },\n addListeners_: function addListeners_(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 removeListeners() {\n this.removeListeners_(this.target);\n },\n removeListeners_: function removeListeners_(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 addTransientObserver(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 removeTransientObservers() {\n var t = this.transientObservedNodes;\n this.transientObservedNodes = [], t.forEach(function (t) {\n this.removeListeners_(t);\n\n for (var e = m.get(t), n = 0; n < e.length; n++) {\n if (e[n] === this) {\n e.splice(n, 1);\n break;\n }\n }\n }, this);\n },\n handleEvent: function handleEvent(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\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\n case \"DOMNodeRemoved\":\n this.addTransientObserver(t.target);\n\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\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 now() {\n return Date.now() - t;\n }\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\n var e = function () {\n var t = document.createEvent(\"Event\");\n return t.initEvent(\"foo\", !0, !0), t.preventDefault(), t.defaultPrevented;\n }();\n\n if (!e) {\n var n = Event.prototype.preventDefault;\n\n Event.prototype.preventDefault = function () {\n this.cancelable && (n.call(this), Object.defineProperty(this, \"defaultPrevented\", {\n get: function get() {\n return !0;\n },\n configurable: !0\n }));\n };\n }\n\n var i = /Trident/.test(navigator.userAgent);\n\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 i(t) {\n n.push(t);\n },\n o = function o() {\n n.forEach(function (e) {\n e(t);\n });\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\n function n(t, e, i) {\n var o = t.firstElementChild;\n if (!o) for (o = t.firstChild; o && o.nodeType !== Node.ELEMENT_NODE;) {\n o = o.nextSibling;\n }\n\n for (; o;) {\n e(o, i) !== !0 && n(o, e, i), o = o.nextElementSibling;\n }\n\n return null;\n }\n\n function i(t, n) {\n for (var i = t.shadowRoot; i;) {\n e(i, n), i = i.olderShadowRoot;\n }\n }\n\n function o(t, e) {\n r(t, e, []);\n }\n\n function r(t, e, n) {\n if (t = window.wrap(t), !(n.indexOf(t) >= 0)) {\n n.push(t);\n\n for (var i, o = t.querySelectorAll(\"link[rel=\" + s + \"]\"), a = 0, u = o.length; u > a && (i = o[a]); a++) {\n i[\"import\"] && r(i[\"import\"], e, n);\n }\n\n e(t);\n }\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\n function n(e, n) {\n return t.upgrade(e, n) ? !0 : void (n && s(e));\n }\n\n function i(t, e) {\n b(t, function (t) {\n return n(t, e) ? !0 : void 0;\n });\n }\n\n function o(t) {\n w.push(t), x || (x = !0, setTimeout(r));\n }\n\n function r() {\n x = !1;\n\n for (var t, e = w, n = 0, i = e.length; i > n && (t = e[n]); n++) {\n t();\n }\n\n w = [];\n }\n\n function s(t) {\n C ? o(function () {\n a(t);\n }) : a(t);\n }\n\n function a(t) {\n t.__upgraded__ && !t.__attached && (t.__attached = !0, t.attachedCallback && t.attachedCallback());\n }\n\n function u(t) {\n c(t), b(t, function (t) {\n c(t);\n });\n }\n\n function c(t) {\n C ? o(function () {\n l(t);\n }) : l(t);\n }\n\n function l(t) {\n t.__upgraded__ && t.__attached && (t.__attached = !1, t.detachedCallback && t.detachedCallback());\n }\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\n function p(t) {\n if (t.shadowRoot && !t.shadowRoot.__watched) {\n y.dom && console.log(\"watching shadow-root for: \", t.localName);\n\n for (var e = t.shadowRoot; e;) {\n g(e), e = e.olderShadowRoot;\n }\n }\n }\n\n function d(t, n) {\n if (y.dom) {\n var i = n[0];\n\n if (i && \"childList\" === i.type && i.addedNodes && i.addedNodes) {\n for (var o = i.addedNodes[0]; o && o !== document && !o.host;) {\n o = o.parentNode;\n }\n\n var r = o && (o.URL || o._URL || o.host && o.host.localName) || \"\";\n r = r.split(\"/?\").shift().split(\"/\").pop();\n }\n\n console.group(\"mutations (%d) [%s]\", n.length, r || \"\");\n }\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\n function f(t) {\n for (t = window.wrap(t), t || (t = window.wrap(document)); t.parentNode;) {\n t = t.parentNode;\n }\n\n var e = t.__observer;\n e && (d(t, e.takeRecords()), r());\n }\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\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\n function v(t) {\n A(t, m);\n }\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\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\n function i(t, e) {\n Object.__proto__ ? t.__proto__ = e.prototype : (o(t, e.prototype, e[\"native\"]), t.__proto__ = e.prototype);\n }\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++) {\n i[r] || (Object.defineProperty(t, r, Object.getOwnPropertyDescriptor(o, r)), i[r] = 1);\n }\n\n o = Object.getPrototypeOf(o);\n }\n }\n\n function r(t) {\n t.createdCallback && t.createdCallback();\n }\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\n function n(t) {\n if (!t.setAttribute._polyfilled) {\n var e = t.setAttribute;\n\n t.setAttribute = function (t, n) {\n i.call(this, t, n, e);\n };\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\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\n function o(t) {\n for (var e = 0; e < C.length; e++) {\n if (t === C[e]) return !0;\n }\n }\n\n function r(t) {\n var e = c(t);\n return e ? r(e[\"extends\"]).concat([e]) : [];\n }\n\n function s(t) {\n for (var e, n = t[\"extends\"], i = 0; e = t.ancestry[i]; i++) {\n n = e.is && e.tag;\n }\n\n t.tag = n || t.__name, n && (t.is = t.__name);\n }\n\n function a(t) {\n if (!Object.__proto__) {\n var e = HTMLElement.prototype;\n\n if (t.is) {\n var n = document.createElement(t.tag);\n e = Object.getPrototypeOf(n);\n }\n\n for (var i, o = t.prototype, r = !1; o;) {\n o == e && (r = !0), i = Object.getPrototypeOf(o), i && (o.__proto__ = i), o = i;\n }\n\n r || console.warn(t.tag + \" prototype not found in prototype chain for \" + t.is), t[\"native\"] = e;\n }\n }\n\n function u(t) {\n return y(E(t.tag), t);\n }\n\n function c(t) {\n return t ? x[t.toLowerCase()] : void 0;\n }\n\n function l(t, e) {\n x[t] = e;\n }\n\n function h(t) {\n return function () {\n return u(t);\n };\n }\n\n function p(t, e, n) {\n return t === w ? d(e, n) : S(t, e);\n }\n\n function d(t, e) {\n t && (t = t.toLowerCase()), e && (e = e.toLowerCase());\n var n = c(e || t);\n\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\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\n function f(t, e) {\n var n = t[e];\n\n t[e] = function () {\n var t = n.apply(this, arguments);\n return v(t), t;\n };\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\n for (var n = t; n;) {\n if (n === e.prototype) return !0;\n n = n.__proto__;\n }\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\n var t = window.requestAnimationFrame || function (t) {\n setTimeout(t, 16);\n };\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\n var n = t.useNative,\n i = t.initializeModules;\n\n if (t.isIE, n) {\n var o = function o() {};\n\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\n var r = t.upgradeDocumentTree,\n s = t.upgradeDocument;\n if (window.wrap || (window.ShadowDOMPolyfill ? (window.wrap = window.ShadowDOMPolyfill.wrapIfNeeded, window.unwrap = window.ShadowDOMPolyfill.unwrapIfNeeded) : window.wrap = window.unwrap = function (t) {\n return t;\n }), window.HTMLImports && (window.HTMLImports.__importsParsingHook = function (t) {\n t[\"import\"] && s(wrap(t[\"import\"]));\n }), \"complete\" === document.readyState || t.flags.eager) e();else if (\"interactive\" !== document.readyState || window.attachEvent || window.HTMLImports && !window.HTMLImports.ready) {\n var a = window.HTMLImports && !window.HTMLImports.ready ? \"HTMLImportsLoaded\" : \"DOMContentLoaded\";\n window.addEventListener(a, e);\n } else e();\n }(window.CustomElements));\n}.call(this), function () {}.call(this), function () {\n var t = this;\n (function () {\n (function () {\n this.Trix = {\n VERSION: \"1.3.1\",\n ZERO_WIDTH_SPACE: \"\\uFEFF\",\n NON_BREAKING_SPACE: \"\\xa0\",\n OBJECT_REPLACEMENT_CHARACTER: \"\\uFFFC\",\n browser: {\n composesExistingText: /Android.*Chrome/.test(navigator.userAgent),\n forcesObjectResizing: /Trident.*rv:11/.test(navigator.userAgent),\n supportsInputEvents: function () {\n var t, e, n, i;\n if (\"undefined\" == typeof InputEvent) return !1;\n\n for (i = [\"data\", \"getTargetRanges\", \"inputType\"], t = 0, e = i.length; e > t; t++) {\n if (n = i[t], !(n in InputEvent.prototype)) return !1;\n }\n\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\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 n(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(_t, e) {\n function i() {\n this.constructor = _t;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t.prototype = new i(), _t.__super__ = e.prototype, _t;\n },\n n = {}.hasOwnProperty;\n\n e.Object = function (n) {\n function i() {\n this.id = ++o;\n }\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\n for (e in i) {\n n = i[e], o.push(e + \"=\" + n);\n }\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\n for (e in t) {\n n = t[e], this[e] = n;\n }\n\n return this;\n };\n }.call(this), function () {\n e.extend({\n defer: function defer(t) {\n return setTimeout(t, 1);\n }\n });\n }.call(this), function () {\n var t, n;\n e.extend({\n normalizeSpaces: function normalizeSpaces(t) {\n return t.replace(RegExp(\"\" + e.ZERO_WIDTH_SPACE, \"g\"), \"\").replace(RegExp(\"\" + e.NON_BREAKING_SPACE, \"g\"), \" \");\n },\n normalizeNewlines: function normalizeNewlines(t) {\n return t.replace(/\\r\\n/g, \"\\n\");\n },\n breakableWhitespacePattern: RegExp(\"[^\\\\S\" + e.NON_BREAKING_SPACE + \"]\"),\n squishBreakableWhitespace: function squishBreakableWhitespace(t) {\n return t.replace(RegExp(\"\" + e.breakableWhitespacePattern.source, \"g\"), \" \").replace(/\\ {2,}/g, \" \");\n },\n summarizeStringChange: function summarizeStringChange(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(_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(_t2, e) {\n var n, i, o;\n\n for (n = 0, i = _t2.length, o = e.length; i > n && _t2.charAt(n).isEqualTo(e.charAt(n));) {\n n++;\n }\n\n for (; i > n + 1 && _t2.charAt(i - 1).isEqualTo(e.charAt(o - 1));) {\n i--, o--;\n }\n\n return {\n utf16String: _t2.slice(n, i),\n offset: n\n };\n };\n }.call(this), function () {\n e.extend({\n copyObject: function copyObject(t) {\n var e, n, i;\n null == t && (t = {}), n = {};\n\n for (e in t) {\n i = t[e], n[e] = i;\n }\n\n return n;\n },\n objectsAreEqual: function objectsAreEqual(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\n for (n in t) {\n if (i = t[n], i !== e[n]) return !1;\n }\n\n return !0;\n }\n });\n }.call(this), function () {\n var t = [].slice;\n e.extend({\n arraysAreEqual: function arraysAreEqual(t, e) {\n var n, i, o, r;\n if (null == t && (t = []), null == e && (e = []), t.length !== e.length) return !1;\n\n for (i = n = 0, o = t.length; o > n; i = ++n) {\n if (r = t[i], r !== e[i]) return !1;\n }\n\n return !0;\n },\n arrayStartsWith: function arrayStartsWith(t, n) {\n return null == t && (t = []), null == n && (n = []), e.arraysAreEqual(t.slice(0, n.length), n);\n },\n spliceArray: function spliceArray() {\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 summarizeArrayChange(t, e) {\n var n, i, o, r, s, a, u, c, l, h, p;\n\n for (null == t && (t = []), null == e && (e = []), n = [], h = [], o = new Set(), r = 0, u = t.length; u > r; r++) {\n p = t[r], o.add(p);\n }\n\n for (i = new Set(), s = 0, c = e.length; c > s; s++) {\n p = e[s], i.add(p), o.has(p) || n.push(p);\n }\n\n for (a = 0, l = t.length; l > a; a++) {\n p = t[a], i.has(p) || h.push(p);\n }\n\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 getAllAttributeNames() {\n return null != t ? t : t = e.getTextAttributeNames().concat(e.getBlockAttributeNames());\n },\n getBlockConfig: function getBlockConfig(t) {\n return e.config.blockAttributes[t];\n },\n getBlockAttributeNames: function getBlockAttributeNames() {\n return null != n ? n : n = Object.keys(e.config.blockAttributes);\n },\n getTextConfig: function getTextConfig(t) {\n return e.config.textAttributes[t];\n },\n getTextAttributeNames: function getTextAttributeNames() {\n return null != o ? o : o = Object.keys(e.config.textAttributes);\n },\n getListAttributeNames: function getListAttributeNames() {\n var t, n;\n return null != i ? i : i = function () {\n var i, o;\n i = e.config.blockAttributes, o = [];\n\n for (t in i) {\n n = i[t].listAttribute, null != n && o.push(n);\n }\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++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\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 handleEvent(n, i) {\n var o, r, _s, a, u, c, l, h, p, d, f, g;\n\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 s(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 handleEventOnce(t, n) {\n return null == n && (n = {}), n.times = 1, e.handleEvent(t, n);\n },\n triggerEvent: function triggerEvent(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 elementMatchesSelector(t, e) {\n return 1 === (null != t ? t.nodeType : void 0) ? n.call(t, e) : void 0;\n },\n findClosestElementFromNode: function findClosestElementFromNode(t, n) {\n var i, o, r;\n\n for (o = null != n ? n : {}, i = o.matchingSelector, r = o.untilNode; null != t && t.nodeType !== Node.ELEMENT_NODE;) {\n t = t.parentNode;\n }\n\n if (null != t) {\n if (null == i) return t;\n if (t.closest && null == r) return t.closest(i);\n\n for (; t && t !== r;) {\n if (e.elementMatchesSelector(t, i)) return t;\n t = t.parentNode;\n }\n }\n },\n findInnerElement: function findInnerElement(t) {\n for (; null != t ? t.firstElementChild : void 0;) {\n t = t.firstElementChild;\n }\n\n return t;\n },\n innerElementIsActive: function innerElementIsActive(t) {\n return document.activeElement !== t && e.elementContainsNode(t, document.activeElement);\n },\n elementContainsNode: function elementContainsNode(t, e) {\n if (t && e) for (; e;) {\n if (e === t) return !0;\n e = e.parentNode;\n }\n },\n findNodeFromContainerAndOffset: function findNodeFromContainerAndOffset(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 findElementFromContainerAndOffset(t, n) {\n var i;\n return i = e.findNodeFromContainerAndOffset(t, n), e.findClosestElementFromNode(i);\n },\n findChildIndexOfNode: function findChildIndexOfNode(t) {\n var e;\n\n if (null != t ? t.parentNode : void 0) {\n for (e = 0; t = t.previousSibling;) {\n e++;\n }\n\n return e;\n }\n },\n removeNode: function removeNode(t) {\n var e;\n return null != t && null != (e = t.parentNode) ? e.removeChild(t) : void 0;\n },\n walkTree: function walkTree(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\n case \"text\":\n return NodeFilter.SHOW_TEXT;\n\n case \"comment\":\n return NodeFilter.SHOW_COMMENT;\n\n default:\n return NodeFilter.SHOW_ALL;\n }\n }(), document.createTreeWalker(t, s, null != r ? r : null, n === !0);\n },\n tagName: function tagName(t) {\n var e;\n return null != t && null != (e = t.tagName) ? e.toLowerCase() : void 0;\n },\n makeElement: function makeElement(t, e) {\n var n, i, o, r, s, a, u, c, l, h, p, d, f, g;\n\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\n for (a in l) {\n g = l[a], o.setAttribute(a, g);\n }\n }\n\n if (e.style) {\n h = e.style;\n\n for (a in h) {\n g = h[a], o.style[a] = g;\n }\n }\n\n if (e.data) {\n p = e.data;\n\n for (a in p) {\n g = p[a], o.dataset[a] = g;\n }\n }\n\n if (e.className) for (d = e.className.split(\" \"), r = 0, u = d.length; u > r; r++) {\n i = d[r], o.classList.add(i);\n }\n if (e.textContent && (o.textContent = e.textContent), e.childNodes) for (f = [].concat(e.childNodes), s = 0, c = f.length; c > s; s++) {\n n = f[s], o.appendChild(n);\n }\n return o;\n },\n getBlockTagNames: function getBlockTagNames() {\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\n for (t in i) {\n n = i[t].tagName, n && o.push(n);\n }\n\n return o;\n }();\n },\n nodeIsBlockContainer: function nodeIsBlockContainer(t) {\n return e.nodeIsBlockStartComment(null != t ? t.firstChild : void 0);\n },\n nodeProbablyIsBlockContainer: function nodeProbablyIsBlockContainer(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 nodeIsBlockStart(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 nodeIsBlockStartComment(t) {\n return e.nodeIsCommentNode(t) && \"block\" === (null != t ? t.data : void 0);\n },\n nodeIsCommentNode: function nodeIsCommentNode(t) {\n return (null != t ? t.nodeType : void 0) === Node.COMMENT_NODE;\n },\n nodeIsCursorTarget: function nodeIsCursorTarget(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 nodeIsAttachmentElement(t) {\n return e.elementMatchesSelector(t, e.AttachmentView.attachmentSelector);\n },\n nodeIsEmptyTextNode: function nodeIsEmptyTextNode(t) {\n return e.nodeIsTextNode(t) && \"\" === (null != t ? t.data : void 0);\n },\n nodeIsTextNode: function nodeIsTextNode(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 i(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 rangeIsCollapsed(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 rangesAreEqual(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 n(e) {\n return \"number\" == typeof e ? e : t(e);\n }, r = function r(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 o(t, e) {\n var n;\n return n = i(e), n.textContent = t.replace(/%t/g, e);\n }, i = function i(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 t() {\n var t;\n return (t = n(\"trix-csp-nonce\") || n(\"csp-nonce\")) ? t.getAttribute(\"content\") : void 0;\n }, n = function n(t) {\n return document.head.querySelector(\"meta[name=\" + t + \"]\");\n }, s = function s(t) {\n var e, n, i;\n n = {};\n\n for (e in t) {\n i = t[e], n[e] = \"function\" == typeof i ? {\n value: i\n } : i;\n }\n\n return n;\n }, a = function () {\n var t;\n return t = function t(_t3) {\n var e, n, i, o, r;\n\n for (e = {}, r = [\"initialize\", \"connect\", \"disconnect\"], n = 0, o = r.length; o > n; n++) {\n i = r[n], e[i] = _t3[i], delete _t3[i];\n }\n\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() {\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 _n2;\n\n return _n2 = function n() {\n return \"object\" == (typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) ? Reflect.construct(HTMLElement, [], _n2) : HTMLElement.apply(this);\n }, Object.setPrototypeOf(_n2.prototype, HTMLElement.prototype), Object.setPrototypeOf(_n2, HTMLElement), Object.defineProperties(_n2.prototype, e), window.customElements.define(t, _n2), _n2;\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 getDOMSelection() {\n var t;\n return t = window.getSelection(), t.rangeCount > 0 ? t : void 0;\n },\n getDOMRange: function getDOMRange() {\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 setDOMRange(t) {\n var n;\n return n = window.getSelection(), n.removeAllRanges(), n.addRange(t), e.selectionChangeObserver.update();\n }\n }), t = function t(_t4) {\n return n(_t4.startContainer) || n(_t4.endContainer);\n }, n = function n(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 dataTransferIsPlainText(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 dataTransferIsWritable(e) {\n var n, i;\n\n if (null != (null != e ? e.setData : void 0)) {\n for (n in t) {\n if (i = t[n], !function () {\n try {\n return e.setData(n, i), e.getData(n) === i;\n } catch (t) {}\n }()) return;\n }\n\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 n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\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\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\n for (e = r(t[0]), i = e.getKeys(), a = t.slice(1), n = 0, o = a.length; o > n; n++) {\n s = a[n], i = e.getKeysCommonToHash(r(s)), e = e.slice(i);\n }\n\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\n for (r = {}, n = 0, o = t.length; o > n; n++) {\n i = t[n], this.has(i) && (r[i] = this.values[i]);\n }\n\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\n for (t = r(t), o = this.getKeys(), s = [], e = 0, i = o.length; i > e; e++) {\n n = o[e], this.values[n] === t.values[n] && s.push(n);\n }\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\n for (t in i) {\n n = i[t], e.push(t, n);\n }\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 u(t, e) {\n var n;\n return n = {}, n[t] = e, n;\n }, a = function a(t, e) {\n var n, i, o;\n i = s(t);\n\n for (n in e) {\n o = e[n], i[n] = o;\n }\n\n return i;\n }, s = function s(t, e) {\n var n, i, o, r, s;\n\n for (r = {}, s = Object.keys(t).sort(), n = 0, o = s.length; o > n; n++) {\n i = s[n], i !== e && (r[i] = t[i]);\n }\n\n return r;\n }, r = function r(t) {\n return t instanceof e.Hash ? t : new e.Hash(t);\n }, c = function c(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\n return t.groupObjects = function (t, e) {\n var n, i, o, r, s, a, u, c, l;\n\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\n c.push(new this(r, {\n depth: o,\n asTree: n\n })), r = null;\n }\n\n (\"function\" == typeof u.canBeGrouped ? u.canBeGrouped(o) : void 0) ? r = [u] : c.push(u);\n }\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\n for (e = [\"objectGroup\"], o = this.getObjects(), t = 0, n = o.length; n > t; t++) {\n i = o[t], e.push(i.getCacheKey());\n }\n\n return e.join(\"/\");\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t5, e) {\n function i() {\n this.constructor = _t5;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t5[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t5.prototype = new i(), _t5.__super__ = e.prototype, _t5;\n },\n n = {}.hasOwnProperty;\n\n e.ObjectMap = function (e) {\n function n(t) {\n var e, n, i, o, r;\n\n for (null == t && (t = []), this.objects = {}, i = 0, o = t.length; o > i; i++) {\n r = t[i], n = JSON.stringify(r), null == (e = this.objects)[n] && (e[n] = r);\n }\n }\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\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\n for (null == t && (t = []), this.elements = {}, n = 0, i = t.length; i > n; n++) {\n e = t[n], this.add(e);\n }\n\n return t;\n }, e = function e(t) {\n return t.dataset.trixStoreKey;\n }, t;\n }();\n }.call(this), function () {}.call(this), function () {\n var t = function t(_t6, e) {\n function i() {\n this.constructor = _t6;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t6[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t6.prototype = new i(), _t6.__super__ = e.prototype, _t6;\n },\n n = {}.hasOwnProperty;\n\n e.Operation = function (e) {\n function n() {\n return n.__super__.constructor.apply(this, arguments);\n }\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 s(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n a.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n a = {}.hasOwnProperty;\n\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\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\n for (o = [], e = 0, i = t.length; i > e;) {\n 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 }\n\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\n for (r = [], e = 0, o = t.length; o > e; e++) {\n 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 }\n\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 test(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 test(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 formatter(e) {\n var i, o, r, s, a;\n\n switch (e) {\n case 0:\n return \"0 \" + t.bytes;\n\n case 1:\n return \"1 \" + t[\"byte\"];\n\n default:\n return i = function () {\n switch (this.prefix) {\n case \"SI\":\n return 1e3;\n\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 parser(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 parser(t) {\n var e;\n return e = window.getComputedStyle(t), \"italic\" === e.fontStyle;\n }\n },\n href: {\n groupTagName: \"a\",\n parser: function parser(t) {\n var n, i, o;\n return n = e.AttachmentView.attachmentSelector, o = \"a:not(\" + n + \")\", (i = e.findClosestElementFromNode(t, {\n matchingSelector: o\n })) ? i.getAttribute(\"href\") : void 0;\n }\n },\n strike: {\n tagName: \"del\",\n inheritable: !0\n },\n frozen: {\n style: {\n backgroundColor: \"highlight\"\n }\n }\n };\n }.call(this), function () {\n var t, n, i, o, r;\n r = \"[data-trix-serialize=false]\", o = [\"contenteditable\", \"data-trix-id\", \"data-trix-store-key\", \"data-trix-mutable\", \"data-trix-placeholder\", \"tabindex\"], n = \"data-trix-serialized-attributes\", i = \"[\" + n + \"]\", t = new RegExp(\"\", \"g\"), e.extend({\n serializers: {\n \"application/json\": function applicationJson(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 textHtml(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\n for (A = l.querySelectorAll(r), h = 0, g = A.length; g > h; h++) {\n c = A[h], e.removeNode(c);\n }\n\n for (p = 0, m = o.length; m > p; p++) {\n for (a = o[p], C = l.querySelectorAll(\"[\" + a + \"]\"), d = 0, v = C.length; v > d; d++) {\n c = C[d], c.removeAttribute(a);\n }\n }\n\n for (x = l.querySelectorAll(i), f = 0, y = x.length; y > f; f++) {\n c = x[f];\n\n try {\n u = JSON.parse(c.getAttribute(n)), c.removeAttribute(n);\n\n for (b in u) {\n w = u[b], c.setAttribute(b, w);\n }\n } catch (E) {}\n }\n\n return l.innerHTML.replace(t, \"\");\n }\n },\n deserializers: {\n \"application/json\": function applicationJson(t) {\n return e.Document.fromJSONString(t);\n },\n \"text/html\": function textHtml(t) {\n return e.Document.fromHTML(t);\n }\n },\n serializeToContentType: function serializeToContentType(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 deserializeFromContentType(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 getDefaultHTML() {\n return '
\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n\\n \\n\\n \\n \\n \\n \\n
\\n\\n
\\n
\\n \\n
\\n
';\n }\n };\n }.call(this), function () {\n e.config.undoInterval = 5e3;\n }.call(this), function () {\n e.config.attachments = {\n preview: {\n presentation: \"gallery\",\n caption: {\n name: !0,\n size: !0\n }\n },\n file: {\n caption: {\n size: !0\n }\n }\n };\n }.call(this), function () {\n e.config.keyNames = {\n 8: \"backspace\",\n 9: \"tab\",\n 13: \"return\",\n 27: \"escape\",\n 37: \"left\",\n 39: \"right\",\n 46: \"delete\",\n 68: \"d\",\n 72: \"h\",\n 79: \"o\"\n };\n }.call(this), function () {\n e.config.input = {\n level2Enabled: !0,\n getLevel: function getLevel() {\n return this.level2Enabled && e.browser.supportsInputEvents ? 2 : 0;\n },\n pickFiles: function pickFiles(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 initialize() {\n return \"\" === this.innerHTML ? this.innerHTML = e.config.toolbar.getDefaultHTML() : void 0;\n }\n });\n }.call(this), function () {\n var t = function t(_t7, e) {\n function i() {\n this.constructor = _t7;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t7[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t7.prototype = new i(), _t7.__super__ = e.prototype, _t7;\n },\n n = {}.hasOwnProperty,\n i = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\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\n return t(o, n), o.prototype.getNodes = function () {\n var t, e, n, i, o;\n\n for (null == this.nodes && (this.nodes = this.createNodes()), i = this.nodes, o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], o.push(n.cloneNode(!0));\n }\n\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\n for (o = [], i = this.childViews, e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(t), o = o.concat(t.getAllChildViews());\n }\n\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\n for (i = this.getAllChildViews(), e = 0, n = i.length; n > e; e++) {\n if (o = i[e], o.object === t) return o;\n }\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\n if (t = this.getViewCache()) {\n s = this.getAllChildViews().concat(this), n = function () {\n var t, e, n;\n\n for (n = [], t = 0, e = s.length; e > t; t++) {\n r = s[t], n.push(r.object.getCacheKey());\n }\n\n return n;\n }(), o = [];\n\n for (e in t) {\n i.call(n, e) < 0 && o.push(delete t[e]);\n }\n\n return o;\n }\n }, o;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t8, e) {\n function i() {\n this.constructor = _t8;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t8[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t8.prototype = new i(), _t8.__super__ = e.prototype, _t8;\n },\n n = {}.hasOwnProperty;\n\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\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 n = i[t], this.findOrCreateCachedChildView(this.viewClass, n, this.options);\n }\n return this.childViews;\n }, n.prototype.createNodes = function () {\n var t, e, n, i, o, r, s, a, u;\n\n for (t = this.createContainerElement(), s = this.getChildViews(), e = 0, i = s.length; i > e; e++) {\n for (u = s[e], a = u.getNodes(), n = 0, o = a.length; o > n; n++) {\n r = a[n], t.appendChild(r);\n }\n }\n\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(_t9, e) {\n function i() {\n this.constructor = _t9;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t9[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t9.prototype = new i(), _t9.__super__ = e.prototype, _t9;\n },\n n = {}.hasOwnProperty;\n\n e.Controller = function (e) {\n function n() {\n return n.__super__.constructor.apply(this, arguments);\n }\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 a(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n u = function u(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n c.call(e, i) && (t[i] = e[i]);\n }\n\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++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\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\n var _h, p, d, f;\n\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\n for (o = [], e = 0, n = t.length; n > e; e++) {\n i = t[e], this.mutationIsSignificant(i) && o.push(i);\n }\n\n return o;\n }, c.prototype.mutationIsSignificant = function (t) {\n var e, n, i, o;\n if (this.nodeIsMutable(t.target)) return !1;\n\n for (o = this.nodesModifiedByMutation(t), e = 0, n = o.length; n > e; e++) {\n if (i = o[e], this.nodeIsSignificant(i)) return !0;\n }\n\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\n switch (e = [], t.type) {\n case \"attributes\":\n t.attributeName !== p && e.push(t.target);\n break;\n\n case \"characterData\":\n e.push(t.target.parentNode), e.push(t.target);\n break;\n\n case \"childList\":\n e.push.apply(e, t.addedNodes), e.push.apply(e, t.removedNodes);\n }\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\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++) {\n e = u[r], l.call(n, e) < 0 && n.push(e);\n }\n\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\n for (o = this.mutations, r = [], e = 0, n = o.length; n > e; e++) {\n i = o[e], i.type === t && r.push(i);\n }\n\n return r;\n }, c.prototype.getTextChangesFromChildList = function () {\n var t, e, i, r, s, a, u, c, l, p, d;\n\n for (t = [], u = [], a = this.getMutationsByType(\"childList\"), e = 0, r = a.length; r > e; e++) {\n s = a[e], t.push.apply(t, s.addedNodes), u.push.apply(u, s.removedNodes);\n }\n\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\n for (n = [], i = t = 0, e = p.length; e > t; i = ++t) {\n l = p[i], l !== d[i] && n.push(o(l));\n }\n\n return n;\n }(),\n deletions: function () {\n var t, e, n;\n\n for (n = [], i = t = 0, e = d.length; e > t; i = ++t) {\n l = d[i], l !== p[i] && n.push(o(l));\n }\n\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 h(t) {\n var e, n, i, o;\n\n for (null == t && (t = []), o = [], e = 0, n = t.length; n > e; e++) {\n switch (i = t[e], i.nodeType) {\n case Node.TEXT_NODE:\n o.push(i.data);\n break;\n\n case Node.ELEMENT_NODE:\n \"br\" === s(i) ? o.push(\"\\n\") : o.push.apply(o, _h(i.childNodes));\n }\n }\n\n return o;\n }, c;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t10, e) {\n function i() {\n this.constructor = _t10;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t10[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t10.prototype = new i(), _t10.__super__ = e.prototype, _t10;\n },\n n = {}.hasOwnProperty;\n\n e.FileVerificationOperation = function (e) {\n function n(t) {\n this.file = t;\n }\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\n try {\n e.abort();\n } catch (i) {}\n\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 i(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n o.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n\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\n for (i in this.events) {\n t(i, {\n onElement: this.element,\n withCallback: this.handlerFor(i)\n });\n }\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\n for (r = [], i = 0, o = t.length; o > i; i++) {\n n = t[i], r.push(new e.FileVerificationOperation(n));\n }\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\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 f(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n g.call(e, i) && (t[i] = e[i]);\n }\n\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++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\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\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\n for (e in t) {\n n = t[e], this.inputSummary[e] = n;\n }\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 keydown(t) {\n var n, i, o, r, s, c, l, h, p;\n\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++) {\n l = h[o], t[l + \"Key\"] && (\"ctrl\" === l && (l = \"control\"), i = null != i ? i[l] : void 0);\n }\n\n null != (null != i ? i[r] : void 0) && (this.setInputSummary({\n keyName: r\n }), e.selectionChangeObserver.reset(), i[r].call(this, t));\n }\n\n return a(t) && (n = String.fromCharCode(t.keyCode).toLowerCase()) && (s = function () {\n var e, n, i, o;\n\n for (i = [\"alt\", \"shift\"], o = [], e = 0, n = i.length; n > e; e++) {\n l = i[e], t[l + \"Key\"] && o.push(l);\n }\n\n return o;\n }(), s.push(n), null != (p = this.delegate) ? p.inputControllerDidReceiveKeyboardCommand(s) : void 0) ? t.preventDefault() : void 0;\n },\n keypress: function keypress(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 textInput(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 dragenter(t) {\n return t.preventDefault();\n },\n dragstart: function dragstart(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 dragover(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 dragend() {\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 drop(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 cut(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 copy(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 paste(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 compositionstart(t) {\n return this.getCompositionInput().start(t.data);\n },\n compositionupdate: function compositionupdate(t) {\n return this.getCompositionInput().update(t.data);\n },\n compositionend: function compositionend(t) {\n return this.getCompositionInput().end(t.data);\n },\n beforeinput: function beforeinput() {\n return this.inputSummary.didInput = !0;\n },\n input: function input(t) {\n return this.inputSummary.didInput = !0, t.stopPropagation();\n }\n }, s.prototype.keys = {\n backspace: function backspace(t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"backward\", t);\n },\n \"delete\": function _delete(t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"forward\", t);\n },\n \"return\": function _return() {\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 tab(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 left(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 right(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 d(t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"forward\", t);\n },\n h: function h(t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"backward\", t);\n },\n o: function o(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 _return(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 tab(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 left(t) {\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), this.expandSelectionInDirection(\"backward\")) : void 0;\n },\n right: function right(t) {\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), this.expandSelectionInDirection(\"forward\")) : void 0;\n }\n },\n alt: {\n backspace: function backspace() {\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 backspace() {\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\n for (s = {}, o = null != (i = null != t ? t.types : void 0) ? i : [], e = 0, n = o.length; n > e; e++) {\n r = o[e], s[r] = !0;\n }\n\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 r(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 p(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 h(t) {\n var e, n, i, o, r, s, a, u, c, l;\n\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++) {\n if (l = c[i], e = /^CorePasteboardFlavorType/.test(l), n = /^dyn\\./.test(l) && u.getData(l), a = e || n) return !0;\n }\n\n return !1;\n }\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\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 o(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n r = function r(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n s.call(e, i) && (t[i] = e[i]);\n }\n\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++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\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\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 keydown(t) {\n var e, i, o, r;\n\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 paste(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 beforeinput(t) {\n var e;\n return (e = this.inputTypes[t.inputType]) ? (this.withEvent(t, e), this.scheduleRender()) : void 0;\n },\n input: function input() {\n return e.selectionChangeObserver.reset();\n },\n dragstart: function dragstart(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 dragenter(t) {\n return c(t) ? t.preventDefault() : void 0;\n },\n dragover: function dragover(t) {\n var e, n;\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 drop(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 dragend() {\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 compositionend() {\n return this.composing ? (this.composing = !1, this.scheduleRender()) : void 0;\n }\n }, u.prototype.keys = {\n ArrowLeft: function ArrowLeft() {\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 ArrowRight() {\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 Backspace() {\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 Tab() {\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 TabShift() {\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 deleteByComposition() {\n return this.deleteInDirection(\"backward\", {\n recordUndoEntry: !1\n });\n },\n deleteByCut: function deleteByCut() {\n return this.deleteInDirection(\"backward\");\n },\n deleteByDrag: function deleteByDrag() {\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 deleteCompositionText() {\n return this.deleteInDirection(\"backward\", {\n recordUndoEntry: !1\n });\n },\n deleteContent: function deleteContent() {\n return this.deleteInDirection(\"backward\");\n },\n deleteContentBackward: function deleteContentBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteContentForward: function deleteContentForward() {\n return this.deleteInDirection(\"forward\");\n },\n deleteEntireSoftLine: function deleteEntireSoftLine() {\n return this.deleteInDirection(\"forward\");\n },\n deleteHardLineBackward: function deleteHardLineBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteHardLineForward: function deleteHardLineForward() {\n return this.deleteInDirection(\"forward\");\n },\n deleteSoftLineBackward: function deleteSoftLineBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteSoftLineForward: function deleteSoftLineForward() {\n return this.deleteInDirection(\"forward\");\n },\n deleteWordBackward: function deleteWordBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteWordForward: function deleteWordForward() {\n return this.deleteInDirection(\"forward\");\n },\n formatBackColor: function formatBackColor() {\n return this.activateAttributeIfSupported(\"backgroundColor\", this.event.data);\n },\n formatBold: function formatBold() {\n return this.toggleAttributeIfSupported(\"bold\");\n },\n formatFontColor: function formatFontColor() {\n return this.activateAttributeIfSupported(\"color\", this.event.data);\n },\n formatFontName: function formatFontName() {\n return this.activateAttributeIfSupported(\"font\", this.event.data);\n },\n formatIndent: function formatIndent() {\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 formatItalic() {\n return this.toggleAttributeIfSupported(\"italic\");\n },\n formatJustifyCenter: function formatJustifyCenter() {\n return this.toggleAttributeIfSupported(\"justifyCenter\");\n },\n formatJustifyFull: function formatJustifyFull() {\n return this.toggleAttributeIfSupported(\"justifyFull\");\n },\n formatJustifyLeft: function formatJustifyLeft() {\n return this.toggleAttributeIfSupported(\"justifyLeft\");\n },\n formatJustifyRight: function formatJustifyRight() {\n return this.toggleAttributeIfSupported(\"justifyRight\");\n },\n formatOutdent: function formatOutdent() {\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 formatRemove() {\n return this.withTargetDOMRange(function () {\n var t, e, n, i;\n i = [];\n\n for (t in null != (e = this.responder) ? e.getCurrentAttributes() : void 0) {\n i.push(null != (n = this.responder) ? n.removeCurrentAttribute(t) : void 0);\n }\n\n return i;\n });\n },\n formatSetBlockTextDirection: function formatSetBlockTextDirection() {\n return this.activateAttributeIfSupported(\"blockDir\", this.event.data);\n },\n formatSetInlineTextDirection: function formatSetInlineTextDirection() {\n return this.activateAttributeIfSupported(\"textDir\", this.event.data);\n },\n formatStrikeThrough: function formatStrikeThrough() {\n return this.toggleAttributeIfSupported(\"strike\");\n },\n formatSubscript: function formatSubscript() {\n return this.toggleAttributeIfSupported(\"sub\");\n },\n formatSuperscript: function formatSuperscript() {\n return this.toggleAttributeIfSupported(\"sup\");\n },\n formatUnderline: function formatUnderline() {\n return this.toggleAttributeIfSupported(\"underline\");\n },\n historyRedo: function historyRedo() {\n var t;\n return null != (t = this.delegate) ? t.inputControllerWillPerformRedo() : void 0;\n },\n historyUndo: function historyUndo() {\n var t;\n return null != (t = this.delegate) ? t.inputControllerWillPerformUndo() : void 0;\n },\n insertCompositionText: function insertCompositionText() {\n return this.composing = !0, this.insertString(this.event.data);\n },\n insertFromComposition: function insertFromComposition() {\n return this.composing = !1, this.insertString(this.event.data);\n },\n insertFromDrop: function insertFromDrop() {\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 insertFromPaste() {\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 insertFromYank() {\n return this.insertString(this.event.data);\n },\n insertLineBreak: function insertLineBreak() {\n return this.insertString(\"\\n\");\n },\n insertLink: function insertLink() {\n return this.activateAttributeIfSupported(\"href\", this.event.data);\n },\n insertOrderedList: function insertOrderedList() {\n return this.toggleAttributeIfSupported(\"number\");\n },\n insertParagraph: function insertParagraph() {\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 insertReplacementText() {\n return this.insertString(this.event.dataTransfer.getData(\"text/plain\"), {\n updatePosition: !1\n });\n },\n insertText: function insertText() {\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 insertTranspose() {\n return this.insertString(this.event.data);\n },\n insertUnorderedList: function insertUnorderedList() {\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 f(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\n try {\n n = e.call(this);\n } finally {\n this.event = null;\n }\n\n return n;\n }, c = function c(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 h(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 p(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 l(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 d(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 c(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n l = function l(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n h.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n h = {}.hasOwnProperty;\n\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\n var p;\n return l(h, a), p = function p(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\n for (this.savePendingCaption(); e = this.undos.pop();) {\n e();\n }\n\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 o() {\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 undo() {\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\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 o(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n r.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n\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\n var a;\n return o(s, r), s.attachmentSelector = \"[data-trix-attachment]\", s.prototype.createContentNodes = function () {\n return [];\n }, s.prototype.createNodes = function () {\n var e, n, o, r, s, u, c;\n if (e = r = i({\n tagName: \"figure\",\n className: this.getClassName(),\n data: this.getData(),\n editable: !1\n }), (n = this.getHref()) && (r = i({\n tagName: \"a\",\n editable: !1,\n attributes: {\n href: n,\n tabindex: -1\n }\n }), e.appendChild(r)), this.attachment.hasContent()) r.innerHTML = this.attachment.getContent();else for (c = this.createContentNodes(), o = 0, s = c.length; s > o; o++) {\n u = c[o], r.appendChild(u);\n }\n return r.appendChild(this.createCaptionElement()), this.attachment.isPending() && (this.progressElement = i({\n tagName: \"progress\",\n attributes: {\n \"class\": t.attachmentProgress,\n value: this.attachment.getUploadProgress(),\n max: 100\n },\n data: {\n trixMutable: !0,\n trixStoreKey: [\"progressElement\", this.attachment.id].join(\"/\")\n }\n }), e.appendChild(this.progressElement)), [a(\"left\"), e, a(\"right\")];\n }, s.prototype.createCaptionElement = function () {\n var e, n, o, r, s, a, u;\n return o = i({\n tagName: \"figcaption\",\n className: t.attachmentCaption\n }), (e = this.attachmentPiece.getCaption()) ? (o.classList.add(t.attachmentCaption + \"--edited\"), o.textContent = e) : (n = this.getCaptionConfig(), n.name && (r = this.attachment.getFilename()), n.size && (a = this.attachment.getFormattedFilesize()), r && (s = i({\n tagName: \"span\",\n className: t.attachmentName,\n textContent: r\n }), o.appendChild(s)), a && (r && o.appendChild(document.createTextNode(\" \")), u = i({\n tagName: \"span\",\n className: t.attachmentSize,\n textContent: a\n }), o.appendChild(u))), o;\n }, s.prototype.getClassName = function () {\n var e, n;\n return n = [t.attachment, t.attachment + \"--\" + this.attachment.getType()], (e = this.attachment.getExtension()) && n.push(t.attachment + \"--\" + e), n.join(\" \");\n }, s.prototype.getData = function () {\n var t, e;\n return e = {\n trixAttachment: JSON.stringify(this.attachment),\n trixContentType: this.attachment.getContentType(),\n trixId: this.attachment.id\n }, t = this.attachmentPiece.attributes, t.isEmpty() || (e.trixAttributes = JSON.stringify(t)), this.attachment.isPending() && (e.trixSerialize = !1), e;\n }, s.prototype.getHref = function () {\n return n(this.attachment.getContent(), \"a\") ? void 0 : this.attachment.getHref();\n }, s.prototype.getCaptionConfig = function () {\n var t, n, i;\n return i = this.attachment.getType(), t = e.copyObject(null != (n = e.config.attachments[i]) ? n.caption : void 0), \"file\" === i && (t.name = !0), t;\n }, s.prototype.findProgressElement = function () {\n var t;\n return null != (t = this.findElement()) ? t.querySelector(\"progress\") : void 0;\n }, a = function a(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 n(t, e) {\n var n;\n return n = i(\"div\"), n.innerHTML = null != t ? t : \"\", n.querySelector(e);\n };\n }.call(this), function () {\n var t,\n n = function n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\n t = e.makeElement, e.PreviewableAttachmentView = function (i) {\n function o() {\n o.__super__.constructor.apply(this, arguments), this.attachment.previewDelegate = this;\n }\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 o(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n r.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n\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\n var a;\n return o(s, r), s.prototype.createNodes = function () {\n var e, n, i, o, r, s;\n\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++) {\n r = s[n], i.appendChild(r);\n }\n\n s = [e];\n }\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\n for (a = [], c = this.string.split(\"\\n\"), n = e = 0, o = c.length; o > e; n = ++e) {\n l = c[n], n > 0 && (t = i(\"br\"), a.push(t)), (r = l.length) && (s = document.createTextNode(this.preserveSpaces(l)), a.push(s));\n }\n\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\n for (r in a) {\n 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\n for (r in u) {\n l = u[r], c[r] = l;\n }\n }\n }\n\n if (Object.keys(c).length) {\n null == e && (e = i(\"span\"));\n\n for (r in c) {\n l = c[r], e.style[r] = l;\n }\n }\n\n return e;\n }, s.prototype.createContainerElement = function () {\n var t, e, o, r, s;\n r = this.attributes;\n\n for (o in r) {\n if (s = r[o], (e = n(o)) && e.groupTagName) return t = {}, t[o] = s, i(e.groupTagName, t);\n }\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(_t11, e) {\n function i() {\n this.constructor = _t11;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t11[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t11.prototype = new i(), _t11.__super__ = e.prototype, _t11;\n },\n n = {}.hasOwnProperty;\n\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\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\n for (a = [], c = e.ObjectGroup.groupObjects(this.getPieces()), r = c.length - 1, i = n = 0, s = c.length; s > n; i = ++n) {\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 }\n\n return a;\n }, i.prototype.getPieces = function () {\n var t, e, n, i, o;\n\n for (i = this.text.getPieces(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], n.hasAttribute(\"blockBreak\") || o.push(n);\n }\n\n return o;\n }, o = function o(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 o(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n r.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n\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\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\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++) {\n u = c[s], r.appendChild(u);\n }\n\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 i(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n o.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n\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\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\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++) {\n r = s[t], u = this.findOrCreateCachedChildView(e.BlockView, r), a.push(function () {\n var t, e, n, i;\n\n for (n = u.getNodes(), i = [], t = 0, e = n.length; e > t; t++) {\n o = n[t], i.push(this.shadowElement.appendChild(o));\n }\n\n return i;\n }.call(this));\n }\n\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\n for (t = this.createDocumentFragmentForSync(); this.element.lastChild;) {\n this.element.removeChild(this.element.lastChild);\n }\n\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\n for (e = document.createDocumentFragment(), u = this.shadowElement.childNodes, n = 0, o = u.length; o > n; n++) {\n s = u[n], e.appendChild(s.cloneNode(!0));\n }\n\n for (c = a(e), i = 0, r = c.length; r > i; i++) {\n t = c[i], (l = this.elementStore.remove(t)) && t.parentNode.replaceChild(l, t);\n }\n\n return e;\n }, a = function a(t) {\n return t.querySelectorAll(\"[data-trix-store-key]\");\n }, s = function s(t, e) {\n return u(t.innerHTML) === u(e.innerHTML);\n }, u = function u(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 s(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n a = function a(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n u.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n u = {}.hasOwnProperty;\n\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\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 o(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n r = function r(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n s.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty;\n\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\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\n for (o = this.element.querySelectorAll(a), r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], r.push(t(e, d(e)));\n }\n\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\n for (o = this.element.querySelectorAll(c), r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], r.push(t(e, f(e)));\n }\n\n return r;\n }, s.prototype.applyKeyboardCommand = function (t) {\n var e, n, o, r, s, a, u;\n\n for (s = JSON.stringify(t.sort()), u = this.element.querySelectorAll(\"[data-trix-key]\"), r = 0, a = u.length; a > r; r++) {\n 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 }\n\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\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 n = u[o], n.removeAttribute(\"disabled\");\n }\n\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\n for (i = this.element.querySelectorAll(h), o = [], t = 0, n = i.length; n > t; t++) {\n e = i[t], e.setAttribute(\"disabled\", \"disabled\"), e.removeAttribute(\"data-trix-validate\"), o.push(e.classList.remove(\"trix-validate\"));\n }\n\n return o;\n }, s.prototype.getDialog = function (t) {\n return this.element.querySelector(\"[data-trix-dialog=\" + t + \"]\");\n }, m = function m(t, e) {\n return null == e && (e = f(t)), t.querySelector(\"[data-trix-input][name='\" + e + \"']\");\n }, d = function d(t) {\n return t.getAttribute(\"data-trix-action\");\n }, f = function f(t) {\n var e;\n return null != (e = t.getAttribute(\"data-trix-attribute\")) ? e : t.getAttribute(\"data-trix-dialog-attribute\");\n }, g = function g(t) {\n return t.getAttribute(\"data-trix-dialog\");\n }, s;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t12, e) {\n function i() {\n this.constructor = _t12;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t12[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t12.prototype = new i(), _t12.__super__ = e.prototype, _t12;\n },\n n = {}.hasOwnProperty;\n\n e.ImagePreloadOperation = function (e) {\n function n(t) {\n this.url = t;\n }\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(_t13, e) {\n return function () {\n return _t13.apply(e, arguments);\n };\n },\n n = function n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\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\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(_t14, e) {\n function i() {\n this.constructor = _t14;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t14[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t14.prototype = new i(), _t14.__super__ = e.prototype, _t14;\n },\n n = {}.hasOwnProperty;\n\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\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(_t15, e) {\n function i() {\n this.constructor = _t15;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t15[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t15.prototype = new i(), _t15.__super__ = e.prototype, _t15;\n },\n n = {}.hasOwnProperty;\n\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\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 n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\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\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 n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty,\n o = [].slice;\n\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\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\n for (r = this.objects, s = [], n = e = 0, i = r.length; i > e; n = ++e) {\n o = r[n], s.push(t(o, n));\n }\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\n for (o = this.objects, r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], t(e) && r.push(e);\n }\n\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\n for (u = [], n = t = 0, s = r.length; s > t; n = ++t) {\n o = r[n], u.push(n >= i && a >= n ? e(o) : o);\n }\n\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\n for (i = [], o = this.objects[0], r = this.objects.slice(1), t = 0, e = r.length; e > t; t++) {\n n = r[t], (\"function\" == typeof o.canBeConsolidatedWith ? o.canBeConsolidatedWith(n) : void 0) ? o = o.consolidateWith(n) : (i.push(o), o = n);\n }\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\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\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\n for (s = 0, a = this.objects, n = i = 0, o = a.length; o > i; n = ++i) {\n if (r = a[n], t > n) s += r.getLength();else if (n === t) {\n s += e;\n break;\n }\n }\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\n for (e = 0, o = this.objects, n = 0, i = o.length; i > n; n++) {\n t = o[n], e += t.getLength();\n }\n\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 s(t, e) {\n var n, i, o, r, s;\n if (null == e && (e = []), t.length !== e.length) return !1;\n\n for (s = !0, i = n = 0, o = t.length; o > n; i = ++n) {\n r = t[i], s && !r.isEqualTo(e[i]) && (s = !1);\n }\n\n return s;\n }, i.prototype.contentsForInspection = function () {\n var t;\n return {\n objects: \"[\" + function () {\n var e, n, i, o;\n\n for (i = this.objects, o = [], e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(t.inspect());\n }\n\n return o;\n }.call(this).join(\", \") + \"]\"\n };\n }, a = function a(t) {\n return t[0];\n }, r = function r(t) {\n return t[1];\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t = function t(_t16, e) {\n function i() {\n this.constructor = _t16;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t16[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t16.prototype = new i(), _t16.__super__ = e.prototype, _t16;\n },\n n = {}.hasOwnProperty;\n\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\n for (o = [], e = 0, i = t.length; i > e; e++) {\n n = t[e], n.isEmpty() || o.push(n);\n }\n\n return o;\n }());\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\n for (r = [], i = 0, o = t.length; o > i; i++) {\n n = t[i], r.push(e.Piece.fromJSON(n));\n }\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\n for (o = this.getPieces(), s = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], s.push(null != (r = t.find(e)) ? r : e);\n }\n\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\n for (i = this.pieceList.toArray(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], o.push(n.getAttributes());\n }\n\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\n for (n = o = e, i = this.getLength(); n > 0 && this.getCommonAttributesAtRange([n - 1, o])[t];) {\n n--;\n }\n\n for (; i > o && this.getCommonAttributesAtRange([e, o + 1])[t];) {\n o++;\n }\n\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\n for (i = this.pieceList.toArray(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], null != n.attachment && o.push(n);\n }\n\n return o;\n }, i.prototype.getAttachments = function () {\n var t, e, n, i, o;\n\n for (i = this.getAttachmentPieces(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], o.push(n.attachment);\n }\n\n return o;\n }, i.prototype.getAttachmentAndPositionById = function (t) {\n var e, n, i, o, r, s;\n\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\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\n for (i = this.pieceList.toArray(), o = [], e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(JSON.parse(t.toConsole()));\n }\n\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 s(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n a.call(e, i) && (t[i] = e[i]);\n }\n\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++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n },\n c = [].slice;\n\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\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\n for (o = this.attributes, r = [], e = 0, n = o.length; n > e; e++) {\n t = o[e], i(t).nestable && r.push(t);\n }\n\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\n for (o = this.attributes, r = [], e = 0, n = o.length; n > e; e++) {\n t = o[e], i(t).listAttribute && r.push(t);\n }\n\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\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 h(t) {\n return t = y(t), t = l(t);\n }, y = function y(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\n for (n = [], t = 0, e = i.length; e > t; t++) {\n s = i[t], s.isBlockBreak() ? (r = !0, n.push(v(s))) : n.push(s);\n }\n\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 l(t) {\n return m(t) ? t : t.appendText(p);\n }, m = function m(t) {\n var e, n;\n return n = t.getLength(), 0 === n ? !1 : (e = t.getTextAtRange([n - 1, n]), e.isBlockBreak());\n }, v = function v(t) {\n return t.copyWithoutAttribute(\"blockBreak\");\n }, d = function d(t) {\n var e;\n return e = i(t).listAttribute, null != e ? [e, t] : [t];\n }, f = function f(t) {\n return t.slice(-1)[0];\n }, g = function g(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 o(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n r.call(e, i) && (t[i] = e[i]);\n }\n\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++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n },\n a = [].slice;\n\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\n var c, l, h, p;\n return o(u, r), c = \"style href src width height class\".split(\" \"), h = \"javascript:\".split(\" \"), l = \"script iframe\".split(\" \"), u.sanitize = function (t, e) {\n var n;\n return n = new this(t, e), n.sanitize(), n;\n }, u.prototype.sanitize = function () {\n return this.sanitizeElements(), this.normalizeListElementNesting();\n }, u.prototype.getHTML = function () {\n return this.body.innerHTML;\n }, u.prototype.getBody = function () {\n return this.body;\n }, u.prototype.sanitizeElements = function () {\n var t, n, o, r, s;\n\n for (s = i(this.body), r = []; s.nextNode();) {\n switch (o = s.currentNode, o.nodeType) {\n case Node.ELEMENT_NODE:\n this.elementIsRemovable(o) ? r.push(o) : this.sanitizeElement(o);\n break;\n\n case Node.COMMENT_NODE:\n r.push(o);\n }\n }\n\n for (t = 0, n = r.length; n > t; t++) {\n o = r[t], e.removeNode(o);\n }\n\n return this.body;\n }, u.prototype.sanitizeElement = function (t) {\n var e, n, i, o, r;\n\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++) {\n i = r[e].name, s.call(this.allowedAttributes, i) >= 0 || 0 === i.indexOf(\"data-trix\") || t.removeAttribute(i);\n }\n\n return t;\n }, u.prototype.normalizeListElementNesting = function () {\n var t, e, i, o, r;\n\n for (r = a.call(this.body.querySelectorAll(\"ul,ol\")), t = 0, e = r.length; e > t; t++) {\n i = r[t], (o = i.previousElementSibling) && \"li\" === n(o) && o.appendChild(i);\n }\n\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 p(t) {\n var e, n, i, o, r;\n\n for (null == t && (t = \"\"), t = t.replace(/<\\/html[^>]*>[^]*$/i, \"\"), e = document.implementation.createHTMLDocument(\"\"), e.documentElement.innerHTML = t, r = e.head.querySelectorAll(\"style\"), i = 0, o = r.length; o > i; i++) {\n n = r[i], e.body.appendChild(n);\n }\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 p(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n d.call(e, i) && (t[i] = e[i]);\n }\n\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++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\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\n var m, v, y, b, A, C, x, w, E, S, R, k;\n return p(g, d), g.parse = function (t, e) {\n var n;\n return n = new this(t, e), n.parse(), n;\n }, g.prototype.getDocument = function () {\n return e.Document.fromJSON(this.blocks);\n }, g.prototype.parse = function () {\n var t, n;\n\n try {\n for (this.createHiddenContainer(), t = e.HTMLSanitizer.sanitize(this.html).getHTML(), this.containerElement.innerHTML = t, n = h(this.containerElement, {\n usingFilter: x\n }); n.nextNode();) {\n this.processNode(n.currentNode);\n }\n\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 x(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\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\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\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\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\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\n case \"img\":\n e = {\n url: t.getAttribute(\"src\"),\n contentType: \"image\"\n }, i = b(t);\n\n for (n in i) {\n r = i[n], e[n] = r;\n }\n\n return this.appendAttachmentWithAttributes(e, this.getTextAttributes(t)), this.processedElements.push(t);\n\n case \"tr\":\n if (t.parentNode.firstChild !== t) return this.appendStringWithAttributes(\"\\n\");\n break;\n\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 S(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 E(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 m(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\n for (n in p) {\n 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++) {\n if (s = d[c], u.parser(s) === g) {\n i = !0;\n break;\n }\n }\n\n i || (r[n] = g);\n }\n } else u.styleProperty && (g = t.style[u.styleProperty]) && (r[n] = g);\n }\n\n if (a(t)) {\n f = w(t, \"attributes\");\n\n for (l in f) {\n g = f[l], r[l] = g;\n }\n }\n\n return r;\n }, g.prototype.getBlockAttributes = function (t) {\n var n, i, o, r;\n\n for (i = []; t && t !== this.containerElement;) {\n r = e.config.blockAttributes;\n\n for (n in r) {\n 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 }\n\n t = t.parentNode;\n }\n\n return i.reverse();\n }, g.prototype.findBlockElementAncestors = function (t) {\n var e, n;\n\n for (e = []; t && t !== this.containerElement;) {\n n = l(t), f.call(r(), n) >= 0 && e.push(t), t = t.parentNode;\n }\n\n return e;\n }, w = function w(t, e) {\n try {\n return JSON.parse(t.getAttribute(\"data-trix-\" + e));\n } catch (n) {\n return {};\n }\n }, b = function b(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 v(t) {\n var e;\n return e = window.getComputedStyle(t).whiteSpace, \"pre\" === e || \"pre-wrap\" === e || \"pre-line\" === e;\n }, C = function C(t) {\n return t && !R(t.textContent);\n }, g.prototype.translateBlockElementMarginsToNewlines = function () {\n var t, e, n, i, o, r, s, a;\n\n for (e = this.getMarginOfDefaultBlockElement(), s = this.blocks, a = [], i = n = 0, o = s.length; o > n; i = ++n) {\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 }\n\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 y(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 A(t) {\n return t.replace(RegExp(\"^\" + n.source + \"+\"), \"\");\n }, k = function k(t) {\n return RegExp(\"^\" + n.source + \"*$\").test(t);\n }, R = function R(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 r(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n s.call(e, i) && (t[i] = e[i]);\n }\n\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++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\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\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\n for (r = [], i = 0, o = t.length; o > i; i++) {\n n = t[i], r.push(e.Block.fromJSON(n));\n }\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\n for (r = this.getBlocks(), s = [], n = 0, o = r.length; o > n; n++) {\n e = r[n], s.push((i = t.find(e)) ? i : e.copyUsingObjectMap(t));\n }\n\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\n for (r = this.getBlocks(), s = [], i = 0, o = r.length; o > i; i++) {\n n = r[i], e = t.concat(n.getAttributes()), s.push(n.copyWithAttributes(e));\n }\n\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\n for (h = [], a = s = c = p.index, l = o.index; l >= c ? l >= s : s >= l; a = l >= c ? ++s : --s) {\n (n = this.getBlockAtIndex(a)) ? (f = function () {\n switch (a) {\n case p.index:\n return [p.offset, n.text.getLength()];\n\n case o.index:\n return [0, o.offset];\n\n default:\n return [0, n.text.getLength()];\n }\n }(), h.push(e(n, f, a))) : h.push(void 0);\n }\n\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\n for (c in t) {\n d = t[c], d.inheritable && n.push(c);\n }\n\n return n;\n }();\n\n for (c in i) {\n d = i[c], (d === n[c] || u.call(a, c) >= 0) && (r[c] = d);\n }\n\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\n for (t = this.getBlockAtIndex(0).getAttributes(), n = i = 1, s = this.getBlockCount(); s >= 1 ? s > i : i > s; n = s >= 1 ? ++i : --i) {\n e = this.getBlockAtIndex(n).getAttributes(), r = Math.min(t.length, e.length), t = function () {\n var n, i, s;\n\n for (s = [], o = n = 0, i = r; (i >= 0 ? i > n : n > i) && e[o] === t[o]; o = i >= 0 ? ++n : --n) {\n s.push(e[o]);\n }\n\n return s;\n }();\n }\n\n return t;\n }, l = function l(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\n for (o = this.getAttachments(), n = 0, i = o.length; i > n; n++) {\n if (e = o[n], e.id === t) return e;\n }\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\n for (i = this.getAttachmentPieces(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], o.push(n.attachment);\n }\n\n return o;\n }, c.prototype.getRangeOfAttachment = function (t) {\n var e, n, o, r, s, a, u;\n\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\n for (o = this.getAttachmentPieces(), e = 0, n = o.length; n > e; e++) {\n if (i = o[e], i.attachment === t) return i;\n }\n }, c.prototype.findRangesForBlockAttribute = function (t) {\n var e, n, i, o, r, s, a;\n\n for (r = 0, s = [], a = this.getBlocks(), n = 0, i = a.length; i > n; n++) {\n e = a[n], o = e.getLength(), e.hasAttribute(t) && s.push([r, r + o]), r += o;\n }\n\n return s;\n }, c.prototype.findRangesForTextAttribute = function (t, e) {\n var n, i, o, r, s, a, u, c, l, h;\n\n for (h = (null != e ? e : {}).withValue, a = 0, u = [], c = [], r = function r(e) {\n return null != h ? e.getAttribute(t) === h : e.hasAttribute(t);\n }, l = this.getPieces(), n = 0, i = l.length; i > n; 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 }\n\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\n for (i = this.getBlocks(), o = [], e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(t.text);\n }\n\n return o;\n }, c.prototype.getPieces = function () {\n var t, e, n, i, o;\n\n for (n = [], i = this.getTexts(), t = 0, e = i.length; e > t; t++) {\n o = i[t], n.push.apply(n, o.getPieces());\n }\n\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\n for (i = this.blockList.toArray(), o = [], e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(JSON.parse(t.text.toConsole()));\n }\n\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\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 h(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n p.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n p = {}.hasOwnProperty;\n\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\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\n for (i = [], r = 0, s = t.length; s > r; r++) {\n o = t[r], (null != (a = this.delegate) ? a.compositionShouldAcceptFile(o) : void 0) && (n = e.Attachment.attachmentForFile(o), i.push(n));\n }\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\n for (c = new e.Text(), r = 0, s = t.length; s > r; r++) {\n 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 }\n\n return this.insertText(c);\n }, d.prototype.shouldManageDeletingInDirection = function (t) {\n var e;\n\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\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\n if (e = this.getSelectedDocument()) {\n for (o = e.getAttachments(), n = 0, i = o.length; i > n; n++) {\n if (t = o[n], !t.hasContent()) return !1;\n }\n\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\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++;\n }\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\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++) {\n t = r[n], e[t] || this.canSetCurrentAttribute(t) || (e[t] = !1);\n }\n\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\n for (e in n) {\n i = n[e], i !== !1 && r(e) && (t[e] = i);\n }\n\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\n try {\n n = e();\n } finally {\n this.targetLocationRange = null;\n }\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\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++) {\n e = h[i], e.delegate = null, null != (u = this.delegate) && \"function\" == typeof u.compositionDidRemoveAttachment && u.compositionDidRemoveAttachment(e);\n }\n\n for (p = [], o = 0, s = t.length; s > o; o++) {\n e = t[o], e.delegate = this, p.push(null != (c = this.delegate) && \"function\" == typeof c.compositionDidAddAttachment ? c.compositionDidAddAttachment(e) : void 0);\n }\n\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(_t17, e) {\n function i() {\n this.constructor = _t17;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t17[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t17.prototype = new i(), _t17.__super__ = e.prototype, _t17;\n },\n n = {}.hasOwnProperty;\n\n e.UndoManager = function (e) {\n function n(t) {\n this.composition = t, this.undoEntries = [], this.redoEntries = [];\n }\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 i(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\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\n for (o = this.findRangesOfBlocks(), r = [], t = 0, n = o.length; n > t; t++) {\n i = o[t], r.push(this.document = this.document.removeAttributeAtRange(e, i));\n }\n\n return r;\n }, t.prototype.applyBlockAttribute = function () {\n var t, n, i, o, r, s;\n\n for (i = 0, r = this.findRangesOfPieces(), s = [], t = 0, n = r.length; n > t; t++) {\n 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 }\n\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(_t18, e) {\n return function () {\n return _t18.apply(e, arguments);\n };\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\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(_t19, e) {\n function i() {\n this.constructor = _t19;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t19[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t19.prototype = new i(), _t19.__super__ = e.prototype, _t19;\n },\n n = {}.hasOwnProperty;\n\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\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(_t20, e) {\n function i() {\n this.constructor = _t20;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t20[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t20.prototype = new i(), _t20.__super__ = e.prototype, _t20;\n },\n n = {}.hasOwnProperty;\n\n e.AttachmentManager = function (n) {\n function i(t) {\n var e, n, i;\n\n for (null == t && (t = []), this.managedAttachments = {}, n = 0, i = t.length; i > n; n++) {\n e = t[n], this.manageAttachment(e);\n }\n }\n\n return t(i, n), i.prototype.getAttachments = function () {\n var t, e, n, i;\n n = this.managedAttachments, i = [];\n\n for (e in n) {\n t = n[e], i.push(t);\n }\n\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\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\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\n if (g.parentNode === e) {\n if (u++ === i) break;\n } else if (!t(e, g) && u > 0) break;\n\n r(g, {\n strict: m\n }) ? (l && p.index++, p.offset = 0, l = !0) : p.offset += d(g);\n }\n\n return p;\n }, e.prototype.findContainerAndOffsetFromLocation = function (t) {\n var e, i, s, u, l;\n\n if (0 === t.index && 0 === t.offset) {\n for (e = this.element, u = 0; e.firstChild;) {\n if (e = e.firstChild, o(e)) {\n u = 1;\n break;\n }\n }\n\n return [e, u];\n }\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 ;\n }\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\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\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\n for (i = [], r = h(this.element, {\n usingFilter: p\n }), o = !1; r.nextNode();) {\n 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 }\n\n return i;\n }, d = function d(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 p(t) {\n return g(t) === NodeFilter.FILTER_ACCEPT ? f(t) : NodeFilter.FILTER_REJECT;\n }, g = function g(t) {\n return u(t) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, f = function f(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\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\n if (document.body.createTextRange) {\n s = t();\n\n try {\n u = document.body.createTextRange(), u.moveToPoint(c, l), u.select();\n } catch (h) {}\n\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 n(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n i = function i(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n o.call(e, i) && (t[i] = e[i]);\n }\n\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++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\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\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\n for (o = this.selectionManagers, r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], e !== t && r.push(e);\n }\n\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\n for (n = this.selectionManagers, i = [], t = 0, e = n.length; e > t; t++) {\n o = n[t], i.push(o.selectionDidChange());\n }\n\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 s(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 h(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n p = function p(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n d.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n d = {}.hasOwnProperty;\n\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\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\n for (e.paused = !1, clearTimeout(r), o = 0, s = i.length; s > o; o++) {\n n = i[o], n.destroy();\n }\n\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\n for (r = [\"mousemove\", \"keydown\"], s = [], t = 0, i = r.length; i > t; t++) {\n e = r[t], s.push(o(e, {\n onElement: document,\n withCallback: n\n }));\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 r(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n s.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].slice;\n\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\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 test() {\n return this.editor.canUndo();\n },\n perform: function perform() {\n return this.editor.undo();\n }\n },\n redo: {\n test: function test() {\n return this.editor.canRedo();\n },\n perform: function perform() {\n return this.editor.redo();\n }\n },\n link: {\n test: function test() {\n return this.editor.canActivateAttribute(\"href\");\n }\n },\n increaseNestingLevel: {\n test: function test() {\n return this.editor.canIncreaseNestingLevel();\n },\n perform: function perform() {\n return this.editor.increaseNestingLevel() && this.render();\n }\n },\n decreaseNestingLevel: {\n test: function test() {\n return this.editor.canDecreaseNestingLevel();\n },\n perform: function perform() {\n return this.editor.decreaseNestingLevel() && this.render();\n }\n },\n attachFiles: {\n test: function test() {\n return !0;\n },\n perform: function perform() {\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\n for (t in this.actions) {\n e[t] = this.canInvokeAction(t);\n }\n\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\n for (a = this.composition.getSnapshot(), o = this.editor.filters, n = 0, i = o.length; i > n; 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 }\n\n return c(a, this.composition.getSnapshot()) ? void 0 : this.composition.loadSnapshot(a);\n }, c = function c(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\n case \"render\":\n this.documentChangedSinceLastRender && (this.documentChangedSinceLastRender = !1, this.notifyEditorElement(\"change\"));\n break;\n\n case \"change\":\n case \"attachment-add\":\n case \"attachment-edit\":\n case \"attachment-remove\":\n this.updateInputElement();\n }\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++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\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 l(t) {\n return !document.querySelector(\":focus\") && t.hasAttribute(\"autofocus\") && document.querySelector(\"[autofocus]\") === t ? t.focus() : void 0;\n }, m = function m(t) {\n return t.hasAttribute(\"contenteditable\") ? void 0 : (t.setAttribute(\"contenteditable\", \"\"), r(\"focus\", {\n onElement: t,\n withCallback: function withCallback() {\n return h(t);\n }\n }));\n }, h = function h(t) {\n return d(t), v(t);\n }, d = function d(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 v() {\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 c(t) {\n return t.hasAttribute(\"role\") ? void 0 : t.setAttribute(\"role\", \"textbox\");\n }, f = function f(t) {\n var e;\n if (!t.hasAttribute(\"aria-label\") && !t.hasAttribute(\"aria-labelledby\")) return (e = function e() {\n var e, n, i;\n return i = function () {\n var n, i, o, r;\n\n for (o = t.labels, r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], e.contains(t) || r.push(e.textContent);\n }\n\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 get() {\n return this.hasAttribute(\"trix-id\") ? this.getAttribute(\"trix-id\") : (this.setAttribute(\"trix-id\", ++g), this.trixId);\n }\n },\n labels: {\n get: function get() {\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 get() {\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 get() {\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 get() {\n var t;\n return null != (t = this.editorController) ? t.editor : void 0;\n }\n },\n name: {\n get: function get() {\n var t;\n return null != (t = this.inputElement) ? t.name : void 0;\n }\n },\n value: {\n get: function get() {\n var t;\n return null != (t = this.inputElement) ? t.value : void 0;\n },\n set: function set(t) {\n var e;\n return this.defaultValue = t, null != (e = this.editor) ? e.loadHTML(this.defaultValue) : void 0;\n }\n },\n notify: function notify(t, e) {\n return this.editorController ? a(\"trix-\" + t, {\n onElement: this,\n attributes: e\n }) : void 0;\n },\n setInputElementValue: function setInputElementValue(t) {\n var e;\n return null != (e = this.inputElement) ? e.value = t : void 0;\n },\n initialize: function initialize() {\n return this.hasAttribute(\"data-trix-internal\") ? void 0 : (m(this), c(this), f(this));\n },\n connect: function connect() {\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 disconnect() {\n var t;\n return null != (t = this.editorController) && t.unregisterSelectionManager(), this.unregisterResetListener(), this.unregisterClickListener();\n },\n registerResetListener: function registerResetListener() {\n return this.resetListener = this.resetBubbled.bind(this), window.addEventListener(\"reset\", this.resetListener, !1);\n },\n unregisterResetListener: function unregisterResetListener() {\n return window.removeEventListener(\"reset\", this.resetListener, !1);\n },\n registerClickListener: function registerClickListener() {\n return this.clickListener = this.clickBubbled.bind(this), window.addEventListener(\"click\", this.clickListener, !1);\n },\n unregisterClickListener: function unregisterClickListener() {\n return window.removeEventListener(\"click\", this.clickListener, !1);\n },\n resetBubbled: function resetBubbled(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 clickBubbled(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 reset() {\n return this.value = this.defaultValue;\n }\n };\n }());\n }.call(this), function () {}.call(this);\n }).call(this), \"object\" == (typeof module === \"undefined\" ? \"undefined\" : _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; // DOM APIs, for completeness\n\nexports.setTimeout = function () {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\n\nexports.setInterval = function () {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\n\nexports.clearTimeout = exports.clearInterval = function (timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\n\nTimeout.prototype.unref = Timeout.prototype.ref = function () {};\n\nTimeout.prototype.close = function () {\n this._clearFn.call(scope, this._id);\n}; // Does not start the time, just sets up the members needed.\n\n\nexports.enroll = function (item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function (item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function (item) {\n clearTimeout(item._idleTimeoutId);\n var msecs = item._idleTimeout;\n\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout) item._onTimeout();\n }, msecs);\n }\n}; // setimmediate attaches itself to the global object\n\n\nrequire(\"setimmediate\"); // 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.\n\n\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\n var nextHandle = 1; // Spec says greater than zero\n\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\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 } // Copy function arguments\n\n\n var args = new Array(arguments.length - 1);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n } // Store and register the task\n\n\n var task = {\n callback: callback,\n args: args\n };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n\n switch (args.length) {\n case 0:\n callback();\n break;\n\n case 1:\n callback(args[0]);\n break;\n\n case 2:\n callback(args[0], args[1]);\n break;\n\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n\n default:\n callback.apply(undefined, args);\n break;\n }\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\n if (task) {\n currentlyRunningATask = true;\n\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function registerImmediate(handle) {\n process.nextTick(function () {\n runIfPresent(handle);\n });\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\n global.onmessage = function () {\n postMessageIsAsynchronous = false;\n };\n\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\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 var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n\n var onGlobalMessage = function onGlobalMessage(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\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function registerImmediate(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n\n channel.port1.onmessage = function (event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function registerImmediate(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n\n registerImmediate = function registerImmediate(handle) {\n // Create a