{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@stimulus/core/dist/src/event_listener.js","webpack:///./node_modules/@stimulus/core/dist/src/dispatcher.js","webpack:///./node_modules/@stimulus/core/dist/src/action_descriptor.js","webpack:///./node_modules/@stimulus/core/dist/src/action.js","webpack:///./node_modules/@stimulus/core/dist/src/binding.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/src/element_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/src/attribute_observer.js","webpack:///./node_modules/@stimulus/multimap/dist/src/set_operations.js","webpack:///./node_modules/@stimulus/multimap/dist/src/multimap.js","webpack:///./node_modules/@stimulus/multimap/dist/src/indexed_multimap.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/src/token_list_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/src/value_list_observer.js","webpack:///./node_modules/@stimulus/core/dist/src/binding_observer.js","webpack:///./node_modules/@stimulus/core/dist/src/context.js","webpack:///./node_modules/@stimulus/core/dist/src/definition.js","webpack:///./node_modules/@stimulus/core/dist/src/module.js","webpack:///./node_modules/@stimulus/core/dist/src/data_map.js","webpack:///./node_modules/@stimulus/core/dist/src/selectors.js","webpack:///./node_modules/@stimulus/core/dist/src/target_set.js","webpack:///./node_modules/@stimulus/core/dist/src/scope.js","webpack:///./node_modules/@stimulus/core/dist/src/scope_observer.js","webpack:///./node_modules/@stimulus/core/dist/src/router.js","webpack:///./node_modules/@stimulus/core/dist/src/schema.js","webpack:///./node_modules/@stimulus/core/dist/src/application.js","webpack:///./node_modules/@stimulus/core/dist/src/target_properties.js","webpack:///./node_modules/@stimulus/core/dist/src/controller.js","webpack:///./node_modules/stimulus/index.js","webpack:///./node_modules/shepherd.js/dist/js/shepherd.esm.js","webpack:///./app/javascript/services/tutorial_service.js","webpack:///./node_modules/howler/dist/howler.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///(webpack)/buildin/module.js","webpack:///(webpack)/buildin/global.js","webpack:///./app/javascript/packs/trix-overrides.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/turbolinks/dist/turbolinks.js","webpack:///./node_modules/@rails/actioncable/app/assets/javascripts/action_cable.js","webpack:///./node_modules/js-cookie/src/js.cookie.js","webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/channels sync _channel\\.js$","webpack:///./app/javascript/controllers sync _controller\\.js$","webpack:///./app/javascript/controllers/audio_controller.js","webpack:///./app/javascript/controllers/daily_goal_controller.js","webpack:///./app/javascript/controllers/feedback_controller.js","webpack:///./app/javascript/controllers/notes_controller.js","webpack:///./node_modules/ekko-lightbox/dist/ekko-lightbox.min.js","webpack:///./app/javascript/controllers/options_controller.js","webpack:///./app/javascript/controllers/test_controller.js","webpack:///./app/javascript/controllers/tutorial_controller.js","webpack:///./app/javascript/controllers/votes_controller.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:///./app/javascript/controllers/index.js","webpack:///./node_modules/@stimulus/webpack-helpers/dist/index.js","webpack:///./app/javascript/services/payment_service.js","webpack:///./node_modules/canvas-confetti/dist/confetti.module.mjs","webpack:///./node_modules/countup.js/dist/countUp.min.js","webpack:///./app/javascript/packs/application.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/attachment_upload.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/index.js","webpack:///./app/javascript/channels/consumer.js","webpack:///./app/javascript/controllers/group_messages_controller.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","EventListener","eventTarget","eventName","this","unorderedBindings","Set","connect","addEventListener","disconnect","removeEventListener","bindingConnected","binding","add","bindingDisconnected","handleEvent","event","extendedEvent","stopImmediatePropagation_1","stopImmediatePropagation","assign","immediatePropagationStopped","extendEvent","_i","_a","bindings","length","Array","from","sort","left","right","leftIndex","index","rightIndex","configurable","Dispatcher","application","eventListenerMaps","Map","started","start","eventListeners","forEach","eventListener","stop","values","reduce","listeners","map","concat","fetchEventListenerForBinding","handleError","error","message","detail","fetchEventListener","eventListenerMap","fetchEventListenerMapForEventTarget","createEventListener","set","descriptorPattern","Action","element","descriptor","tagName","toLowerCase","defaultEventNames","getDefaultEventNameForElement","identifier","methodName","forToken","token","descriptorString","content","matches","trim","match","eventTargetName","window","document","toString","eventNameSuffix","e","getAttribute","Error","Binding","context","action","willBeInvokedByEvent","invokeWithEvent","method","controller","target","Element","contains","scope","containsElement","ElementObserver","delegate","_this","elements","mutationObserver","MutationObserver","mutations","processMutations","observe","attributes","childList","subtree","refresh","takeRecords","matchElementsInTree","has","removeElement","_b","_c","addElement","mutations_1","mutation","processMutation","type","processAttributeChange","attributeName","processRemovedNodes","removedNodes","processAddedNodes","addedNodes","node","elementAttributeChanged","matchElement","nodes","elementFromNode","processTree","elementIsActive","tree","processor","nodeType","Node","ELEMENT_NODE","isConnected","elementMatched","elementUnmatched","AttributeObserver","elementObserver","hasAttribute","querySelectorAll","selector","elementMatchedAttribute","elementUnmatchedAttribute","elementAttributeValueChanged","fetch","del","size","prune","extendStatics","Multimap","valuesByKey","hasKey","hasValue","some","getValuesForKey","getKeysForValue","filter","__extends","setPrototypeOf","__proto__","b","__","constructor","_super","IndexedMultimap","keysByValue","keys","TokenListObserver","attributeObserver","tokensByElement","tokensMatched","readTokensForElement","refreshTokensForElement","unmatchedTokens","matchedTokens","tokensUnmatched","tokens","tokenMatched","tokenUnmatched","previousTokens","currentTokens","firstDifferingIndex","Math","max","_","findIndex","tokensAreEqual","slice","tokenString","split","parseTokenString","ValueListObserver","tokenListObserver","parseResultsByToken","WeakMap","valuesByTokenByElement","fetchParseResultForToken","fetchValuesByTokenForElement","elementMatchedValue","elementUnmatchedValue","parseResult","parseToken","valuesByToken","parseValueForToken","BindingObserver","bindingsByAction","valueListObserver","actionAttribute","disconnectAllActions","schema","connectAction","disconnectAction","clear","Context","controllerConstructor","bindingObserver","dispatcher","initialize","parentElement","blessControllerConstructor","extend","bless","extendWithReflect","Controller","_newTarget","Reflect","construct","arguments","a","apply","Module","definition","blessDefinition","contextsByScope","connectedContexts","connectContextForScope","fetchContextForScope","disconnectContextForScope","DataMap","getFormattedKey","setAttribute","removeAttribute","replace","_char","attributeValueContainsToken","TargetSet","targetName","find","targetNames","getSelectorForTargetNames","findElement","findAll","findAllElements","getSelectorForTargetName","join","targetDescriptor","targetAttribute","Scope","targets","data","head","tail","filterElements","closest","controllerSelector","controllerAttribute","ScopeObserver","scopesByIdentifierByElement","scopeReferenceCounts","scopesByIdentifier","fetchScopesByIdentifierForElement","referenceCount","scopeConnected","scopeDisconnected","Router","scopeObserver","modulesByIdentifier","contexts","loadDefinition","unloadIdentifier","connectModule","disconnectModule","getContextForElementAndIdentifier","defaultSchema","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","result","done","then","__generator","body","f","y","g","label","sent","trys","ops","verb","iterator","v","op","TypeError","pop","push","Application","documentElement","router","readyState","register","load","rest","definitions","isArray","unload","identifiers","getControllerForElementAndIdentifier","console","defineTargetProperties","ancestors","getPrototypeOf","getAncestorsForConstructor","getOwnTargetNamesForConstructor","getTargetNamesForConstructor","properties","charAt","toUpperCase","capitalize","_typeof","obj","_defineProperties","props","writable","_createClass","Constructor","protoProps","staticProps","_extends","source","_inheritsLoose","subClass","superClass","_getPrototypeOf","_setPrototypeOf","isNativeReflectConstruct","sham","Proxy","Date","_construct","Parent","args","Class","instance","Function","_wrapNativeSuper","_cache","undefined","fn","indexOf","Wrapper","_assertThisInitialized","self","ReferenceError","isUndefined","Evented","_proto","on","handler","ctx","once","off","splice","trigger","_this2","_len","_key","autoBind","getOwnPropertyNames","val","isElement","HTMLElement","isFunction","isString","isUndefined$1","bindAdvance","_ref","options","advanceOn","el","isOpen","targetIsEl","currentTarget","tour","_setupAdvanceOnHandler","querySelector","_assertThisInitialized$1","isString$1","isUndefined$2","addClass","cls","classList","getClass","classes","classPrefix","removeClass","remove","updateClasses","all","deferred","defer","flush","_scrollBarSize","out","getScrollBarSize","inner","createElement","style","width","height","outer","position","top","pointerEvents","visibility","overflow","appendChild","widthContained","offsetWidth","widthScroll","clientWidth","removeChild","id","uniqueId","zeroPosCache","zeroElement","getBounds","doc","ownerDocument","docEl","box","_getActualBoundingClientRect","origin","_getOrigin","scrollWidth","scrollHeight","bottom","clientTop","clientLeft","clientHeight","boundingRect","getBoundingClientRect","rect","k","frameElement","defaultView","frameRect","err","Abutment","_this$cache","cache","targetPos","getTargetBounds","abutted","side","targetPosSide","_this$options","addTargetClasses","BOUNDS_FORMAT","Constraint","targetAttachment","constraints","lastSize","_this$lastSize","targetSize","targetHeight","targetWidth","allClasses","constraint","outOfBoundsClass","pinnedClass","_getAllClasses","addClasses","tAttachment","eAttachment","attachment","changeAttachX","changeAttachY","to","pin","_attachment$split","bounds","tether","scrollParents","pageXOffset","pageYOffset","innerWidth","innerHeight","pos","getComputedStyle","win","substr","parseFloat","getBoundingRect","_flipYTogether","_flipXTogether","pinned","oob","_calculateOOBAndPinnedLeft","_calculateOOBAndPinnedTop","oobClass","_addOutOfBoundsClass","updateAttachClasses","Shift","shift","shiftTop","shiftLeft","_shift","_ref2","Evented$1","MIRROR_LR","center","MIRROR_TB","middle","OFFSET_MAP","addOffset","offsets","attachmentToOffset","offsetToPx","offset","parseTopLeft","_value$split","getOffsetParent","offsetParent","TetherBase","lastCall","lastDuration","pendingTimeout","tick","transformKey","transforms","tethers","now","performance","min","setTimeout","clearTimeout","TetherClass","_Evented","history","setOptions","targetOffset","targetModifier","jquery","_addClasses","disable","parents","parent","parentNode","_style","overflowX","overflowY","test","getScrollParents","enabled","enable","getVisibleBounds","targetScrollTop","scrollTop","targetIsBody","scrollBottom","borderTopWidth","borderBottomWidth","borderLeftWidth","fitAdj","pow","scrollPercentage","getScrollHandleBounds","clearCache","_this3","_this$options2","_this4","_this$options3","destroy","_this5","_removeClasses","elementAttach","targetAttach","_this6","_this$options4","_addAttachClasses","flushChanges","_this7","relativeToAttachment","autoToFixedAttachment","elementPos","manualOffset","manualTargetOffset","ret","scrollbarSize","page","viewport","optimizations","moveElement","offsetPosition","offsetParentStyle","offsetParentSize","offsetBorder","scrollLeft","move","unshift","_this8","diff","same","found","point","within","css","transcribe","_same","_pos","yPos","xPos","gpu","devicePixelRatio","round","allowPositionFixed","moved","bodyElement","offsetParentIsBody","currentNode","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","writeCSS","write","_this$options5","_this9","_this$options6","className","Tether","_this10","_this$options7","markers","dot","current_component","ATTACHMENT","normalizePrefix","prefix","parseAttachTo","attachTo","returnOpts","setupTooltip","tooltip","attachToOpts","tetherOptions","attachToOptions","getTetherOptions","uuid","random","floor","noop","tar","src","run","blank_object","run_all","fns","is_function","thing","safe_not_equal","append","insert","anchor","insertBefore","detach","svg_element","createElementNS","createTextNode","space","listen","attr","attribute","set_attributes","cssText","toggle_class","toggle","set_current_component","component","get_current_component","afterUpdate","$$","after_update","dirty_components","binding_callbacks","render_callbacks","flush_callbacks","resolved_promise","update_scheduled","add_render_callback","flush$1","seen_callbacks","update","callback","fragment","dirty","before_update","outros","outroing","group_outros","check_outros","transition_in","block","local","transition_out","mount_component","_component$$$","on_mount","on_destroy","new_on_destroy","destroy_component","detaching","make_dirty","init","create_fragment","not_equal","prop_names","parent_component","bound","callbacks","ready","hydrate","childNodes","intro","SvelteComponent","_proto3","$destroy","$on","$set","button","button_aria_label_value","button_class_value","dispose","text","secondary","disabled","changed","$$self","$$props","$$invalidate","config","$$dirty","getDisabled","Shepherd_button","_SvelteComponent","get_each_context","list","child_ctx","create_if_block","each_1_anchor","current","each_value","buttons","each_blocks","create_each_block","_i2","_i3","_i4","Boolean","_i5","iterations","destroy_each","shepherdbutton","shepherdbutton_changes","create_fragment$1","footer","if_block","instance$1","Shepherd_footer","create_fragment$2","span","textContent","cancelIcon","handleCancelClick","instance$2","preventDefault","cancel","Shepherd_cancel_icon","create_fragment$3","h3","labelId","h3_binding","instance$3","title","innerHTML","$$value","Shepherd_title","create_if_block_1","shepherdtitle","shepherdtitle_changes","create_if_block$1","shepherdcancelicon","shepherdcancelicon_changes","create_fragment$4","header","if_block0","if_block1","instance$4","Shepherd_header","create_fragment$5","div","descriptionId","div_binding","instance$5","Shepherd_text","create_if_block_1$1","shepherdtext","shepherdtext_changes","create_if_block$2","shepherdfooter","shepherdfooter_changes","create_fragment$6","t0","t1","show_if_1","show_if","shepherdheader","shepherdheader_changes","instance$6","Shepherd_content","create_if_block$3","create_fragment$7","arrow","shepherdcontent","div_levels","dataStepId","role","tabindex","div_data","hasCancelIcon","hasTitle","handleKeyDown","shepherdcontent_changes","levels","updates","to_null_out","accounted_for","$$scope","_key2","_key3","_key4","get_spread_update","getClassesArray","instance$7","firstFocusableElement","focusableElements","lastFocusableElement","_dataStepId","_element$classList","oldClasses","removeClasses","_element$classList2","newClasses","getElement","keyCode","shiftKey","activeElement","focus","exitOnEsc","keyboardNavigation","back","Shepherd_element","smoothscroll","createCommonjsModule","polyfill","w","__forceSmoothScrollPolyfill__","userAgent","original","scroll","scrollTo","scrollBy","elementScroll","scrollElement","scrollIntoView","ROUNDING_TOLERANCE","navigator","RegExp","shouldBailOut","smoothScroll","scrollX","scrollY","SyntaxError","behavior","scrollableParent","findScrollableParent","parentRects","clientRects","x","firstArg","hasScrollableSpace","axis","canOverflow","overflowValue","isScrollable","isScrollableY","isScrollableX","host","currentX","currentY","elapsed","startTime","cos","PI","startX","startY","scrollable","requestAnimationFrame","Step","styles","_setOptions","complete","_updateStepTargetOnHide","getTour","hide","modal","hidden","show","beforeShowPromise","_show","updateStepOptions","shepherdElementComponent","_createTooltipContent","_scrollTo","scrollToOptions","scrollToHandler","_getClassOptions","stepOptions","defaultStepOptions","stepClasses","defaultStepOptionsClasses","uniqClasses","tourOptions","when","_setupElements","setupForStep","_styleTargetElementForStep","targetElement","highlightClass","canClickTarget","create_fragment$8","svg","path","path_d_value","svg_class_value","openingProperties","modalIsVisible","_preventModalOverlayTouch","svg_binding","instance$8","rafId","closeModalOpening","_cleanupStepEventListeners","positionModalOpening","scrollParent","modalOverlayOpeningPadding","_getVisibleHeight2","elementRect","scrollRect","_getVisibleHeight","_targetElement$getBou","_preventModalBodyTouch","cancelAnimationFrame","passive","useModalOverlay","_getScrollParent","rafLoop","_styleForStep","stopPropagation","Shepherd_modal","Shepherd","Tour","steps","addSteps","opts","modalContainer","_setTourID","addStep","currentStep","confirmCancel","cancelMessage","confirmCancelMessage","confirm","_done","getById","getCurrentStep","isActive","activeTour","removeStep","forward","_updateStateBeforeShow","showOn","_skipStep","previous","focusedElBeforeOpen","_setupActiveTour","nextIndex","tourName","tutorialService","_defaultTourOptions","$","ajax","url","finish_tour","app_title","HowlerGlobal","Howler","_counter","_html5AudioPool","html5PoolSize","_codecs","_howls","_muted","_volume","_canPlayEvent","_navigator","masterGain","noAudio","usingWebAudio","autoSuspend","autoUnlock","_setup","volume","vol","setupAudioContext","gain","setValueAtTime","currentTime","_webAudio","ids","_getSoundIds","j","sound","_soundById","_node","mute","muted","close","codecs","ext","state","_autoSuspend","Audio","oncanplaythrough","_setupCodecs","audioTest","canPlayType","mpegTest","checkOpera","isOldOpera","parseInt","mp3","mpeg","opus","ogg","oga","wav","aac","caf","m4a","mp4","weba","webm","dolby","flac","_unlockAudio","_audioUnlocked","_mobileUnloaded","sampleRate","_scratchBuffer","createBuffer","unlock","audioNode","_unlocked","_releaseHtml5Audio","_autoResume","createBufferSource","buffer","destination","noteOn","resume","onended","_emit","_obtainHtml5Audio","testPlay","play","warn","audio","suspend","_sounds","_paused","_suspendTimer","_resumeAfterSuspend","Howl","_autoplay","autoplay","_format","format","_html5","html5","_loop","loop","_pool","pool","_preload","preload","_rate","rate","_sprite","sprite","_src","_xhrWithCredentials","xhrWithCredentials","_duration","_state","_endTimers","_queue","_playLock","_onend","onend","_onfade","onfade","_onload","onload","_onloaderror","onloaderror","_onplayerror","onplayerror","_onpause","onpause","_onplay","onplay","_onstop","onstop","_onmute","onmute","_onvolume","onvolume","_onrate","onrate","_onseek","onseek","_onunlock","onunlock","_onresume","str","exec","location","protocol","Sound","loadBuffer","internal","num","_ended","_id","_inactiveSound","soundId","_loadQueue","seek","_seek","duration","timeout","abs","setParams","_start","_stop","playWebAudio","_refreshBuffer","_playStart","bufferSource","noteGrainOn","Infinity","_clearTimer","playHtml5","playbackRate","paused","loadedNoReadyState","ejecta","isCocoonJS","listener","pause","_rateSeek","_stopFade","noteOff","_cleanBuffer","isNaN","_clearSound","_interval","fade","len","end","linearRampToValueAtTime","_startFadeInterval","isGroup","stepLen","lastTick","_fadeTo","setInterval","clearInterval","cancelScheduledValues","loopStart","loopEnd","playing","realTime","rateSeek","seekAndEmit","emitSeek","sounds","_errorFn","_loadFn","remCache","events","isId","msg","task","ended","_drain","reset","limit","cnt","_panner","isIOS","vendor","howl","_parent","createGain","createGainNode","_errorListener","_loadListener","code","ceil","__default","loadSound","atob","dataView","Uint8Array","charCodeAt","decodeAudioData","xhr","XMLHttpRequest","open","withCredentials","responseType","status","response","onerror","safeXhrSend","send","arraybuffer","success","AudioContext","webkitAudioContext","iOS","platform","appVersion","version","safari","standalone","global","_orientation","stereo","pan","z","positionX","setTargetAtTime","positionY","positionZ","setPosition","orientation","xUp","yUp","zUp","or","forwardX","forwardY","forwardZ","upX","upY","upZ","setOrientation","_stereo","_pannerAttr","coneInnerAngle","coneOuterAngle","coneOuterGain","distanceModel","maxDistance","panningModel","refDistance","rolloffFactor","_onstereo","onstereo","_onpos","onpos","_onorientation","onorientation","pannerType","createStereoPanner","setupPanner","orientationX","orientationY","orientationZ","pannerAttr","_coneInnerAngle","_coneOuterAngle","_coneOuterGain","_distanceModel","_maxDistance","_refDistance","_rolloffFactor","_panningModel","pa","panner","createPanner","factory","sparkMd5","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","tmp","lo","hi","substring","rhex","hex","toUtf8","unescape","encodeURIComponent","hexToBinaryString","bytes","String","fromCharCode","SparkMD5","ArrayBuffer","clamp","targetArray","sourceArray","byteLength","begin","appendBinary","contents","_buff","_length","_hash","raw","buff","_finish","getState","hash","setState","hashBinary","arr","first","second","returnUInt8Array","subarray","utf8Str2ArrayBuffer","md51_array","classCallCheck","createClass","defineProperties","fileSlice","File","mozSlice","webkitSlice","FileChecksum","file","chunkSize","chunkCount","chunkIndex","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","readAsArrayBuffer","root","dispatchEvent","eventInit","bubbles","cancelable","createEvent","initEvent","toArray$1","BlobRecord","checksum","filename","content_type","byte_size","setRequestHeader","csrfToken","getMetaValue","requestDidLoad","requestDidError","JSON","stringify","blob","direct_upload","directUploadData","toJSON","_xhr","parse","BlobUpload","_blob$directUploadDat","headers","DirectUpload","notify","upload","messages","DirectUploadController","input","directUpload","dispatch","hiddenInput","insertAdjacentElement","dispatchError","signed_id","progress","loaded","total","defaultPrevented","alert","uploadRequestDidProgress","DirectUploadsController","form","inputs","files","controllers","createDirectUploadControllers","startNextController","submitButtonsByForm","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","click","display","submitForm","ActiveStorage","webpackPolyfill","deprecate","paths","children","includes","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","ref","cspNonce","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","getData","setData","csrfParam","meta","CSRFProtection","refreshCSRFTokens","param","CustomEvent","fire","params","evt","initCustomEvent","Event","stopEverything","eventType","AcceptHeaders","createXHR","prepareOptions","processResponse","html","xml","json","script","responseText","getResponseHeader","statusText","beforeSend","OPENED","href","dataType","accept","crossDomain","onreadystatechange","DONE","parser","DOMParser","parseFromString","isCrossDomain","originAnchor","urlAnchor","toArray","serializeElement","additionalParam","option","selected","checked","formElements","allowAction","handleConfirm","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","originalText","handleMethod","formContent","isRemote","handleRemote","enctype","FormData","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","metaKey","ctrlKey","jQuery","rails","ajaxPrefilter","originalOptions","_rails_loaded","Turbolinks","supported","pushState","visit","setProgressBarDelay","copyObject","throttle","u","Location","absoluteURL","requestURL","wrap","getOrigin","getPath","getPathComponents","getLastPathComponent","getExtension","isHTML","isPrefixedBy","isEqualTo","toCacheKey","valueOf","_t","HttpRequest","requestCanceled","requestTimedOut","requestFailed","requestLoaded","requestProgressed","referrer","NETWORK_FAILURE","TIMEOUT_FAILURE","notifyApplicationBeforeRequestStart","setProgress","requestStarted","abort","lengthComputable","endRequest","requestCompletedWithResponse","failed","requestFailedWithStatusCode","notifyApplicationAfterRequestEnd","onprogress","ontimeout","onabort","requestFinished","ProgressBar","trickle","_t2","stylesheetElement","createStylesheetElement","progressElement","createProgressElement","defaultCSS","visible","installStylesheetElement","installProgressElement","startTrickling","hiding","fadeProgressElement","uninstallProgressElement","stopTrickling","setValue","firstChild","opacity","trickleInterval","BrowserAdapter","showProgressBar","_t3","progressBar","visitProposedToLocationWithAction","startVisitToLocationWithAction","visitStarted","issueRequest","changeHistory","loadCachedSnapshot","visitRequestStarted","hasCachedSnapshot","showProgressBarAfterDelay","visitRequestProgressed","visitRequestCompleted","loadResponse","visitRequestFailedWithStatusCode","reload","visitRequestFinished","hideProgressBar","visitCompleted","followRedirect","pageInvalidated","progressBarTimeout","progressBarDelay","_t4","History","onPageLoad","onPopState","shouldHandlePopState","turbolinks","restorationIdentifier","historyPoppedToLocationWithRestorationIdentifier","pageLoaded","pageIsLoaded","HeadDetails","outerHTML","tracked","fromHeadElement","hasElementWithKey","getTrackedElementSignature","getScriptElementsNotInDetails","getElementsMatchingTypeNotInDetails","getStylesheetElementsNotInDetails","getProvisionalElements","findMetaElementByName","_e","Snapshot","headDetails","fromHTMLString","fromHTMLElement","clone","cloneNode","getRootLocation","getSetting","getCacheControlValue","getElementForAnchor","getPermanentElements","getPermanentElementById","getPermanentElementsPresentInSnapshot","findFirstAutofocusableElement","hasAnchor","isPreviewable","isCacheable","isVisitable","Renderer","render","renderView","viewWillRender","newBody","viewRendered","invalidateView","viewInvalidated","createScriptElement","async","__super__","SnapshotRenderer","currentSnapshot","newSnapshot","isPreview","currentHeadDetails","newHeadDetails","currentBody","shouldRender","mergeHead","replaceBody","focusFirstAutofocusableElement","copyNewHeadStylesheetElements","copyNewHeadScriptElements","removeCurrentHeadProvisionalElements","copyNewHeadProvisionalElements","relocateCurrentBodyPermanentElements","activateNewBodyScriptElements","assignNewBody","replacePlaceholderElementsWithClonedPermanentElements","trackedElementsAreIdentical","getNewHeadStylesheetElements","getNewHeadScriptElements","getCurrentHeadProvisionalElements","getNewHeadProvisionalElements","getCurrentBodyPermanentElements","permanentElement","getNewBodyScriptElements","_t5","replaceChild","_t6","ErrorRenderer","newHead","replaceHeadAndBody","activateBodyScriptElements","getScriptElements","View","htmlElement","getSnapshot","snapshot","markAsPreview","renderSnapshot","renderError","ScrollManager","onScroll","_t7","scrollToElement","scrollToPosition","updatePosition","scrollPositionChanged","SnapshotCache","snapshots","read","touch","put","Visit","performScroll","_t8","adapter","timingMetrics","recordTimingMetric","request","cancelRender","fail","visitFailed","historyChanged","shouldIssueRequest","getCachedSnapshot","getCachedSnapshotForLocation","cacheSnapshot","visitRendered","redirectedToLocation","followedRedirect","replaceHistoryWithLocationAndRestorationIdentifier","scrolled","scrollToRestoredPosition","scrollToTop","scrollToAnchor","restorationData","scrollPosition","getTime","getTimingMetrics","snapshotCached","frame","_t9","clickBubbled","clickCaptured","view","scrollManager","startHistory","stopHistory","applicationAllowsVisitingLocation","locationIsVisitable","getRestorationDataForIdentifier","startVisit","pushHistoryWithLocationAndRestorationIdentifier","shouldCacheSnapshot","notifyApplicationBeforeCachingSnapshot","lastRenderedLocation","getCurrentRestorationData","notifyApplicationBeforeRender","currentVisit","notifyApplicationAfterRender","notifyApplicationAfterPageLoad","clickEventIsSignificant","getVisitableLinkForNode","getVisitableLocationForLink","applicationAllowsFollowingLinkToLocation","getActionForLink","notifyApplicationAfterClickingLinkToLocation","notifyApplicationBeforeVisitingLocation","notifyApplicationAfterVisitingLocation","timing","createVisit","isContentEditable","which","altKey","nodeIsVisitable","currentScript","_typeof2","adapters","logger","WebSocket","log","_adapters$logger","secondsSince","time","ConnectionMonitor","connection","visibilityDidChange","reconnectAttempts","isRunning","startedAt","stoppedAt","startPolling","getPollInterval","stopPolling","recordPing","pingedAt","recordConnect","disconnectedAt","recordDisconnect","poll","pollTimeout","reconnectIfStale","_constructor$pollInte","pollInterval","interval","multiplier","number","connectionIsStale","staleThreshold","disconnectedRecently","reopen","visibilityState","INTERNAL","message_types","welcome","ping","confirmation","rejection","disconnect_reasons","unauthorized","invalid_request","server_restart","default_mount_path","protocols","supportedProtocols","Connection","consumer","subscriptions","monitor","disconnected","webSocket","uninstallEventHandlers","installEventHandlers","allowReconnect","reopenDelay","getProtocol","isState","isProtocolSupported","states","_JSON$parse","reason","reconnect","notifyAll","willAttemptReconnect","Subscription","mixin","perform","command","unsubscribe","Subscriptions","channelName","channel","subscription","ensureActiveConnection","sendCommand","forget","callbackName","_len2","Consumer","_url","createWebSocketURL","getConfig","createConsumer","registeredInModuleLoader","OldCookies","Cookies","api","noConflict","decode","decodeURIComponent","converter","defaults","expires","toUTCString","escape","stringifiedAttributes","cookie","jar","cookies","parts","getJSON","withConverter","channels","require","webpackEmptyContext","req","webpackContext","webpackContextResolve","QuestionReader","introPauseDuration","thinkingPauseDuration","nextPauseDuration","maxLoopCount","loopCount","voiceGender","intermediateSounds","updateSettingsUI","initUIListeners","loadNext","genders","getSoundUrls","fadeOut","disableAudioControl","playQuestion","playAnswer","updateAudioControl","getVoiceGender","setVoiceGender","getVolume","setVolume","getThinkingPauseDuration","setThinkingPauseDuration","pauseDuration","getNextPauseDuration","setNextPauseDuration","successCallback","replaceWith","saveAttempt","post","audio_attempt","question_id","question","onButton","showFinishButton","playQuestionIntro","updateAudioControlToResume","updateAudioControlToPause","stopSounds","gender","audio_urls","urls","getIntermediateSound","caption","audioControl","prop","category","fadeIn","animate","playAnswerIntro","amount","amountTarget","dataset","amountDisplayTarget","ekkoLightbox","maxWidth","maxHeight","showArrows","wrapping","alwaysShowClose","loadingMessage","leftArrow","rightArrow","strings","onShow","onShown","onHide","onHidden","onNavigate","onContentLoaded","_config","_$modalArrows","_galleryIndex","_galleryName","_padding","_border","_titleIsShown","_footerIsShown","_wantedWidth","_wantedHeight","_touchstartX","_touchendX","_modalId","_$element","_isBootstrap3","VERSION","h","_$modal","_$modalDialog","_$modalContent","_$modalBody","_$modalHeader","_$modalFooter","_$lightboxContainer","_$lightboxBodyOne","_$lightboxBodyTwo","_calculateBorders","_calculatePadding","_$galleryItems","_navigationalBinder","navigateLeft","navigateRight","updateNavigation","_toggleLoading","_handle","_resize","changedTouches","screenX","_swipeGesure","navigateTo","_isImage","_getYoutubeId","_getVimeoId","_getInstagramId","hasClass","empty","_containerToUse","_updateTitleAndFooter","_detectRemoteType","_error","_preloadImage","_preloadImageByIndex","_showYoutubeVideo","_showVimeoVideo","_showInstagramVideo","_showHtml5Video","_loadRemoteContent","_totalCssByAttribute","_showVideoIframe","_isExternal","proxy","Image","outerHeight","_handleUpdate","handleUpdate","each","Default","_jQueryInterface","hide_only_open_questions_switch","change","contentType","updateCategoriesCount","getElementById","selected_categories_count","removeAttr","deselectAllCategories","selected_categories","prependTo","appendTo","deselectAll","toggleClass","displayCertaintyButtons","displaySubmitButton","scrollToSubmitButton","currentTour","openAnswerElement","scrollToArea","isInViewport","endtime","clock","clockRunning","hoursSpan","minutesSpan","secondsSpan","updateClock","timeinterval","seconds","minutes","hours","getTimeRemaining","currentTestId","initializeClock","run_obsolete_code","start_tour","tutorialName","post_id","vote_type","_handled","_value","_deferreds","onFulfilled","onRejected","promise","setImmediate","race","_setImmediateFn","_setUnhandledRejectionFn","customElements","registerElement","A","uid_","nodes_","observer","removeTransientObservers","callback_","enqueue","records_","C","previousSibling","nextSibling","attributeNamespace","oldValue","transientObservedNodes","JsMutationObserver","postMessage","ShadowDOMPolyfill","wrapIfNeeded","characterData","attributeOldValue","attributeFilter","characterDataOldValue","removeListeners","addListeners","addListeners_","removeListeners_","addTransientObserver","attrName","relatedNode","namespaceURI","attrChange","MutationEvent","ADDITION","prevValue","_isPolyfilled","webkitRequestAnimationFrame","mozRequestAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","WebComponents","CustomElements","flags","addModule","initializeModules","hasNative","isIE","useNative","HTMLImports","firstElementChild","nextElementSibling","shadowRoot","olderShadowRoot","IMPORT_LINK_TYPE","forDocumentTree","forSubtree","upgrade","__upgraded__","__attached","attachedCallback","detachedCallback","dom","URL","_URL","localName","group","DOCUMENT_FRAGMENT_NODE","E","groupEnd","__observer","baseURI","hasPolyfillMutations","hasThrottledAttached","S","createShadowRoot","watchShadow","__watched","upgradeDocumentTree","upgradeDocument","upgradeSubtree","upgradeAll","attached","is","createdCallback","getOwnPropertyDescriptor","HTMLTemplateElement","decorate","getRegisteredDefinition","tag","upgradeWithDefinition","implementPrototype","_polyfilled","attributeChangedCallback","ctor","__name","lifecycle","ancestry","registry","reservedTagList","readyTime","unwrap","unwrapIfNeeded","__importsParsingHook","eager","attachEvent","Trix","ZERO_WIDTH_SPACE","NON_BREAKING_SPACE","OBJECT_REPLACEMENT_CHARACTER","browser","composesExistingText","forcesObjectResizing","supportsInputEvents","InputEvent","BasicObject","proxyMethod","toMethod","toProperty","optional","fromJSONString","fromJSON","hasSameConstructorAs","inspect","contentsForInspection","toJSONString","toUTF16String","UTF16String","getCacheKey","normalizeSpaces","normalizeNewlines","breakableWhitespacePattern","squishBreakableWhitespace","escapeHTML","summarizeStringChange","added","removed","_n","utf16String","codepoints","fromCodepoints","objectsAreEqual","arraysAreEqual","arrayStartsWith","spliceArray","summarizeArrayChange","getAllAttributeNames","getTextAttributeNames","getBlockAttributeNames","getBlockConfig","blockAttributes","getTextConfig","textAttributes","getListAttributeNames","listAttribute","_s","onElement","matchingSelector","withCallback","inPhase","times","findClosestElementFromNode","handleEventOnce","triggerEvent","elementMatchesSelector","untilNode","findInnerElement","innerElementIsActive","elementContainsNode","findNodeFromContainerAndOffset","TEXT_NODE","item","findElementFromContainerAndOffset","findChildIndexOfNode","removeNode","walkTree","onlyNodesOfType","usingFilter","expandEntityReferences","NodeFilter","SHOW_ELEMENT","SHOW_TEXT","SHOW_COMMENT","SHOW_ALL","createTreeWalker","makeElement","editable","contenteditable","getBlockTagNames","blockTagNames","nodeIsBlockContainer","nodeIsBlockStartComment","nodeProbablyIsBlockContainer","nodeIsBlockStart","strict","nodeIsCommentNode","COMMENT_NODE","nodeIsCursorTarget","nodeIsTextNode","trixCursorTarget","nodeIsAttachmentElement","AttachmentView","attachmentSelector","nodeIsEmptyTextNode","normalizeRange","rangeIsCollapsed","rangesAreEqual","initialized","connectedCallback","disconnectedCallback","_n2","define","getDOMSelection","getSelection","rangeCount","getDOMRange","getRangeAt","setDOMRange","removeAllRanges","addRange","selectionChangeObserver","startContainer","endContainer","dataTransferIsPlainText","dataTransferIsWritable","keyEventIsKeyboardCommand","Hash","fromCommonAttributesOfObjects","getKeys","getKeysCommonToHash","merge","isEmpty","array","toObject","ObjectGroup","objects","depth","asTree","groupObjects","canBeGrouped","canBeGroupedWith","getObjects","getDepth","ObjectMap","ElementStore","trixStoreKey","Operation","isPerforming","performing","hasPerformed","performed","hasSucceeded","succeeded","hasFailed","getPromise","release","ucs2String","ucs2Length","fromUCS2String","offsetToUCS2Offset","offsetFromUCS2Offset","codePointAt","fromCodePoint","lang","attachFiles","bold","bullets","captionPlaceholder","heading1","indent","italic","link","numbers","outdent","quote","redo","strike","undo","unlink","urlPlaceholder","GB","KB","MB","PB","TB","attachmentCaption","attachmentCaptionEditor","attachmentMetadata","attachmentMetadataContainer","attachmentName","attachmentProgress","attachmentSize","attachmentToolbar","attachmentGallery","nestable","terminal","breakOnReturn","plaintext","bulletList","bullet","numberList","exclusive","fileSize","precision","formatter","toFixed","inheritable","fontWeight","fontStyle","groupTagName","frozen","backgroundColor","serializers","Document","fromHTML","toSerializableDocument","DocumentView","deserializers","serializeToContentType","deserializeFromContentType","toolbar","getDefaultHTML","undoInterval","attachments","preview","presentation","keyNames","8","9","13","27","37","39","46","68","72","79","level2Enabled","getLevel","pickFiles","multiple","fileInputId","ObjectView","childViews","rootView","getNodes","createNodes","invalidate","parentView","invalidateViewForObject","findViewForObject","findOrCreateCachedChildView","getCachedViewForObject","recordChildView","createChildView","cacheViewForObject","viewClass","ObjectGroupView","getAllChildViews","findElementForObject","getViewCache","isViewCachingEnabled","viewCache","shouldCacheViews","enableViewCaching","disableViewCaching","garbageCollectCachedViews","objectGroup","getChildViews","createContainerElement","didMutate","_h","findSignificantMutations","elementDidMutate","getMutationSummary","mutationIsSignificant","nodeIsMutable","nodesModifiedByMutation","nodeIsSignificant","getTextMutationSummary","getTextChangesFromCharacterData","additions","deletions","getTextChangesFromChildList","textAdded","textDeleted","getMutationsByType","_t10","FileVerificationOperation","InputController","handlerFor","editorWillSyncDocumentView","editorDidSyncDocumentView","requestRender","inputControllerDidRequestRender","requestReparse","inputControllerDidRequestReparse","handleInput","inputControllerWillAttachFiles","responder","insertFiles","inputControllerWillHandleInput","inputControllerDidHandleInput","Level0InputController","resetInputSummary","setInputSummary","inputSummary","isComposing","inputControllerDidAllowUnhandledInput","mutationIsExpected","preferDocument","didDelete","getSelectedRange","positionIsBlockBreak","compositionInput","getEndData","keydown","didInput","keyName","inputControllerDidReceiveKeyboardCommand","keypress","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","testClipboardData","clipboard","getPastedHTMLUsingHiddenElement","inputControllerWillPaste","insertHTML","inputControllerDidPaste","string","insertText","Text","textForStringWithAttributes","types","items","getAsFile","insertFile","compositionstart","getCompositionInput","compositionupdate","compositionend","beforeinput","backspace","insertLineBreak","tab","canIncreaseNestingLevel","increaseNestingLevel","selectionIsInCursorTarget","moveCursorInDirection","control","canDecreaseNestingLevel","decreaseNestingLevel","expandSelectionInDirection","alt","isEnded","getSelectedDocument","Files","charCode","inputController","isSignificant","insertPlaceholder","range","selectPlaceholder","forgetPlaceholder","canApplyToDocument","Level2InputController","scheduledRender","composing","reparse","scheduleRender","afterRender","withEvent","inputTypes","inputType","selectionContainsAttachments","dragging","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","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","installCaptionEditor","uninstall","savePendingCaption","didUninstallAttachmentEditor","pendingCaption","attachmentEditorDidRequestUpdatingAttributesForAttachment","attachmentEditorDidRequestRemovingAttributeForAttachment","trixMutable","getFilename","getFormattedFilesize","placeholder","getCaption","tabIndex","editCaption","attachmentEditorDidRequestRemovalOfAttachment","attachmentEditorDidRequestDeselectingAttachment","uploadProgressDelegate","piece","createContentNodes","getClassName","getHref","hasContent","getContent","createCaptionElement","isPending","getUploadProgress","getCaptionConfig","getType","trixAttachment","trixContentType","getContentType","trixId","trixAttributes","trixSerialize","findProgressElement","attachmentDidChangeUploadProgress","PreviewableAttachmentView","previewDelegate","image","updateAttributesForImage","getURL","getPreviewURL","getWidth","getHeight","attachmentDidChangeAttributes","PieceView","getAttributes","textConfig","createAttachmentNodes","createStringNodes","preserveSpaces","styleProperty","isLast","isFirst","followsWhitespace","_t11","TextView","getPieces","BlockView","createComment","getLastAttribute","shouldAddExtraNewlineElement","getBlockBreakPosition","elementStore","setDocument","sync","shadowElement","getBlocks","isSynced","createDocumentFragmentForSync","lastChild","didSync","createDocumentFragment","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","naturalWidth","naturalHeight","_t13","Attachment","releaseFile","didChangeAttributes","previewablePattern","attachmentForFile","attributesForFile","setFile","filesize","setAttributes","preloadURL","getFilesize","getFile","preloadFile","releasePreloadedFile","uploadProgress","setUploadProgress","previewURL","preloadingURL","setPreviewURL","attachmentDidChangePreviewURL","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","consolidate","consolidateFromIndexToIndex","findPositionAtIndexAndOffset","getEndPosition","endPosition","_t16","textForAttachmentWithAttributes","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","sanitize","sanitizeElements","normalizeListElementNesting","getHTML","getBody","nextNode","sanitizeElement","previousElementSibling","implementation","createHTMLDocument","HTMLParser","referenceElement","blocks","blockElements","processedElements","getDocument","createHiddenContainer","containerElement","processNode","translateBlockElementMarginsToNewlines","removeHiddenContainer","FILTER_REJECT","FILTER_ACCEPT","isInsignificantTextNode","appendBlockForTextNode","processTextNode","appendBlockForElement","processElement","currentBlockElement","isBlockElement","getBlockAttributes","currentBlock","appendBlockForAttributesWithElement","findParentBlockElement","appendEmptyBlock","appendStringWithAttributes","getTextAttributes","appendAttachmentWithAttributes","isExtraBR","appendPiece","appendStringToTextAtIndex","prependStringToTextAtIndex","findBlockElementAncestors","reverse","whiteSpace","getMarginOfDefaultBlockElement","getMarginOfBlockElementAtIndex","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","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","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","selectionManagers","registerSelectionManager","unregisterSelectionManager","notifySelectionManagersOfSelectionChange","selectionDidChange","domRange","SelectionManager","didMouseDown","locationMapper","pointMapper","lockCount","currentLocationRange","lockedLocationRange","createDOMRangeFromLocationRange","updateCurrentLocationRange","getLocationAtPoint","lock","clearSelection","selectionIsCollapsed","collapsed","domRangeWithinElement","pauseTemporarily","locationRangeDidChange","EditorController","editorElement","compositionController","toolbarController","toolbarElement","editor","notifyEditorElement","handlingInput","updateCurrentActions","pasting","pastedRange","attachmentLocationRange","loadingSnapshot","isFocused","requestedLocationRange","compositionRevisionWhenLocationRangeRequested","renderedCompositionRevision","runEditorFilters","requestedRender","recordTypingUndoEntry","recordFormattingUndoEntry","locationRangeBeforeDrag","invokeAction","selectionFrozen","dialogName","canInvokeAction","actionIsExternal","actionName","getCurrentActions","currentActions","updateInputElement","setInputElementValue","documentChangedSinceLastRender","getUndoContext","getLocationContext","getTimeContext","queryCommandSupported","execCommand","inputElement","editorController","defaultValue","registerResetListener","unregisterResetListener","resetListener","resetBubbled","Timeout","clearFn","_clearFn","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","clearImmediate","registerImmediate","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","process","handle","nextTick","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","MessageChannel","port1","port2","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","env","argv","versions","addListener","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","cwd","chdir","dir","umask","logicalName","identifierForContextKey","definitionForModuleAndIdentifier","definitionForModuleWithContextAndKey","definitionsFromContext","PaymentService","paymentMethod","packageId","providerPublishableKey","paymentIntentClientSecret","userEmail","_paymentMethod","_packageId","_providerPublishableKey","_paymentIntentClientSecret","_userEmail","_locale","_errorMessagesElementId","_paymentFormElementId","_paymentMethodElement","_stripe","prepareStripeElement","stripe","paymentFormElementId","setupSepaDebitListener","setupCardListener","confirmSepaDebitPayment","payment_method","sepa_debit","paymentMethodElement","billing_details","email","paymentIntentCallback","confirmCardPayment","card","paymentIntent","payment_intent_id","package","errorContainer","Stripe","locale","errorMessagesElement","errorMessagesElementId","mount","main","isWorker","workerSize","canUseWorker","Worker","Blob","OffscreenCanvas","OffscreenCanvasRenderingContext2D","HTMLCanvasElement","transferControlToOffscreen","func","ModulePromise","Prom","TIME","frames","lastFrameTime","worker","prom","resolves","raf","cb","onFrame","timer","getWorker","execute","canvas","offscreen","workerDone","particleCount","angle","spread","startVelocity","decay","gravity","drift","ticks","shapes","zIndex","colors","disableForReducedMotion","scalar","transform","convert","onlyPositiveInt","toDecimal","colorsToRgb","hexToRgb","setCanvasWindowSize","setCanvasRectSize","fettis","resizer","animationFrame","animatingFettis","getContext","onDone","clearRect","fetti","angle2D","velocity","sin","wobble","tiltAngle","tiltSin","tiltCos","wobbleX","wobbleY","totalTicks","x1","y1","x2","y2","fillStyle","color","beginPath","shape","ellipse","ovalScalar","radiusX","radiusY","rotation","startAngle","endAngle","antiClockwise","save","translate","rotate","scale","arc","restore","moveTo","lineTo","closePath","fill","updateFetti","addFettis","confettiCannon","globalOpts","animationObj","isLibCanvas","allowResize","globalDisableForReducedMotion","__confetti_initialized","preferLessMotion","matchMedia","fireLocal","radAngle","radSpread","Number","temp","getCanvas","onResize","resize","useWorker","__assign","CountUp","endVal","startVal","decimalPlaces","useEasing","useGrouping","smartEasingThreshold","smartEasingAmount","separator","decimal","suffix","finalEndVal","countDown","count","remaining","frameVal","easingFn","printValue","rAF","formatNumber","numerals","easeOutExpo","formattingFn","validateValue","resetDuration","determineDirectionAndSmartEasing","pauseResume","ensureNumber","elementTop","elementBottom","viewportTop","viewportBottom","Confetti","captchaSuccess","selectorChecked","AttachmentUpload","_classCallCheck","directUploadUrl","directUploadDidComplete","sgid","attachable_sgid","createBlobUrl","signedId","blobUrlTemplate","groupMessagesController","connected","received","parentMessageId","prependResponse","groupMessageId","messageBody","messageBodyTarget","groupId","group_message","group_message_id","latestGroupMessageId","messagesListTarget","insertAdjacentHTML","updateLatestGroupMessageId","messageId","groupMessages","latestGroupMessage"],"mappings":"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","file":"js/application-3e68fc5e1c40e5a36d70.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 = 27);\n","var EventListener =\n/** @class */\nfunction () {\n function EventListener(eventTarget, eventName) {\n this.eventTarget = eventTarget;\n this.eventName = eventName;\n this.unorderedBindings = new Set();\n }\n\n EventListener.prototype.connect = function () {\n this.eventTarget.addEventListener(this.eventName, this, false);\n };\n\n EventListener.prototype.disconnect = function () {\n this.eventTarget.removeEventListener(this.eventName, this, false);\n }; // Binding observer delegate\n\n /** @hidden */\n\n\n EventListener.prototype.bindingConnected = function (binding) {\n this.unorderedBindings.add(binding);\n };\n /** @hidden */\n\n\n EventListener.prototype.bindingDisconnected = function (binding) {\n this.unorderedBindings[\"delete\"](binding);\n };\n\n EventListener.prototype.handleEvent = function (event) {\n var extendedEvent = extendEvent(event);\n\n for (var _i = 0, _a = this.bindings; _i < _a.length; _i++) {\n var binding = _a[_i];\n\n if (extendedEvent.immediatePropagationStopped) {\n break;\n } else {\n binding.handleEvent(extendedEvent);\n }\n }\n };\n\n Object.defineProperty(EventListener.prototype, \"bindings\", {\n get: function get() {\n return Array.from(this.unorderedBindings).sort(function (left, right) {\n var leftIndex = left.index,\n rightIndex = right.index;\n return leftIndex < rightIndex ? -1 : leftIndex > rightIndex ? 1 : 0;\n });\n },\n enumerable: true,\n configurable: true\n });\n return EventListener;\n}();\n\nexport { EventListener };\n\nfunction extendEvent(event) {\n if (\"immediatePropagationStopped\" in event) {\n return event;\n } else {\n var stopImmediatePropagation_1 = event.stopImmediatePropagation;\n return Object.assign(event, {\n immediatePropagationStopped: false,\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.immediatePropagationStopped = true;\n stopImmediatePropagation_1.call(this);\n }\n });\n }\n}","import { EventListener } from \"./event_listener\";\n\nvar Dispatcher =\n/** @class */\nfunction () {\n function Dispatcher(application) {\n this.application = application;\n this.eventListenerMaps = new Map();\n this.started = false;\n }\n\n Dispatcher.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.connect();\n });\n }\n };\n\n Dispatcher.prototype.stop = function () {\n if (this.started) {\n this.started = false;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.disconnect();\n });\n }\n };\n\n Object.defineProperty(Dispatcher.prototype, \"eventListeners\", {\n get: function get() {\n return Array.from(this.eventListenerMaps.values()).reduce(function (listeners, map) {\n return listeners.concat(Array.from(map.values()));\n }, []);\n },\n enumerable: true,\n configurable: true\n }); // Binding observer delegate\n\n /** @hidden */\n\n Dispatcher.prototype.bindingConnected = function (binding) {\n this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n };\n /** @hidden */\n\n\n Dispatcher.prototype.bindingDisconnected = function (binding) {\n this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n }; // Error handling\n\n\n Dispatcher.prototype.handleError = function (error, message, detail) {\n if (detail === void 0) {\n detail = {};\n }\n\n this.application.handleError(error, \"Error \" + message, detail);\n };\n\n Dispatcher.prototype.fetchEventListenerForBinding = function (binding) {\n var eventTarget = binding.eventTarget,\n eventName = binding.eventName;\n return this.fetchEventListener(eventTarget, eventName);\n };\n\n Dispatcher.prototype.fetchEventListener = function (eventTarget, eventName) {\n var eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n var eventListener = eventListenerMap.get(eventName);\n\n if (!eventListener) {\n eventListener = this.createEventListener(eventTarget, eventName);\n eventListenerMap.set(eventName, eventListener);\n }\n\n return eventListener;\n };\n\n Dispatcher.prototype.createEventListener = function (eventTarget, eventName) {\n var eventListener = new EventListener(eventTarget, eventName);\n\n if (this.started) {\n eventListener.connect();\n }\n\n return eventListener;\n };\n\n Dispatcher.prototype.fetchEventListenerMapForEventTarget = function (eventTarget) {\n var eventListenerMap = this.eventListenerMaps.get(eventTarget);\n\n if (!eventListenerMap) {\n eventListenerMap = new Map();\n this.eventListenerMaps.set(eventTarget, eventListenerMap);\n }\n\n return eventListenerMap;\n };\n\n return Dispatcher;\n}();\n\nexport { Dispatcher };","// capture nos.: 12 23 4 43 1 5 56 7 76\nvar descriptorPattern = /^((.+?)(@(window|document))?->)?(.+?)(#(.+))?$/;\nexport function parseDescriptorString(descriptorString) {\n var source = descriptorString.trim();\n var matches = source.match(descriptorPattern) || [];\n return {\n eventTarget: parseEventTarget(matches[4]),\n eventName: matches[2],\n identifier: matches[5],\n methodName: matches[7]\n };\n}\n\nfunction parseEventTarget(eventTargetName) {\n if (eventTargetName == \"window\") {\n return window;\n } else if (eventTargetName == \"document\") {\n return document;\n }\n}\n\nexport function stringifyEventTarget(eventTarget) {\n if (eventTarget == window) {\n return \"window\";\n } else if (eventTarget == document) {\n return \"document\";\n }\n}","import { parseDescriptorString, stringifyEventTarget } from \"./action_descriptor\";\n\nvar Action =\n/** @class */\nfunction () {\n function Action(element, index, descriptor) {\n this.element = element;\n this.index = index;\n this.eventTarget = descriptor.eventTarget || element;\n this.eventName = descriptor.eventName || getDefaultEventNameForElement(element) || error(\"missing event name\");\n this.identifier = descriptor.identifier || error(\"missing identifier\");\n this.methodName = descriptor.methodName || error(\"missing method name\");\n }\n\n Action.forToken = function (token) {\n return new this(token.element, token.index, parseDescriptorString(token.content));\n };\n\n Action.prototype.toString = function () {\n var eventNameSuffix = this.eventTargetName ? \"@\" + this.eventTargetName : \"\";\n return \"\" + this.eventName + eventNameSuffix + \"->\" + this.identifier + \"#\" + this.methodName;\n };\n\n Object.defineProperty(Action.prototype, \"eventTargetName\", {\n get: function get() {\n return stringifyEventTarget(this.eventTarget);\n },\n enumerable: true,\n configurable: true\n });\n return Action;\n}();\n\nexport { Action };\nvar defaultEventNames = {\n \"a\": function a(e) {\n return \"click\";\n },\n \"button\": function button(e) {\n return \"click\";\n },\n \"form\": function form(e) {\n return \"submit\";\n },\n \"input\": function input(e) {\n return e.getAttribute(\"type\") == \"submit\" ? \"click\" : \"change\";\n },\n \"select\": function select(e) {\n return \"change\";\n },\n \"textarea\": function textarea(e) {\n return \"change\";\n }\n};\nexport function getDefaultEventNameForElement(element) {\n var tagName = element.tagName.toLowerCase();\n\n if (tagName in defaultEventNames) {\n return defaultEventNames[tagName](element);\n }\n}\n\nfunction error(message) {\n throw new Error(message);\n}","var Binding =\n/** @class */\nfunction () {\n function Binding(context, action) {\n this.context = context;\n this.action = action;\n }\n\n Object.defineProperty(Binding.prototype, \"index\", {\n get: function get() {\n return this.action.index;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"eventTarget\", {\n get: function get() {\n return this.action.eventTarget;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"identifier\", {\n get: function get() {\n return this.context.identifier;\n },\n enumerable: true,\n configurable: true\n });\n\n Binding.prototype.handleEvent = function (event) {\n if (this.willBeInvokedByEvent(event)) {\n this.invokeWithEvent(event);\n }\n };\n\n Object.defineProperty(Binding.prototype, \"eventName\", {\n get: function get() {\n return this.action.eventName;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"method\", {\n get: function get() {\n var method = this.controller[this.methodName];\n\n if (typeof method == \"function\") {\n return method;\n }\n\n throw new Error(\"Action \\\"\" + this.action + \"\\\" references undefined method \\\"\" + this.methodName + \"\\\"\");\n },\n enumerable: true,\n configurable: true\n });\n\n Binding.prototype.invokeWithEvent = function (event) {\n try {\n this.method.call(this.controller, event);\n } catch (error) {\n var _a = this,\n identifier = _a.identifier,\n controller = _a.controller,\n element = _a.element,\n index = _a.index;\n\n var detail = {\n identifier: identifier,\n controller: controller,\n element: element,\n index: index,\n event: event\n };\n this.context.handleError(error, \"invoking action \\\"\" + this.action + \"\\\"\", detail);\n }\n };\n\n Binding.prototype.willBeInvokedByEvent = function (event) {\n var eventTarget = event.target;\n\n if (this.element === eventTarget) {\n return true;\n } else if (eventTarget instanceof Element && this.element.contains(eventTarget)) {\n return this.scope.containsElement(eventTarget);\n } else {\n return true;\n }\n };\n\n Object.defineProperty(Binding.prototype, \"controller\", {\n get: function get() {\n return this.context.controller;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"methodName\", {\n get: function get() {\n return this.action.methodName;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"scope\", {\n get: function get() {\n return this.context.scope;\n },\n enumerable: true,\n configurable: true\n });\n return Binding;\n}();\n\nexport { Binding };","var ElementObserver =\n/** @class */\nfunction () {\n function ElementObserver(element, delegate) {\n var _this = this;\n\n this.element = element;\n this.started = false;\n this.delegate = delegate;\n this.elements = new Set();\n this.mutationObserver = new MutationObserver(function (mutations) {\n return _this.processMutations(mutations);\n });\n }\n\n ElementObserver.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, {\n attributes: true,\n childList: true,\n subtree: true\n });\n this.refresh();\n }\n };\n\n ElementObserver.prototype.stop = function () {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n };\n\n ElementObserver.prototype.refresh = function () {\n if (this.started) {\n var matches = new Set(this.matchElementsInTree());\n\n for (var _i = 0, _a = Array.from(this.elements); _i < _a.length; _i++) {\n var element = _a[_i];\n\n if (!matches.has(element)) {\n this.removeElement(element);\n }\n }\n\n for (var _b = 0, _c = Array.from(matches); _b < _c.length; _b++) {\n var element = _c[_b];\n this.addElement(element);\n }\n }\n }; // Mutation record processing\n\n\n ElementObserver.prototype.processMutations = function (mutations) {\n if (this.started) {\n for (var _i = 0, mutations_1 = mutations; _i < mutations_1.length; _i++) {\n var mutation = mutations_1[_i];\n this.processMutation(mutation);\n }\n }\n };\n\n ElementObserver.prototype.processMutation = function (mutation) {\n if (mutation.type == \"attributes\") {\n this.processAttributeChange(mutation.target, mutation.attributeName);\n } else if (mutation.type == \"childList\") {\n this.processRemovedNodes(mutation.removedNodes);\n this.processAddedNodes(mutation.addedNodes);\n }\n };\n\n ElementObserver.prototype.processAttributeChange = function (node, attributeName) {\n var element = node;\n\n if (this.elements.has(element)) {\n if (this.delegate.elementAttributeChanged && this.matchElement(element)) {\n this.delegate.elementAttributeChanged(element, attributeName);\n } else {\n this.removeElement(element);\n }\n } else if (this.matchElement(element)) {\n this.addElement(element);\n }\n };\n\n ElementObserver.prototype.processRemovedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n\n if (element) {\n this.processTree(element, this.removeElement);\n }\n }\n };\n\n ElementObserver.prototype.processAddedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n\n if (element && this.elementIsActive(element)) {\n this.processTree(element, this.addElement);\n }\n }\n }; // Element matching\n\n\n ElementObserver.prototype.matchElement = function (element) {\n return this.delegate.matchElement(element);\n };\n\n ElementObserver.prototype.matchElementsInTree = function (tree) {\n if (tree === void 0) {\n tree = this.element;\n }\n\n return this.delegate.matchElementsInTree(tree);\n };\n\n ElementObserver.prototype.processTree = function (tree, processor) {\n for (var _i = 0, _a = this.matchElementsInTree(tree); _i < _a.length; _i++) {\n var element = _a[_i];\n processor.call(this, element);\n }\n };\n\n ElementObserver.prototype.elementFromNode = function (node) {\n if (node.nodeType == Node.ELEMENT_NODE) {\n return node;\n }\n };\n\n ElementObserver.prototype.elementIsActive = function (element) {\n if (element.isConnected != this.element.isConnected) {\n return false;\n } else {\n return this.element.contains(element);\n }\n }; // Element tracking\n\n\n ElementObserver.prototype.addElement = function (element) {\n if (!this.elements.has(element)) {\n if (this.elementIsActive(element)) {\n this.elements.add(element);\n\n if (this.delegate.elementMatched) {\n this.delegate.elementMatched(element);\n }\n }\n }\n };\n\n ElementObserver.prototype.removeElement = function (element) {\n if (this.elements.has(element)) {\n this.elements[\"delete\"](element);\n\n if (this.delegate.elementUnmatched) {\n this.delegate.elementUnmatched(element);\n }\n }\n };\n\n return ElementObserver;\n}();\n\nexport { ElementObserver };","import { ElementObserver } from \"./element_observer\";\n\nvar AttributeObserver =\n/** @class */\nfunction () {\n function AttributeObserver(element, attributeName, delegate) {\n this.attributeName = attributeName;\n this.delegate = delegate;\n this.elementObserver = new ElementObserver(element, this);\n }\n\n Object.defineProperty(AttributeObserver.prototype, \"element\", {\n get: function get() {\n return this.elementObserver.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(AttributeObserver.prototype, \"selector\", {\n get: function get() {\n return \"[\" + this.attributeName + \"]\";\n },\n enumerable: true,\n configurable: true\n });\n\n AttributeObserver.prototype.start = function () {\n this.elementObserver.start();\n };\n\n AttributeObserver.prototype.stop = function () {\n this.elementObserver.stop();\n };\n\n AttributeObserver.prototype.refresh = function () {\n this.elementObserver.refresh();\n };\n\n Object.defineProperty(AttributeObserver.prototype, \"started\", {\n get: function get() {\n return this.elementObserver.started;\n },\n enumerable: true,\n configurable: true\n }); // Element observer delegate\n\n AttributeObserver.prototype.matchElement = function (element) {\n return element.hasAttribute(this.attributeName);\n };\n\n AttributeObserver.prototype.matchElementsInTree = function (tree) {\n var match = this.matchElement(tree) ? [tree] : [];\n var matches = Array.from(tree.querySelectorAll(this.selector));\n return match.concat(matches);\n };\n\n AttributeObserver.prototype.elementMatched = function (element) {\n if (this.delegate.elementMatchedAttribute) {\n this.delegate.elementMatchedAttribute(element, this.attributeName);\n }\n };\n\n AttributeObserver.prototype.elementUnmatched = function (element) {\n if (this.delegate.elementUnmatchedAttribute) {\n this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n }\n };\n\n AttributeObserver.prototype.elementAttributeChanged = function (element, attributeName) {\n if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n this.delegate.elementAttributeValueChanged(element, attributeName);\n }\n };\n\n return AttributeObserver;\n}();\n\nexport { AttributeObserver };","export function add(map, key, value) {\n fetch(map, key).add(value);\n}\nexport function del(map, key, value) {\n fetch(map, key)[\"delete\"](value);\n prune(map, key);\n}\nexport function fetch(map, key) {\n var values = map.get(key);\n\n if (!values) {\n values = new Set();\n map.set(key, values);\n }\n\n return values;\n}\nexport function prune(map, key) {\n var values = map.get(key);\n\n if (values != null && values.size == 0) {\n map[\"delete\"](key);\n }\n}","import { add, del } from \"./set_operations\";\n\nvar Multimap =\n/** @class */\nfunction () {\n function Multimap() {\n this.valuesByKey = new Map();\n }\n\n Object.defineProperty(Multimap.prototype, \"values\", {\n get: function get() {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (values, set) {\n return values.concat(Array.from(set));\n }, []);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Multimap.prototype, \"size\", {\n get: function get() {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (size, set) {\n return size + set.size;\n }, 0);\n },\n enumerable: true,\n configurable: true\n });\n\n Multimap.prototype.add = function (key, value) {\n add(this.valuesByKey, key, value);\n };\n\n Multimap.prototype[\"delete\"] = function (key, value) {\n del(this.valuesByKey, key, value);\n };\n\n Multimap.prototype.has = function (key, value) {\n var values = this.valuesByKey.get(key);\n return values != null && values.has(value);\n };\n\n Multimap.prototype.hasKey = function (key) {\n return this.valuesByKey.has(key);\n };\n\n Multimap.prototype.hasValue = function (value) {\n var sets = Array.from(this.valuesByKey.values());\n return sets.some(function (set) {\n return set.has(value);\n });\n };\n\n Multimap.prototype.getValuesForKey = function (key) {\n var values = this.valuesByKey.get(key);\n return values ? Array.from(values) : [];\n };\n\n Multimap.prototype.getKeysForValue = function (value) {\n return Array.from(this.valuesByKey).filter(function (_a) {\n var key = _a[0],\n values = _a[1];\n return values.has(value);\n }).map(function (_a) {\n var key = _a[0],\n values = _a[1];\n return key;\n });\n };\n\n return Multimap;\n}();\n\nexport { Multimap };","var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return function (d, b) {\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nimport { Multimap } from \"./multimap\";\nimport { add, del } from \"./set_operations\";\n\nvar IndexedMultimap =\n/** @class */\nfunction (_super) {\n __extends(IndexedMultimap, _super);\n\n function IndexedMultimap() {\n var _this = _super.call(this) || this;\n\n _this.keysByValue = new Map();\n return _this;\n }\n\n Object.defineProperty(IndexedMultimap.prototype, \"values\", {\n get: function get() {\n return Array.from(this.keysByValue.keys());\n },\n enumerable: true,\n configurable: true\n });\n\n IndexedMultimap.prototype.add = function (key, value) {\n _super.prototype.add.call(this, key, value);\n\n add(this.keysByValue, value, key);\n };\n\n IndexedMultimap.prototype[\"delete\"] = function (key, value) {\n _super.prototype[\"delete\"].call(this, key, value);\n\n del(this.keysByValue, value, key);\n };\n\n IndexedMultimap.prototype.hasValue = function (value) {\n return this.keysByValue.has(value);\n };\n\n IndexedMultimap.prototype.getKeysForValue = function (value) {\n var set = this.keysByValue.get(value);\n return set ? Array.from(set) : [];\n };\n\n return IndexedMultimap;\n}(Multimap);\n\nexport { IndexedMultimap };","import { AttributeObserver } from \"./attribute_observer\";\nimport { Multimap } from \"@stimulus/multimap\";\n\nvar TokenListObserver =\n/** @class */\nfunction () {\n function TokenListObserver(element, attributeName, delegate) {\n this.attributeObserver = new AttributeObserver(element, attributeName, this);\n this.delegate = delegate;\n this.tokensByElement = new Multimap();\n }\n\n Object.defineProperty(TokenListObserver.prototype, \"started\", {\n get: function get() {\n return this.attributeObserver.started;\n },\n enumerable: true,\n configurable: true\n });\n\n TokenListObserver.prototype.start = function () {\n this.attributeObserver.start();\n };\n\n TokenListObserver.prototype.stop = function () {\n this.attributeObserver.stop();\n };\n\n TokenListObserver.prototype.refresh = function () {\n this.attributeObserver.refresh();\n };\n\n Object.defineProperty(TokenListObserver.prototype, \"element\", {\n get: function get() {\n return this.attributeObserver.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TokenListObserver.prototype, \"attributeName\", {\n get: function get() {\n return this.attributeObserver.attributeName;\n },\n enumerable: true,\n configurable: true\n }); // Attribute observer delegate\n\n TokenListObserver.prototype.elementMatchedAttribute = function (element) {\n this.tokensMatched(this.readTokensForElement(element));\n };\n\n TokenListObserver.prototype.elementAttributeValueChanged = function (element) {\n var _a = this.refreshTokensForElement(element),\n unmatchedTokens = _a[0],\n matchedTokens = _a[1];\n\n this.tokensUnmatched(unmatchedTokens);\n this.tokensMatched(matchedTokens);\n };\n\n TokenListObserver.prototype.elementUnmatchedAttribute = function (element) {\n this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n };\n\n TokenListObserver.prototype.tokensMatched = function (tokens) {\n var _this = this;\n\n tokens.forEach(function (token) {\n return _this.tokenMatched(token);\n });\n };\n\n TokenListObserver.prototype.tokensUnmatched = function (tokens) {\n var _this = this;\n\n tokens.forEach(function (token) {\n return _this.tokenUnmatched(token);\n });\n };\n\n TokenListObserver.prototype.tokenMatched = function (token) {\n this.delegate.tokenMatched(token);\n this.tokensByElement.add(token.element, token);\n };\n\n TokenListObserver.prototype.tokenUnmatched = function (token) {\n this.delegate.tokenUnmatched(token);\n this.tokensByElement[\"delete\"](token.element, token);\n };\n\n TokenListObserver.prototype.refreshTokensForElement = function (element) {\n var previousTokens = this.tokensByElement.getValuesForKey(element);\n var currentTokens = this.readTokensForElement(element);\n var firstDifferingIndex = zip(previousTokens, currentTokens).findIndex(function (_a) {\n var previousToken = _a[0],\n currentToken = _a[1];\n return !tokensAreEqual(previousToken, currentToken);\n });\n\n if (firstDifferingIndex == -1) {\n return [[], []];\n } else {\n return [previousTokens.slice(firstDifferingIndex), currentTokens.slice(firstDifferingIndex)];\n }\n };\n\n TokenListObserver.prototype.readTokensForElement = function (element) {\n var attributeName = this.attributeName;\n var tokenString = element.getAttribute(attributeName) || \"\";\n return parseTokenString(tokenString, element, attributeName);\n };\n\n return TokenListObserver;\n}();\n\nexport { TokenListObserver };\n\nfunction parseTokenString(tokenString, element, attributeName) {\n return tokenString.trim().split(/\\s+/).filter(function (content) {\n return content.length;\n }).map(function (content, index) {\n return {\n element: element,\n attributeName: attributeName,\n content: content,\n index: index\n };\n });\n}\n\nfunction zip(left, right) {\n var length = Math.max(left.length, right.length);\n return Array.from({\n length: length\n }, function (_, index) {\n return [left[index], right[index]];\n });\n}\n\nfunction tokensAreEqual(left, right) {\n return left && right && left.index == right.index && left.content == right.content;\n}","import { TokenListObserver } from \"./token_list_observer\";\n\nvar ValueListObserver =\n/** @class */\nfunction () {\n function ValueListObserver(element, attributeName, delegate) {\n this.tokenListObserver = new TokenListObserver(element, attributeName, this);\n this.delegate = delegate;\n this.parseResultsByToken = new WeakMap();\n this.valuesByTokenByElement = new WeakMap();\n }\n\n Object.defineProperty(ValueListObserver.prototype, \"started\", {\n get: function get() {\n return this.tokenListObserver.started;\n },\n enumerable: true,\n configurable: true\n });\n\n ValueListObserver.prototype.start = function () {\n this.tokenListObserver.start();\n };\n\n ValueListObserver.prototype.stop = function () {\n this.tokenListObserver.stop();\n };\n\n ValueListObserver.prototype.refresh = function () {\n this.tokenListObserver.refresh();\n };\n\n Object.defineProperty(ValueListObserver.prototype, \"element\", {\n get: function get() {\n return this.tokenListObserver.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ValueListObserver.prototype, \"attributeName\", {\n get: function get() {\n return this.tokenListObserver.attributeName;\n },\n enumerable: true,\n configurable: true\n });\n\n ValueListObserver.prototype.tokenMatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n\n if (value) {\n this.fetchValuesByTokenForElement(element).set(token, value);\n this.delegate.elementMatchedValue(element, value);\n }\n };\n\n ValueListObserver.prototype.tokenUnmatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n\n if (value) {\n this.fetchValuesByTokenForElement(element)[\"delete\"](token);\n this.delegate.elementUnmatchedValue(element, value);\n }\n };\n\n ValueListObserver.prototype.fetchParseResultForToken = function (token) {\n var parseResult = this.parseResultsByToken.get(token);\n\n if (!parseResult) {\n parseResult = this.parseToken(token);\n this.parseResultsByToken.set(token, parseResult);\n }\n\n return parseResult;\n };\n\n ValueListObserver.prototype.fetchValuesByTokenForElement = function (element) {\n var valuesByToken = this.valuesByTokenByElement.get(element);\n\n if (!valuesByToken) {\n valuesByToken = new Map();\n this.valuesByTokenByElement.set(element, valuesByToken);\n }\n\n return valuesByToken;\n };\n\n ValueListObserver.prototype.parseToken = function (token) {\n try {\n var value = this.delegate.parseValueForToken(token);\n return {\n value: value\n };\n } catch (error) {\n return {\n error: error\n };\n }\n };\n\n return ValueListObserver;\n}();\n\nexport { ValueListObserver };","import { Action } from \"./action\";\nimport { Binding } from \"./binding\";\nimport { ValueListObserver } from \"@stimulus/mutation-observers\";\n\nvar BindingObserver =\n/** @class */\nfunction () {\n function BindingObserver(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.bindingsByAction = new Map();\n }\n\n BindingObserver.prototype.start = function () {\n if (!this.valueListObserver) {\n this.valueListObserver = new ValueListObserver(this.element, this.actionAttribute, this);\n this.valueListObserver.start();\n }\n };\n\n BindingObserver.prototype.stop = function () {\n if (this.valueListObserver) {\n this.valueListObserver.stop();\n delete this.valueListObserver;\n this.disconnectAllActions();\n }\n };\n\n Object.defineProperty(BindingObserver.prototype, \"element\", {\n get: function get() {\n return this.context.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"identifier\", {\n get: function get() {\n return this.context.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"actionAttribute\", {\n get: function get() {\n return this.schema.actionAttribute;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"schema\", {\n get: function get() {\n return this.context.schema;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"bindings\", {\n get: function get() {\n return Array.from(this.bindingsByAction.values());\n },\n enumerable: true,\n configurable: true\n });\n\n BindingObserver.prototype.connectAction = function (action) {\n var binding = new Binding(this.context, action);\n this.bindingsByAction.set(action, binding);\n this.delegate.bindingConnected(binding);\n };\n\n BindingObserver.prototype.disconnectAction = function (action) {\n var binding = this.bindingsByAction.get(action);\n\n if (binding) {\n this.bindingsByAction[\"delete\"](action);\n this.delegate.bindingDisconnected(binding);\n }\n };\n\n BindingObserver.prototype.disconnectAllActions = function () {\n var _this = this;\n\n this.bindings.forEach(function (binding) {\n return _this.delegate.bindingDisconnected(binding);\n });\n this.bindingsByAction.clear();\n }; // Value observer delegate\n\n\n BindingObserver.prototype.parseValueForToken = function (token) {\n var action = Action.forToken(token);\n\n if (action.identifier == this.identifier) {\n return action;\n }\n };\n\n BindingObserver.prototype.elementMatchedValue = function (element, action) {\n this.connectAction(action);\n };\n\n BindingObserver.prototype.elementUnmatchedValue = function (element, action) {\n this.disconnectAction(action);\n };\n\n return BindingObserver;\n}();\n\nexport { BindingObserver };","import { BindingObserver } from \"./binding_observer\";\n\nvar Context =\n/** @class */\nfunction () {\n function Context(module, scope) {\n this.module = module;\n this.scope = scope;\n this.controller = new module.controllerConstructor(this);\n this.bindingObserver = new BindingObserver(this, this.dispatcher);\n\n try {\n this.controller.initialize();\n } catch (error) {\n this.handleError(error, \"initializing controller\");\n }\n }\n\n Context.prototype.connect = function () {\n this.bindingObserver.start();\n\n try {\n this.controller.connect();\n } catch (error) {\n this.handleError(error, \"connecting controller\");\n }\n };\n\n Context.prototype.disconnect = function () {\n try {\n this.controller.disconnect();\n } catch (error) {\n this.handleError(error, \"disconnecting controller\");\n }\n\n this.bindingObserver.stop();\n };\n\n Object.defineProperty(Context.prototype, \"application\", {\n get: function get() {\n return this.module.application;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"identifier\", {\n get: function get() {\n return this.module.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"schema\", {\n get: function get() {\n return this.application.schema;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"dispatcher\", {\n get: function get() {\n return this.application.dispatcher;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"parentElement\", {\n get: function get() {\n return this.element.parentElement;\n },\n enumerable: true,\n configurable: true\n }); // Error handling\n\n Context.prototype.handleError = function (error, message, detail) {\n if (detail === void 0) {\n detail = {};\n }\n\n var _a = this,\n identifier = _a.identifier,\n controller = _a.controller,\n element = _a.element;\n\n detail = Object.assign({\n identifier: identifier,\n controller: controller,\n element: element\n }, detail);\n this.application.handleError(error, \"Error \" + message, detail);\n };\n\n return Context;\n}();\n\nexport { Context };","var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return function (d, b) {\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n/** @hidden */\n\n\nexport function blessDefinition(definition) {\n return {\n identifier: definition.identifier,\n controllerConstructor: blessControllerConstructor(definition.controllerConstructor)\n };\n}\n\nfunction blessControllerConstructor(controllerConstructor) {\n var constructor = extend(controllerConstructor);\n constructor.bless();\n return constructor;\n}\n\nvar extend = function () {\n function extendWithReflect(constructor) {\n function Controller() {\n var _newTarget = this && this instanceof Controller ? this.constructor : void 0;\n\n return Reflect.construct(constructor, arguments, _newTarget);\n }\n\n Controller.prototype = Object.create(constructor.prototype, {\n constructor: {\n value: Controller\n }\n });\n Reflect.setPrototypeOf(Controller, constructor);\n return Controller;\n }\n\n function testReflectExtension() {\n var a = function a() {\n this.a.call(this);\n };\n\n var b = extendWithReflect(a);\n\n b.prototype.a = function () {};\n\n return new b();\n }\n\n try {\n testReflectExtension();\n return extendWithReflect;\n } catch (error) {\n return function (constructor) {\n return (\n /** @class */\n function (_super) {\n __extends(Controller, _super);\n\n function Controller() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n return Controller;\n }(constructor)\n );\n };\n }\n}();","import { Context } from \"./context\";\nimport { blessDefinition } from \"./definition\";\n\nvar Module =\n/** @class */\nfunction () {\n function Module(application, definition) {\n this.application = application;\n this.definition = blessDefinition(definition);\n this.contextsByScope = new WeakMap();\n this.connectedContexts = new Set();\n }\n\n Object.defineProperty(Module.prototype, \"identifier\", {\n get: function get() {\n return this.definition.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"controllerConstructor\", {\n get: function get() {\n return this.definition.controllerConstructor;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"contexts\", {\n get: function get() {\n return Array.from(this.connectedContexts);\n },\n enumerable: true,\n configurable: true\n });\n\n Module.prototype.connectContextForScope = function (scope) {\n var context = this.fetchContextForScope(scope);\n this.connectedContexts.add(context);\n context.connect();\n };\n\n Module.prototype.disconnectContextForScope = function (scope) {\n var context = this.contextsByScope.get(scope);\n\n if (context) {\n this.connectedContexts[\"delete\"](context);\n context.disconnect();\n }\n };\n\n Module.prototype.fetchContextForScope = function (scope) {\n var context = this.contextsByScope.get(scope);\n\n if (!context) {\n context = new Context(this, scope);\n this.contextsByScope.set(scope, context);\n }\n\n return context;\n };\n\n return Module;\n}();\n\nexport { Module };","var DataMap =\n/** @class */\nfunction () {\n function DataMap(scope) {\n this.scope = scope;\n }\n\n Object.defineProperty(DataMap.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DataMap.prototype, \"identifier\", {\n get: function get() {\n return this.scope.identifier;\n },\n enumerable: true,\n configurable: true\n });\n\n DataMap.prototype.get = function (key) {\n key = this.getFormattedKey(key);\n return this.element.getAttribute(key);\n };\n\n DataMap.prototype.set = function (key, value) {\n key = this.getFormattedKey(key);\n this.element.setAttribute(key, value);\n return this.get(key);\n };\n\n DataMap.prototype.has = function (key) {\n key = this.getFormattedKey(key);\n return this.element.hasAttribute(key);\n };\n\n DataMap.prototype[\"delete\"] = function (key) {\n if (this.has(key)) {\n key = this.getFormattedKey(key);\n this.element.removeAttribute(key);\n return true;\n } else {\n return false;\n }\n };\n\n DataMap.prototype.getFormattedKey = function (key) {\n return \"data-\" + this.identifier + \"-\" + dasherize(key);\n };\n\n return DataMap;\n}();\n\nexport { DataMap };\n\nfunction dasherize(value) {\n return value.replace(/([A-Z])/g, function (_, _char) {\n return \"-\" + _char.toLowerCase();\n });\n}","/** @hidden */\nexport function attributeValueContainsToken(attributeName, token) {\n return \"[\" + attributeName + \"~=\\\"\" + token + \"\\\"]\";\n}","import { attributeValueContainsToken } from \"./selectors\";\n\nvar TargetSet =\n/** @class */\nfunction () {\n function TargetSet(scope) {\n this.scope = scope;\n }\n\n Object.defineProperty(TargetSet.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"identifier\", {\n get: function get() {\n return this.scope.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"schema\", {\n get: function get() {\n return this.scope.schema;\n },\n enumerable: true,\n configurable: true\n });\n\n TargetSet.prototype.has = function (targetName) {\n return this.find(targetName) != null;\n };\n\n TargetSet.prototype.find = function () {\n var targetNames = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n\n var selector = this.getSelectorForTargetNames(targetNames);\n return this.scope.findElement(selector);\n };\n\n TargetSet.prototype.findAll = function () {\n var targetNames = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n\n var selector = this.getSelectorForTargetNames(targetNames);\n return this.scope.findAllElements(selector);\n };\n\n TargetSet.prototype.getSelectorForTargetNames = function (targetNames) {\n var _this = this;\n\n return targetNames.map(function (targetName) {\n return _this.getSelectorForTargetName(targetName);\n }).join(\", \");\n };\n\n TargetSet.prototype.getSelectorForTargetName = function (targetName) {\n var targetDescriptor = this.identifier + \".\" + targetName;\n return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n };\n\n return TargetSet;\n}();\n\nexport { TargetSet };","import { DataMap } from \"./data_map\";\nimport { TargetSet } from \"./target_set\";\nimport { attributeValueContainsToken } from \"./selectors\";\n\nvar Scope =\n/** @class */\nfunction () {\n function Scope(schema, identifier, element) {\n this.schema = schema;\n this.identifier = identifier;\n this.element = element;\n this.targets = new TargetSet(this);\n this.data = new DataMap(this);\n }\n\n Scope.prototype.findElement = function (selector) {\n return this.findAllElements(selector)[0];\n };\n\n Scope.prototype.findAllElements = function (selector) {\n var head = this.element.matches(selector) ? [this.element] : [];\n var tail = this.filterElements(Array.from(this.element.querySelectorAll(selector)));\n return head.concat(tail);\n };\n\n Scope.prototype.filterElements = function (elements) {\n var _this = this;\n\n return elements.filter(function (element) {\n return _this.containsElement(element);\n });\n };\n\n Scope.prototype.containsElement = function (element) {\n return element.closest(this.controllerSelector) === this.element;\n };\n\n Object.defineProperty(Scope.prototype, \"controllerSelector\", {\n get: function get() {\n return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n },\n enumerable: true,\n configurable: true\n });\n return Scope;\n}();\n\nexport { Scope };","import { Scope } from \"./scope\";\nimport { ValueListObserver } from \"@stimulus/mutation-observers\";\n\nvar ScopeObserver =\n/** @class */\nfunction () {\n function ScopeObserver(element, schema, delegate) {\n this.element = element;\n this.schema = schema;\n this.delegate = delegate;\n this.valueListObserver = new ValueListObserver(this.element, this.controllerAttribute, this);\n this.scopesByIdentifierByElement = new WeakMap();\n this.scopeReferenceCounts = new WeakMap();\n }\n\n ScopeObserver.prototype.start = function () {\n this.valueListObserver.start();\n };\n\n ScopeObserver.prototype.stop = function () {\n this.valueListObserver.stop();\n };\n\n Object.defineProperty(ScopeObserver.prototype, \"controllerAttribute\", {\n get: function get() {\n return this.schema.controllerAttribute;\n },\n enumerable: true,\n configurable: true\n }); // Value observer delegate\n\n /** @hidden */\n\n ScopeObserver.prototype.parseValueForToken = function (token) {\n var element = token.element,\n identifier = token.content;\n var scopesByIdentifier = this.fetchScopesByIdentifierForElement(element);\n var scope = scopesByIdentifier.get(identifier);\n\n if (!scope) {\n scope = new Scope(this.schema, identifier, element);\n scopesByIdentifier.set(identifier, scope);\n }\n\n return scope;\n };\n /** @hidden */\n\n\n ScopeObserver.prototype.elementMatchedValue = function (element, value) {\n var referenceCount = (this.scopeReferenceCounts.get(value) || 0) + 1;\n this.scopeReferenceCounts.set(value, referenceCount);\n\n if (referenceCount == 1) {\n this.delegate.scopeConnected(value);\n }\n };\n /** @hidden */\n\n\n ScopeObserver.prototype.elementUnmatchedValue = function (element, value) {\n var referenceCount = this.scopeReferenceCounts.get(value);\n\n if (referenceCount) {\n this.scopeReferenceCounts.set(value, referenceCount - 1);\n\n if (referenceCount == 1) {\n this.delegate.scopeDisconnected(value);\n }\n }\n };\n\n ScopeObserver.prototype.fetchScopesByIdentifierForElement = function (element) {\n var scopesByIdentifier = this.scopesByIdentifierByElement.get(element);\n\n if (!scopesByIdentifier) {\n scopesByIdentifier = new Map();\n this.scopesByIdentifierByElement.set(element, scopesByIdentifier);\n }\n\n return scopesByIdentifier;\n };\n\n return ScopeObserver;\n}();\n\nexport { ScopeObserver };","import { Module } from \"./module\";\nimport { Multimap } from \"@stimulus/multimap\";\nimport { ScopeObserver } from \"./scope_observer\";\n\nvar Router =\n/** @class */\nfunction () {\n function Router(application) {\n this.application = application;\n this.scopeObserver = new ScopeObserver(this.element, this.schema, this);\n this.scopesByIdentifier = new Multimap();\n this.modulesByIdentifier = new Map();\n }\n\n Object.defineProperty(Router.prototype, \"element\", {\n get: function get() {\n return this.application.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"schema\", {\n get: function get() {\n return this.application.schema;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"controllerAttribute\", {\n get: function get() {\n return this.schema.controllerAttribute;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"modules\", {\n get: function get() {\n return Array.from(this.modulesByIdentifier.values());\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"contexts\", {\n get: function get() {\n return this.modules.reduce(function (contexts, module) {\n return contexts.concat(module.contexts);\n }, []);\n },\n enumerable: true,\n configurable: true\n });\n\n Router.prototype.start = function () {\n this.scopeObserver.start();\n };\n\n Router.prototype.stop = function () {\n this.scopeObserver.stop();\n };\n\n Router.prototype.loadDefinition = function (definition) {\n this.unloadIdentifier(definition.identifier);\n var module = new Module(this.application, definition);\n this.connectModule(module);\n };\n\n Router.prototype.unloadIdentifier = function (identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n\n if (module) {\n this.disconnectModule(module);\n }\n };\n\n Router.prototype.getContextForElementAndIdentifier = function (element, identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n\n if (module) {\n return module.contexts.find(function (context) {\n return context.element == element;\n });\n }\n }; // Error handler delegate\n\n /** @hidden */\n\n\n Router.prototype.handleError = function (error, message, detail) {\n this.application.handleError(error, message, detail);\n }; // Scope observer delegate\n\n /** @hidden */\n\n\n Router.prototype.scopeConnected = function (scope) {\n this.scopesByIdentifier.add(scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n\n if (module) {\n module.connectContextForScope(scope);\n }\n };\n /** @hidden */\n\n\n Router.prototype.scopeDisconnected = function (scope) {\n this.scopesByIdentifier[\"delete\"](scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n\n if (module) {\n module.disconnectContextForScope(scope);\n }\n }; // Modules\n\n\n Router.prototype.connectModule = function (module) {\n this.modulesByIdentifier.set(module.identifier, module);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.connectContextForScope(scope);\n });\n };\n\n Router.prototype.disconnectModule = function (module) {\n this.modulesByIdentifier[\"delete\"](module.identifier);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.disconnectContextForScope(scope);\n });\n };\n\n return Router;\n}();\n\nexport { Router };","export var defaultSchema = {\n controllerAttribute: \"data-controller\",\n actionAttribute: \"data-action\",\n targetAttribute: \"data-target\"\n};","var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : new P(function (resolve) {\n resolve(result.value);\n }).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [0, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\n\nimport { Dispatcher } from \"./dispatcher\";\nimport { Router } from \"./router\";\nimport { defaultSchema } from \"./schema\";\n\nvar Application =\n/** @class */\nfunction () {\n function Application(element, schema) {\n if (element === void 0) {\n element = document.documentElement;\n }\n\n if (schema === void 0) {\n schema = defaultSchema;\n }\n\n this.element = element;\n this.schema = schema;\n this.dispatcher = new Dispatcher(this);\n this.router = new Router(this);\n }\n\n Application.start = function (element, schema) {\n var application = new Application(element, schema);\n application.start();\n return application;\n };\n\n Application.prototype.start = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , domReady()];\n\n case 1:\n _a.sent();\n\n this.router.start();\n this.dispatcher.start();\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n Application.prototype.stop = function () {\n this.router.stop();\n this.dispatcher.stop();\n };\n\n Application.prototype.register = function (identifier, controllerConstructor) {\n this.load({\n identifier: identifier,\n controllerConstructor: controllerConstructor\n });\n };\n\n Application.prototype.load = function (head) {\n var _this = this;\n\n var rest = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n\n var definitions = Array.isArray(head) ? head : [head].concat(rest);\n definitions.forEach(function (definition) {\n return _this.router.loadDefinition(definition);\n });\n };\n\n Application.prototype.unload = function (head) {\n var _this = this;\n\n var rest = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n\n var identifiers = Array.isArray(head) ? head : [head].concat(rest);\n identifiers.forEach(function (identifier) {\n return _this.router.unloadIdentifier(identifier);\n });\n };\n\n Object.defineProperty(Application.prototype, \"controllers\", {\n // Controllers\n get: function get() {\n return this.router.contexts.map(function (context) {\n return context.controller;\n });\n },\n enumerable: true,\n configurable: true\n });\n\n Application.prototype.getControllerForElementAndIdentifier = function (element, identifier) {\n var context = this.router.getContextForElementAndIdentifier(element, identifier);\n return context ? context.controller : null;\n }; // Error handling\n\n\n Application.prototype.handleError = function (error, message, detail) {\n console.error(\"%s\\n\\n%o\\n\\n%o\", message, error, detail);\n };\n\n return Application;\n}();\n\nexport { Application };\n\nfunction domReady() {\n return new Promise(function (resolve) {\n if (document.readyState == \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", resolve);\n } else {\n resolve();\n }\n });\n}","/** @hidden */\nexport function defineTargetProperties(constructor) {\n var prototype = constructor.prototype;\n var targetNames = getTargetNamesForConstructor(constructor);\n targetNames.forEach(function (name) {\n var _a;\n\n return defineLinkedProperties(prototype, (_a = {}, _a[name + \"Target\"] = {\n get: function get() {\n var target = this.targets.find(name);\n\n if (target) {\n return target;\n } else {\n throw new Error(\"Missing target element \\\"\" + this.identifier + \".\" + name + \"\\\"\");\n }\n }\n }, _a[name + \"Targets\"] = {\n get: function get() {\n return this.targets.findAll(name);\n }\n }, _a[\"has\" + capitalize(name) + \"Target\"] = {\n get: function get() {\n return this.targets.has(name);\n }\n }, _a));\n });\n}\n\nfunction getTargetNamesForConstructor(constructor) {\n var ancestors = getAncestorsForConstructor(constructor);\n return Array.from(ancestors.reduce(function (targetNames, constructor) {\n getOwnTargetNamesForConstructor(constructor).forEach(function (name) {\n return targetNames.add(name);\n });\n return targetNames;\n }, new Set()));\n}\n\nfunction getAncestorsForConstructor(constructor) {\n var ancestors = [];\n\n while (constructor) {\n ancestors.push(constructor);\n constructor = Object.getPrototypeOf(constructor);\n }\n\n return ancestors;\n}\n\nfunction getOwnTargetNamesForConstructor(constructor) {\n var definition = constructor[\"targets\"];\n return Array.isArray(definition) ? definition : [];\n}\n\nfunction defineLinkedProperties(object, properties) {\n Object.keys(properties).forEach(function (name) {\n if (!(name in object)) {\n var descriptor = properties[name];\n Object.defineProperty(object, name, descriptor);\n }\n });\n}\n\nfunction capitalize(name) {\n return name.charAt(0).toUpperCase() + name.slice(1);\n}","import { defineTargetProperties } from \"./target_properties\";\n\nvar Controller =\n/** @class */\nfunction () {\n function Controller(context) {\n this.context = context;\n }\n\n Controller.bless = function () {\n defineTargetProperties(this);\n };\n\n Object.defineProperty(Controller.prototype, \"application\", {\n get: function get() {\n return this.context.application;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"scope\", {\n get: function get() {\n return this.context.scope;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"identifier\", {\n get: function get() {\n return this.scope.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"targets\", {\n get: function get() {\n return this.scope.targets;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"data\", {\n get: function get() {\n return this.scope.data;\n },\n enumerable: true,\n configurable: true\n });\n\n Controller.prototype.initialize = function () {// Override in your subclass to set up initial controller state\n };\n\n Controller.prototype.connect = function () {// Override in your subclass to respond when the controller is connected to the DOM\n };\n\n Controller.prototype.disconnect = function () {// Override in your subclass to respond when the controller is disconnected from the DOM\n };\n\n Controller.targets = [];\n return Controller;\n}();\n\nexport { Controller };","export * from \"@stimulus/core\";","function _typeof(obj) { 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/*! shepherd.js 6.0.2 */\nfunction _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\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n/**\n * Checks if `value` is classified as a `Function` object.\n * @param {*} value The param to check if it is a function\n */\n\n/**\n * Checks if `value` is undefined.\n * @param {*} value The param to check if it is undefined\n */\n\n\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nvar Evented =\n/*#__PURE__*/\nfunction () {\n function Evented() {}\n\n var _proto = Evented.prototype;\n\n _proto.on = function on(event, handler, ctx, once) {\n if (once === void 0) {\n once = false;\n }\n\n if (isUndefined(this.bindings)) {\n this.bindings = {};\n }\n\n if (isUndefined(this.bindings[event])) {\n this.bindings[event] = [];\n }\n\n this.bindings[event].push({\n handler: handler,\n ctx: ctx,\n once: once\n });\n return this;\n };\n\n _proto.once = function once(event, handler, ctx) {\n return this.on(event, handler, ctx, true);\n };\n\n _proto.off = function off(event, handler) {\n var _this = this;\n\n if (isUndefined(this.bindings) || isUndefined(this.bindings[event])) {\n return this;\n }\n\n if (isUndefined(handler)) {\n delete this.bindings[event];\n } else {\n this.bindings[event].forEach(function (binding, index) {\n if (binding.handler === handler) {\n _this.bindings[event].splice(index, 1);\n }\n });\n }\n\n return this;\n };\n\n _proto.trigger = function trigger(event) {\n var _this2 = this;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (!isUndefined(this.bindings) && this.bindings[event]) {\n this.bindings[event].forEach(function (binding, index) {\n var ctx = binding.ctx,\n handler = binding.handler,\n once = binding.once;\n var context = ctx || _this2;\n handler.apply(context, args);\n\n if (once) {\n _this2.bindings[event].splice(index, 1);\n }\n });\n }\n\n return this;\n };\n\n return Evented;\n}();\n/**\n * Binds all the methods on a JS Class to the `this` context of the class.\n * Adapted from https://github.com/sindresorhus/auto-bind\n * @param {object} self The `this` context of the class\n * @return {object} The `this` context of the class\n */\n\n\nfunction autoBind(self) {\n var keys = Object.getOwnPropertyNames(self.constructor.prototype);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var val = self[key];\n\n if (key !== 'constructor' && typeof val === 'function') {\n self[key] = val.bind(self);\n }\n }\n\n return self;\n}\n/**\n * Checks if `value` is classified as an `HTMLElement`.\n * @param {*} value The param to check if it is an HTMLElement\n */\n\n\nfunction isElement(value) {\n return value instanceof HTMLElement;\n}\n/**\n * Checks if `value` is classified as a `Function` object.\n * @param {*} value The param to check if it is a function\n */\n\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n/**\n * Checks if `value` is classified as a `String` object.\n * @param {*} value The param to check if it is a string\n */\n\n\nfunction isString(value) {\n return typeof value === 'string';\n}\n/**\n * Checks if `value` is undefined.\n * @param {*} value The param to check if it is undefined\n */\n\n\nfunction isUndefined$1(value) {\n return value === undefined;\n}\n/**\n * Sets up the handler to determine if we should advance the tour\n * @param {string} selector\n * @param {Step} step The step instance\n * @return {Function}\n * @private\n */\n\n\nfunction _setupAdvanceOnHandler(selector, step) {\n return function (event) {\n if (step.isOpen()) {\n var targetIsEl = step.el && event.currentTarget === step.el;\n var targetIsSelector = !isUndefined$1(selector) && event.currentTarget.matches(selector);\n\n if (targetIsSelector || targetIsEl) {\n step.tour.next();\n }\n }\n };\n}\n/**\n * Bind the event handler for advanceOn\n * @param {Step} step The step instance\n */\n\n\nfunction bindAdvance(step) {\n // An empty selector matches the step element\n var _ref = step.options.advanceOn || {},\n event = _ref.event,\n selector = _ref.selector;\n\n if (event) {\n var handler = _setupAdvanceOnHandler(selector, step); // TODO: this should also bind/unbind on show/hide\n\n\n var el;\n\n try {\n el = document.querySelector(selector);\n } catch (e) {// TODO\n }\n\n if (!isUndefined$1(selector) && !el) {\n return console.error(\"No element was found for the selector supplied to advanceOn: \" + selector);\n } else if (el) {\n el.addEventListener(event, handler);\n step.on('destroy', function () {\n return el.removeEventListener(event, handler);\n });\n } else {\n document.body.addEventListener(event, handler, true);\n step.on('destroy', function () {\n return document.body.removeEventListener(event, handler, true);\n });\n }\n } else {\n return console.error('advanceOn was defined, but no event name was passed.');\n }\n}\n/*! tether 2.0.0-beta.4 */\n\n\nfunction _inheritsLoose$1(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _assertThisInitialized$1(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n/**\n * Checks if `value` is classified as a `Function` object.\n * @param {*} value The param to check if it is a function\n */\n\n\nfunction isFunction$1(value) {\n return typeof value === 'function';\n}\n/**\n * Checks if `value` is classified as a `Number` object.\n * @param {*} value The param to check if it is a number\n */\n\n\nfunction isNumber(value) {\n return typeof value === 'number';\n}\n/**\n * Checks if `value` is classified as an `Object`.\n * @param {*} value The param to check if it is an object\n */\n\n\nfunction isObject(value) {\n return _typeof(value) === 'object';\n}\n/**\n * Checks if `value` is classified as a `String` object.\n * @param {*} value The param to check if it is a string\n */\n\n\nfunction isString$1(value) {\n return typeof value === 'string';\n}\n/**\n * Checks if `value` is undefined.\n * @param {*} value The param to check if it is undefined\n */\n\n\nfunction isUndefined$2(value) {\n return value === undefined;\n}\n\nfunction addClass(el, name) {\n name.split(' ').forEach(function (cls) {\n if (cls.trim()) {\n el.classList.add(cls);\n }\n });\n}\n/**\n * Get class string based on previously determined classes\n * @param {String} [key=''] - default value for the classes object\n * @param {Object} classes\n * @param {String} classPrefix\n */\n\n\nfunction getClass(key, classes, classPrefix) {\n if (key === void 0) {\n key = '';\n }\n\n if (!isUndefined$2(classes) && !isUndefined$2(classes[key])) {\n if (classes[key] === false) {\n return '';\n }\n\n return classes[key];\n } else if (classPrefix) {\n return classPrefix + \"-\" + key;\n } else {\n return key;\n }\n}\n\nfunction removeClass(el, name) {\n name.split(' ').forEach(function (cls) {\n if (cls.trim()) {\n el.classList.remove(cls);\n }\n });\n}\n\nfunction updateClasses(el, add, all) {\n // Of the set of 'all' classes, we need the 'add' classes, and only the\n // 'add' classes to be set.\n all.forEach(function (cls) {\n if (add.indexOf(cls) === -1 && el.classList.contains(cls)) {\n removeClass(el, cls);\n }\n });\n add.forEach(function (cls) {\n if (!el.classList.contains(cls)) {\n addClass(el, cls);\n }\n });\n}\n\nvar deferred = [];\n\nfunction defer(fn) {\n deferred.push(fn);\n}\n\nfunction flush() {\n var fn; // eslint-disable-next-line\n\n while (fn = deferred.pop()) {\n fn();\n }\n}\n\nvar _scrollBarSize = null;\n\nfunction extend(out) {\n if (out === void 0) {\n out = {};\n }\n\n var args = [];\n Array.prototype.push.apply(args, arguments);\n args.slice(1).forEach(function (obj) {\n if (obj) {\n for (var key in obj) {\n if ({}.hasOwnProperty.call(obj, key)) {\n out[key] = obj[key];\n }\n }\n }\n });\n return out;\n}\n\nfunction getScrollBarSize() {\n if (_scrollBarSize) {\n return _scrollBarSize;\n }\n\n var inner = document.createElement('div');\n inner.style.width = '100%';\n inner.style.height = '200px';\n var outer = document.createElement('div');\n extend(outer.style, {\n position: 'absolute',\n top: 0,\n left: 0,\n pointerEvents: 'none',\n visibility: 'hidden',\n width: '200px',\n height: '150px',\n overflow: 'hidden'\n });\n outer.appendChild(inner);\n document.body.appendChild(outer);\n var widthContained = inner.offsetWidth;\n outer.style.overflow = 'scroll';\n var widthScroll = inner.offsetWidth;\n\n if (widthContained === widthScroll) {\n widthScroll = outer.clientWidth;\n }\n\n document.body.removeChild(outer);\n var width = widthContained - widthScroll;\n _scrollBarSize = {\n width: width,\n height: width\n };\n return _scrollBarSize;\n}\n\nvar uniqueId = function () {\n var id = 0;\n return function () {\n return ++id;\n };\n}();\n\nvar zeroPosCache = {};\nvar zeroElement = null;\n\nfunction getBounds(el) {\n var doc;\n\n if (el === document) {\n doc = document;\n el = document.documentElement;\n } else {\n doc = el.ownerDocument;\n }\n\n var docEl = doc.documentElement;\n\n var box = _getActualBoundingClientRect(el);\n\n var origin = _getOrigin();\n\n box.top -= origin.top;\n box.left -= origin.left;\n\n if (isUndefined$2(box.width)) {\n box.width = document.body.scrollWidth - box.left - box.right;\n }\n\n if (isUndefined$2(box.height)) {\n box.height = document.body.scrollHeight - box.top - box.bottom;\n }\n\n box.top = box.top - docEl.clientTop;\n box.left = box.left - docEl.clientLeft;\n box.right = doc.body.clientWidth - box.width - box.left;\n box.bottom = doc.body.clientHeight - box.height - box.top;\n return box;\n}\n/**\n * Gets bounds for when target modifiier is 'scroll-handle'\n * @param target\n * @return {{left: number, width: number, height: number}}\n */\n\n\nfunction getScrollHandleBounds(target) {\n var bounds; // We have to do the check for the scrollTop and if target === document.body here and set to variables\n // because we may reset target below.\n\n var targetScrollTop = target.scrollTop;\n var targetIsBody = target === document.body;\n\n if (targetIsBody) {\n target = document.documentElement;\n bounds = {\n left: pageXOffset,\n top: pageYOffset,\n height: innerHeight,\n width: innerWidth\n };\n } else {\n bounds = getBounds(target);\n }\n\n var style = getComputedStyle(target);\n var hasBottomScroll = target.scrollWidth > target.clientWidth || [style.overflow, style.overflowX].indexOf('scroll') >= 0 || !targetIsBody;\n var scrollBottom = 0;\n\n if (hasBottomScroll) {\n scrollBottom = 15;\n }\n\n var height = bounds.height - parseFloat(style.borderTopWidth) - parseFloat(style.borderBottomWidth) - scrollBottom;\n var out = {\n width: 15,\n height: height * 0.975 * (height / target.scrollHeight),\n left: bounds.left + bounds.width - parseFloat(style.borderLeftWidth) - 15\n };\n var fitAdj = 0;\n\n if (height < 408 && targetIsBody) {\n fitAdj = -0.00011 * Math.pow(height, 2) - 0.00727 * height + 22.58;\n }\n\n if (!targetIsBody) {\n out.height = Math.max(out.height, 24);\n }\n\n var scrollPercentage = targetScrollTop / (target.scrollHeight - height);\n out.top = scrollPercentage * (height - out.height - fitAdj) + bounds.top + parseFloat(style.borderTopWidth);\n\n if (targetIsBody) {\n out.height = Math.max(out.height, 24);\n }\n\n return out;\n}\n/**\n * Gets bounds for when target modifiier is 'visible\n * @param target\n * @return {{top: *, left: *, width: *, height: *}}\n */\n\n\nfunction getVisibleBounds(target) {\n if (target === document.body) {\n return {\n top: pageYOffset,\n left: pageXOffset,\n height: innerHeight,\n width: innerWidth\n };\n } else {\n var bounds = getBounds(target);\n var out = {\n height: bounds.height,\n width: bounds.width,\n top: bounds.top,\n left: bounds.left\n };\n out.height = Math.min(out.height, bounds.height - (pageYOffset - bounds.top));\n out.height = Math.min(out.height, bounds.height - (bounds.top + bounds.height - (pageYOffset + innerHeight)));\n out.height = Math.min(innerHeight, out.height);\n out.height -= 2;\n out.width = Math.min(out.width, bounds.width - (pageXOffset - bounds.left));\n out.width = Math.min(out.width, bounds.width - (bounds.left + bounds.width - (pageXOffset + innerWidth)));\n out.width = Math.min(innerWidth, out.width);\n out.width -= 2;\n\n if (out.top < pageYOffset) {\n out.top = pageYOffset;\n }\n\n if (out.left < pageXOffset) {\n out.left = pageXOffset;\n }\n\n return out;\n }\n}\n\nfunction removeUtilElements() {\n if (zeroElement) {\n document.body.removeChild(zeroElement);\n }\n\n zeroElement = null;\n}\n/**\n * Same as native getBoundingClientRect, except it takes into account parent offsets\n * if the element lies within a nested document ( or '), this._resize(c, d), this._config.onContentLoaded.call(this), this._$modalArrows && this._$modalArrows.css(\"display\", \"none\"), this._toggleLoading(!1), this;\n }\n }, {\n key: \"_showVideoIframe\",\n value: function value(a, b, c, d) {\n return c = c || b, d.html('
'), this._resize(b, c), this._config.onContentLoaded.call(this), this._$modalArrows && this._$modalArrows.css(\"display\", \"none\"), this._toggleLoading(!1), this;\n }\n }, {\n key: \"_showHtml5Video\",\n value: function value(a, b) {\n var c = this._$element.data(\"width\") || 560,\n d = this._$element.data(\"height\") || c / (560 / 315);\n return b.html('
'), this._resize(c, d), this._config.onContentLoaded.call(this), this._$modalArrows && this._$modalArrows.css(\"display\", \"none\"), this._toggleLoading(!1), this;\n }\n }, {\n key: \"_loadRemoteContent\",\n value: function value(b, c) {\n var d = this,\n e = this._$element.data(\"width\") || 560,\n f = this._$element.data(\"height\") || 560,\n g = this._$element.data(\"disableExternalCheck\") || !1;\n return this._toggleLoading(!1), g || this._isExternal(b) ? (c.html(''), this._config.onContentLoaded.call(this)) : c.load(b, a.proxy(function () {\n return d._$element.trigger(\"loaded.bs.modal\");\n })), this._$modalArrows && this._$modalArrows.css(\"display\", \"none\"), this._resize(e, f), this;\n }\n }, {\n key: \"_isExternal\",\n value: function value(a) {\n var b = a.match(/^([^:\\/?#]+:)?(?:\\/\\/([^\\/?#]*))?([^?#]+)?(\\?[^#]*)?(#.*)?/);\n return \"string\" == typeof b[1] && b[1].length > 0 && b[1].toLowerCase() !== location.protocol || \"string\" == typeof b[2] && b[2].length > 0 && b[2].replace(new RegExp(\":(\" + {\n \"http:\": 80,\n \"https:\": 443\n }[location.protocol] + \")?$\"), \"\") !== location.host;\n }\n }, {\n key: \"_error\",\n value: function value(a) {\n return console.error(a), this._containerToUse().html(a), this._resize(300, 300), this;\n }\n }, {\n key: \"_preloadImageByIndex\",\n value: function value(b, c) {\n if (this._$galleryItems) {\n var d = a(this._$galleryItems.get(b), !1);\n\n if (\"undefined\" != typeof d) {\n var e = d.attr(\"data-remote\") || d.attr(\"href\");\n return (\"image\" === d.attr(\"data-type\") || this._isImage(e)) && this._preloadImage(e, !1), c > 0 ? this._preloadImageByIndex(b + 1, c - 1) : void 0;\n }\n }\n }\n }, {\n key: \"_preloadImage\",\n value: function value(b, c) {\n var d = this;\n c = c || !1;\n var e = new Image();\n return c && !function () {\n var f = setTimeout(function () {\n c.append(d._config.loadingMessage);\n }, 200);\n e.onload = function () {\n f && clearTimeout(f), f = null;\n var b = a(\"\");\n return b.attr(\"src\", e.src), b.addClass(\"img-fluid\"), b.css(\"width\", \"100%\"), c.html(b), d._$modalArrows && d._$modalArrows.css(\"display\", \"\"), d._resize(e.width, e.height), d._toggleLoading(!1), d._config.onContentLoaded.call(d);\n }, e.onerror = function () {\n return d._toggleLoading(!1), d._error(d._config.strings.fail + (\" \" + b));\n };\n }(), e.src = b, e;\n }\n }, {\n key: \"_swipeGesure\",\n value: function value() {\n return this._touchendX < this._touchstartX ? this.navigateRight() : this._touchendX > this._touchstartX ? this.navigateLeft() : void 0;\n }\n }, {\n key: \"_resize\",\n value: function value(b, c) {\n c = c || b, this._wantedWidth = b, this._wantedHeight = c;\n var d = b / c,\n e = this._padding.left + this._padding.right + this._border.left + this._border.right,\n f = this._config.doc.body.clientWidth > 575 ? 20 : 0,\n g = this._config.doc.body.clientWidth > 575 ? 0 : 20,\n h = Math.min(b + e, this._config.doc.body.clientWidth - f, this._config.maxWidth);\n b + e > h ? (c = (h - e - g) / d, b = h) : b += e;\n var i = 0,\n j = 0;\n this._footerIsShown && (j = this._$modalFooter.outerHeight(!0) || 55), this._titleIsShown && (i = this._$modalHeader.outerHeight(!0) || 67);\n var k = this._padding.top + this._padding.bottom + this._border.bottom + this._border.top,\n l = parseFloat(this._$modalDialog.css(\"margin-top\")) + parseFloat(this._$modalDialog.css(\"margin-bottom\")),\n m = Math.min(c, a(window).height() - k - l - i - j, this._config.maxHeight - k - i - j);\n c > m && (b = Math.ceil(m * d) + e), this._$lightboxContainer.css(\"height\", m), this._$modalDialog.css(\"flex\", 1).css(\"maxWidth\", b);\n\n var n = this._$modal.data(\"bs.modal\");\n\n if (n) try {\n n._handleUpdate();\n } catch (o) {\n n.handleUpdate();\n }\n return this;\n }\n }], [{\n key: \"_jQueryInterface\",\n value: function value(b) {\n var c = this;\n return b = b || {}, this.each(function () {\n var e = a(c),\n f = a.extend({}, d.Default, e.data(), \"object\" == _typeof(b) && b);\n new d(c, f);\n });\n }\n }]), d;\n }();\n\n return a.fn[d] = g._jQueryInterface, a.fn[d].Constructor = g, a.fn[d].noConflict = function () {\n return a.fn[d] = e, g._jQueryInterface;\n }, g;\n })(jQuery);\n}(jQuery);","import {Controller} from \"stimulus\"\n\nexport default class extends Controller {\n connect() {\n function show_only_open_questions_switch() {\n $('#only_open_questions_switch').parent().show();\n }\n\n function hide_only_open_questions_switch() {\n $('#only_open_questions_switch').parent().hide();\n }\n\n if ($('#include_open_questions_switch').prop('checked') == false) {\n hide_only_open_questions_switch();\n }\n\n $('#include_open_questions_switch').change(function(e) {\n var options = {\n url: 'settings/open_questions',\n type: '',\n contentType: \"application/json; charset=utf-8\",\n dataType: 'json'\n };\n\n if (e.target.checked) {\n options['type'] = 'PUT';\n options['url'] += '/1';\n\n show_only_open_questions_switch();\n } else {\n options['type'] = 'DELETE';\n\n hide_only_open_questions_switch();\n }\n\n $.ajax(options);\n });\n\n $('#only_open_questions_switch').change(function(e) {\n var options = {\n url: 'settings/only_open_questions',\n type: '',\n contentType: \"application/json; charset=utf-8\",\n dataType: 'json'\n };\n\n if (e.target.checked) {\n options['type'] = 'PUT';\n options['url'] += '/1';\n } else {\n options['type'] = 'DELETE';\n }\n\n $.ajax(options);\n });\n\n $('#difficult_question_switch').change(function(e) {\n var id = $('#attempt_id').val();\n\n var options = {\n url: '/attempts/' + id + '/difficulty',\n type: 'PUT',\n contentType: \"application/json; charset=utf-8\",\n dataType: 'json'\n };\n\n $.ajax(options);\n });\n\n $('#exclude_question_switch').change(function(e) {\n var id = $('#attempt_id').val();\n\n var options = {\n url: '/attempts/' + id + '/exclude_question',\n type: 'PUT',\n contentType: \"application/json; charset=utf-8\",\n dataType: 'json'\n };\n\n $.ajax(options);\n });\n }\n}\n","import {Controller} from \"stimulus\"\nimport {tutorialService} from '../services/tutorial_service'\n\nexport default class extends Controller {\n connect() {\n run_obsolete_code()\n }\n}\n\n// ------------------------------------------------------------\n// Obsolete code that needs to be rewritten the Stimulus way\n// ------------------------------------------------------------\n\n\nfunction run_obsolete_code() {\n function updateCategoriesCount() {\n // Hack to prevent effects on other pages\n if (document.getElementById('selected-categories') == null) {\n return\n }\n\n let selected_categories = $('#selected-categories li')\n let selected_categories_count = selected_categories.length\n\n if (selected_categories_count <= 0) {\n $('input[type=submit]').attr('disabled', 'disabled');\n } else {\n $('input[type=submit]').removeAttr('disabled', 'disabled');\n }\n\n $('#selected-categories-count').html(selected_categories_count);\n }\n\n function deselectAllCategories() {\n let selected_categories = $('#selected-categories li')\n\n for (var category of selected_categories) {\n category = $(category)\n category.prependTo('#available-categories');\n category.find('.fa-plus-circle').removeClass('d-none');\n category.find('.fa-minus-circle').addClass('d-none');\n category.attr('data-added', 'false');\n }\n\n updateCategoriesCount()\n }\n\n updateCategoriesCount()\n\n $('#clear_selected_categories').on('click', function() {\n deselectAllCategories()\n })\n\n $('#select_random_categories').on('click', function() {\n deselectAllCategories()\n\n let selected_categories = $('#available-categories li')\n\n for (var category of selected_categories) {\n if (Math.random() >= 0.7) {\n category = $(category)\n category.appendTo('#selected-categories');\n category.find('.fa-plus-circle').addClass('d-none');\n category.find('.fa-minus-circle').removeClass('d-none');\n category.attr('data-added', 'true');\n }\n }\n\n updateCategoriesCount()\n })\n\n $('[data-category-id]').on('click', function(e) {\n let target = $(e.currentTarget)\n\n if (target.attr('data-added') == 'true') {\n target.fadeOut(250, function() {\n target.prependTo('#available-categories');\n target.find('.fa-plus-circle').removeClass('d-none');\n target.find('.fa-minus-circle').addClass('d-none');\n target.attr('data-added', 'false');\n target.fadeIn(250, updateCategoriesCount);\n });\n } else {\n target.fadeOut(250, function() {\n target.appendTo('#selected-categories');\n target.find('.fa-plus-circle').addClass('d-none');\n target.find('.fa-minus-circle').removeClass('d-none');\n target.attr('data-added', 'true');\n target.fadeIn(250, updateCategoriesCount);\n });\n }\n });\n\n $('#new_attempt .test-button').on('click', function(e) {\n deselectAll('#new_attempt .test-button');\n\n let target = $(e.currentTarget)\n\n $('#standard_attempt_answer_id').val(target.data('answer-id'));\n\n target.toggleClass('active');\n displayCertaintyButtons();\n displaySubmitButton();\n scrollToSubmitButton();\n\n if ((tutorialService.currentTour() !== null) && (tutorialService.currentTour() !== undefined)) {\n tutorialService.currentTour().show(4);\n }\n });\n\n let openAnswerElement = $('#open_attempt_open_answer')\n if (openAnswerElement) {\n openAnswerElement.val('')\n }\n\n $('#open_attempt_open_answer').on('input', function(e) {\n if (e.target.value.length > 0) {\n displayCertaintyButtons();\n displaySubmitButton();\n scrollToSubmitButton();\n } else {\n hideSubmitButton();\n }\n });\n\n $('#new_attempt .certainty-button').on('click', function(e) {\n deselectAll('#new_attempt .certainty-button');\n\n let target = $(e.currentTarget);\n\n // TODO: Remove this hack which sets certainty for both question types (standard & open) without knowing which actually needs to be set\n $('#standard_attempt_certainty').val(target.data('certainty'));\n $('#open_attempt_certainty').val(target.data('certainty'));\n\n target.toggleClass('active');\n });\n\n function deselectAll(selector) {\n $(selector).removeClass('active');\n }\n\n function displaySubmitButton() {\n $('#new_attempt [name=submit_attempt]').show();\n $('#new_open_attempt [name=submit_attempt]').show();\n }\n\n function scrollToSubmitButton() {\n var element = $('input[name=submit_attempt]');\n var scrollToArea = $('#certainty');\n\n if (!element.isInViewport()) {\n $('html, body').animate({\n scrollTop: scrollToArea.offset().top\n });\n }\n }\n\n function hideSubmitButton() {\n $('#new_attempt [name=submit_attempt]').hide();\n $('#new_open_attempt [name=submit_attempt]').hide();\n }\n\n function displayCertaintyButtons() {\n document.getElementById('certainty').classList.remove('invisible')\n }\n\n // Countdown\n function getTimeRemaining(endtime) {\n var t = endtime - Date.parse(new Date());\n var seconds = Math.floor((t / 1000) % 60);\n var minutes = Math.floor((t / 1000 / 60) % 60);\n var hours = Math.floor((t / (1000 * 60 * 60)) % 24);\n var days = Math.floor(t / (1000 * 60 * 60 * 24));\n return {\n 'total': t,\n 'days': days,\n 'hours': hours,\n 'minutes': minutes,\n 'seconds': seconds\n };\n }\n\n function initializeClock(id, endtime) {\n var clock = document.getElementById(id);\n var clockRunning = true;\n\n if (typeof clock == 'undefined') {\n return;\n }\n\n // var daysSpan = clock.querySelector('.days');\n var hoursSpan = clock.querySelector('.hours');\n var minutesSpan = clock.querySelector('.minutes');\n var secondsSpan = clock.querySelector('.seconds');\n\n function updateClock() {\n if (!clockRunning) {\n return;\n }\n\n var t = getTimeRemaining(endtime);\n\n // daysSpan.innerHTML = t.days;\n hoursSpan.innerHTML = ('0' + t.hours).slice(-2);\n minutesSpan.innerHTML = ('0' + t.minutes).slice(-2);\n secondsSpan.innerHTML = ('0' + t.seconds).slice(-2);\n\n if (t.total <= 0 && clockRunning) {\n clockRunning = false;\n clearInterval(timeinterval);\n var currentTestId = document.getElementById('current_test_id').value;\n Turbolinks.visit('/tests/' + currentTestId);\n }\n }\n\n updateClock();\n var timeinterval = setInterval(updateClock, 1000);\n }\n\n var startedAt = document.getElementById('current_test_started_at');\n var duration = document.getElementById('current_test_duration');\n\n if (startedAt != null || duration != null) {\n // Time test started + 2 hours duration\n var deadline = Date.parse(new Date(parseFloat(startedAt.value))) + parseFloat(duration.value) * 1000;\n initializeClock('clockdiv', deadline);\n }\n}\n","import {Controller} from \"stimulus\"\nimport {tutorialService} from '../services/tutorial_service'\n\nexport default class extends Controller {\n connect() {\n if (document.documentElement.hasAttribute('data-turbolinks-preview')) {\n return\n }\n\n let tutorialName = this.data.get('current')\n\n if (tutorialName !== null) {\n tutorialService.start_tour(this.data.get('current'))\n }\n }\n\n finish() {\n let tutorialName = this.data.get('name')\n tutorialService.finish_tour(tutorialName, 'completed')\n }\n}\n","import {Controller} from \"stimulus\"\n\nexport default class extends Controller {\n connect() {\n run_obsolete_code()\n }\n}\n\n\nfunction run_obsolete_code() {\n $('.post-vote').off('click').on('click', function (event) {\n event.preventDefault();\n var post_id = $(this).data('post-id');\n var vote_type = $(this).data('vote-type');\n\n $.post('/posts/' + post_id + '/' + vote_type + '/', function(data) {\n $('[data-vote-count=\"' + post_id + '\"]').replaceWith(data);\n });\n })\n}\n","function _typeof(obj) { 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.2.2\nCopyright © 2019 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.2.2\",\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 escapeHTML: function escapeHTML(t) {\n var e;\n return e = document.createElement(\"div\"), e.textContent = t, e.innerHTML;\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;\n\n if (null == e && (e = {}), \"object\" == _typeof(t) ? (e = t, t = e.tagName) : e = {\n attributes: e\n }, i = document.createElement(t), null != e.editable && (null == e.attributes && (e.attributes = {}), e.attributes.contenteditable = e.editable), e.attributes) {\n a = e.attributes;\n\n for (r in a) {\n h = a[r], i.setAttribute(r, h);\n }\n }\n\n if (e.style) {\n u = e.style;\n\n for (r in u) {\n h = u[r], i.style[r] = h;\n }\n }\n\n if (e.data) {\n c = e.data;\n\n for (r in c) {\n h = c[r], i.dataset[r] = h;\n }\n }\n\n if (e.className) for (l = e.className.split(\" \"), o = 0, s = l.length; s > o; o++) {\n n = l[o], i.classList.add(n);\n }\n return e.textContent && (i.textContent = e.textContent), i;\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 () {}.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;\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;\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 = \"URL\", l.href = a, l.string = (c = n.getData(\"public.url-name\")) ? e.squishBreakableWhitespace(c).trim() : a, null != (f = this.delegate) && f.inputControllerWillPaste(l), this.setInputSummary({\n textAdded: l.string,\n didDelete: this.selectionIsExpanded()\n }), null != (C = this.responder) && C.insertText(e.Text.textForStringWithAttributes(l.string, {\n href: l.href\n })), 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 n, i, o, r, s, a, u, c, l;\n return h(t) ? (t.preventDefault(), this.attachFiles(t.clipboardData.files)) : p(t) ? (t.preventDefault(), i = {\n type: \"text/plain\",\n string: t.clipboardData.getData(\"text/plain\")\n }, null != (o = this.delegate) && o.inputControllerWillPaste(i), null != (r = this.responder) && r.insertString(i.string), this.render(), null != (s = this.delegate) ? s.inputControllerDidPaste(i) : void 0) : (n = null != (a = t.clipboardData) ? a.getData(\"URL\") : void 0) ? (t.preventDefault(), i = {\n type: \"URL\",\n href: n,\n string: n\n }, null != (u = this.delegate) && u.inputControllerWillPaste(i), null != (c = this.responder) && c.insertText(e.Text.textForStringWithAttributes(i.string, {\n href: i.href\n })), this.render(), null != (l = this.delegate) ? l.inputControllerDidPaste(i) : 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 return this.dragging && (t.preventDefault(), e = d(t), !i(e, this.dragging.point)) ? (this.dragging.point = e, null != (n = this.responder) ? n.setLocationRangeFromPointRange(e) : void 0) : void 0;\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;\n return n = this.event.dataTransfer, s = {\n dataTransfer: n\n }, (i = n.getData(\"URL\")) ? (s.type = \"URL\", s.href = i, s.string = (r = n.getData(\"public.url-name\")) ? e.squishBreakableWhitespace(r).trim() : i, null != (a = this.delegate) && a.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertText(e.Text.textForStringWithAttributes(s.string, {\n href: s.href\n })) : 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\")) ? (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,\n l = function l(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\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 n = e.defer, i = e.escapeHTML, o = e.handleEvent, a = e.makeElement, c = e.tagName, u = e.config, s = u.lang, t = u.css, r = u.keyNames, e.AttachmentEditorController = function (u) {\n function p(t, e, n, i) {\n this.attachmentPiece = t, this.element = e, this.container = n, this.options = null != i ? i : {}, this.didBlurCaption = l(this.didBlurCaption, this), this.didChangeCaption = l(this.didChangeCaption, this), this.didInputCaption = l(this.didInputCaption, this), this.didKeyDownCaption = l(this.didKeyDownCaption, this), this.didClickActionButton = l(this.didClickActionButton, this), this.didClickToolbar = l(this.didClickToolbar, this), this.attachment = this.attachmentPiece.attachment, \"a\" === c(this.element) && (this.element = this.element.firstChild), this.install();\n }\n\n var d;\n return h(p, u), d = function d(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 }, p.prototype.install = function () {\n return this.makeElementMutable(), this.addToolbar(), this.attachment.isPreviewable() ? this.installCaptionEditor() : void 0;\n }, p.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 }, p.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 }, p.prototype.makeElementMutable = d(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 }), p.prototype.addToolbar = d(function () {\n var n, r, u;\n return n = a({\n tagName: \"div\",\n className: t.attachmentToolbar,\n data: {\n trixMutable: !0\n }\n }), n.innerHTML = '
\\n \\n \\n \\n
\", this.attachment.isPreviewable() && (r = i(this.attachment.getFilename()), u = i(this.attachment.getFormattedFilesize()), n.innerHTML += '
\\n \\n ' + r + '\\n ' + u + \"\\n \\n
\"), o(\"click\", {\n onElement: n,\n withCallback: this.didClickToolbar\n }), o(\"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 }), p.prototype.installCaptionEditor = d(function () {\n var i, r, u, c, l;\n return c = a({\n tagName: \"textarea\",\n className: t.attachmentCaptionEditor,\n attributes: {\n placeholder: s.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, i = function i() {\n return l.value = c.value, c.style.height = l.scrollHeight + \"px\";\n }, o(\"input\", {\n onElement: c,\n withCallback: i\n }), o(\"input\", {\n onElement: c,\n withCallback: this.didInputCaption\n }), o(\"keydown\", {\n onElement: c,\n withCallback: this.didKeyDownCaption\n }), o(\"change\", {\n onElement: c,\n withCallback: this.didChangeCaption\n }), o(\"blur\", {\n onElement: c,\n withCallback: this.didBlurCaption\n }), u = this.element.querySelector(\"figcaption\"), r = u.cloneNode(), {\n \"do\": function (e) {\n return function () {\n return u.style.display = \"none\", r.appendChild(c), r.appendChild(l), r.classList.add(t.attachmentCaption + \"--editing\"), u.parentElement.insertBefore(r, u), i(), e.options.editCaption ? n(function () {\n return c.focus();\n }) : void 0;\n };\n }(this),\n undo: function undo() {\n return e.removeNode(r), u.style.display = null;\n }\n };\n }), p.prototype.didClickToolbar = function (t) {\n return t.preventDefault(), t.stopPropagation();\n }, p.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 }, p.prototype.didKeyDownCaption = function (t) {\n var e;\n return \"return\" === r[t.keyCode] ? (t.preventDefault(), this.savePendingCaption(), null != (e = this.delegate) && \"function\" == typeof e.attachmentEditorDidRequestDeselectingAttachment ? e.attachmentEditorDidRequestDeselectingAttachment(this.attachment) : void 0) : void 0;\n }, p.prototype.didInputCaption = function (t) {\n return this.pendingCaption = t.target.value.replace(/\\s/g, \" \").trim();\n }, p.prototype.didChangeCaption = function () {\n return this.savePendingCaption();\n }, p.prototype.didBlurCaption = function () {\n return this.savePendingCaption();\n }, p;\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;\n if (t = document.createComment(\"block\"), u = [t], this.block.isEmpty() ? u.push(i(\"br\")) : (l = null != (c = n(this.block.getLastAttribute())) ? c.text : void 0, h = this.findOrCreateCachedChildView(e.TextView, this.block.text, {\n textConfig: l\n }), u.push.apply(u, h.getNodes()), this.shouldAddExtraNewlineElement() && u.push(i(\"br\"))), this.attributes.length) return u;\n\n for (o = i(e.config.blockAttributes[\"default\"].tagName), r = 0, s = u.length; s > r; r++) {\n a = u[r], o.appendChild(a);\n }\n\n return [o];\n }, s.prototype.createContainerElement = function (e) {\n var o, r, s, a;\n return o = this.attributes[e], a = n(o).tagName, r = {\n tagName: a\n }, \"attachmentGallery\" === o && (s = this.block.getBlockBreakPosition(), r.className = t.attachmentGallery + \" \" + t.attachmentGallery + \"--\" + s), i(r);\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;\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.getLength = function () {\n return this.text.getLength();\n }, a.prototype.canBeConsolidatedWith = function (t) {\n return !this.hasAttributes() && !t.hasAttributes();\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));\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 = [].slice,\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 n = e.tagName, i = e.walkTree, t = e.nodeIsAttachmentElement, e.HTMLSanitizer = function (r) {\n function u(t, e) {\n this.allowedAttributes = (null != e ? e : {}).allowedAttributes, null == this.allowedAttributes && (this.allowedAttributes = c), this.body = l(t);\n }\n\n var c, l, h;\n return o(u, r), c = \"style href src width height class\".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 h(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;\n\n for (o = s.call(t.attributes), e = 0, n = o.length; n > e; e++) {\n i = o[e].name, a.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 = s.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 }, h = function h(e) {\n return (null != e ? e.nodeType : void 0) !== Node.ELEMENT_NODE || t(e) ? void 0 : \"script\" === n(e) || \"false\" === e.getAttribute(\"data-trix-serialize\");\n }, l = function l(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: w\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 }, w = function w(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(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)) : void 0;\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), o && t(n, this.currentBlock.attributes)))) return 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 = C(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 = y(t), 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 = A(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, m;\n r = {}, d = e.config.textAttributes;\n\n for (n in d) {\n if (u = d[n], u.tagName && o(t, {\n matchingSelector: u.tagName,\n untilNode: this.containerElement\n })) r[n] = !0;else if (u.parser) {\n if (m = u.parser(t)) {\n for (i = !1, f = this.findBlockElementAncestors(t), c = 0, p = f.length; p > c; c++) {\n if (s = f[c], u.parser(s) === m) {\n i = !0;\n break;\n }\n }\n\n i || (r[n] = m);\n }\n } else u.styleProperty && (m = t.style[u.styleProperty]) && (r[n] = m);\n }\n\n if (a(t) && (l = t.getAttribute(\"data-trix-attributes\"))) {\n g = JSON.parse(l);\n\n for (h in g) {\n m = g[h], r[h] = m;\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 }, y = function y(t) {\n return JSON.parse(t.getAttribute(\"data-trix-attachment\"));\n }, A = function A(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, (!x(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 }, x = function x(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 : b(e);\n }, g.prototype.getMarginOfDefaultBlockElement = function () {\n var t;\n return t = s(e.config.blockAttributes[\"default\"].tagName), this.containerElement.appendChild(t), b(t);\n }, b = function b(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 }, C = function C(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.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.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;\n }(e.Controller);\n }.call(this), function () {\n var t, n, i, o, r, s;\n n = e.browser, r = e.makeElement, s = e.triggerEvent, i = e.handleEvent, o = e.handleEventOnce, t = e.AttachmentView.attachmentSelector, e.registerElement(\"trix-editor\", function () {\n var a, u, c, l, h, p, d, f;\n return p = 0, u = function u(t) {\n return !document.querySelector(\":focus\") && t.hasAttribute(\"autofocus\") && document.querySelector(\"[autofocus]\") === t ? t.focus() : void 0;\n }, d = function d(t) {\n return t.hasAttribute(\"contenteditable\") ? void 0 : (t.setAttribute(\"contenteditable\", \"\"), o(\"focus\", {\n onElement: t,\n withCallback: function withCallback() {\n return c(t);\n }\n }));\n }, a = function a(t) {\n return t.hasAttribute(\"role\") ? void 0 : t.setAttribute(\"role\", \"textbox\");\n }, c = function c(t) {\n return h(t), f(t);\n }, h = function h(t) {\n return (\"function\" == typeof document.queryCommandSupported ? document.queryCommandSupported(\"enableObjectResizing\") : void 0) ? (document.execCommand(\"enableObjectResizing\", !1, !1), i(\"mscontrolselect\", {\n onElement: t,\n preventDefault: !0\n })) : void 0;\n }, f = function f() {\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 }, l = 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}\\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: \" + l.display + \" !important;\\n width: \" + l.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\", ++p), this.trixId);\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 = r(\"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 = r(\"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 ? s(\"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 d(this), a(this);\n },\n connect: function connect() {\n return this.hasAttribute(\"data-trix-internal\") ? void 0 : (this.editorController || (s(\"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 s(\"trix-initialize\", {\n onElement: t\n });\n };\n }(this))), this.editorController.registerSelectionManager(), this.registerResetListener(), u(this));\n },\n disconnect: function disconnect() {\n var t;\n return null != (t = this.editorController) && t.unregisterSelectionManager(), this.unregisterResetListener();\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 resetBubbled: function resetBubbled(t) {\n var e;\n return t.target !== (null != (e = this.inputElement) ? e.form : void 0) || t.defaultPrevented ? void 0 : this.reset();\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