{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/lodash-compat/internal/toObject.js","webpack:///./node_modules/lodash-compat/lang/isObject.js","webpack:///./node_modules/lodash-compat/lang/isArray.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/lodash-compat/internal/isObjectLike.js","webpack:///./node_modules/lodash-compat/internal/isLength.js","webpack:///./app/javascript/kiso_themes/kiso_themes/demo/data_generator.js","webpack:///./node_modules/lodash-compat/object/keys.js","webpack:///./node_modules/lodash-compat/internal/isArrayLike.js","webpack:///./node_modules/lodash-compat/internal/bindCallback.js","webpack:///./node_modules/lodash-compat/internal/getNative.js","webpack:///./node_modules/lodash-compat/object/keysIn.js","webpack:///./node_modules/popper.js/dist/esm/popper.js","webpack:///./node_modules/lodash-compat/internal/baseFor.js","webpack:///./node_modules/lodash-compat/lang/isString.js","webpack:///./node_modules/lodash-compat/support.js","webpack:///./node_modules/lodash-compat/lang/isArguments.js","webpack:///./node_modules/lodash-compat/internal/isIndex.js","webpack:///./node_modules/bootstrap/dist/js/bootstrap.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///./node_modules/lodash-compat/internal/arrayEach.js","webpack:///./node_modules/lodash-compat/internal/baseEach.js","webpack:///./node_modules/lodash-compat/lang/isFunction.js","webpack:///./node_modules/lodash-compat/internal/isHostObject.js","webpack:///./node_modules/lodash-compat/internal/getLength.js","webpack:///./node_modules/lodash-compat/internal/baseProperty.js","webpack:///./node_modules/lodash-compat/utility/identity.js","webpack:///./node_modules/lodash-compat/internal/arrayMap.js","webpack:///./node_modules/lodash-compat/internal/baseIsEqual.js","webpack:///./node_modules/lodash-compat/internal/isStrictComparable.js","webpack:///./node_modules/lodash-compat/internal/baseGet.js","webpack:///./node_modules/lodash-compat/internal/isKey.js","webpack:///./node_modules/lodash-compat/internal/toPath.js","webpack:///./node_modules/lodash-compat/function/restParam.js","webpack:///./node_modules/@rails/actiontext/node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./app/javascript/packs/application.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/turbolinks/dist/turbolinks.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./node_modules/metismenu/dist/metisMenu.js","webpack:///./node_modules/jquery-slimscroll/jquery.slimscroll.js","webpack:///./node_modules/bootstrap-switch/dist/js/bootstrap-switch.js","webpack:///./node_modules/chartjs/chart.js","webpack:///./node_modules/jquery-countdown/dist/jquery.countdown.js","webpack:///./node_modules/jquery-countto/jquery.countTo.js","webpack:///./node_modules/cd-easypiechart/index.js","webpack:///./node_modules/fastclick/lib/fastclick.js","webpack:///./node_modules/object-fit-images/dist/ofi.common-js.js","webpack:///./node_modules/flot/source/jquery.canvaswrapper.js","webpack:///./node_modules/flot/source/jquery.flot.js","webpack:///./node_modules/gmaps.core/gmaps.core.js","webpack:///./node_modules/lodash-compat/collection/forEach.js","webpack:///./node_modules/lodash-compat/internal/baseForOwn.js","webpack:///./node_modules/lodash-compat/internal/createBaseFor.js","webpack:///./node_modules/lodash-compat/lang/isNative.js","webpack:///./node_modules/lodash-compat/internal/shimKeys.js","webpack:///./node_modules/lodash-compat/internal/createBaseEach.js","webpack:///./node_modules/lodash-compat/internal/createForEach.js","webpack:///./node_modules/lodash-compat/collection/map.js","webpack:///./node_modules/lodash-compat/internal/baseCallback.js","webpack:///./node_modules/lodash-compat/internal/baseMatches.js","webpack:///./node_modules/lodash-compat/internal/baseIsMatch.js","webpack:///./node_modules/lodash-compat/internal/baseIsEqualDeep.js","webpack:///./node_modules/lodash-compat/internal/equalArrays.js","webpack:///./node_modules/lodash-compat/internal/arraySome.js","webpack:///./node_modules/lodash-compat/internal/equalByTag.js","webpack:///./node_modules/lodash-compat/internal/equalObjects.js","webpack:///./node_modules/lodash-compat/lang/isTypedArray.js","webpack:///./node_modules/lodash-compat/internal/getMatchData.js","webpack:///./node_modules/lodash-compat/object/pairs.js","webpack:///./node_modules/lodash-compat/internal/baseMatchesProperty.js","webpack:///./node_modules/lodash-compat/internal/baseSlice.js","webpack:///./node_modules/lodash-compat/array/last.js","webpack:///./node_modules/lodash-compat/internal/baseToString.js","webpack:///./node_modules/lodash-compat/utility/property.js","webpack:///./node_modules/lodash-compat/internal/basePropertyDeep.js","webpack:///./node_modules/lodash-compat/internal/baseMap.js","webpack:///./node_modules/lodash-compat/object/forIn.js","webpack:///./node_modules/lodash-compat/internal/createForIn.js","webpack:///./node_modules/lodash-compat/object/extend.js","webpack:///./node_modules/lodash-compat/object/assign.js","webpack:///./node_modules/lodash-compat/internal/assignWith.js","webpack:///./node_modules/lodash-compat/internal/baseAssign.js","webpack:///./node_modules/lodash-compat/internal/baseCopy.js","webpack:///./node_modules/lodash-compat/internal/createAssigner.js","webpack:///./node_modules/lodash-compat/internal/isIterateeCall.js","webpack:///./node_modules/lodash-compat/object/omit.js","webpack:///./node_modules/lodash-compat/internal/baseDifference.js","webpack:///./node_modules/lodash-compat/internal/baseIndexOf.js","webpack:///./node_modules/lodash-compat/internal/indexOfNaN.js","webpack:///./node_modules/lodash-compat/internal/cacheIndexOf.js","webpack:///./node_modules/lodash-compat/internal/createCache.js","webpack:///./node_modules/lodash-compat/internal/SetCache.js","webpack:///./node_modules/lodash-compat/internal/cachePush.js","webpack:///./node_modules/lodash-compat/internal/baseFlatten.js","webpack:///./node_modules/lodash-compat/internal/arrayPush.js","webpack:///./node_modules/lodash-compat/internal/pickByArray.js","webpack:///./node_modules/lodash-compat/internal/pickByCallback.js","webpack:///./node_modules/lodash-compat/internal/baseForIn.js","webpack:///./node_modules/jasny-bootstrap/dist/js/jasny-bootstrap.js","webpack:///./node_modules/jvectormap/jquery-jvectormap.min.js","webpack:///./node_modules/jquery-parallax.js/parallax.min.js","webpack:///./node_modules/code-prettify/src/prettify.js","webpack:///./node_modules/prismjs/prism.js","webpack:///./node_modules/sparklines/source/sparkline.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/kiso_themes/index.js","webpack:///./app/javascript/kiso_themes/kiso_themes/kernel.js","webpack:///./app/javascript/kiso_themes/kiso_themes/fastclick.js","webpack:///./app/javascript/kiso_themes/kiso_themes/metis_menu.js","webpack:///./app/javascript/kiso_themes/kiso_themes/bootstrap.js","webpack:///./app/javascript/kiso_themes/kiso_themes/sidenav.js","webpack:///./app/javascript/kiso_themes/kiso_themes/header.js","webpack:///./app/javascript/kiso_themes/kiso_themes/forms.js","webpack:///./app/javascript/kiso_themes/kiso_themes/bootstrap_switch.js","webpack:///./app/javascript/kiso_themes/kiso_themes/sheets.js","webpack:///./app/javascript/kiso_themes/kiso_themes/gmaps.js","webpack:///./app/javascript/kiso_themes/kiso_themes/jqvectormaps.js","webpack:///./app/javascript/kiso_themes/kiso_themes/jasny.js","webpack:///./app/javascript/kiso_themes/kiso_themes/flot.js","webpack:///./app/javascript/kiso_themes/kiso_themes/chartjs.js","webpack:///./app/javascript/kiso_themes/kiso_themes/easypiechart.js","webpack:///./app/javascript/kiso_themes/kiso_themes/prettify.js","webpack:///./app/javascript/kiso_themes/kiso_themes/prism.js","webpack:///./app/javascript/kiso_themes/kiso_themes/clipboard.js","webpack:///./app/javascript/kiso_themes/kiso_themes/countdown.js","webpack:///./app/javascript/kiso_themes/kiso_themes/parallax.js","webpack:///./app/javascript/kiso_themes/kiso_themes/demo/chartjs.js","webpack:///./app/javascript/kiso_themes/kiso_themes/demo/dashboard.js","webpack:///./app/javascript/kiso_themes/kiso_themes/demo/easypiechart.js","webpack:///./app/javascript/kiso_themes/kiso_themes/demo/flot.js","webpack:///./app/javascript/kiso_themes/kiso_themes/demo/gmaps.js","webpack:///./app/javascript/kiso_themes/kiso_themes/demo/jqvectormap.js","webpack:///./app/javascript/kiso_themes/kiso_themes/demo/sparklines.js","webpack:///./app/javascript/kiso_themes/kiso_themes/inspect_mode/inspect_mode.js","webpack:///./node_modules/clipboard/dist/clipboard.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/attachment_upload.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/index.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","_typeof","iterator","obj","constructor","global","factory","document","w","Error","window","this","noGlobal","arr","getProto","getPrototypeOf","_slice","slice","flat","array","concat","apply","push","indexOf","class2type","toString","hasOwn","fnToString","ObjectFunctionString","support","isFunction","nodeType","isWindow","preservedScriptAttributes","type","src","nonce","noModule","DOMEval","code","node","doc","val","script","createElement","text","getAttribute","setAttribute","head","appendChild","parentNode","removeChild","toType","version","jQuery","selector","context","fn","init","isArrayLike","length","jquery","toArray","num","pushStack","elems","ret","merge","prevObject","each","callback","map","elem","arguments","first","eq","last","even","grep","_elem","odd","len","j","end","sort","splice","extend","options","copy","copyIsArray","clone","target","deep","isPlainObject","Array","isArray","undefined","expando","Math","random","replace","isReady","error","msg","noop","proto","Ctor","isEmptyObject","globalEval","makeArray","results","inArray","second","invert","matches","callbackExpect","arg","guid","split","_i","toLowerCase","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","Date","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","a","b","pop","pushNative","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","RegExp","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","String","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","inDisabledFieldset","addCombinator","disabled","nodeName","dir","next","childNodes","e","els","seed","nid","match","groups","newSelector","newContext","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","testContext","scope","toSelector","join","querySelectorAll","qsaError","removeAttribute","keys","cache","cacheLength","shift","markFunction","assert","el","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","namespace","namespaceURI","documentElement","hasCompare","subWindow","defaultView","top","addEventListener","attachEvent","className","createComment","getById","getElementsByName","filter","attrId","find","getAttributeNode","tag","tmp","input","innerHTML","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","specified","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","_argument","simple","forward","ofType","_context","xml","uniqueCache","outerCache","nodeIndex","start","parent","useCache","lastChild","uniqueID","pseudo","args","setFilters","idx","matched","matcher","unmatched","lang","elemLang","hash","location","activeElement","hasFocus","href","tabIndex","checked","selected","selectedIndex","_matchIndexes","radio","checkbox","file","password","image","submit","reset","tokens","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","cached","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","token","compiled","_name","defaultValue","unique","isXMLDoc","escapeSelector","_dir","until","truncate","is","_siblings","rneedsContext","needsContext","rsingleTag","winnow","qualifier","not","self","rootjQuery","root","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","prev","sibling","has","targets","closest","index","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","contentDocument","content","reverse","rnothtmlwhite","Identity","v","Thrower","ex","adoptValue","resolve","reject","noValue","method","promise","fail","then","Callbacks","_","flag","createOptions","firing","memory","_fired","_locked","queue","firingIndex","fire","once","stopOnFalse","remove","empty","disable","lock","locked","fireWith","fired","Deferred","func","tuples","_state","_promise","state","always","deferred","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","that","mightThrow","TypeError","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","setTimeout","stateString","when","singleValue","remaining","resolveContexts","resolveValues","master","updateFunc","rerrorNames","stack","console","warn","message","readyException","readyList","completed","removeEventListener","readyWait","wait","readyState","doScroll","access","chainable","emptyGet","raw","bulk","_key","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","toUpperCase","camelCase","string","acceptData","owner","Data","uid","configurable","set","data","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","JSON","parse","getData","_data","removeData","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","source","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","style","display","css","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","body","showHide","show","values","hide","toggle","div","rcheckableType","rtagName","rscriptType","createDocumentFragment","checkClone","cloneNode","noCloneChecked","option","wrapMap","thead","col","tr","td","_default","getAll","setGlobalEval","refElements","tbody","tfoot","colgroup","caption","th","optgroup","buildFragment","scripts","selection","ignored","wrap","attached","fragment","nodes","htmlPrefilter","createTextNode","rkeyEvent","rmouseEvent","rtypenamespace","returnTrue","returnFalse","expectSync","err","safeActiveElement","_on","types","one","origFn","event","off","leverageNative","notAsync","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","trigger","Event","handleObjIn","eventHandle","events","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","bindType","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","_handlers","matchedHandlers","matchedSelectors","button","addProp","hook","originalEvent","writable","load","noBubble","click","beforeunload","returnValue","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","now","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","focus","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","on","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","html","_evalUrl","_remove","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rnumnonpx","getStyles","opener","getComputedStyle","swap","old","rboxStyle","curCSS","computed","width","minWidth","maxWidth","getPropertyValue","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","container","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","right","pixelBoxStylesVal","boxSizingReliableVal","position","scrollboxSizeVal","offsetWidth","measure","round","parseFloat","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","table","trChild","trStyle","height","parseInt","cssPrefixes","emptyStyle","vendorProps","finalPropName","_final","cssProps","capName","vendorPropName","rdisplayswap","rcustomProp","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","max","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","ceil","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","Tween","easing","cssHooks","opacity","origName","isCustomProp","setProperty","isFinite","getBoundingClientRect","scrollboxSizeBuggy","left","margin","padding","border","prefix","suffix","expand","expanded","parts","propHooks","run","percent","eased","duration","pos","step","fx","scrollTop","scrollLeft","linear","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","interval","tick","createFxNow","genFx","includeWidth","createTween","animation","Animation","tweeners","properties","stopped","prefilters","currentTime","startTime","tweens","opts","specialEasing","originalProperties","originalOptions","gotoEnd","propFilter","complete","timer","anim","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflow","overflowX","overflowY","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","delay","time","timeout","clearTimeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","bool","attrNames","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","isValidValue","classNames","hasClass","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","rquery","parseXML","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","active","lastModified","etag","url","isLocal","protocol","processData","async","contentType","accepts","json","responseFields","converters","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","_statusCode","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","status","abort","statusText","finalText","crossDomain","host","hasContent","ifModified","headers","beforeSend","success","send","nativeStatusText","responses","isSuccess","response","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","current","conv","dataFilter","ajaxConvert","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","offsetHeight","xhr","XMLHttpRequest","xhrSuccessStatus","0","1223","xhrSupported","cors","_callback","errorCallback","open","username","xhrFields","onload","onerror","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","_callback2","scriptAttrs","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","rect","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","unbind","delegate","undelegate","hover","fnOver","fnOut","proxy","holdReady","hold","parseJSON","isNumeric","isNaN","trim","_jQuery","_$","$","noConflict","webpackPolyfill","deprecate","paths","isObject","isString","unindexedChars","charAt","getNative","isLength","isObjectLike","objToString","g","Function","DataGenerator","dataPointCount","startingValue","dataSet","getRandomizedData","newYCoord","min","res","shimKeys","nativeKeys","enumPrototypes","getLength","identity","thisArg","argCount","accumulator","other","isNative","arrayEach","isArguments","isIndex","errorTag","objectTag","stringTag","shadowProps","errorProto","objectProto","stringProto","nonEnumProps","isProto","skipIndexes","skipErrorProps","enumErrorProps","skipProto","nonEnumShadows","nonEnums","nonEnum","isBrowser","navigator","timeoutDuration","longerTimeoutBrowsers","userAgent","debounce","Promise","called","scheduled","functionToCheck","getStyleComputedProperty","element","getParentNode","getScrollParent","_getStyleComputedProp","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","getOffsetParent","noOffsetParent","nextElementSibling","getRoot","findCommonOffsetParent","element1","element2","order","Node","DOCUMENT_POSITION_FOLLOWING","range","createRange","setStart","setEnd","commonAncestorContainer","element1root","getScroll","side","upperSide","scrollingElement","includeScroll","modifier","bottom","getBordersSize","axis","sideA","sideB","getSize","computedStyle","getWindowSizes","classCallCheck","instance","Constructor","createClass","defineProperties","descriptor","protoProps","staticProps","_extends","assign","getClientRect","offsets","sizes","clientWidth","clientHeight","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","isFixed","getFixedPositionOffsetParent","parentElement","getBoundaries","popper","boundariesElement","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","_ref","computeAutoPlacement","placement","refRect","rects","sortedAreas","area","filteredAreas","_ref2","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","runModifiers","modifiers","ends","findIndex","forEach","enabled","update","isDestroyed","arrowStyles","flipped","positionFixed","flip","originalPlacement","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","some","getSupportedPropertyName","prefixes","upperProp","toCheck","destroy","willChange","disableEventListeners","removeOnDestroy","getWindow","attachToScrollParents","scrollParents","isBody","passive","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","scheduleUpdate","cancelAnimationFrame","setStyles","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","BEHAVIORS","parseOffset","basePlacement","useHeight","fragments","frag","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","str","toValue","index2","Defaults","shiftvariation","_data$offsets","isVertical","shiftOffsets","preventOverflow","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","keepTogether","floor","opSide","arrow","_data$offsets$arrow","arrowElement","querySelector","sideCapitalized","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","placementOpposite","flipOrder","behavior","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","inner","subtractLength","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","applyStyle","onLoad","modifierOptions","Popper","_this","Utils","PopperUtils","baseFor","createBaseFor","arrayProto","propertyIsEnumerable","ownLast","spliceObjects","reIsUint","_defineProperties","_createClass","_defineProperty","_objectSpread","ownKeys","getOwnPropertySymbols","sym","getOwnPropertyDescriptor","TRANSITION_END","transitionEndEmulator","Util","triggerTransitionEnd","getUID","getSelectorFromElement","hrefAttr","getTransitionDurationFromElement","transitionDuration","transitionDelay","floatTransitionDuration","floatTransitionDelay","reflow","supportsTransitionEnd","Boolean","isElement","typeCheckConfig","componentName","config","configTypes","expectedTypes","valueType","findShadowRoot","attachShadow","ShadowRoot","emulateTransitionEnd","DATA_KEY","JQUERY_NO_CONFLICT","CLOSE","CLOSED","CLICK_DATA_API","ClassName","Alert","_element","_proto","close","rootElement","_getRootElement","_triggerCloseEvent","_removeElement","dispose","closeEvent","_destroyElement","_jQueryInterface","$element","_handleDismiss","alertInstance","DATA_KEY$1","JQUERY_NO_CONFLICT$1","ClassName$1","Selector$1","Event$1","FOCUS_BLUR_DATA_API","Button","triggerChangeEvent","addAriaPressed","classList","hasAttribute","NAME$2","DATA_KEY$2","EVENT_KEY$2","JQUERY_NO_CONFLICT$2","Default","keyboard","slide","pause","touch","DefaultType","Direction","Event$2","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","ClassName$2","Selector$2","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","_slide","nextWhenVisible","cycle","clearInterval","setInterval","visibilityState","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_this2","_keydown","_addTouchEventListeners","_this3","move","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","eventDirectionName","targetIndex","fromIndex","slideEvent","from","_setActiveIndicatorElement","indicators","nextIndicator","directionalClassName","orderClassName","_this4","activeElementIndex","nextElement","nextElementIndex","isCycling","slidEvent","nextElementInterval","defaultInterval","action","ride","_dataApiClickHandler","slideIndex","carousels","$carousel","NAME$3","DATA_KEY$3","JQUERY_NO_CONFLICT$3","Default$1","DefaultType$1","Event$3","SHOW","SHOWN","HIDE","HIDDEN","ClassName$3","Dimension","Selector$3","Collapse","_isTransitioning","_triggerArray","toggleList","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","actives","activesData","startEvent","_getDimension","setTransitioning","scrollSize","triggerArrayLength","isTransitioning","_getTargetFromElement","triggerArray","isOpen","$this","$trigger","$target","NAME$4","DATA_KEY$4","EVENT_KEY$4","JQUERY_NO_CONFLICT$4","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","Event$4","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","ClassName$4","Selector$4","AttachmentMap","Default$2","boundary","DefaultType$2","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","_getParentFromElement","isActive","_clearMenus","showEvent","referenceElement","_getPopperConfig","hideEvent","_getPlacement","$parentDropdown","_getOffset","popperConfig","toggles","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","NAME$5","DATA_KEY$5","EVENT_KEY$5","JQUERY_NO_CONFLICT$5","Default$3","backdrop","DefaultType$3","Event$5","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","ClassName$5","Selector$5","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","ELEMENT_NODE","_enforceFocus","shownEvent","transitionComplete","_this5","_this6","_this7","_resetAdjustments","_resetScrollbar","_removeBackdrop","_this8","backdropTransitionDuration","callbackRemove","_backdropTransitionDuration","isModalOverflowing","scrollHeight","paddingLeft","paddingRight","_getScrollbarWidth","_this9","fixedContent","stickyContent","actualPadding","calculatedPadding","actualMargin","calculatedMargin","scrollDiv","scrollbarWidth","_this10","uriAttrs","DefaultWhitelist","br","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","pre","small","span","sub","sup","strong","u","ul","SAFE_URL_PATTERN","DATA_URL_PATTERN","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","whitelistKeys","_loop","elName","attributeList","whitelistedAttributes","allowedAttributeList","attrName","regExp","attrRegex","allowedAttribute","NAME$6","DATA_KEY$6","EVENT_KEY$6","JQUERY_NO_CONFLICT$6","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","DefaultType$4","template","title","fallbackPlacement","sanitize","AttachmentMap$1","AUTO","TOP","RIGHT","BOTTOM","LEFT","Default$4","HoverState","Event$6","INSERTED","FOCUSOUT","ClassName$6","Selector$6","Trigger","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","toggleEnabled","dataKey","_getDelegateConfig","_isWithActiveTrigger","_enter","_leave","getTipElement","EVENT_KEY","isWithContent","shadowRoot","isInTheDom","tipId","NAME","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","_handlePopperPlacementChange","_fixTransition","prevHoverState","_cleanTipClass","getTitle","CLASS_PREFIX","setElementContent","eventIn","eventOut","_fixTitle","titleType","dataAttributes","$tip","tabClass","popperData","popperInstance","initConfigAnimation","NAME$7","DATA_KEY$7","EVENT_KEY$7","JQUERY_NO_CONFLICT$7","BSCLS_PREFIX_REGEX$1","Default$5","DefaultType$5","ClassName$7","Selector$7","Event$7","Popover","_Tooltip","subClass","superClass","__proto__","_getContent","CLASS_PREFIX$1","NAME$8","DATA_KEY$8","EVENT_KEY$8","JQUERY_NO_CONFLICT$8","Default$6","DefaultType$6","Event$8","ACTIVATE","SCROLL","ClassName$8","Selector$8","OffsetMethod","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","item","_getOffsetHeight","maxScroll","_activate","_clear","queries","$link","scrollSpys","$spy","DATA_KEY$9","JQUERY_NO_CONFLICT$9","Event$9","ClassName$9","Selector$9","Tab","previous","listElement","itemSelector","hiddenEvent","_transitionComplete","dropdownChild","dropdownElement","dropdownToggleList","NAME$a","DATA_KEY$a","JQUERY_NO_CONFLICT$a","Event$a","ClassName$a","DefaultType$7","autohide","Default$7","Selector$a","Toast","withoutTimeout","_close","Scrollspy","__webpack_amd_options__","iteratee","baseForOwn","baseEach","createBaseEach","isHostObject","baseProperty","toObject","baseIsEqualDeep","baseIsEqual","customizer","isLoose","stackA","stackB","path","pathKey","reIsDeepProp","reIsPlainProp","baseToString","rePropName","reEscapeChar","number","quote","nativeMax","rest","otherArgs","sparkMd5","createCommonjsModule","hex_chr","md5cycle","k","md5blk","md5blks","md5blk_array","md51","tail","lo","hi","substring","md51_array","subarray","Uint8Array","rhex","hex","toUtf8","unescape","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arrayBuffer2Utf8Str","concatenateArrayBuffers","byteLength","buffer","hexToBinaryString","bytes","substr","SparkMD5","clamp","targetArray","sourceArray","begin","appendBinary","_buff","_length","_hash","_finish","getState","setState","hashBinary","fileSlice","File","mozSlice","webkitSlice","FileChecksum","chunkSize","chunkCount","size","chunkIndex","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","readAsArrayBuffer","findElement","dispatchEvent","eventInit","createEvent","initEvent","toArray$1","BlobRecord","checksum","filename","content_type","byte_size","csrfToken","getMetaValue","requestDidLoad","requestDidError","stringify","blob","direct_upload","directUploadData","toJSON","_xhr","BlobUpload","_blob$directUploadDat","DirectUpload","upload","methodName","_len","messages","DirectUploadController","directUpload","hiddenInput","insertAdjacentElement","dispatchError","signed_id","loaded","total","alert","uploadRequestDidProgress","DirectUploadsController","form","inputs","files","controllers","createDirectUploadControllers","startNextController","controller","processingAttribute","submitButtonsByForm","WeakMap","started","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","submitForm","ActiveStorage","log","require","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","loadCSPNonce","ref","cspNonce","Element","setData","csrfParam","meta","CSRFProtection","refreshCSRFTokens","CustomEvent","initCustomEvent","stopEverything","eventType","AcceptHeaders","createXHR","prepareOptions","processResponse","OPENED","accept","withCredentials","DONE","parser","isCrossDomain","serializeElement","additionalParam","formElements","allowAction","handleConfirm","confirm","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","originalText","handleMethod","formContent","link","isRemote","handleRemote","enctype","FormData","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","rails","_rails_loaded","Turbolinks","supported","history","pushState","visit","clearCache","setProgressBarDelay","copyObject","throttle","uuid","Location","absoluteURL","requestURL","anchor","getOrigin","getPath","getPathComponents","getLastPathComponent","getExtension","isPrefixedBy","isEqualTo","toCacheKey","valueOf","_t","HttpRequest","requestCanceled","requestTimedOut","requestFailed","requestLoaded","requestProgressed","referrer","NETWORK_FAILURE","TIMEOUT_FAILURE","sent","notifyApplicationBeforeRequestStart","setProgress","requestStarted","cancel","lengthComputable","endRequest","requestCompletedWithResponse","failed","requestFailedWithStatusCode","notifyApplicationAfterRequestEnd","onprogress","requestFinished","ProgressBar","trickle","_t2","stylesheetElement","createStylesheetElement","progressElement","createProgressElement","defaultCSS","installStylesheetElement","installProgressElement","startTrickling","hiding","fadeProgressElement","uninstallProgressElement","stopTrickling","setValue","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","bodyElement","fromHTMLString","fromHTMLElement","getRootLocation","getSetting","getCacheControlValue","getElementForAnchor","getPermanentElements","getPermanentElementById","getPermanentElementsPresentInSnapshot","findFirstAutofocusableElement","hasAnchor","isPreviewable","isCacheable","isVisitable","Renderer","render","renderView","viewWillRender","newBody","viewRendered","invalidateView","viewInvalidated","createScriptElement","__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","_t6","ErrorRenderer","newHead","replaceHeadAndBody","activateBodyScriptElements","getScriptElements","View","getSnapshot","snapshot","markAsPreview","renderSnapshot","renderError","ScrollManager","onScroll","_t7","scrollToElement","scrollIntoView","scrollToPosition","updatePosition","scrollPositionChanged","SnapshotCache","snapshots","read","put","write","Visit","performScroll","_t8","adapter","timingMetrics","recordTimingMetric","request","cancelRender","visitFailed","historyChanged","shouldIssueRequest","getCachedSnapshot","getCachedSnapshotForLocation","cacheSnapshot","visitRendered","redirectedToLocation","followedRedirect","replaceHistoryWithLocationAndRestorationIdentifier","scrolled","scrollToRestoredPosition","scrollToTop","scrollToAnchor","restorationData","scrollPosition","getTime","getTimingMetrics","snapshotCached","frame","_t9","Controller","clickBubbled","clickCaptured","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","nodeIsVisitable","currentScript","_typeof2","_jquery","_interopRequireDefault","_classCallCheck","getSpecialTransitionEndEvent","transitionEndTest","QUnit","setTransitionEndSupport","mmEmulateTransitionEnd","DATA_API_KEY","TRANSITION_DURATION","activeClass","collapseClass","collapseInClass","collapsingClass","triggerElement","parentTrigger","subMenu","MetisMenu","_transitioning","_list","_hide","_show","onTransitionStart","_el","onTransitionEnd","slimScroll","color","distance","alwaysVisible","disableFadeOut","railVisible","railColor","railOpacity","railDraggable","railClass","barClass","wrapperClass","allowPageScroll","wheelStep","touchScrollStep","borderRadius","railBorderRadius","isOverPanel","isOverBar","isDragg","queueHide","touchDif","barHeight","percentScroll","lastScroll","divS","releaseScroll","me","bar","rail","getBarHeight","h","scrollBy","scrollContent","wrapper","background","zIndex","BorderRadius","MozBorderRadius","WebkitBorderRadius","posCss","$doc","currTop","hideBar","showBar","outerHeight","_onWheel","wheelDelta","srcTarget","srcElement","isWheel","isJump","maxTop","offsetTop","slimscroll","_jquery2","getClasses","readonly","indeterminate","inverse","prvgetElementOptions","radioAllOff","onColor","offColor","onText","offText","labelText","handleWidth","labelWidth","baseClass","prvwidth","$handles","$on","$off","$label","privateHandleWidth","outerWidth","privateLabelWidth","$container","$wrapper","prvcontainerPosition","ope","prvgetClass","prvinit","setPrevOptions","initInterval","prvelementHandlers","prevOptions","prvhandleHandlers","prvlabelHandlers","dragStart","dragEnd","difference","prvexternalLabelHandler","$externalLabel","toggleState","prvformHandler","isBootstrapSwitch","performReset","bootstrapSwitch","$form","prvgetClasses","BootstrapSwitch","defaults","onInit","onSwitchChange","toggleAnimate","toggleDisabled","toggleReadonly","toggleIndeterminate","toggleInverse","_len2","_key2","reducer","existingData","Helpers","BarChart","log2","LN2","log10","LN10","avg","v2","upperMax","lowerMin","Infinity","niceNumbers","exponent","fraction","pow","getLinearTicks","maxTicks","tickSpacing","getFont","variant","weight","family","getAxisRatio","ctx","mouseListeners","currentHint","fillRegions","font","fontSizeTitle","fontSizeAxes","fontSizeTicks","fontSizeLabels","fontDataTags","fontSizeLegend","fontSizeHint","paddingPercentBars","paddingPercentTicks","paddingPixelsVertical","paddingPixelsHorizontal","paddingPixelsTicks","maxWidthBars","fillColorBackground","strokeColorBars","fillColorBars","scaleStyle","barStyle","stackedBarPadding","defaultMaxTick","pixelsLegendSquare","radiusDot","fillColorLegend","tickFormatter","tickFormatterMeasure","fillRegion","labelPositions","labels","_data_standard_deviation","_data_standard_error","isArr","i3","mean","acc","i2","sqrt","redraw","_draw","mousemove","drawIndex","canvas","clearRect","translate","remainingWidth","remainingHeight","save","fillStyle","fillRect","restore","topYPadding","textAlign","fillText","leftXPadding","maxChartValue","minChartValue","leftXDrawYLabel","yAxis","cmIndex","doB","tempSum","ii2","floater","bars","cbv","maxYAxisTickWidth","measureText","legend","maxLWidth","lIndex","label","bSX","bSY","legendEntriesPerLine","lLReqHeight","bottomYPadding","strokeStyle","beginPath","moveTo","lineTo","stroke","fill","legLine","legCol","boxX","boxY","xAxis","widthPerBar","topLabels","reqWidth","dataTags","computedBarPadding","wwh","maxTextWidth","maxTextStackSize","tLabel","xLabelsRotated","rotate","lastLabelY","cLabel","yUp","remVal","boundX1","boundX2","boundY1","boundY2","xStart","xEnd","yStart","yEnd","topLabel","tickMeta","alpha","ticks","tickHeight","cBar","renderBarY","lastData","fillColorForIndex","strokeColorForIndex","fillColor","strokeColor","vIsArr","renderStartX","runningValue","lastHeight","renderBarHeight","renderUpToY","tSX","tSY","tEX","tEY","tagText","barPadP","hints","hint","sx","sy","ey","minX","maxX","minY","maxY","oFS","barTooltips","rbx","lDu","sFS","nLData","rby","tLX","tLY","arc","balls","ball","radius","renderUpToY2","renderBarError","wiskerWidth","x_","hRect","boxWidth","lineHeight","boxHeight","drawX","drawY","boxWidthPadding","instances","defaultOptions","precision","elapse","parseDateString","dateString","Number","DIRECTIVE_KEY_MAP","Y","W","H","M","S","D","I","N","T","escapedRegExp","strftime","offsetObject","format","directives","directive","regexp","plural","pluralize","singular","Countdown","finalDate","$el","instanceNumber","setFinalDate","resume","countdownInstance","newTotalSecsLeft","hasEventsAttached","totalSecsLeft","elapsed","seconds","minutes","hours","days","daysToWeek","daysToMonth","weeks","weeksToMonth","months","years","getFullYear","totalDays","totalHours","totalMinutes","totalSeconds","eventName","countdown","argumentsArray","CountTo","DEFAULTS","dataOptions","formatter","toFixed","decimals","refreshInterval","onComplete","loops","loopCount","increment","formattedValue","restart","countTo","CanvasRenderer","EasyPieChart","cachedBackground","G_vmlCanvasManager","initElement","getContext","scaleBy","lineWidth","scaleColor","scaleLength","drawCircle","isNegative","drawScale","reqAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","drawBackground","trackColor","trackWidth","getCanvas","getCtx","clear","draw","getImageData","putImageData","lineCap","barColor","onStart","onStep","onStop","renderer","SVGRenderer","dataset","newValue","disableAnimation","enableAnimation","easyPieChart","instanceOptions","FastClick","layer","oldOnClick","trackingClick","trackingClickStart","targetElement","touchStartY","lastTouchIdentifier","touchBoundary","tapDelay","tapTimeout","notNeeded","methods","deviceIsAndroid","onMouse","onClick","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel","capture","rmv","hijacked","adv","propagationStopped","onclick","deviceIsWindowsPhone","deviceIsIOS","deviceIsIOS4","deviceIsIOSWithBadTarget","deviceIsBlackBerry10","needsClick","needsFocus","readOnly","sendClick","initMouseEvent","determineEventType","forwardedTouchEvent","setSelectionRange","updateScrollParent","fastClickScrollParent","fastClickLastScrollTop","getTargetElementFromEventTarget","eventTarget","TEXT_NODE","getSelection","rangeCount","isCollapsed","lastClickTime","touchHasMoved","findControl","labelElement","control","htmlFor","forElement","targetTagName","cancelNextClick","elementFromPoint","permitted","metaViewport","chromeVersion","blackberryVersion","ontouchstart","scrollWidth","msTouchAction","touchAction","attach","OFI","propRegex","testImg","Image","supportsObjectFit","supportsObjectPosition","supportsOFI","supportsCurrentSrc","currentSrc","nativeGetAttribute","nativeSetAttribute","autoModeEnabled","setPlaceholder","placeholder","onImageReady","naturalWidth","fixOne","fontFamily","getStyle","ofi","skipTest","srcset","naturalHeight","descriptors","ss","keepSrcUsable","picturefill","pf","evaled","fillImg","reselect","curSrc","polyfillCurrentSrc","backgroundImage","backgroundPosition","backgroundRepeat","backgroundOrigin","backgroundSize","imgs","startAutoMode","watchMQ","getOfiImageMaybe","HTMLImageElement","hijackAttributes","Canvas","cls","pixelRatio","plot","browser","getPixelRatio","resize","SVGContainer","SVG","_textCache","updateTransforms","transforms","baseVal","appendItem","layerKey","getSVGLayer","layerCache","styleKey","styleCache","positions","rendered","measured","svgElement","pointerEvents","createElementNS","getTextInfo","angle","textStyle","info","generateKey","addTspanElements","textNode","setAttributeNS","elementRect","getBBox","addText","halign","valign","tspan","lines","removeText","htmlYCoord","Flot","defaultTickGenerator","saturated","saturate","floorInBase","tickSize","NaN","MAX_VALUE","multiplyAdd","defaultTickFormatter","oldTickDecimals","tickDecimals","expRepTickFormatter","factor","formatted","decimal","decimalPrecision","expPosition","exponentValue","tenExponent","roundWith","updatedPrecision","recomputePrecision","log10Value","LOG10E","newPrecision","Plot","data_","options_","plugins","series","colors","xaxis","tickColor","inverseTransform","autoScaleMargin","autoScale","windowSize","growOnly","showTickLabels","labelHeight","reserveSpace","tickLength","showMinorTicks","showTicks","gridLines","alignTicksWithAxis","minTickSize","below","above","boxPosition","centerX","centerY","yaxis","xaxes","yaxes","points","symbol","steps","horizontal","barWidth","align","zero","shadowSize","highlightColor","grid","aboveData","backgroundColor","borderColor","labelMargin","axisMargin","borderWidth","minBorderMargin","markings","markingsColor","markingsLineWidth","clickable","hoverable","autoHighlight","mouseActiveRadius","interaction","redrawOverlayInterval","surface","overlay","eventHolder","octx","plotOffset","plotWidth","plotHeight","processOptions","processRawData","processDatapoints","processOffset","setupGrid","adjustSeriesDataRange","setRange","drawSeries","drawAxis","findNearbyItems","axisReserveSpace","bindEvents","drawOverlay","shutdown","eventManager","redrawTimeout","getPlaceholder","getSurface","getEventHolder","getPlotOffset","getAxes","getXAxes","getYAxes","c2p","used","x1","y1","p2c","getOptions","triggerRedrawOverlay","pointOffset","point","axisNumber","executeHooks","clearTextCache","autoScaleAxis","computeRangeForDataSeries","force","isValid","datapoints","ps","pointsize","topSentry","POSITIVE_INFINITY","bottomSentry","NEGATIVE_INFINITY","xmin","ymin","xmax","ymax","f","computeRange","useAbsoluteBarWidth","xValues","minDistance","onlyUnique","_j","computeBarWidth","findNearbyItem","mouseX","mouseY","seriesFilter","computeDistance","findNearbyInterpolationPoint","posX","posY","dist","dx","dy","smallestDistance","comparer","x2","p1x","p1y","p2x","p2y","datapoint","leftPoint","rightPoint","seriesIndex","computeValuePrecision","computeTickSize","addEventHandler","eventList","eventData","MINOR_TICKS_COUNT_CONSTANT","uiConstants","TICK_LENGTH_CONSTANT","oldseries","parseData","neededColors","maxIndex","sc","colorPool","colorPoolSize","definedColors","colori","getOrCreateAxis","fillInSeriesOptions","prevSeries","updateAxis","datamin","datamax","reusePoints","allAxes","required","nullify","every","coord","axes","setTransformationHelpers","it","tp","allocateAxisBoxFirstPhase","lw","lh","isXAxis","innermost","found","alignAxisWithGrid","showGrid","axisOpts","setupTickFormatter","autoScaledMin","autoScaledMax","allocatedAxes","noTicks","fixupNumberOfTicks","getAxisTickSize","tickGenerator","otherAxis","niceTicks","extraDec","ts","setupTickGeneration","oticks","newTick","setMajorTicks","anyDataInSeries","snapRangeToTicks","associatedSeries","notAllBarSeries","isValidEndpointTick","setEndpointTicks","showMajorTickLabels","showEndpointsTickLabels","legacyStyles","measureTickLabels","minMargin","margins","adjustLayoutForThingsStickingOut","allocateAxisBoxSecondPhase","newLabelBox","nullBox","labelBoxes","overlapping","x11","y11","x12","y12","x21","y21","x22","y22","overlapsOtherLabels","previousLabelBoxes","labelBox","drawAxisLabel","widenedMinMax","minimum","maximum","widen","wmin","widenMinMax","dec","norm","magn","ticksOption","canvas1","canvas2","point1","point2","getEndpointPrecision","getColorOrGradient","drawGrid","extractRange","ranges","findEdges","alignPosition","drawTickBar","edges","xoff","yoff","drawTickMarks","minorTicks","minorTicksNr","xminor","yminor","v1","drawGridLines","bw","xrange","yrange","xequal","yequal","subPixel","drawMarkings","bc","strokeRect","drawBorder","drawSeriesLines","drawSymbol","drawSeriesBars","drawSeriesPoints","foundItems","foundPoint","findNearbyPoint","dataIndex","foundIndex","findNearbyBar","itemDistance","findItems","maxDistance","mx","my","maxx","maxy","barLeft","barRight","fillTowards","defaultBottom","spec","defaultColor","gradient","createLinearGradient","co","brightness","addColorStop","initPlugins","existing","setupCanvases","axisOptions","axisCount","fontSize","fontSizeDefault","fontDefaults","parseOptions","linearTickGenerator","_forEach","_map","_forIn","_extend","_omit","isGoogleMapsRegistered","google","maps","nativeMethods","coordsToLatLngs","coords","useGeoJSON","firstCoordinate","secondCoordinate","LatLng","buildContextMenuContent","gmaps","rightClickEvent","contextMenuItems","controlOptions","contextMenu","contextMenuElement","_id","contextMenuItem","clearListeners","addDomListenerOnce","assignMenuItemAction","absolutePosition","offsetLeft","findAbsolutePosition","pixel","controlKey","hideContextMenu","setupListener","listener","addListener","mapEvent","GMaps","mapOptions","hidingContextMenuEvents","notHidingContextMenuEvents","containerIdentifier","zoom","mapType","MapTypeId","mapCenter","lat","lng","markerClustererFunction","markerClusterer","zoomControl","zoomControlOptions","panControl","mapTypeControl","scaleControl","streetViewControl","overviewMapControl","mapBaseOptions","mapTypeId","mapControlsOptions","ZoomControlStyle","ControlPosition","controls","overlays","layers","singleLayers","markers","polylines","routes","polygons","infoWindow","overlayElement","overlayEl","registeredEvents","visualRefresh","enableNewStyle","disableDefaultUI","Map","rightclick","buildContextMenu","gmapsPrototype","fitZoom","latLngs","marker","getPosition","fitLatLngBounds","bounds","LatLngBounds","latLng","isEmpty","fitBounds","setCenter","panTo","getElement","zoomIn","getZoom","setZoom","zoomOut","OverlayView","setMap","projection","getProjection","fromLatLngToContainerPixel","getContextMenu","setContextMenu","contextMenuControlType","contextMenuOptions","listStyle","boxShadow","addDomListener","mouseOutEvent","arrayToLatLng","coordinate","isGoogleLatLng","looksLikeMultiDimensionalArray","createForEach","fromRight","keysFunc","iterable","reIsHostCtor","reIsNative","keysIn","propsLength","allowIndexes","eachFunc","bindCallback","arrayFunc","arrayMap","baseCallback","baseMap","baseMatches","baseMatchesProperty","baseIsMatch","getMatchData","matchData","noCustomizer","objValue","srcValue","equalArrays","equalByTag","equalObjects","isTypedArray","argsTag","arrayTag","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","arraySome","arrLength","othLength","arrValue","othValue","predicate","objProps","objLength","skipCtor","objCtor","othCtor","typedArrayTags","isStrictComparable","pairs","baseGet","baseSlice","isKey","toPath","isCommon","basePropertyDeep","forIn","createForIn","objectFunc","assignWith","baseAssign","createAssigner","baseCopy","isIterateeCall","restParam","assigner","sources","guard","baseDifference","baseFlatten","pickByArray","pickByCallback","omit","baseIndexOf","cacheIndexOf","valuesLength","outer","valuesIndex","indexOfNaN","Set","nativeCreate","SetCache","cachePush","arrayPush","isDeep","isStrict","baseForIn","transEndEventNames","WebkitTransition","MozTransition","OTransition","transitionEnd","isIphone","OffCanvas","$calcClone","calcClone","recalc","modal","disablescrolling","disableScrolling","setWidth","calcPlacement","vertical","ab","opposite","getCanvasElements","fixed_elements","bodyWidth","enableScrolling","hideOthers","toggleBackdrop","doHide","$clones","$menu","offcanvas","$body","doAnimate","$backdrop","$canvas","Rowlink","MouseEvent","rowlink","appName","Fileinput","$input","$hidden","$preview","exists","preview","hiddenVal","listen","clearName","change","verifySizes","maxSize","reader","re","$img","mh","pt","pb","bt","bb","exif","setImageTransform","readAsDataURL","$nameView","DataView","getImageExif","resetOrientation","getUint16","getUint32","little","tags","drawImage","toDataURL","inputClone","fileinput","apiParams","scaleColors","normalizeFunction","selectedRegions","selectedMarkers","mapObject","regionName","vectorMap","jvm","orgEvent","deltaX","deltaY","absDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaMode","pageHeight","lowestDelta","shouldAdjustOldDeltas","deltaFactor","nullLowestDeltaTimeout","nullLowestDelta","adjustOldDeltas","toFix","toBind","fixHooks","mouseHooks","mousewheel","onmousewheel","getLineHeight","getPageHeight","unmousewheel","inherits","child","parentClass","mixin","MIN_VALUE","whenImageLoaded","isImageUrl","searchElement","O","AbstractElement","applyAttr","AbstractCanvasElement","setSize","classPrefix","group","addPath","addCircle","addImage","addGroup","parentGroup","AbstractShapeElement","isHovered","isSelected","updateStyle","setStyle","mergeStyles","selectedHover","newStyles","SVGElement","svgns","getElementCtr","ctr","SVGGroupElement","SVGCanvasElement","defsElement","applyTransformParams","transX","transY","SVGShapeElement","patternEl","imageEl","images","imageCounter","SVGPathElement","SVGCircleElement","SVGImageElement","cx","cy","SVGTextElement","VMLElement","VMLInitialized","initializeVML","rvml","createStyleSheet","addRule","VMLGroupElement","coordorigin","VMLCanvasElement","coordsize","VMLShapeElement","fillElement","strokeElement","stroked","fillcolor","strokecolor","strokeweight","VMLPathElement","pathSvgToVml","matrix","ctrlx","ctrly","segment","VMLCircleElement","VectorCanvas","SVGAngle","impl","SimpleScale","getValue","OrdinalScale","getTicks","NumericScale","minValue","maxValue","setScale","setNormalizeFunction","setMin","setMax","clearMinValue","normalize","clearMaxValue","lengthes","fullLength","vectorLength","vectorSubtract","vectorToNum","vectorAdd","vectorMult","vector","vector1","vector2","extent","ColorScale","rgbToArray","numToRgb","arrayToRgb","ar","rgb","Legend","cssClass","legendCntVertical","legendCntHorizontal","sample","attribute","markerStyle","labelRender","DataSeries","scaleConstructor","setAttributes","setValues","cc","shape","Proj","degRad","radDeg","sgn","mill","tan","mill_inv","atan","exp","merc","merc_inv","aea","lambda0","fi1","fi2","fi","lambda","sin","C","theta","ro","ro0","aea_inv","xCoord","yCoord","asin","lcc","F","fi0","lcc_inv","MapObject","getLabelText","getLabelOffsets","setHovered","setSelected","Region","bbox","labelX","labelY","labelStyle","labelsGroup","updateLabelPosition","Marker","isImage","createShape","defaultParams","mapData","regions","regionsColors","regionsData","defaultWidth","defaultHeight","setBackgroundColor","onResize","updateSize","apiEvents","bindTouchEvents","DocumentTouch","bindContainerTouchEvents","MSGesture","bindContainerPointerEvents","bindContainerEvents","bindElementEvents","createTip","zoomButtons","bindZoomButtons","createRegions","createMarkers","focusOn","region","setFocus","setSelectedRegions","setSelectedMarkers","createSeries","baseTransX","baseTransY","baseScale","curBaseScale","applyTransform","maxTransX","maxTransY","minTransX","minTransY","repositionMarkers","repositionLabels","oldPageX","oldPageY","mouseDown","panOnDrag","mousedown","onContainerMouseUp","mouseup","zoomOnScroll","zoomStep","zoomOnScrollSpeed","touchStartScale","touchStartDistance","touchX","touchY","centerTouchX","centerTouchY","lastTouchesLength","handleTouchEvent","transXOld","transYOld","gesture","translationX","translationY","addPointer","mouseMoved","tipText","tipShowEvent","overEvent","tipWidth","tipHeight","regionsSelectable","markersSelectable","clearSelected","zoomAnimate","anchorX","anchorY","isCentered","scaleStart","scaleDiff","transXStart","transXDiff","transYStart","transYDiff","viewportChangeEvent","zoomMax","zoomMin","itemBbox","codes","latLngToPoint","getSelected","getSelectedRegions","getSelectedMarkers","clearSelectedRegions","clearSelectedMarkers","getMapObject","getRegionName","regionLabelsGroup","regionStyle","regionLabelStyle","markerConfig","markersArray","markersGroup","markerLabelsGroup","getMarkerPosition","markerLabelStyle","removeMarkers","addMarker","seriesData","addMarkers","removeAllMarkers","inset","proj","centralMeridian","getInsetForPoint","pointToLatLng","nx","ny","insets","cursor","onRegionTipShow","onRegionOver","onRegionOut","onRegionClick","onRegionSelected","onMarkerTipShow","onMarkerOver","onMarkerOut","onMarkerClick","onMarkerSelected","onViewportChange","MultiMap","maxLevel","main","multiMapLevel","addMap","defaultProjection","mapsLoaded","backButton","goBack","spinner","cnt","multimap","mapName","mapNameByCode","drillDownPromise","drillDown","downloadMap","mapUrlByCode","currentMap","focusPromise","downloadPromise","prevMap","multiMap","imageSrc","positionX","positionY","iosFix","androidFix","$mirror","mirrorContainer","$slider","aspectRatio","isSetup","sliders","isFresh","requestRender","bleed","overScrollFix","boxOffsetTop","boxOffsetLeft","boxOffsetBottom","winHeight","docHeight","imageWidth","imageHeight","offsetBaseTop","overScroll","mirrorTop","mirrorLeft","winWidth","docWidth","isBusy","configure","parallax","FLOW_CONTROL_KEYWORDS","COMMON_KEYWORDS","CPP_KEYWORDS","JAVA_KEYWORDS","CSHARP_KEYWORDS","JSCRIPT_KEYWORDS","PERL_KEYWORDS","PYTHON_KEYWORDS","RUBY_KEYWORDS","SH_KEYWORDS","C_TYPES","PR_STRING","PR_COMMENT","PR_TYPE","PR_LITERAL","PR_PUNCTUATION","PR_PLAIN","PR_ATTRIB_VALUE","appendDecorations","sourceNode","basePos","sourceCode","langHandler","out","job","langExtension","numberLines","spans","decorations","notWs","childContentWrapper","createSimpleLexer","shortcutStylePatterns","fallthroughStylePatterns","tokenizer","shortcuts","allPatterns","allRegexs","regexKeys","patternParts","shortcutChars","regex","regexs","capturedGroupIndex","needToFoldCase","ignoreCase","escapeCharToCodeUnit","decodeEscape","charsetPart","cc0","c1","encodeEscape","caseFoldCharset","charSet","charsetParts","consolidatedRanges","lastRange","allowAnywhereFoldCaseAndRenumberGroups","capturedGroups","groupIndex","decimalValue","ch0","rewritten","multiline","combinePrefixPatterns","nPatterns","decorate","ti","nTokens","isEmbedded","tokenStart","embeddedSource","embeddedSourceStart","embeddedSourceEnd","langHandlerForExtension","sourceDecorator","hc","regexLiterals","regexExcls","regexAny","REGEX_LITERAL","keywords","punctuation","decorateSource","startLineNum","isPreformatted","nocode","lineBreak","listItems","walk","firstLine","breakAfter","lineEndNode","copiedListItem","breakLeftOf","limit","rightSide","parentClone","langHandlerRegistry","registerLangHandler","fileExtensions","ext","extension","applyDecorator","chunks","opt_langExtension","sourceAndSpans","isIE8OrEarlier","decPos","newlineRe","sourceLength","nSpans","spanIndex","nDecorations","decorationIndex","startPos","startDec","oldDisplay","styledText","spanEnd","decEnd","recombineTagsAndDecorations","$prettyPrintOne","sourceCodeHtml","opt_numberLines","nl","$prettyPrint","opt_whenDone","opt_root","byTagName","tn","codeSegments","clock","langExtensionRe","prettyPrintRe","prettyPrintedRe","preformattedTagNameRe","codeRe","preCodeXmpRe","EMPTY","doWork","endTime","cs","preceder","previousSibling","nt","nested","preformatted","currentStyle","lineNums","PR","define","Prism","_self","uniqueId","manual","disableWorkerMessageHandler","util","encode","Token","alias","objId","deepClone","visited","getLanguage","defaultActivation","no","languages","redef","inside","grammar","newToken","DFS","propertyType","highlightAll","highlightAllUnder","env","highlightElement","language","insertHighlightedCode","highlightedCode","Worker","worker","onmessage","postMessage","immediateClose","highlight","tokenList","LinkedList","addAfter","matchGrammar","all","callbacks","matchedStr","startNode","rematch","patterns","cause","patternObj","lookbehind","greedy","lookbehindLength","flags","currentNode","reach","removeCount","lastIndex","matchStr","removeFrom","removeRange","newNode","aliases","highlightAutomaticallyCallback","WorkerGlobalScope","markup","includedCdataInside","def","mathml","svg","ssml","atom","rss","addInlined","clike","javascript","js","EXTENSIONS","STATUS_ATTR","STATUS_LOADING","STATUS_LOADED","SELECTOR","setLanguageClass","autoloader","loadLanguages","fileHighlight","logged","specific","general","Sparkline","ratio","tooltip","onmousemove","showTooltip","getY","drawDot","line","drawLine","globalAlpha","layerX","dotRadius","minmax","lineColor","startColor","endColor","maxColor","minColor","minMaxValue","maxMinValue","fillBelow","fillLighten","startLine","endLine","minLine","maxLine","bottomLine","topLine","averageLine","sparkline","pxHeight","bottomValue","topValue","dot","lineJoin","_handled","_value","_deferreds","setImmediate","race","_setImmediateFn","_setUnhandledRejectionFn","customElements","registerElement","A","uid_","takeRecords","nodes_","observer","removeTransientObservers","callback_","subtree","enqueue","records_","addedNodes","removedNodes","attributeName","attributeNamespace","oldValue","transientObservedNodes","JsMutationObserver","observe","ShadowDOMPolyfill","wrapIfNeeded","childList","characterData","attributeOldValue","attributeFilter","characterDataOldValue","SyntaxError","removeListeners","addListeners","disconnect","addListeners_","removeListeners_","addTransientObserver","handleEvent","relatedNode","attrChange","MutationEvent","ADDITION","prevValue","MutationObserver","_isPolyfilled","performance","webkitCancelAnimationFrame","mozCancelAnimationFrame","WebComponents","CustomElements","addModule","initializeModules","hasNative","useNative","register","HTMLImports","olderShadowRoot","IMPORT_LINK_TYPE","forDocumentTree","forSubtree","upgrade","__upgraded__","__attached","attachedCallback","detachedCallback","dom","URL","_URL","localName","DOCUMENT_FRAGMENT_NODE","E","groupEnd","__observer","baseURI","hasPolyfillMutations","hasThrottledAttached","createShadowRoot","watchShadow","__watched","upgradeDocumentTree","upgradeDocument","upgradeSubtree","upgradeAll","createdCallback","HTMLElement","getOwnPropertyNames","HTMLTemplateElement","getRegisteredDefinition","upgradeWithDefinition","implementPrototype","_polyfilled","attributeChangedCallback","ctor","__name","lifecycle","ancestry","registry","reservedTagList","readyTime","unwrapIfNeeded","__importsParsingHook","eager","Trix","VERSION","ZERO_WIDTH_SPACE","NON_BREAKING_SPACE","OBJECT_REPLACEMENT_CHARACTER","composesExistingText","forcesObjectResizing","supportsInputEvents","InputEvent","BasicObject","proxyMethod","toMethod","toProperty","optional","fromJSONString","fromJSON","hasSameConstructorAs","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","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","initialize","connect","initialized","connectedCallback","disconnectedCallback","_n2","Reflect","construct","setPrototypeOf","getDOMSelection","getDOMRange","getRangeAt","setDOMRange","removeAllRanges","addRange","selectionChangeObserver","startContainer","endContainer","dataTransferIsPlainText","dataTransferIsWritable","keyEventIsKeyboardCommand","platform","Hash","fromCommonAttributesOfObjects","getKeys","getKeysCommonToHash","ObjectGroup","objects","asTree","groupObjects","canBeGrouped","canBeGroupedWith","getObjects","getDepth","ObjectMap","ElementStore","trixStoreKey","Operation","isPerforming","performing","hasPerformed","performed","hasSucceeded","succeeded","hasFailed","getPromise","perform","release","ucs2String","ucs2Length","fromUCS2String","offsetToUCS2Offset","offsetFromUCS2Offset","codePointAt","fromCodePoint","attachFiles","bold","bullets","captionPlaceholder","heading1","indent","italic","numbers","outdent","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","inheritable","fontStyle","groupTagName","frozen","serializers","Document","fromHTML","toSerializableDocument","DocumentView","deserializers","serializeToContentType","deserializeFromContentType","toolbar","getDefaultHTML","undoInterval","attachments","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","mutations","findSignificantMutations","elementDidMutate","getMutationSummary","mutationIsSignificant","nodeIsMutable","nodesModifiedByMutation","nodeIsSignificant","getTextMutationSummary","getTextChangesFromCharacterData","additions","deletions","getTextChangesFromChildList","textAdded","textDeleted","getMutationsByType","_t10","FileVerificationOperation","InputController","mutationObserver","handlerFor","editorWillSyncDocumentView","editorDidSyncDocumentView","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","draggingPoint","inputControllerDidReceiveDragOverPoint","dragend","inputControllerDidCancelDrag","drop","setLocationRangeFromPointRange","inputControllerWillMoveText","moveTextFromRange","insertDocument","cut","clipboardData","inputControllerWillCutText","deleteInDirection","paste","R","testClipboardData","clipboard","getPastedHTMLUsingHiddenElement","inputControllerWillPaste","insertHTML","inputControllerDidPaste","insertText","Text","textForStringWithAttributes","getAsFile","insertFile","compositionstart","getCompositionInput","compositionupdate","compositionend","beforeinput","backspace","insertLineBreak","tab","canIncreaseNestingLevel","increaseNestingLevel","selectionIsInCursorTarget","moveCursorInDirection","canDecreaseNestingLevel","decreaseNestingLevel","expandSelectionInDirection","alt","isEnded","getSelectedDocument","Files","inputController","isSignificant","insertPlaceholder","selectPlaceholder","forgetPlaceholder","canApplyToDocument","Level2InputController","scheduledRender","composing","reparse","scheduleRender","afterRender","withEvent","inputTypes","inputType","selectionContainsAttachments","dragging","ArrowLeft","shouldManageMovingCursorInDirection","ArrowRight","Backspace","shouldManageDeletingInDirection","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","startOffset","endOffset","AttachmentEditorController","attachmentPiece","didBlurCaption","didChangeCaption","didInputCaption","didKeyDownCaption","didClickActionButton","didClickToolbar","install","undos","makeElementMutable","addToolbar","installCaptionEditor","uninstall","savePendingCaption","didUninstallAttachmentEditor","pendingCaption","attachmentEditorDidRequestUpdatingAttributesForAttachment","attachmentEditorDidRequestRemovingAttributeForAttachment","trixMutable","getFilename","getFormattedFilesize","getCaption","editCaption","attachmentEditorDidRequestRemovalOfAttachment","attachmentEditorDidRequestDeselectingAttachment","uploadProgressDelegate","piece","createContentNodes","getClassName","getHref","getContent","createCaptionElement","isPending","getUploadProgress","getCaptionConfig","getType","trixAttachment","trixContentType","getContentType","trixId","trixAttributes","trixSerialize","findProgressElement","attachmentDidChangeUploadProgress","PreviewableAttachmentView","previewDelegate","updateAttributesForImage","getURL","getPreviewURL","getWidth","getHeight","attachmentDidChangeAttributes","PieceView","getAttributes","textConfig","createAttachmentNodes","createStringNodes","preserveSpaces","styleProperty","isLast","isFirst","followsWhitespace","_t11","TextView","getPieces","BlockView","block","getLastAttribute","shouldAddExtraNewlineElement","getBlockBreakPosition","elementStore","sync","shadowElement","getBlocks","isSynced","createDocumentFragmentForSync","didSync","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","toolbarDidShowDialog","willValidate","checkValidity","toolbarDidUpdateAttribute","toolbarDidRemoveAttribute","toolbarDidHideDialog","_t12","ImagePreloadOperation","_t13","Attachment","releaseFile","didChangeAttributes","previewablePattern","attachmentForFile","attributesForFile","setFile","filesize","preloadURL","getFilesize","getFile","preloadFile","releasePreloadedFile","uploadProgress","setUploadProgress","previewURL","preloadingURL","setPreviewURL","attachmentDidChangePreviewURL","preload","fileObjectURL","createObjectURL","revokeObjectURL","_t14","Piece","registerType","copyWithAttributes","copyWithAdditionalAttributes","copyWithoutAttribute","getAttributesHash","getCommonAttributes","pieceList","getPieceAtIndex","eachPiece","hasSameStringValueAsPiece","hasSameAttributesAsPiece","isBlockBreak","isSerializable","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","forbiddenProtocols","sanitizeElements","normalizeListElementNesting","getHTML","getBody","nextNode","sanitizeElement","previousElementSibling","HTMLParser","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","whiteSpace","getMarginOfDefaultBlockElement","getMarginOfBlockElementAtIndex","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","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","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","SelectionChangeObserver","selectionManagers","registerSelectionManager","unregisterSelectionManager","notifySelectionManagersOfSelectionChange","selectionDidChange","domRange","SelectionManager","didMouseDown","locationMapper","pointMapper","lockCount","currentLocationRange","lockedLocationRange","createDOMRangeFromLocationRange","updateCurrentLocationRange","getLocationAtPoint","unlock","clearSelection","selectionIsCollapsed","collapsed","domRangeWithinElement","pauseTemporarily","paused","locationRangeDidChange","EditorController","editorElement","compositionController","toolbarController","toolbarElement","editor","notifyEditorElement","handlingInput","updateCurrentActions","pasting","pastedRange","attachmentLocationRange","loadingSnapshot","isFocused","requestedLocationRange","compositionRevisionWhenLocationRangeRequested","renderedCompositionRevision","runEditorFilters","requestedRender","recordTypingUndoEntry","recordFormattingUndoEntry","locationRangeBeforeDrag","invokeAction","selectionFrozen","dialogName","canInvokeAction","actionIsExternal","actionName","getCurrentActions","currentActions","updateInputElement","setInputElementValue","documentChangedSinceLastRender","getUndoContext","getLocationContext","getTimeContext","queryCommandSupported","execCommand","inputElement","editorController","registerResetListener","unregisterResetListener","resetListener","resetBubbled","Timeout","clearFn","_clearFn","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","clearImmediate","registerImmediate","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","nextTick","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","MessageChannel","port1","port2","task","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","runClearTimeout","Item","argv","versions","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","KisoThemes","jsLibs","jsLibsArray","hookOnPageLoad","jsLibIsActive","jsLibName","getRootCssVariable","varName","getCssVariable","immediate","later","callNow","initFastclick","Modernizr","initMetisMenu","metisMenu","initBootstrap","popover","getSideNavHeight","initSidenav","sideNavTrackColor","sideNavContainer","mouseover","$win","$bar","barTop","processScroll","initForms","initBootstrapSwitch","data_on_label","data_off_label","initFormSheets","attemptCount","intervalId","hideLabel","checkForChange","findLabel","showLabel","initGMaps","initVectorMap","initJasny","initFlot","initChartJS","initEasyPieChart","initPrettify","prettyPrint","initPrism","initClipboard","initCountdown","countDownTo","initParallax","lineCharts","chartLinesCon","Chart","datasets","pointBackgroundColor","pointBorderColor","pointHoverBackgroundColor","pointHoverBorderColor","roundChart","chart","hoverBackgroundColor","initChartJsDemo","defaultFontColor","zeroLineColor","beginAtZero","hoverRadius","tooltips","cornerRadius","initDashboardDemo","randomMetricGraphs","metricChartFillColor","metricChartFillColorAlt","metricChartBorderColor","chartLinesBarsRadarData","graph","isDetailGraph","monthNames","endDate","startDate","setDate","getDate","getMonth","graphData","pointRadius","maintainAspectRatio","responsive","scales","xAxes","drawOnChartArea","drawTicks","yAxes","dataGenerator","flotRealtime","initEasyPieChartDemo","initFlotDemo","dataEarnings","dataSales","dataSalesBefore","dataSalesAfter","dataMonths","dataMonthsBars","backgroundOpacity","flotLine","sorted","flotStacked","flotBars","pie","pieSeries","flotPie","makeGmap","defaultOpts","scrollwheel","disableDoubleClickZoom","zoomControlOpt","attrname","initGmapsDemo","dashboardGmap","long","heading","pitch","createPanorama","pov","createStreetview","overlayMap","DROP","polyMap","polygon","drawPolygon","strokeOpacity","strokeWeight","fillOpacity","makeJqvMap","initJqvDemoMaps","lineSparks","lineSpark","tooltipOffsetX","tooltipOffsetY","spotColor","minSpotColor","maxSpotColor","highlightSpotColor","highlightLineColor","spotRadius","tooltipPrefix","tooltipFormat","barSparks","barSpark","barSpacing","tooltipSuffix","enableTagOptions","pieSparks","pieSpark","sliceColors","highlightLighten","triSparks","triSpark","posBarColor","negBarColor","initSparklineDemo","INSPECT_MODE","ClipboardJS","removeHandlers","inspectables","$inspectable","rawHtml","componentNameRe","html_source","multi_parser","indent_size","indent_character","max_char","brace_style","unformatted","Parser","current_mode","parentcount","parent1","tag_type","token_text","last_token","last_text","token_type","single_token","extra_liners","in_array","get_content","input_char","space","line_char_count","indent_level","indent_string","get_contents_to","reg_match","reg_array","end_script","record_tag","retrieve_tag","temp_parent","get_tag","tag_start","tag_end","get_unformatted","print_newline","tag_index","tag_complete","tag_check","comment","unindent","output","delimiter","orig_tag","get_token","get_full_indent","level","printer","js_source","ignore","print_token","indent_char","tag_name","tag_extracted_from_last_output","_beautifier","js_beautify","css_beautify","indent_scripts","script_indent_level","indentation","_level","reindent","style_html","selectedText","isReadOnly","selectNodeContents","evtArr","evts","liveEvents","TinyEmitter","listenNode","nodeList","listenNodeList","listenSelector","_delegate","useCapture","listenerFn","__webpack_exports__","src_select","select_default","clipboard_action","ClipboardAction","resolveOptions","initSelection","emitter","selectFake","selectTarget","isRTL","removeFake","fakeHandlerCallback","fakeHandler","fakeElem","yPosition","copyText","handleResult","_action","_target","tiny_emitter","tiny_emitter_default","listen_default","clipboard_typeof","clipboard_createClass","clipboard_Clipboard","_Emitter","Clipboard","clipboard_classCallCheck","ReferenceError","_possibleConstructorReturn","listenClick","_inherits","defaultAction","defaultTarget","defaultText","clipboardAction","getAttributeValue","AttachmentUpload","directUploadUrl","directUploadDidComplete","sgid","attachable_sgid","createBlobUrl","signedId","blobUrlTemplate"],"mappings":"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","file":"js/application-a5aed74a21d9cb9ef8b4.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 = 37);\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*!\n * jQuery JavaScript Library v3.5.1\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2020-05-04T22:49Z\n */\n(function (global, factory) {\n \"use strict\";\n\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && _typeof(module.exports) === \"object\") {\n // For CommonJS and CommonJS-like environments where a proper `window`\n // is present, execute the factory and get jQuery.\n // For environments that do not have a `window` with a `document`\n // (such as Node.js), expose a factory as module.exports.\n // This accentuates the need for the creation of a real `window`.\n // e.g. var jQuery = require(\"jquery\")(window);\n // See ticket #14549 for more info.\n module.exports = global.document ? factory(global, true) : function (w) {\n if (!w.document) {\n throw new Error(\"jQuery requires a window with a document\");\n }\n\n return factory(w);\n };\n } else {\n factory(global);\n } // Pass this if window is not defined yet\n\n})(typeof window !== \"undefined\" ? window : this, function (window, noGlobal) {\n // Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n // throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n // arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n // enough that all such attempts are guarded in a try block.\n \"use strict\";\n\n var arr = [];\n var getProto = Object.getPrototypeOf;\n var _slice = arr.slice;\n var flat = arr.flat ? function (array) {\n return arr.flat.call(array);\n } : function (array) {\n return arr.concat.apply([], array);\n };\n var push = arr.push;\n var indexOf = arr.indexOf;\n var class2type = {};\n var toString = class2type.toString;\n var hasOwn = class2type.hasOwnProperty;\n var fnToString = hasOwn.toString;\n var ObjectFunctionString = fnToString.call(Object);\n var support = {};\n\n var isFunction = function isFunction(obj) {\n // Support: Chrome <=57, Firefox <=52\n // In some browsers, typeof returns \"function\" for HTML elements\n // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n // We don't want to classify *any* DOM node as a function.\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\";\n };\n\n var isWindow = function isWindow(obj) {\n return obj != null && obj === obj.window;\n };\n\n var document = window.document;\n var preservedScriptAttributes = {\n type: true,\n src: true,\n nonce: true,\n noModule: true\n };\n\n function DOMEval(code, node, doc) {\n doc = doc || document;\n var i,\n val,\n script = doc.createElement(\"script\");\n script.text = code;\n\n if (node) {\n for (i in preservedScriptAttributes) {\n // Support: Firefox 64+, Edge 18+\n // Some browsers don't support the \"nonce\" property on scripts.\n // On the other hand, just using `getAttribute` is not enough as\n // the `nonce` attribute is reset to an empty string whenever it\n // becomes browsing-context connected.\n // See https://github.com/whatwg/html/issues/2369\n // See https://html.spec.whatwg.org/#nonce-attributes\n // The `node.getAttribute` check was added for the sake of\n // `jQuery.globalEval` so that it can fake a nonce-containing node\n // via an object.\n val = node[i] || node.getAttribute && node.getAttribute(i);\n\n if (val) {\n script.setAttribute(i, val);\n }\n }\n }\n\n doc.head.appendChild(script).parentNode.removeChild(script);\n }\n\n function toType(obj) {\n if (obj == null) {\n return obj + \"\";\n } // Support: Android <=2.3 only (functionish RegExp)\n\n\n return _typeof(obj) === \"object\" || typeof obj === \"function\" ? class2type[toString.call(obj)] || \"object\" : _typeof(obj);\n }\n /* global Symbol */\n // Defining this global in .eslintrc.json would create a danger of using the global\n // unguarded in another place, it seems safer to define global only for this module\n\n\n var version = \"3.5.1\",\n // Define a local copy of jQuery\n jQuery = function jQuery(selector, context) {\n // The jQuery object is actually just the init constructor 'enhanced'\n // Need init if jQuery is called (just allow error to be thrown if not included)\n return new jQuery.fn.init(selector, context);\n };\n\n jQuery.fn = jQuery.prototype = {\n // The current version of jQuery being used\n jquery: version,\n constructor: jQuery,\n // The default length of a jQuery object is 0\n length: 0,\n toArray: function toArray() {\n return _slice.call(this);\n },\n // Get the Nth element in the matched element set OR\n // Get the whole matched element set as a clean array\n get: function get(num) {\n // Return all the elements in a clean array\n if (num == null) {\n return _slice.call(this);\n } // Return just the one element from the set\n\n\n return num < 0 ? this[num + this.length] : this[num];\n },\n // Take an array of elements and push it onto the stack\n // (returning the new matched element set)\n pushStack: function pushStack(elems) {\n // Build a new jQuery matched element set\n var ret = jQuery.merge(this.constructor(), elems); // Add the old object onto the stack (as a reference)\n\n ret.prevObject = this; // Return the newly-formed element set\n\n return ret;\n },\n // Execute a callback for every element in the matched set.\n each: function each(callback) {\n return jQuery.each(this, callback);\n },\n map: function map(callback) {\n return this.pushStack(jQuery.map(this, function (elem, i) {\n return callback.call(elem, i, elem);\n }));\n },\n slice: function slice() {\n return this.pushStack(_slice.apply(this, arguments));\n },\n first: function first() {\n return this.eq(0);\n },\n last: function last() {\n return this.eq(-1);\n },\n even: function even() {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return (i + 1) % 2;\n }));\n },\n odd: function odd() {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return i % 2;\n }));\n },\n eq: function eq(i) {\n var len = this.length,\n j = +i + (i < 0 ? len : 0);\n return this.pushStack(j >= 0 && j < len ? [this[j]] : []);\n },\n end: function end() {\n return this.prevObject || this.constructor();\n },\n // For internal use only.\n // Behaves like an Array's method, not like a jQuery method.\n push: push,\n sort: arr.sort,\n splice: arr.splice\n };\n\n jQuery.extend = jQuery.fn.extend = function () {\n var options,\n name,\n src,\n copy,\n copyIsArray,\n clone,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length,\n deep = false; // Handle a deep copy situation\n\n if (typeof target === \"boolean\") {\n deep = target; // Skip the boolean and the target\n\n target = arguments[i] || {};\n i++;\n } // Handle case when target is a string or something (possible in deep copy)\n\n\n if (_typeof(target) !== \"object\" && !isFunction(target)) {\n target = {};\n } // Extend jQuery itself if only one argument is passed\n\n\n if (i === length) {\n target = this;\n i--;\n }\n\n for (; i < length; i++) {\n // Only deal with non-null/undefined values\n if ((options = arguments[i]) != null) {\n // Extend the base object\n for (name in options) {\n copy = options[name]; // Prevent Object.prototype pollution\n // Prevent never-ending loop\n\n if (name === \"__proto__\" || target === copy) {\n continue;\n } // Recurse if we're merging plain objects or arrays\n\n\n if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) {\n src = target[name]; // Ensure proper type for the source value\n\n if (copyIsArray && !Array.isArray(src)) {\n clone = [];\n } else if (!copyIsArray && !jQuery.isPlainObject(src)) {\n clone = {};\n } else {\n clone = src;\n }\n\n copyIsArray = false; // Never move original objects, clone them\n\n target[name] = jQuery.extend(deep, clone, copy); // Don't bring in undefined values\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n } // Return the modified object\n\n\n return target;\n };\n\n jQuery.extend({\n // Unique for each copy of jQuery on the page\n expando: \"jQuery\" + (version + Math.random()).replace(/\\D/g, \"\"),\n // Assume jQuery is ready without the ready module\n isReady: true,\n error: function error(msg) {\n throw new Error(msg);\n },\n noop: function noop() {},\n isPlainObject: function isPlainObject(obj) {\n var proto, Ctor; // Detect obvious negatives\n // Use toString instead of jQuery.type to catch host objects\n\n if (!obj || toString.call(obj) !== \"[object Object]\") {\n return false;\n }\n\n proto = getProto(obj); // Objects with no prototype (e.g., `Object.create( null )`) are plain\n\n if (!proto) {\n return true;\n } // Objects with prototype are plain iff they were constructed by a global Object function\n\n\n Ctor = hasOwn.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && fnToString.call(Ctor) === ObjectFunctionString;\n },\n isEmptyObject: function isEmptyObject(obj) {\n var name;\n\n for (name in obj) {\n return false;\n }\n\n return true;\n },\n // Evaluates a script in a provided context; falls back to the global one\n // if not specified.\n globalEval: function globalEval(code, options, doc) {\n DOMEval(code, {\n nonce: options && options.nonce\n }, doc);\n },\n each: function each(obj, callback) {\n var length,\n i = 0;\n\n if (isArrayLike(obj)) {\n length = obj.length;\n\n for (; i < length; i++) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n } else {\n for (i in obj) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n }\n\n return obj;\n },\n // results is for internal usage only\n makeArray: function makeArray(arr, results) {\n var ret = results || [];\n\n if (arr != null) {\n if (isArrayLike(Object(arr))) {\n jQuery.merge(ret, typeof arr === \"string\" ? [arr] : arr);\n } else {\n push.call(ret, arr);\n }\n }\n\n return ret;\n },\n inArray: function inArray(elem, arr, i) {\n return arr == null ? -1 : indexOf.call(arr, elem, i);\n },\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n merge: function merge(first, second) {\n var len = +second.length,\n j = 0,\n i = first.length;\n\n for (; j < len; j++) {\n first[i++] = second[j];\n }\n\n first.length = i;\n return first;\n },\n grep: function grep(elems, callback, invert) {\n var callbackInverse,\n matches = [],\n i = 0,\n length = elems.length,\n callbackExpect = !invert; // Go through the array, only saving the items\n // that pass the validator function\n\n for (; i < length; i++) {\n callbackInverse = !callback(elems[i], i);\n\n if (callbackInverse !== callbackExpect) {\n matches.push(elems[i]);\n }\n }\n\n return matches;\n },\n // arg is for internal usage only\n map: function map(elems, callback, arg) {\n var length,\n value,\n i = 0,\n ret = []; // Go through the array, translating each of the items to their new values\n\n if (isArrayLike(elems)) {\n length = elems.length;\n\n for (; i < length; i++) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n } // Go through every key on the object,\n\n } else {\n for (i in elems) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n }\n } // Flatten any nested arrays\n\n\n return flat(ret);\n },\n // A global GUID counter for objects\n guid: 1,\n // jQuery.support is not used in Core but other projects attach their\n // properties to it so it needs to exist.\n support: support\n });\n\n if (typeof Symbol === \"function\") {\n jQuery.fn[Symbol.iterator] = arr[Symbol.iterator];\n } // Populate the class2type map\n\n\n jQuery.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"), function (_i, name) {\n class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n });\n\n function isArrayLike(obj) {\n // Support: real iOS 8.2 only (not reproducible in simulator)\n // `in` check used to prevent JIT error (gh-2145)\n // hasOwn isn't used here due to false negatives\n // regarding Nodelist length in IE\n var length = !!obj && \"length\" in obj && obj.length,\n type = toType(obj);\n\n if (isFunction(obj) || isWindow(obj)) {\n return false;\n }\n\n return type === \"array\" || length === 0 || typeof length === \"number\" && length > 0 && length - 1 in obj;\n }\n\n var Sizzle =\n /*!\n * Sizzle CSS Selector Engine v2.3.5\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2020-03-14\n */\n function (window) {\n var i,\n support,\n Expr,\n getText,\n isXML,\n tokenize,\n compile,\n select,\n outermostContext,\n sortInput,\n hasDuplicate,\n // Local document vars\n setDocument,\n document,\n docElem,\n documentIsHTML,\n rbuggyQSA,\n rbuggyMatches,\n matches,\n contains,\n // Instance-specific data\n expando = \"sizzle\" + 1 * new Date(),\n preferredDoc = window.document,\n dirruns = 0,\n done = 0,\n classCache = createCache(),\n tokenCache = createCache(),\n compilerCache = createCache(),\n nonnativeSelectorCache = createCache(),\n sortOrder = function sortOrder(a, b) {\n if (a === b) {\n hasDuplicate = true;\n }\n\n return 0;\n },\n // Instance methods\n hasOwn = {}.hasOwnProperty,\n arr = [],\n pop = arr.pop,\n pushNative = arr.push,\n push = arr.push,\n slice = arr.slice,\n // Use a stripped-down indexOf as it's faster than native\n // https://jsperf.com/thor-indexof-vs-for/5\n indexOf = function indexOf(list, elem) {\n var i = 0,\n len = list.length;\n\n for (; i < len; i++) {\n if (list[i] === elem) {\n return i;\n }\n }\n\n return -1;\n },\n booleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" + \"ismap|loop|multiple|open|readonly|required|scoped\",\n // Regular expressions\n // http://www.w3.org/TR/css3-selectors/#whitespace\n whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n identifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n attributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace + // Operator (capture 2)\n \"*([*^$|!~]?=)\" + whitespace + // \"Attribute values must be CSS identifiers [capture 5]\n // or strings [capture 3 or capture 4]\"\n \"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace + \"*\\\\]\",\n pseudos = \":(\" + identifier + \")(?:\\\\((\" + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n // 1. quoted (capture 3; capture 4 or capture 5)\n \"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" + // 2. simple (capture 6)\n \"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" + // 3. anything else (capture 2)\n \".*\" + \")\\\\)|)\",\n // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n rwhitespace = new RegExp(whitespace + \"+\", \"g\"),\n rtrim = new RegExp(\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\"),\n rcomma = new RegExp(\"^\" + whitespace + \"*,\" + whitespace + \"*\"),\n rcombinators = new RegExp(\"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\"),\n rdescend = new RegExp(whitespace + \"|>\"),\n rpseudo = new RegExp(pseudos),\n ridentifier = new RegExp(\"^\" + identifier + \"$\"),\n matchExpr = {\n \"ID\": new RegExp(\"^#(\" + identifier + \")\"),\n \"CLASS\": new RegExp(\"^\\\\.(\" + identifier + \")\"),\n \"TAG\": new RegExp(\"^(\" + identifier + \"|[*])\"),\n \"ATTR\": new RegExp(\"^\" + attributes),\n \"PSEUDO\": new RegExp(\"^\" + pseudos),\n \"CHILD\": new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\"),\n \"bool\": new RegExp(\"^(?:\" + booleans + \")$\", \"i\"),\n // For use in libraries implementing .is()\n // We use this for POS matching in `select`\n \"needsContext\": new RegExp(\"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\")\n },\n rhtml = /HTML$/i,\n rinputs = /^(?:input|select|textarea|button)$/i,\n rheader = /^h\\d$/i,\n rnative = /^[^{]+\\{\\s*\\[native \\w/,\n // Easily-parseable/retrievable ID or TAG or CLASS selectors\n rquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n rsibling = /[+~]/,\n // CSS escapes\n // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n runescape = new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\"),\n funescape = function funescape(escape, nonHex) {\n var high = \"0x\" + escape.slice(1) - 0x10000;\n return nonHex ? // Strip the backslash prefix from a non-hex escape sequence\n nonHex : // Replace a hexadecimal escape sequence with the encoded Unicode code point\n // Support: IE <=11+\n // For values outside the Basic Multilingual Plane (BMP), manually construct a\n // surrogate pair\n high < 0 ? String.fromCharCode(high + 0x10000) : String.fromCharCode(high >> 10 | 0xD800, high & 0x3FF | 0xDC00);\n },\n // CSS string/identifier serialization\n // https://drafts.csswg.org/cssom/#common-serializing-idioms\n rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n fcssescape = function fcssescape(ch, asCodePoint) {\n if (asCodePoint) {\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n if (ch === \"\\0\") {\n return \"\\uFFFD\";\n } // Control characters and (dependent upon position) numbers get escaped as code points\n\n\n return ch.slice(0, -1) + \"\\\\\" + ch.charCodeAt(ch.length - 1).toString(16) + \" \";\n } // Other potentially-special ASCII characters get backslash-escaped\n\n\n return \"\\\\\" + ch;\n },\n // Used for iframes\n // See setDocument()\n // Removing the function wrapper causes a \"Permission Denied\"\n // error in IE\n unloadHandler = function unloadHandler() {\n setDocument();\n },\n inDisabledFieldset = addCombinator(function (elem) {\n return elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n }, {\n dir: \"parentNode\",\n next: \"legend\"\n }); // Optimize for push.apply( _, NodeList )\n\n\n try {\n push.apply(arr = slice.call(preferredDoc.childNodes), preferredDoc.childNodes); // Support: Android<4.0\n // Detect silently failing push.apply\n // eslint-disable-next-line no-unused-expressions\n\n arr[preferredDoc.childNodes.length].nodeType;\n } catch (e) {\n push = {\n apply: arr.length ? // Leverage slice if possible\n function (target, els) {\n pushNative.apply(target, slice.call(els));\n } : // Support: IE<9\n // Otherwise append directly\n function (target, els) {\n var j = target.length,\n i = 0; // Can't trust NodeList.length\n\n while (target[j++] = els[i++]) {}\n\n target.length = j - 1;\n }\n };\n }\n\n function Sizzle(selector, context, results, seed) {\n var m,\n i,\n elem,\n nid,\n match,\n groups,\n newSelector,\n newContext = context && context.ownerDocument,\n // nodeType defaults to 9, since context defaults to document\n nodeType = context ? context.nodeType : 9;\n results = results || []; // Return early from calls with invalid selector or context\n\n if (typeof selector !== \"string\" || !selector || nodeType !== 1 && nodeType !== 9 && nodeType !== 11) {\n return results;\n } // Try to shortcut find operations (as opposed to filters) in HTML documents\n\n\n if (!seed) {\n setDocument(context);\n context = context || document;\n\n if (documentIsHTML) {\n // If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n // (excepting DocumentFragment context, where the methods don't exist)\n if (nodeType !== 11 && (match = rquickExpr.exec(selector))) {\n // ID selector\n if (m = match[1]) {\n // Document context\n if (nodeType === 9) {\n if (elem = context.getElementById(m)) {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (elem.id === m) {\n results.push(elem);\n return results;\n }\n } else {\n return results;\n } // Element context\n\n } else {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (newContext && (elem = newContext.getElementById(m)) && contains(context, elem) && elem.id === m) {\n results.push(elem);\n return results;\n }\n } // Type selector\n\n } else if (match[2]) {\n push.apply(results, context.getElementsByTagName(selector));\n return results; // Class selector\n } else if ((m = match[3]) && support.getElementsByClassName && context.getElementsByClassName) {\n push.apply(results, context.getElementsByClassName(m));\n return results;\n }\n } // Take advantage of querySelectorAll\n\n\n if (support.qsa && !nonnativeSelectorCache[selector + \" \"] && (!rbuggyQSA || !rbuggyQSA.test(selector)) && ( // Support: IE 8 only\n // Exclude object elements\n nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\")) {\n newSelector = selector;\n newContext = context; // qSA considers elements outside a scoping root when evaluating child or\n // descendant combinators, which is not what we want.\n // In such cases, we work around the behavior by prefixing every selector in the\n // list with an ID selector referencing the scope context.\n // The technique has to be used as well when a leading combinator is used\n // as such selectors are not recognized by querySelectorAll.\n // Thanks to Andrew Dupont for this technique.\n\n if (nodeType === 1 && (rdescend.test(selector) || rcombinators.test(selector))) {\n // Expand context for sibling selectors\n newContext = rsibling.test(selector) && testContext(context.parentNode) || context; // We can use :scope instead of the ID hack if the browser\n // supports it & if we're not changing the context.\n\n if (newContext !== context || !support.scope) {\n // Capture the context ID, setting it first if necessary\n if (nid = context.getAttribute(\"id\")) {\n nid = nid.replace(rcssescape, fcssescape);\n } else {\n context.setAttribute(\"id\", nid = expando);\n }\n } // Prefix every selector in the list\n\n\n groups = tokenize(selector);\n i = groups.length;\n\n while (i--) {\n groups[i] = (nid ? \"#\" + nid : \":scope\") + \" \" + toSelector(groups[i]);\n }\n\n newSelector = groups.join(\",\");\n }\n\n try {\n push.apply(results, newContext.querySelectorAll(newSelector));\n return results;\n } catch (qsaError) {\n nonnativeSelectorCache(selector, true);\n } finally {\n if (nid === expando) {\n context.removeAttribute(\"id\");\n }\n }\n }\n }\n } // All others\n\n\n return select(selector.replace(rtrim, \"$1\"), context, results, seed);\n }\n /**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\n\n\n function createCache() {\n var keys = [];\n\n function cache(key, value) {\n // Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n if (keys.push(key + \" \") > Expr.cacheLength) {\n // Only keep the most recent entries\n delete cache[keys.shift()];\n }\n\n return cache[key + \" \"] = value;\n }\n\n return cache;\n }\n /**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\n\n\n function markFunction(fn) {\n fn[expando] = true;\n return fn;\n }\n /**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\n\n\n function assert(fn) {\n var el = document.createElement(\"fieldset\");\n\n try {\n return !!fn(el);\n } catch (e) {\n return false;\n } finally {\n // Remove from its parent by default\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n } // release memory in IE\n\n\n el = null;\n }\n }\n /**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\n\n\n function addHandle(attrs, handler) {\n var arr = attrs.split(\"|\"),\n i = arr.length;\n\n while (i--) {\n Expr.attrHandle[arr[i]] = handler;\n }\n }\n /**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\n\n\n function siblingCheck(a, b) {\n var cur = b && a,\n diff = cur && a.nodeType === 1 && b.nodeType === 1 && a.sourceIndex - b.sourceIndex; // Use IE sourceIndex if available on both nodes\n\n if (diff) {\n return diff;\n } // Check if b follows a\n\n\n if (cur) {\n while (cur = cur.nextSibling) {\n if (cur === b) {\n return -1;\n }\n }\n }\n\n return a ? 1 : -1;\n }\n /**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\n\n\n function createInputPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === type;\n };\n }\n /**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\n\n\n function createButtonPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return (name === \"input\" || name === \"button\") && elem.type === type;\n };\n }\n /**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\n\n\n function createDisabledPseudo(disabled) {\n // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n return function (elem) {\n // Only certain elements can match :enabled or :disabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n if (\"form\" in elem) {\n // Check for inherited disabledness on relevant non-disabled elements:\n // * listed form-associated elements in a disabled fieldset\n // https://html.spec.whatwg.org/multipage/forms.html#category-listed\n // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n // * option elements in a disabled optgroup\n // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n // All such elements have a \"form\" property.\n if (elem.parentNode && elem.disabled === false) {\n // Option elements defer to a parent optgroup if present\n if (\"label\" in elem) {\n if (\"label\" in elem.parentNode) {\n return elem.parentNode.disabled === disabled;\n } else {\n return elem.disabled === disabled;\n }\n } // Support: IE 6 - 11\n // Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\n\n return elem.isDisabled === disabled || // Where there is no isDisabled, check manually\n\n /* jshint -W018 */\n elem.isDisabled !== !disabled && inDisabledFieldset(elem) === disabled;\n }\n\n return elem.disabled === disabled; // Try to winnow out elements that can't be disabled before trusting the disabled property.\n // Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n // even exist on them, let alone have a boolean value.\n } else if (\"label\" in elem) {\n return elem.disabled === disabled;\n } // Remaining elements are neither :enabled nor :disabled\n\n\n return false;\n };\n }\n /**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\n\n\n function createPositionalPseudo(fn) {\n return markFunction(function (argument) {\n argument = +argument;\n return markFunction(function (seed, matches) {\n var j,\n matchIndexes = fn([], seed.length, argument),\n i = matchIndexes.length; // Match elements found at the specified indexes\n\n while (i--) {\n if (seed[j = matchIndexes[i]]) {\n seed[j] = !(matches[j] = seed[j]);\n }\n }\n });\n });\n }\n /**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\n\n\n function testContext(context) {\n return context && typeof context.getElementsByTagName !== \"undefined\" && context;\n } // Expose support vars for convenience\n\n\n support = Sizzle.support = {};\n /**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\n\n isXML = Sizzle.isXML = function (elem) {\n var namespace = elem.namespaceURI,\n docElem = (elem.ownerDocument || elem).documentElement; // Support: IE <=8\n // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n // https://bugs.jquery.com/ticket/4833\n\n return !rhtml.test(namespace || docElem && docElem.nodeName || \"HTML\");\n };\n /**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\n\n\n setDocument = Sizzle.setDocument = function (node) {\n var hasCompare,\n subWindow,\n doc = node ? node.ownerDocument || node : preferredDoc; // Return early if doc is invalid or already selected\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (doc == document || doc.nodeType !== 9 || !doc.documentElement) {\n return document;\n } // Update global variables\n\n\n document = doc;\n docElem = document.documentElement;\n documentIsHTML = !isXML(document); // Support: IE 9 - 11+, Edge 12 - 18+\n // Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (preferredDoc != document && (subWindow = document.defaultView) && subWindow.top !== subWindow) {\n // Support: IE 11, Edge\n if (subWindow.addEventListener) {\n subWindow.addEventListener(\"unload\", unloadHandler, false); // Support: IE 9 - 10 only\n } else if (subWindow.attachEvent) {\n subWindow.attachEvent(\"onunload\", unloadHandler);\n }\n } // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n // Safari 4 - 5 only, Opera <=11.6 - 12.x only\n // IE/Edge & older browsers don't support the :scope pseudo-class.\n // Support: Safari 6.0 only\n // Safari 6.0 supports :scope but it's an alias of :root there.\n\n\n support.scope = assert(function (el) {\n docElem.appendChild(el).appendChild(document.createElement(\"div\"));\n return typeof el.querySelectorAll !== \"undefined\" && !el.querySelectorAll(\":scope fieldset div\").length;\n });\n /* Attributes\n ---------------------------------------------------------------------- */\n // Support: IE<8\n // Verify that getAttribute really returns attributes and not properties\n // (excepting IE8 booleans)\n\n support.attributes = assert(function (el) {\n el.className = \"i\";\n return !el.getAttribute(\"className\");\n });\n /* getElement(s)By*\n ---------------------------------------------------------------------- */\n // Check if getElementsByTagName(\"*\") returns only elements\n\n support.getElementsByTagName = assert(function (el) {\n el.appendChild(document.createComment(\"\"));\n return !el.getElementsByTagName(\"*\").length;\n }); // Support: IE<9\n\n support.getElementsByClassName = rnative.test(document.getElementsByClassName); // Support: IE<10\n // Check if getElementById returns elements by name\n // The broken getElementById methods don't pick up programmatically-set names,\n // so use a roundabout getElementsByName test\n\n support.getById = assert(function (el) {\n docElem.appendChild(el).id = expando;\n return !document.getElementsByName || !document.getElementsByName(expando).length;\n }); // ID filter and find\n\n if (support.getById) {\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n return elem.getAttribute(\"id\") === attrId;\n };\n };\n\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var elem = context.getElementById(id);\n return elem ? [elem] : [];\n }\n };\n } else {\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n var node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n return node && node.value === attrId;\n };\n }; // Support: IE 6 - 7 only\n // getElementById is not reliable as a find shortcut\n\n\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var node,\n i,\n elems,\n elem = context.getElementById(id);\n\n if (elem) {\n // Verify the id attribute\n node = elem.getAttributeNode(\"id\");\n\n if (node && node.value === id) {\n return [elem];\n } // Fall back on getElementsByName\n\n\n elems = context.getElementsByName(id);\n i = 0;\n\n while (elem = elems[i++]) {\n node = elem.getAttributeNode(\"id\");\n\n if (node && node.value === id) {\n return [elem];\n }\n }\n }\n\n return [];\n }\n };\n } // Tag\n\n\n Expr.find[\"TAG\"] = support.getElementsByTagName ? function (tag, context) {\n if (typeof context.getElementsByTagName !== \"undefined\") {\n return context.getElementsByTagName(tag); // DocumentFragment nodes don't have gEBTN\n } else if (support.qsa) {\n return context.querySelectorAll(tag);\n }\n } : function (tag, context) {\n var elem,\n tmp = [],\n i = 0,\n // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n results = context.getElementsByTagName(tag); // Filter out possible comments\n\n if (tag === \"*\") {\n while (elem = results[i++]) {\n if (elem.nodeType === 1) {\n tmp.push(elem);\n }\n }\n\n return tmp;\n }\n\n return results;\n }; // Class\n\n Expr.find[\"CLASS\"] = support.getElementsByClassName && function (className, context) {\n if (typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML) {\n return context.getElementsByClassName(className);\n }\n };\n /* QSA/matchesSelector\n ---------------------------------------------------------------------- */\n // QSA and matchesSelector support\n // matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\n\n rbuggyMatches = []; // qSa(:focus) reports false when true (Chrome 21)\n // We allow this because of a bug in IE8/9 that throws an error\n // whenever `document.activeElement` is accessed on an iframe\n // So, we allow :focus to pass through QSA all the time to avoid the IE error\n // See https://bugs.jquery.com/ticket/13378\n\n rbuggyQSA = [];\n\n if (support.qsa = rnative.test(document.querySelectorAll)) {\n // Build QSA regex\n // Regex strategy adopted from Diego Perini\n assert(function (el) {\n var input; // Select is set to empty string on purpose\n // This is to test IE's treatment of not explicitly\n // setting a boolean content attribute,\n // since its presence should be enough\n // https://bugs.jquery.com/ticket/12359\n\n docElem.appendChild(el).innerHTML = \"\" + \"\"; // Support: IE8, Opera 11-12.16\n // Nothing should be selected when empty strings follow ^= or $= or *=\n // The test attribute must be unknown in Opera but \"safe\" for WinRT\n // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\n if (el.querySelectorAll(\"[msallowcapture^='']\").length) {\n rbuggyQSA.push(\"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\");\n } // Support: IE8\n // Boolean attributes and \"value\" are not treated correctly\n\n\n if (!el.querySelectorAll(\"[selected]\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\");\n } // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\n\n if (!el.querySelectorAll(\"[id~=\" + expando + \"-]\").length) {\n rbuggyQSA.push(\"~=\");\n } // Support: IE 11+, Edge 15 - 18+\n // IE 11/Edge don't find elements on a `[name='']` query in some cases.\n // Adding a temporary attribute to the document before the selection works\n // around the issue.\n // Interestingly, IE 10 & older don't seem to have the issue.\n\n\n input = document.createElement(\"input\");\n input.setAttribute(\"name\", \"\");\n el.appendChild(input);\n\n if (!el.querySelectorAll(\"[name='']\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" + whitespace + \"*(?:''|\\\"\\\")\");\n } // Webkit/Opera - :checked should return selected option elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n // IE8 throws error here and will not see later tests\n\n\n if (!el.querySelectorAll(\":checked\").length) {\n rbuggyQSA.push(\":checked\");\n } // Support: Safari 8+, iOS 8+\n // https://bugs.webkit.org/show_bug.cgi?id=136851\n // In-page `selector#id sibling-combinator selector` fails\n\n\n if (!el.querySelectorAll(\"a#\" + expando + \"+*\").length) {\n rbuggyQSA.push(\".#.+[+~]\");\n } // Support: Firefox <=3.6 - 5 only\n // Old Firefox doesn't throw on a badly-escaped identifier.\n\n\n el.querySelectorAll(\"\\\\\\f\");\n rbuggyQSA.push(\"[\\\\r\\\\n\\\\f]\");\n });\n assert(function (el) {\n el.innerHTML = \"\" + \"\"; // Support: Windows 8 Native Apps\n // The type and name attributes are restricted during .innerHTML assignment\n\n var input = document.createElement(\"input\");\n input.setAttribute(\"type\", \"hidden\");\n el.appendChild(input).setAttribute(\"name\", \"D\"); // Support: IE8\n // Enforce case-sensitivity of name attribute\n\n if (el.querySelectorAll(\"[name=d]\").length) {\n rbuggyQSA.push(\"name\" + whitespace + \"*[*^$|!~]?=\");\n } // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n // IE8 throws error here and will not see later tests\n\n\n if (el.querySelectorAll(\":enabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n } // Support: IE9-11+\n // IE's :disabled selector does not pick up the children of disabled fieldsets\n\n\n docElem.appendChild(el).disabled = true;\n\n if (el.querySelectorAll(\":disabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n } // Support: Opera 10 - 11 only\n // Opera 10-11 does not throw on post-comma invalid pseudos\n\n\n el.querySelectorAll(\"*,:x\");\n rbuggyQSA.push(\",.*:\");\n });\n }\n\n if (support.matchesSelector = rnative.test(matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || docElem.msMatchesSelector)) {\n assert(function (el) {\n // Check to see if it's possible to do matchesSelector\n // on a disconnected node (IE 9)\n support.disconnectedMatch = matches.call(el, \"*\"); // This should fail with an exception\n // Gecko does not error, returns false instead\n\n matches.call(el, \"[s!='']:x\");\n rbuggyMatches.push(\"!=\", pseudos);\n });\n }\n\n rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join(\"|\"));\n rbuggyMatches = rbuggyMatches.length && new RegExp(rbuggyMatches.join(\"|\"));\n /* Contains\n ---------------------------------------------------------------------- */\n\n hasCompare = rnative.test(docElem.compareDocumentPosition); // Element contains another\n // Purposefully self-exclusive\n // As in, an element does not contain itself\n\n contains = hasCompare || rnative.test(docElem.contains) ? function (a, b) {\n var adown = a.nodeType === 9 ? a.documentElement : a,\n bup = b && b.parentNode;\n return a === bup || !!(bup && bup.nodeType === 1 && (adown.contains ? adown.contains(bup) : a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16));\n } : function (a, b) {\n if (b) {\n while (b = b.parentNode) {\n if (b === a) {\n return true;\n }\n }\n }\n\n return false;\n };\n /* Sorting\n ---------------------------------------------------------------------- */\n // Document order sorting\n\n sortOrder = hasCompare ? function (a, b) {\n // Flag for duplicate removal\n if (a === b) {\n hasDuplicate = true;\n return 0;\n } // Sort on method existence if only one input has compareDocumentPosition\n\n\n var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\n if (compare) {\n return compare;\n } // Calculate position if both inputs belong to the same document\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n\n compare = (a.ownerDocument || a) == (b.ownerDocument || b) ? a.compareDocumentPosition(b) : // Otherwise we know they are disconnected\n 1; // Disconnected nodes\n\n if (compare & 1 || !support.sortDetached && b.compareDocumentPosition(a) === compare) {\n // Choose the first element that is related to our preferred document\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (a == document || a.ownerDocument == preferredDoc && contains(preferredDoc, a)) {\n return -1;\n } // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n\n if (b == document || b.ownerDocument == preferredDoc && contains(preferredDoc, b)) {\n return 1;\n } // Maintain original order\n\n\n return sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0;\n }\n\n return compare & 4 ? -1 : 1;\n } : function (a, b) {\n // Exit early if the nodes are identical\n if (a === b) {\n hasDuplicate = true;\n return 0;\n }\n\n var cur,\n i = 0,\n aup = a.parentNode,\n bup = b.parentNode,\n ap = [a],\n bp = [b]; // Parentless nodes are either documents or disconnected\n\n if (!aup || !bup) {\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n\n /* eslint-disable eqeqeq */\n return a == document ? -1 : b == document ? 1 :\n /* eslint-enable eqeqeq */\n aup ? -1 : bup ? 1 : sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0; // If the nodes are siblings, we can do a quick check\n } else if (aup === bup) {\n return siblingCheck(a, b);\n } // Otherwise we need full lists of their ancestors for comparison\n\n\n cur = a;\n\n while (cur = cur.parentNode) {\n ap.unshift(cur);\n }\n\n cur = b;\n\n while (cur = cur.parentNode) {\n bp.unshift(cur);\n } // Walk down the tree looking for a discrepancy\n\n\n while (ap[i] === bp[i]) {\n i++;\n }\n\n return i ? // Do a sibling check if the nodes have a common ancestor\n siblingCheck(ap[i], bp[i]) : // Otherwise nodes in our document sort first\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n\n /* eslint-disable eqeqeq */\n ap[i] == preferredDoc ? -1 : bp[i] == preferredDoc ? 1 :\n /* eslint-enable eqeqeq */\n 0;\n };\n return document;\n };\n\n Sizzle.matches = function (expr, elements) {\n return Sizzle(expr, null, null, elements);\n };\n\n Sizzle.matchesSelector = function (elem, expr) {\n setDocument(elem);\n\n if (support.matchesSelector && documentIsHTML && !nonnativeSelectorCache[expr + \" \"] && (!rbuggyMatches || !rbuggyMatches.test(expr)) && (!rbuggyQSA || !rbuggyQSA.test(expr))) {\n try {\n var ret = matches.call(elem, expr); // IE 9's matchesSelector returns false on disconnected nodes\n\n if (ret || support.disconnectedMatch || // As well, disconnected nodes are said to be in a document\n // fragment in IE 9\n elem.document && elem.document.nodeType !== 11) {\n return ret;\n }\n } catch (e) {\n nonnativeSelectorCache(expr, true);\n }\n }\n\n return Sizzle(expr, document, null, [elem]).length > 0;\n };\n\n Sizzle.contains = function (context, elem) {\n // Set document vars if needed\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if ((context.ownerDocument || context) != document) {\n setDocument(context);\n }\n\n return contains(context, elem);\n };\n\n Sizzle.attr = function (elem, name) {\n // Set document vars if needed\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if ((elem.ownerDocument || elem) != document) {\n setDocument(elem);\n }\n\n var fn = Expr.attrHandle[name.toLowerCase()],\n // Don't get fooled by Object.prototype properties (jQuery #13807)\n val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? fn(elem, name, !documentIsHTML) : undefined;\n return val !== undefined ? val : support.attributes || !documentIsHTML ? elem.getAttribute(name) : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n };\n\n Sizzle.escape = function (sel) {\n return (sel + \"\").replace(rcssescape, fcssescape);\n };\n\n Sizzle.error = function (msg) {\n throw new Error(\"Syntax error, unrecognized expression: \" + msg);\n };\n /**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\n\n\n Sizzle.uniqueSort = function (results) {\n var elem,\n duplicates = [],\n j = 0,\n i = 0; // Unless we *know* we can detect duplicates, assume their presence\n\n hasDuplicate = !support.detectDuplicates;\n sortInput = !support.sortStable && results.slice(0);\n results.sort(sortOrder);\n\n if (hasDuplicate) {\n while (elem = results[i++]) {\n if (elem === results[i]) {\n j = duplicates.push(i);\n }\n }\n\n while (j--) {\n results.splice(duplicates[j], 1);\n }\n } // Clear input after sorting to release objects\n // See https://github.com/jquery/sizzle/pull/225\n\n\n sortInput = null;\n return results;\n };\n /**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\n\n\n getText = Sizzle.getText = function (elem) {\n var node,\n ret = \"\",\n i = 0,\n nodeType = elem.nodeType;\n\n if (!nodeType) {\n // If no nodeType, this is expected to be an array\n while (node = elem[i++]) {\n // Do not traverse comment nodes\n ret += getText(node);\n }\n } else if (nodeType === 1 || nodeType === 9 || nodeType === 11) {\n // Use textContent for elements\n // innerText usage removed for consistency of new lines (jQuery #11153)\n if (typeof elem.textContent === \"string\") {\n return elem.textContent;\n } else {\n // Traverse its children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n ret += getText(elem);\n }\n }\n } else if (nodeType === 3 || nodeType === 4) {\n return elem.nodeValue;\n } // Do not include comment or processing instruction nodes\n\n\n return ret;\n };\n\n Expr = Sizzle.selectors = {\n // Can be adjusted by the user\n cacheLength: 50,\n createPseudo: markFunction,\n match: matchExpr,\n attrHandle: {},\n find: {},\n relative: {\n \">\": {\n dir: \"parentNode\",\n first: true\n },\n \" \": {\n dir: \"parentNode\"\n },\n \"+\": {\n dir: \"previousSibling\",\n first: true\n },\n \"~\": {\n dir: \"previousSibling\"\n }\n },\n preFilter: {\n \"ATTR\": function ATTR(match) {\n match[1] = match[1].replace(runescape, funescape); // Move the given value to match[3] whether quoted or unquoted\n\n match[3] = (match[3] || match[4] || match[5] || \"\").replace(runescape, funescape);\n\n if (match[2] === \"~=\") {\n match[3] = \" \" + match[3] + \" \";\n }\n\n return match.slice(0, 4);\n },\n \"CHILD\": function CHILD(match) {\n /* matches from matchExpr[\"CHILD\"]\n \t1 type (only|nth|...)\n \t2 what (child|of-type)\n \t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n \t4 xn-component of xn+y argument ([+-]?\\d*n|)\n \t5 sign of xn-component\n \t6 x of xn-component\n \t7 sign of y-component\n \t8 y of y-component\n */\n match[1] = match[1].toLowerCase();\n\n if (match[1].slice(0, 3) === \"nth\") {\n // nth-* requires argument\n if (!match[3]) {\n Sizzle.error(match[0]);\n } // numeric x and y parameters for Expr.filter.CHILD\n // remember that false/true cast respectively to 0/1\n\n\n match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === \"even\" || match[3] === \"odd\"));\n match[5] = +(match[7] + match[8] || match[3] === \"odd\"); // other types prohibit arguments\n } else if (match[3]) {\n Sizzle.error(match[0]);\n }\n\n return match;\n },\n \"PSEUDO\": function PSEUDO(match) {\n var excess,\n unquoted = !match[6] && match[2];\n\n if (matchExpr[\"CHILD\"].test(match[0])) {\n return null;\n } // Accept quoted arguments as-is\n\n\n if (match[3]) {\n match[2] = match[4] || match[5] || \"\"; // Strip excess characters from unquoted arguments\n } else if (unquoted && rpseudo.test(unquoted) && ( // Get excess from tokenize (recursively)\n excess = tokenize(unquoted, true)) && ( // advance to the next closing parenthesis\n excess = unquoted.indexOf(\")\", unquoted.length - excess) - unquoted.length)) {\n // excess is a negative index\n match[0] = match[0].slice(0, excess);\n match[2] = unquoted.slice(0, excess);\n } // Return only captures needed by the pseudo filter method (type and argument)\n\n\n return match.slice(0, 3);\n }\n },\n filter: {\n \"TAG\": function TAG(nodeNameSelector) {\n var nodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase();\n return nodeNameSelector === \"*\" ? function () {\n return true;\n } : function (elem) {\n return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n };\n },\n \"CLASS\": function CLASS(className) {\n var pattern = classCache[className + \" \"];\n return pattern || (pattern = new RegExp(\"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\")) && classCache(className, function (elem) {\n return pattern.test(typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\");\n });\n },\n \"ATTR\": function ATTR(name, operator, check) {\n return function (elem) {\n var result = Sizzle.attr(elem, name);\n\n if (result == null) {\n return operator === \"!=\";\n }\n\n if (!operator) {\n return true;\n }\n\n result += \"\";\n /* eslint-disable max-len */\n\n return operator === \"=\" ? result === check : operator === \"!=\" ? result !== check : operator === \"^=\" ? check && result.indexOf(check) === 0 : operator === \"*=\" ? check && result.indexOf(check) > -1 : operator === \"$=\" ? check && result.slice(-check.length) === check : operator === \"~=\" ? (\" \" + result.replace(rwhitespace, \" \") + \" \").indexOf(check) > -1 : operator === \"|=\" ? result === check || result.slice(0, check.length + 1) === check + \"-\" : false;\n /* eslint-enable max-len */\n };\n },\n \"CHILD\": function CHILD(type, what, _argument, first, last) {\n var simple = type.slice(0, 3) !== \"nth\",\n forward = type.slice(-4) !== \"last\",\n ofType = what === \"of-type\";\n return first === 1 && last === 0 ? // Shortcut for :nth-*(n)\n function (elem) {\n return !!elem.parentNode;\n } : function (elem, _context, xml) {\n var cache,\n uniqueCache,\n outerCache,\n node,\n nodeIndex,\n start,\n dir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n parent = elem.parentNode,\n name = ofType && elem.nodeName.toLowerCase(),\n useCache = !xml && !ofType,\n diff = false;\n\n if (parent) {\n // :(first|last|only)-(child|of-type)\n if (simple) {\n while (dir) {\n node = elem;\n\n while (node = node[dir]) {\n if (ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) {\n return false;\n }\n } // Reverse direction for :only-* (if we haven't yet done so)\n\n\n start = dir = type === \"only\" && !start && \"nextSibling\";\n }\n\n return true;\n }\n\n start = [forward ? parent.firstChild : parent.lastChild]; // non-xml :nth-child(...) stores cache data on `parent`\n\n if (forward && useCache) {\n // Seek `elem` from a previously-cached index\n // ...in a gzip-friendly way\n node = parent;\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex && cache[2];\n node = nodeIndex && parent.childNodes[nodeIndex];\n\n while (node = ++nodeIndex && node && node[dir] || ( // Fallback to seeking `elem` from the start\n diff = nodeIndex = 0) || start.pop()) {\n // When found, cache indexes on `parent` and break\n if (node.nodeType === 1 && ++diff && node === elem) {\n uniqueCache[type] = [dirruns, nodeIndex, diff];\n break;\n }\n }\n } else {\n // Use previously-cached element index if available\n if (useCache) {\n // ...in a gzip-friendly way\n node = elem;\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex;\n } // xml :nth-child(...)\n // or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\n\n if (diff === false) {\n // Use the same loop as above to seek `elem` from the start\n while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) {\n if ((ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) && ++diff) {\n // Cache the index of each encountered element\n if (useCache) {\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n uniqueCache[type] = [dirruns, diff];\n }\n\n if (node === elem) {\n break;\n }\n }\n }\n }\n } // Incorporate the offset, then check against cycle size\n\n\n diff -= last;\n return diff === first || diff % first === 0 && diff / first >= 0;\n }\n };\n },\n \"PSEUDO\": function PSEUDO(pseudo, argument) {\n // pseudo-class names are case-insensitive\n // http://www.w3.org/TR/selectors/#pseudo-classes\n // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n // Remember that setFilters inherits from pseudos\n var args,\n fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || Sizzle.error(\"unsupported pseudo: \" + pseudo); // The user may use createPseudo to indicate that\n // arguments are needed to create the filter function\n // just as Sizzle does\n\n if (fn[expando]) {\n return fn(argument);\n } // But maintain support for old signatures\n\n\n if (fn.length > 1) {\n args = [pseudo, pseudo, \"\", argument];\n return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function (seed, matches) {\n var idx,\n matched = fn(seed, argument),\n i = matched.length;\n\n while (i--) {\n idx = indexOf(seed, matched[i]);\n seed[idx] = !(matches[idx] = matched[i]);\n }\n }) : function (elem) {\n return fn(elem, 0, args);\n };\n }\n\n return fn;\n }\n },\n pseudos: {\n // Potentially complex pseudos\n \"not\": markFunction(function (selector) {\n // Trim the selector passed to compile\n // to avoid treating leading and trailing\n // spaces as combinators\n var input = [],\n results = [],\n matcher = compile(selector.replace(rtrim, \"$1\"));\n return matcher[expando] ? markFunction(function (seed, matches, _context, xml) {\n var elem,\n unmatched = matcher(seed, null, xml, []),\n i = seed.length; // Match elements unmatched by `matcher`\n\n while (i--) {\n if (elem = unmatched[i]) {\n seed[i] = !(matches[i] = elem);\n }\n }\n }) : function (elem, _context, xml) {\n input[0] = elem;\n matcher(input, null, xml, results); // Don't keep the element (issue #299)\n\n input[0] = null;\n return !results.pop();\n };\n }),\n \"has\": markFunction(function (selector) {\n return function (elem) {\n return Sizzle(selector, elem).length > 0;\n };\n }),\n \"contains\": markFunction(function (text) {\n text = text.replace(runescape, funescape);\n return function (elem) {\n return (elem.textContent || getText(elem)).indexOf(text) > -1;\n };\n }),\n // \"Whether an element is represented by a :lang() selector\n // is based solely on the element's language value\n // being equal to the identifier C,\n // or beginning with the identifier C immediately followed by \"-\".\n // The matching of C against the element's language value is performed case-insensitively.\n // The identifier C does not have to be a valid language name.\"\n // http://www.w3.org/TR/selectors/#lang-pseudo\n \"lang\": markFunction(function (lang) {\n // lang value must be a valid identifier\n if (!ridentifier.test(lang || \"\")) {\n Sizzle.error(\"unsupported lang: \" + lang);\n }\n\n lang = lang.replace(runescape, funescape).toLowerCase();\n return function (elem) {\n var elemLang;\n\n do {\n if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) {\n elemLang = elemLang.toLowerCase();\n return elemLang === lang || elemLang.indexOf(lang + \"-\") === 0;\n }\n } while ((elem = elem.parentNode) && elem.nodeType === 1);\n\n return false;\n };\n }),\n // Miscellaneous\n \"target\": function target(elem) {\n var hash = window.location && window.location.hash;\n return hash && hash.slice(1) === elem.id;\n },\n \"root\": function root(elem) {\n return elem === docElem;\n },\n \"focus\": function focus(elem) {\n return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n },\n // Boolean properties\n \"enabled\": createDisabledPseudo(false),\n \"disabled\": createDisabledPseudo(true),\n \"checked\": function checked(elem) {\n // In CSS3, :checked should return both checked and selected elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n var nodeName = elem.nodeName.toLowerCase();\n return nodeName === \"input\" && !!elem.checked || nodeName === \"option\" && !!elem.selected;\n },\n \"selected\": function selected(elem) {\n // Accessing this property makes selected-by-default\n // options in Safari work properly\n if (elem.parentNode) {\n // eslint-disable-next-line no-unused-expressions\n elem.parentNode.selectedIndex;\n }\n\n return elem.selected === true;\n },\n // Contents\n \"empty\": function empty(elem) {\n // http://www.w3.org/TR/selectors/#empty-pseudo\n // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n // but not by others (comment: 8; processing instruction: 7; etc.)\n // nodeType < 6 works because attributes (2) do not appear as children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n if (elem.nodeType < 6) {\n return false;\n }\n }\n\n return true;\n },\n \"parent\": function parent(elem) {\n return !Expr.pseudos[\"empty\"](elem);\n },\n // Element/input types\n \"header\": function header(elem) {\n return rheader.test(elem.nodeName);\n },\n \"input\": function input(elem) {\n return rinputs.test(elem.nodeName);\n },\n \"button\": function button(elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === \"button\" || name === \"button\";\n },\n \"text\": function text(elem) {\n var attr;\n return elem.nodeName.toLowerCase() === \"input\" && elem.type === \"text\" && ( // Support: IE<8\n // New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\");\n },\n // Position-in-collection\n \"first\": createPositionalPseudo(function () {\n return [0];\n }),\n \"last\": createPositionalPseudo(function (_matchIndexes, length) {\n return [length - 1];\n }),\n \"eq\": createPositionalPseudo(function (_matchIndexes, length, argument) {\n return [argument < 0 ? argument + length : argument];\n }),\n \"even\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 0;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"odd\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 1;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"lt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument > length ? length : argument;\n\n for (; --i >= 0;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"gt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument;\n\n for (; ++i < length;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n })\n }\n };\n Expr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"]; // Add button/input type pseudos\n\n for (i in {\n radio: true,\n checkbox: true,\n file: true,\n password: true,\n image: true\n }) {\n Expr.pseudos[i] = createInputPseudo(i);\n }\n\n for (i in {\n submit: true,\n reset: true\n }) {\n Expr.pseudos[i] = createButtonPseudo(i);\n } // Easy API for creating new setFilters\n\n\n function setFilters() {}\n\n setFilters.prototype = Expr.filters = Expr.pseudos;\n Expr.setFilters = new setFilters();\n\n tokenize = Sizzle.tokenize = function (selector, parseOnly) {\n var matched,\n match,\n tokens,\n type,\n soFar,\n groups,\n preFilters,\n cached = tokenCache[selector + \" \"];\n\n if (cached) {\n return parseOnly ? 0 : cached.slice(0);\n }\n\n soFar = selector;\n groups = [];\n preFilters = Expr.preFilter;\n\n while (soFar) {\n // Comma and first run\n if (!matched || (match = rcomma.exec(soFar))) {\n if (match) {\n // Don't consume trailing commas as valid\n soFar = soFar.slice(match[0].length) || soFar;\n }\n\n groups.push(tokens = []);\n }\n\n matched = false; // Combinators\n\n if (match = rcombinators.exec(soFar)) {\n matched = match.shift();\n tokens.push({\n value: matched,\n // Cast descendant combinators to space\n type: match[0].replace(rtrim, \" \")\n });\n soFar = soFar.slice(matched.length);\n } // Filters\n\n\n for (type in Expr.filter) {\n if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match)))) {\n matched = match.shift();\n tokens.push({\n value: matched,\n type: type,\n matches: match\n });\n soFar = soFar.slice(matched.length);\n }\n }\n\n if (!matched) {\n break;\n }\n } // Return the length of the invalid excess\n // if we're just parsing\n // Otherwise, throw an error or return tokens\n\n\n return parseOnly ? soFar.length : soFar ? Sizzle.error(selector) : // Cache the tokens\n tokenCache(selector, groups).slice(0);\n };\n\n function toSelector(tokens) {\n var i = 0,\n len = tokens.length,\n selector = \"\";\n\n for (; i < len; i++) {\n selector += tokens[i].value;\n }\n\n return selector;\n }\n\n function addCombinator(matcher, combinator, base) {\n var dir = combinator.dir,\n skip = combinator.next,\n key = skip || dir,\n checkNonElements = base && key === \"parentNode\",\n doneName = done++;\n return combinator.first ? // Check against closest ancestor/preceding element\n function (elem, context, xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n return matcher(elem, context, xml);\n }\n }\n\n return false;\n } : // Check against all ancestor/preceding elements\n function (elem, context, xml) {\n var oldCache,\n uniqueCache,\n outerCache,\n newCache = [dirruns, doneName]; // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\n if (xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n if (matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n } else {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n outerCache = elem[expando] || (elem[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[elem.uniqueID] || (outerCache[elem.uniqueID] = {});\n\n if (skip && skip === elem.nodeName.toLowerCase()) {\n elem = elem[dir] || elem;\n } else if ((oldCache = uniqueCache[key]) && oldCache[0] === dirruns && oldCache[1] === doneName) {\n // Assign to newCache so results back-propagate to previous elements\n return newCache[2] = oldCache[2];\n } else {\n // Reuse newcache so results back-propagate to previous elements\n uniqueCache[key] = newCache; // A match means we're done; a fail means we have to keep checking\n\n if (newCache[2] = matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n }\n }\n\n return false;\n };\n }\n\n function elementMatcher(matchers) {\n return matchers.length > 1 ? function (elem, context, xml) {\n var i = matchers.length;\n\n while (i--) {\n if (!matchers[i](elem, context, xml)) {\n return false;\n }\n }\n\n return true;\n } : matchers[0];\n }\n\n function multipleContexts(selector, contexts, results) {\n var i = 0,\n len = contexts.length;\n\n for (; i < len; i++) {\n Sizzle(selector, contexts[i], results);\n }\n\n return results;\n }\n\n function condense(unmatched, map, filter, context, xml) {\n var elem,\n newUnmatched = [],\n i = 0,\n len = unmatched.length,\n mapped = map != null;\n\n for (; i < len; i++) {\n if (elem = unmatched[i]) {\n if (!filter || filter(elem, context, xml)) {\n newUnmatched.push(elem);\n\n if (mapped) {\n map.push(i);\n }\n }\n }\n }\n\n return newUnmatched;\n }\n\n function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) {\n if (postFilter && !postFilter[expando]) {\n postFilter = setMatcher(postFilter);\n }\n\n if (postFinder && !postFinder[expando]) {\n postFinder = setMatcher(postFinder, postSelector);\n }\n\n return markFunction(function (seed, results, context, xml) {\n var temp,\n i,\n elem,\n preMap = [],\n postMap = [],\n preexisting = results.length,\n // Get initial elements from seed or context\n elems = seed || multipleContexts(selector || \"*\", context.nodeType ? [context] : context, []),\n // Prefilter to get matcher input, preserving a map for seed-results synchronization\n matcherIn = preFilter && (seed || !selector) ? condense(elems, preMap, preFilter, context, xml) : elems,\n matcherOut = matcher ? // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n postFinder || (seed ? preFilter : preexisting || postFilter) ? // ...intermediate processing is necessary\n [] : // ...otherwise use results directly\n results : matcherIn; // Find primary matches\n\n if (matcher) {\n matcher(matcherIn, matcherOut, context, xml);\n } // Apply postFilter\n\n\n if (postFilter) {\n temp = condense(matcherOut, postMap);\n postFilter(temp, [], context, xml); // Un-match failing elements by moving them back to matcherIn\n\n i = temp.length;\n\n while (i--) {\n if (elem = temp[i]) {\n matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem);\n }\n }\n }\n\n if (seed) {\n if (postFinder || preFilter) {\n if (postFinder) {\n // Get the final matcherOut by condensing this intermediate into postFinder contexts\n temp = [];\n i = matcherOut.length;\n\n while (i--) {\n if (elem = matcherOut[i]) {\n // Restore matcherIn since elem is not yet a final match\n temp.push(matcherIn[i] = elem);\n }\n }\n\n postFinder(null, matcherOut = [], temp, xml);\n } // Move matched elements from seed to results to keep them synchronized\n\n\n i = matcherOut.length;\n\n while (i--) {\n if ((elem = matcherOut[i]) && (temp = postFinder ? indexOf(seed, elem) : preMap[i]) > -1) {\n seed[temp] = !(results[temp] = elem);\n }\n }\n } // Add elements to results, through postFinder if defined\n\n } else {\n matcherOut = condense(matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut);\n\n if (postFinder) {\n postFinder(null, results, matcherOut, xml);\n } else {\n push.apply(results, matcherOut);\n }\n }\n });\n }\n\n function matcherFromTokens(tokens) {\n var checkContext,\n matcher,\n j,\n len = tokens.length,\n leadingRelative = Expr.relative[tokens[0].type],\n implicitRelative = leadingRelative || Expr.relative[\" \"],\n i = leadingRelative ? 1 : 0,\n // The foundational matcher ensures that elements are reachable from top-level context(s)\n matchContext = addCombinator(function (elem) {\n return elem === checkContext;\n }, implicitRelative, true),\n matchAnyContext = addCombinator(function (elem) {\n return indexOf(checkContext, elem) > -1;\n }, implicitRelative, true),\n matchers = [function (elem, context, xml) {\n var ret = !leadingRelative && (xml || context !== outermostContext) || ((checkContext = context).nodeType ? matchContext(elem, context, xml) : matchAnyContext(elem, context, xml)); // Avoid hanging onto element (issue #299)\n\n checkContext = null;\n return ret;\n }];\n\n for (; i < len; i++) {\n if (matcher = Expr.relative[tokens[i].type]) {\n matchers = [addCombinator(elementMatcher(matchers), matcher)];\n } else {\n matcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches); // Return special upon seeing a positional matcher\n\n if (matcher[expando]) {\n // Find the next relative operator (if any) for proper handling\n j = ++i;\n\n for (; j < len; j++) {\n if (Expr.relative[tokens[j].type]) {\n break;\n }\n }\n\n return setMatcher(i > 1 && elementMatcher(matchers), i > 1 && toSelector( // If the preceding token was a descendant combinator, insert an implicit any-element `*`\n tokens.slice(0, i - 1).concat({\n value: tokens[i - 2].type === \" \" ? \"*\" : \"\"\n })).replace(rtrim, \"$1\"), matcher, i < j && matcherFromTokens(tokens.slice(i, j)), j < len && matcherFromTokens(tokens = tokens.slice(j)), j < len && toSelector(tokens));\n }\n\n matchers.push(matcher);\n }\n }\n\n return elementMatcher(matchers);\n }\n\n function matcherFromGroupMatchers(elementMatchers, setMatchers) {\n var bySet = setMatchers.length > 0,\n byElement = elementMatchers.length > 0,\n superMatcher = function superMatcher(seed, context, xml, results, outermost) {\n var elem,\n j,\n matcher,\n matchedCount = 0,\n i = \"0\",\n unmatched = seed && [],\n setMatched = [],\n contextBackup = outermostContext,\n // We must always have either seed elements or outermost context\n elems = seed || byElement && Expr.find[\"TAG\"](\"*\", outermost),\n // Use integer dirruns iff this is the outermost matcher\n dirrunsUnique = dirruns += contextBackup == null ? 1 : Math.random() || 0.1,\n len = elems.length;\n\n if (outermost) {\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n outermostContext = context == document || context || outermost;\n } // Add elements passing elementMatchers directly to results\n // Support: IE<9, Safari\n // Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\n\n for (; i !== len && (elem = elems[i]) != null; i++) {\n if (byElement && elem) {\n j = 0; // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (!context && elem.ownerDocument != document) {\n setDocument(elem);\n xml = !documentIsHTML;\n }\n\n while (matcher = elementMatchers[j++]) {\n if (matcher(elem, context || document, xml)) {\n results.push(elem);\n break;\n }\n }\n\n if (outermost) {\n dirruns = dirrunsUnique;\n }\n } // Track unmatched elements for set filters\n\n\n if (bySet) {\n // They will have gone through all possible matchers\n if (elem = !matcher && elem) {\n matchedCount--;\n } // Lengthen the array for every element, matched or not\n\n\n if (seed) {\n unmatched.push(elem);\n }\n }\n } // `i` is now the count of elements visited above, and adding it to `matchedCount`\n // makes the latter nonnegative.\n\n\n matchedCount += i; // Apply set filters to unmatched elements\n // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n // equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n // no element matchers and no seed.\n // Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n // case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n // numerically zero.\n\n if (bySet && i !== matchedCount) {\n j = 0;\n\n while (matcher = setMatchers[j++]) {\n matcher(unmatched, setMatched, context, xml);\n }\n\n if (seed) {\n // Reintegrate element matches to eliminate the need for sorting\n if (matchedCount > 0) {\n while (i--) {\n if (!(unmatched[i] || setMatched[i])) {\n setMatched[i] = pop.call(results);\n }\n }\n } // Discard index placeholder values to get only actual matches\n\n\n setMatched = condense(setMatched);\n } // Add matches to results\n\n\n push.apply(results, setMatched); // Seedless set matches succeeding multiple successful matchers stipulate sorting\n\n if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) {\n Sizzle.uniqueSort(results);\n }\n } // Override manipulation of globals by nested matchers\n\n\n if (outermost) {\n dirruns = dirrunsUnique;\n outermostContext = contextBackup;\n }\n\n return unmatched;\n };\n\n return bySet ? markFunction(superMatcher) : superMatcher;\n }\n\n compile = Sizzle.compile = function (selector, match\n /* Internal Use Only */\n ) {\n var i,\n setMatchers = [],\n elementMatchers = [],\n cached = compilerCache[selector + \" \"];\n\n if (!cached) {\n // Generate a function of recursive functions that can be used to check each element\n if (!match) {\n match = tokenize(selector);\n }\n\n i = match.length;\n\n while (i--) {\n cached = matcherFromTokens(match[i]);\n\n if (cached[expando]) {\n setMatchers.push(cached);\n } else {\n elementMatchers.push(cached);\n }\n } // Cache the compiled function\n\n\n cached = compilerCache(selector, matcherFromGroupMatchers(elementMatchers, setMatchers)); // Save selector and tokenization\n\n cached.selector = selector;\n }\n\n return cached;\n };\n /**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\n\n\n select = Sizzle.select = function (selector, context, results, seed) {\n var i,\n tokens,\n token,\n type,\n find,\n compiled = typeof selector === \"function\" && selector,\n match = !seed && tokenize(selector = compiled.selector || selector);\n results = results || []; // Try to minimize operations if there is only one selector in the list and no seed\n // (the latter of which guarantees us context)\n\n if (match.length === 1) {\n // Reduce context if the leading compound selector is an ID\n tokens = match[0] = match[0].slice(0);\n\n if (tokens.length > 2 && (token = tokens[0]).type === \"ID\" && context.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) {\n context = (Expr.find[\"ID\"](token.matches[0].replace(runescape, funescape), context) || [])[0];\n\n if (!context) {\n return results; // Precompiled matchers will still verify ancestry, so step up a level\n } else if (compiled) {\n context = context.parentNode;\n }\n\n selector = selector.slice(tokens.shift().value.length);\n } // Fetch a seed set for right-to-left matching\n\n\n i = matchExpr[\"needsContext\"].test(selector) ? 0 : tokens.length;\n\n while (i--) {\n token = tokens[i]; // Abort if we hit a combinator\n\n if (Expr.relative[type = token.type]) {\n break;\n }\n\n if (find = Expr.find[type]) {\n // Search, expanding context for leading sibling combinators\n if (seed = find(token.matches[0].replace(runescape, funescape), rsibling.test(tokens[0].type) && testContext(context.parentNode) || context)) {\n // If seed is empty or no tokens remain, we can return early\n tokens.splice(i, 1);\n selector = seed.length && toSelector(tokens);\n\n if (!selector) {\n push.apply(results, seed);\n return results;\n }\n\n break;\n }\n }\n }\n } // Compile and execute a filtering function if one is not provided\n // Provide `match` to avoid retokenization if we modified the selector above\n\n\n (compiled || compile(selector, match))(seed, context, !documentIsHTML, results, !context || rsibling.test(selector) && testContext(context.parentNode) || context);\n return results;\n }; // One-time assignments\n // Sort stability\n\n\n support.sortStable = expando.split(\"\").sort(sortOrder).join(\"\") === expando; // Support: Chrome 14-35+\n // Always assume duplicates if they aren't passed to the comparison function\n\n support.detectDuplicates = !!hasDuplicate; // Initialize against the default document\n\n setDocument(); // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n // Detached nodes confoundingly follow *each other*\n\n support.sortDetached = assert(function (el) {\n // Should return 1, but returns 4 (following)\n return el.compareDocumentPosition(document.createElement(\"fieldset\")) & 1;\n }); // Support: IE<8\n // Prevent attribute/property \"interpolation\"\n // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\n\n if (!assert(function (el) {\n el.innerHTML = \"\";\n return el.firstChild.getAttribute(\"href\") === \"#\";\n })) {\n addHandle(\"type|href|height|width\", function (elem, name, isXML) {\n if (!isXML) {\n return elem.getAttribute(name, name.toLowerCase() === \"type\" ? 1 : 2);\n }\n });\n } // Support: IE<9\n // Use defaultValue in place of getAttribute(\"value\")\n\n\n if (!support.attributes || !assert(function (el) {\n el.innerHTML = \"\";\n el.firstChild.setAttribute(\"value\", \"\");\n return el.firstChild.getAttribute(\"value\") === \"\";\n })) {\n addHandle(\"value\", function (elem, _name, isXML) {\n if (!isXML && elem.nodeName.toLowerCase() === \"input\") {\n return elem.defaultValue;\n }\n });\n } // Support: IE<9\n // Use getAttributeNode to fetch booleans when getAttribute lies\n\n\n if (!assert(function (el) {\n return el.getAttribute(\"disabled\") == null;\n })) {\n addHandle(booleans, function (elem, name, isXML) {\n var val;\n\n if (!isXML) {\n return elem[name] === true ? name.toLowerCase() : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n }\n });\n }\n\n return Sizzle;\n }(window);\n\n jQuery.find = Sizzle;\n jQuery.expr = Sizzle.selectors; // Deprecated\n\n jQuery.expr[\":\"] = jQuery.expr.pseudos;\n jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\n jQuery.text = Sizzle.getText;\n jQuery.isXMLDoc = Sizzle.isXML;\n jQuery.contains = Sizzle.contains;\n jQuery.escapeSelector = Sizzle.escape;\n\n var dir = function dir(elem, _dir, until) {\n var matched = [],\n truncate = until !== undefined;\n\n while ((elem = elem[_dir]) && elem.nodeType !== 9) {\n if (elem.nodeType === 1) {\n if (truncate && jQuery(elem).is(until)) {\n break;\n }\n\n matched.push(elem);\n }\n }\n\n return matched;\n };\n\n var _siblings = function siblings(n, elem) {\n var matched = [];\n\n for (; n; n = n.nextSibling) {\n if (n.nodeType === 1 && n !== elem) {\n matched.push(n);\n }\n }\n\n return matched;\n };\n\n var rneedsContext = jQuery.expr.match.needsContext;\n\n function nodeName(elem, name) {\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n }\n\n ;\n var rsingleTag = /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i; // Implement the identical functionality for filter and not\n\n function winnow(elements, qualifier, not) {\n if (isFunction(qualifier)) {\n return jQuery.grep(elements, function (elem, i) {\n return !!qualifier.call(elem, i, elem) !== not;\n });\n } // Single element\n\n\n if (qualifier.nodeType) {\n return jQuery.grep(elements, function (elem) {\n return elem === qualifier !== not;\n });\n } // Arraylike of elements (jQuery, arguments, Array)\n\n\n if (typeof qualifier !== \"string\") {\n return jQuery.grep(elements, function (elem) {\n return indexOf.call(qualifier, elem) > -1 !== not;\n });\n } // Filtered directly for both simple and complex selectors\n\n\n return jQuery.filter(qualifier, elements, not);\n }\n\n jQuery.filter = function (expr, elems, not) {\n var elem = elems[0];\n\n if (not) {\n expr = \":not(\" + expr + \")\";\n }\n\n if (elems.length === 1 && elem.nodeType === 1) {\n return jQuery.find.matchesSelector(elem, expr) ? [elem] : [];\n }\n\n return jQuery.find.matches(expr, jQuery.grep(elems, function (elem) {\n return elem.nodeType === 1;\n }));\n };\n\n jQuery.fn.extend({\n find: function find(selector) {\n var i,\n ret,\n len = this.length,\n self = this;\n\n if (typeof selector !== \"string\") {\n return this.pushStack(jQuery(selector).filter(function () {\n for (i = 0; i < len; i++) {\n if (jQuery.contains(self[i], this)) {\n return true;\n }\n }\n }));\n }\n\n ret = this.pushStack([]);\n\n for (i = 0; i < len; i++) {\n jQuery.find(selector, self[i], ret);\n }\n\n return len > 1 ? jQuery.uniqueSort(ret) : ret;\n },\n filter: function filter(selector) {\n return this.pushStack(winnow(this, selector || [], false));\n },\n not: function not(selector) {\n return this.pushStack(winnow(this, selector || [], true));\n },\n is: function is(selector) {\n return !!winnow(this, // If this is a positional/relative selector, check membership in the returned set\n // so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n typeof selector === \"string\" && rneedsContext.test(selector) ? jQuery(selector) : selector || [], false).length;\n }\n }); // Initialize a jQuery object\n // A central reference to the root jQuery(document)\n\n var rootjQuery,\n // A simple way to check for HTML strings\n // Prioritize #id over to avoid XSS via location.hash (#9521)\n // Strict HTML recognition (#11290: must start with <)\n // Shortcut simple #id case for speed\n rquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n init = jQuery.fn.init = function (selector, context, root) {\n var match, elem; // HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\n if (!selector) {\n return this;\n } // Method init() accepts an alternate rootjQuery\n // so migrate can support jQuery.sub (gh-2101)\n\n\n root = root || rootjQuery; // Handle HTML strings\n\n if (typeof selector === \"string\") {\n if (selector[0] === \"<\" && selector[selector.length - 1] === \">\" && selector.length >= 3) {\n // Assume that strings that start and end with <> are HTML and skip the regex check\n match = [null, selector, null];\n } else {\n match = rquickExpr.exec(selector);\n } // Match html or make sure no context is specified for #id\n\n\n if (match && (match[1] || !context)) {\n // HANDLE: $(html) -> $(array)\n if (match[1]) {\n context = context instanceof jQuery ? context[0] : context; // Option to run scripts is true for back-compat\n // Intentionally let the error be thrown if parseHTML is not present\n\n jQuery.merge(this, jQuery.parseHTML(match[1], context && context.nodeType ? context.ownerDocument || context : document, true)); // HANDLE: $(html, props)\n\n if (rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) {\n for (match in context) {\n // Properties of context are called as methods if possible\n if (isFunction(this[match])) {\n this[match](context[match]); // ...and otherwise set as attributes\n } else {\n this.attr(match, context[match]);\n }\n }\n }\n\n return this; // HANDLE: $(#id)\n } else {\n elem = document.getElementById(match[2]);\n\n if (elem) {\n // Inject the element directly into the jQuery object\n this[0] = elem;\n this.length = 1;\n }\n\n return this;\n } // HANDLE: $(expr, $(...))\n\n } else if (!context || context.jquery) {\n return (context || root).find(selector); // HANDLE: $(expr, context)\n // (which is just equivalent to: $(context).find(expr)\n } else {\n return this.constructor(context).find(selector);\n } // HANDLE: $(DOMElement)\n\n } else if (selector.nodeType) {\n this[0] = selector;\n this.length = 1;\n return this; // HANDLE: $(function)\n // Shortcut for document ready\n } else if (isFunction(selector)) {\n return root.ready !== undefined ? root.ready(selector) : // Execute immediately if ready is not present\n selector(jQuery);\n }\n\n return jQuery.makeArray(selector, this);\n }; // Give the init function the jQuery prototype for later instantiation\n\n\n init.prototype = jQuery.fn; // Initialize central reference\n\n rootjQuery = jQuery(document);\n var rparentsprev = /^(?:parents|prev(?:Until|All))/,\n // Methods guaranteed to produce a unique set when starting from a unique set\n guaranteedUnique = {\n children: true,\n contents: true,\n next: true,\n prev: true\n };\n jQuery.fn.extend({\n has: function has(target) {\n var targets = jQuery(target, this),\n l = targets.length;\n return this.filter(function () {\n var i = 0;\n\n for (; i < l; i++) {\n if (jQuery.contains(this, targets[i])) {\n return true;\n }\n }\n });\n },\n closest: function closest(selectors, context) {\n var cur,\n i = 0,\n l = this.length,\n matched = [],\n targets = typeof selectors !== \"string\" && jQuery(selectors); // Positional selectors never match, since there's no _selection_ context\n\n if (!rneedsContext.test(selectors)) {\n for (; i < l; i++) {\n for (cur = this[i]; cur && cur !== context; cur = cur.parentNode) {\n // Always skip document fragments\n if (cur.nodeType < 11 && (targets ? targets.index(cur) > -1 : // Don't pass non-elements to Sizzle\n cur.nodeType === 1 && jQuery.find.matchesSelector(cur, selectors))) {\n matched.push(cur);\n break;\n }\n }\n }\n }\n\n return this.pushStack(matched.length > 1 ? jQuery.uniqueSort(matched) : matched);\n },\n // Determine the position of an element within the set\n index: function index(elem) {\n // No argument, return index in parent\n if (!elem) {\n return this[0] && this[0].parentNode ? this.first().prevAll().length : -1;\n } // Index in selector\n\n\n if (typeof elem === \"string\") {\n return indexOf.call(jQuery(elem), this[0]);\n } // Locate the position of the desired element\n\n\n return indexOf.call(this, // If it receives a jQuery object, the first element is used\n elem.jquery ? elem[0] : elem);\n },\n add: function add(selector, context) {\n return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(), jQuery(selector, context))));\n },\n addBack: function addBack(selector) {\n return this.add(selector == null ? this.prevObject : this.prevObject.filter(selector));\n }\n });\n\n function sibling(cur, dir) {\n while ((cur = cur[dir]) && cur.nodeType !== 1) {}\n\n return cur;\n }\n\n jQuery.each({\n parent: function parent(elem) {\n var parent = elem.parentNode;\n return parent && parent.nodeType !== 11 ? parent : null;\n },\n parents: function parents(elem) {\n return dir(elem, \"parentNode\");\n },\n parentsUntil: function parentsUntil(elem, _i, until) {\n return dir(elem, \"parentNode\", until);\n },\n next: function next(elem) {\n return sibling(elem, \"nextSibling\");\n },\n prev: function prev(elem) {\n return sibling(elem, \"previousSibling\");\n },\n nextAll: function nextAll(elem) {\n return dir(elem, \"nextSibling\");\n },\n prevAll: function prevAll(elem) {\n return dir(elem, \"previousSibling\");\n },\n nextUntil: function nextUntil(elem, _i, until) {\n return dir(elem, \"nextSibling\", until);\n },\n prevUntil: function prevUntil(elem, _i, until) {\n return dir(elem, \"previousSibling\", until);\n },\n siblings: function siblings(elem) {\n return _siblings((elem.parentNode || {}).firstChild, elem);\n },\n children: function children(elem) {\n return _siblings(elem.firstChild);\n },\n contents: function contents(elem) {\n if (elem.contentDocument != null && // Support: IE 11+\n // elements with no `data` attribute has an object\n // `contentDocument` with a `null` prototype.\n getProto(elem.contentDocument)) {\n return elem.contentDocument;\n } // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n // Treat the template element as a regular one in browsers that\n // don't support it.\n\n\n if (nodeName(elem, \"template\")) {\n elem = elem.content || elem;\n }\n\n return jQuery.merge([], elem.childNodes);\n }\n }, function (name, fn) {\n jQuery.fn[name] = function (until, selector) {\n var matched = jQuery.map(this, fn, until);\n\n if (name.slice(-5) !== \"Until\") {\n selector = until;\n }\n\n if (selector && typeof selector === \"string\") {\n matched = jQuery.filter(selector, matched);\n }\n\n if (this.length > 1) {\n // Remove duplicates\n if (!guaranteedUnique[name]) {\n jQuery.uniqueSort(matched);\n } // Reverse order for parents* and prev-derivatives\n\n\n if (rparentsprev.test(name)) {\n matched.reverse();\n }\n }\n\n return this.pushStack(matched);\n };\n });\n var rnothtmlwhite = /[^\\x20\\t\\r\\n\\f]+/g; // Convert String-formatted options into Object-formatted ones\n\n function createOptions(options) {\n var object = {};\n jQuery.each(options.match(rnothtmlwhite) || [], function (_, flag) {\n object[flag] = true;\n });\n return object;\n }\n /*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\n\n\n jQuery.Callbacks = function (options) {\n // Convert options from String-formatted to Object-formatted if needed\n // (we check in cache first)\n options = typeof options === \"string\" ? createOptions(options) : jQuery.extend({}, options);\n\n var // Flag to know if list is currently firing\n firing,\n // Last fire value for non-forgettable lists\n memory,\n // Flag to know if list was already fired\n _fired,\n // Flag to prevent firing\n _locked,\n // Actual callback list\n list = [],\n // Queue of execution data for repeatable lists\n queue = [],\n // Index of currently firing callback (modified by add/remove as needed)\n firingIndex = -1,\n // Fire callbacks\n fire = function fire() {\n // Enforce single-firing\n _locked = _locked || options.once; // Execute callbacks for all pending executions,\n // respecting firingIndex overrides and runtime changes\n\n _fired = firing = true;\n\n for (; queue.length; firingIndex = -1) {\n memory = queue.shift();\n\n while (++firingIndex < list.length) {\n // Run callback and check for early termination\n if (list[firingIndex].apply(memory[0], memory[1]) === false && options.stopOnFalse) {\n // Jump to end and forget the data so .add doesn't re-fire\n firingIndex = list.length;\n memory = false;\n }\n }\n } // Forget the data if we're done with it\n\n\n if (!options.memory) {\n memory = false;\n }\n\n firing = false; // Clean up if we're done firing for good\n\n if (_locked) {\n // Keep an empty list if we have data for future add calls\n if (memory) {\n list = []; // Otherwise, this object is spent\n } else {\n list = \"\";\n }\n }\n },\n // Actual Callbacks object\n self = {\n // Add a callback or a collection of callbacks to the list\n add: function add() {\n if (list) {\n // If we have memory from a past run, we should fire after adding\n if (memory && !firing) {\n firingIndex = list.length - 1;\n queue.push(memory);\n }\n\n (function add(args) {\n jQuery.each(args, function (_, arg) {\n if (isFunction(arg)) {\n if (!options.unique || !self.has(arg)) {\n list.push(arg);\n }\n } else if (arg && arg.length && toType(arg) !== \"string\") {\n // Inspect recursively\n add(arg);\n }\n });\n })(arguments);\n\n if (memory && !firing) {\n fire();\n }\n }\n\n return this;\n },\n // Remove a callback from the list\n remove: function remove() {\n jQuery.each(arguments, function (_, arg) {\n var index;\n\n while ((index = jQuery.inArray(arg, list, index)) > -1) {\n list.splice(index, 1); // Handle firing indexes\n\n if (index <= firingIndex) {\n firingIndex--;\n }\n }\n });\n return this;\n },\n // Check if a given callback is in the list.\n // If no argument is given, return whether or not list has callbacks attached.\n has: function has(fn) {\n return fn ? jQuery.inArray(fn, list) > -1 : list.length > 0;\n },\n // Remove all callbacks from the list\n empty: function empty() {\n if (list) {\n list = [];\n }\n\n return this;\n },\n // Disable .fire and .add\n // Abort any current/pending executions\n // Clear all callbacks and values\n disable: function disable() {\n _locked = queue = [];\n list = memory = \"\";\n return this;\n },\n disabled: function disabled() {\n return !list;\n },\n // Disable .fire\n // Also disable .add unless we have memory (since it would have no effect)\n // Abort any pending executions\n lock: function lock() {\n _locked = queue = [];\n\n if (!memory && !firing) {\n list = memory = \"\";\n }\n\n return this;\n },\n locked: function locked() {\n return !!_locked;\n },\n // Call all callbacks with the given context and arguments\n fireWith: function fireWith(context, args) {\n if (!_locked) {\n args = args || [];\n args = [context, args.slice ? args.slice() : args];\n queue.push(args);\n\n if (!firing) {\n fire();\n }\n }\n\n return this;\n },\n // Call all the callbacks with the given arguments\n fire: function fire() {\n self.fireWith(this, arguments);\n return this;\n },\n // To know if the callbacks have already been called at least once\n fired: function fired() {\n return !!_fired;\n }\n };\n\n return self;\n };\n\n function Identity(v) {\n return v;\n }\n\n function Thrower(ex) {\n throw ex;\n }\n\n function adoptValue(value, resolve, reject, noValue) {\n var method;\n\n try {\n // Check for promise aspect first to privilege synchronous behavior\n if (value && isFunction(method = value.promise)) {\n method.call(value).done(resolve).fail(reject); // Other thenables\n } else if (value && isFunction(method = value.then)) {\n method.call(value, resolve, reject); // Other non-thenables\n } else {\n // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n // * false: [ value ].slice( 0 ) => resolve( value )\n // * true: [ value ].slice( 1 ) => resolve()\n resolve.apply(undefined, [value].slice(noValue));\n } // For Promises/A+, convert exceptions into rejections\n // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n // Deferred#then to conditionally suppress rejection.\n\n } catch (value) {\n // Support: Android 4.0 only\n // Strict mode functions invoked without .call/.apply get global-object context\n reject.apply(undefined, [value]);\n }\n }\n\n jQuery.extend({\n Deferred: function Deferred(func) {\n var tuples = [// action, add listener, callbacks,\n // ... .then handlers, argument index, [final state]\n [\"notify\", \"progress\", jQuery.Callbacks(\"memory\"), jQuery.Callbacks(\"memory\"), 2], [\"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 0, \"resolved\"], [\"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 1, \"rejected\"]],\n _state = \"pending\",\n _promise = {\n state: function state() {\n return _state;\n },\n always: function always() {\n deferred.done(arguments).fail(arguments);\n return this;\n },\n \"catch\": function _catch(fn) {\n return _promise.then(null, fn);\n },\n // Keep pipe for back-compat\n pipe: function pipe()\n /* fnDone, fnFail, fnProgress */\n {\n var fns = arguments;\n return jQuery.Deferred(function (newDefer) {\n jQuery.each(tuples, function (_i, tuple) {\n // Map tuples (progress, done, fail) to arguments (done, fail, progress)\n var fn = isFunction(fns[tuple[4]]) && fns[tuple[4]]; // deferred.progress(function() { bind to newDefer or newDefer.notify })\n // deferred.done(function() { bind to newDefer or newDefer.resolve })\n // deferred.fail(function() { bind to newDefer or newDefer.reject })\n\n deferred[tuple[1]](function () {\n var returned = fn && fn.apply(this, arguments);\n\n if (returned && isFunction(returned.promise)) {\n returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject);\n } else {\n newDefer[tuple[0] + \"With\"](this, fn ? [returned] : arguments);\n }\n });\n });\n fns = null;\n }).promise();\n },\n then: function then(onFulfilled, onRejected, onProgress) {\n var maxDepth = 0;\n\n function resolve(depth, deferred, handler, special) {\n return function () {\n var that = this,\n args = arguments,\n mightThrow = function mightThrow() {\n var returned, then; // Support: Promises/A+ section 2.3.3.3.3\n // https://promisesaplus.com/#point-59\n // Ignore double-resolution attempts\n\n if (depth < maxDepth) {\n return;\n }\n\n returned = handler.apply(that, args); // Support: Promises/A+ section 2.3.1\n // https://promisesaplus.com/#point-48\n\n if (returned === deferred.promise()) {\n throw new TypeError(\"Thenable self-resolution\");\n } // Support: Promises/A+ sections 2.3.3.1, 3.5\n // https://promisesaplus.com/#point-54\n // https://promisesaplus.com/#point-75\n // Retrieve `then` only once\n\n\n then = returned && ( // Support: Promises/A+ section 2.3.4\n // https://promisesaplus.com/#point-64\n // Only check objects and functions for thenability\n _typeof(returned) === \"object\" || typeof returned === \"function\") && returned.then; // Handle a returned thenable\n\n if (isFunction(then)) {\n // Special processors (notify) just wait for resolution\n if (special) {\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special)); // Normal processors (resolve) also hook into progress\n } else {\n // ...and disregard older resolution values\n maxDepth++;\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special), resolve(maxDepth, deferred, Identity, deferred.notifyWith));\n } // Handle all other returned values\n\n } else {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Identity) {\n that = undefined;\n args = [returned];\n } // Process the value(s)\n // Default process is resolve\n\n\n (special || deferred.resolveWith)(that, args);\n }\n },\n // Only normal processors (resolve) catch and reject exceptions\n process = special ? mightThrow : function () {\n try {\n mightThrow();\n } catch (e) {\n if (jQuery.Deferred.exceptionHook) {\n jQuery.Deferred.exceptionHook(e, process.stackTrace);\n } // Support: Promises/A+ section 2.3.3.3.4.1\n // https://promisesaplus.com/#point-61\n // Ignore post-resolution exceptions\n\n\n if (depth + 1 >= maxDepth) {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Thrower) {\n that = undefined;\n args = [e];\n }\n\n deferred.rejectWith(that, args);\n }\n }\n }; // Support: Promises/A+ section 2.3.3.3.1\n // https://promisesaplus.com/#point-57\n // Re-resolve promises immediately to dodge false rejection from\n // subsequent errors\n\n\n if (depth) {\n process();\n } else {\n // Call an optional hook to record the stack, in case of exception\n // since it's otherwise lost when execution goes async\n if (jQuery.Deferred.getStackHook) {\n process.stackTrace = jQuery.Deferred.getStackHook();\n }\n\n window.setTimeout(process);\n }\n };\n }\n\n return jQuery.Deferred(function (newDefer) {\n // progress_handlers.add( ... )\n tuples[0][3].add(resolve(0, newDefer, isFunction(onProgress) ? onProgress : Identity, newDefer.notifyWith)); // fulfilled_handlers.add( ... )\n\n tuples[1][3].add(resolve(0, newDefer, isFunction(onFulfilled) ? onFulfilled : Identity)); // rejected_handlers.add( ... )\n\n tuples[2][3].add(resolve(0, newDefer, isFunction(onRejected) ? onRejected : Thrower));\n }).promise();\n },\n // Get a promise for this deferred\n // If obj is provided, the promise aspect is added to the object\n promise: function promise(obj) {\n return obj != null ? jQuery.extend(obj, _promise) : _promise;\n }\n },\n deferred = {}; // Add list-specific methods\n\n jQuery.each(tuples, function (i, tuple) {\n var list = tuple[2],\n stateString = tuple[5]; // promise.progress = list.add\n // promise.done = list.add\n // promise.fail = list.add\n\n _promise[tuple[1]] = list.add; // Handle state\n\n if (stateString) {\n list.add(function () {\n // state = \"resolved\" (i.e., fulfilled)\n // state = \"rejected\"\n _state = stateString;\n }, // rejected_callbacks.disable\n // fulfilled_callbacks.disable\n tuples[3 - i][2].disable, // rejected_handlers.disable\n // fulfilled_handlers.disable\n tuples[3 - i][3].disable, // progress_callbacks.lock\n tuples[0][2].lock, // progress_handlers.lock\n tuples[0][3].lock);\n } // progress_handlers.fire\n // fulfilled_handlers.fire\n // rejected_handlers.fire\n\n\n list.add(tuple[3].fire); // deferred.notify = function() { deferred.notifyWith(...) }\n // deferred.resolve = function() { deferred.resolveWith(...) }\n // deferred.reject = function() { deferred.rejectWith(...) }\n\n deferred[tuple[0]] = function () {\n deferred[tuple[0] + \"With\"](this === deferred ? undefined : this, arguments);\n return this;\n }; // deferred.notifyWith = list.fireWith\n // deferred.resolveWith = list.fireWith\n // deferred.rejectWith = list.fireWith\n\n\n deferred[tuple[0] + \"With\"] = list.fireWith;\n }); // Make the deferred a promise\n\n _promise.promise(deferred); // Call given func if any\n\n\n if (func) {\n func.call(deferred, deferred);\n } // All done!\n\n\n return deferred;\n },\n // Deferred helper\n when: function when(singleValue) {\n var // count of uncompleted subordinates\n remaining = arguments.length,\n // count of unprocessed arguments\n i = remaining,\n // subordinate fulfillment data\n resolveContexts = Array(i),\n resolveValues = _slice.call(arguments),\n // the master Deferred\n master = jQuery.Deferred(),\n // subordinate callback factory\n updateFunc = function updateFunc(i) {\n return function (value) {\n resolveContexts[i] = this;\n resolveValues[i] = arguments.length > 1 ? _slice.call(arguments) : value;\n\n if (! --remaining) {\n master.resolveWith(resolveContexts, resolveValues);\n }\n };\n }; // Single- and empty arguments are adopted like Promise.resolve\n\n\n if (remaining <= 1) {\n adoptValue(singleValue, master.done(updateFunc(i)).resolve, master.reject, !remaining); // Use .then() to unwrap secondary thenables (cf. gh-3000)\n\n if (master.state() === \"pending\" || isFunction(resolveValues[i] && resolveValues[i].then)) {\n return master.then();\n }\n } // Multiple arguments are aggregated like Promise.all array elements\n\n\n while (i--) {\n adoptValue(resolveValues[i], updateFunc(i), master.reject);\n }\n\n return master.promise();\n }\n }); // These usually indicate a programmer mistake during development,\n // warn about them ASAP rather than swallowing them by default.\n\n var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\n jQuery.Deferred.exceptionHook = function (error, stack) {\n // Support: IE 8 - 9 only\n // Console exists when dev tools are open, which can happen at any time\n if (window.console && window.console.warn && error && rerrorNames.test(error.name)) {\n window.console.warn(\"jQuery.Deferred exception: \" + error.message, error.stack, stack);\n }\n };\n\n jQuery.readyException = function (error) {\n window.setTimeout(function () {\n throw error;\n });\n }; // The deferred used on DOM ready\n\n\n var readyList = jQuery.Deferred();\n\n jQuery.fn.ready = function (fn) {\n readyList.then(fn) // Wrap jQuery.readyException in a function so that the lookup\n // happens at the time of error handling instead of callback\n // registration.\n [\"catch\"](function (error) {\n jQuery.readyException(error);\n });\n return this;\n };\n\n jQuery.extend({\n // Is the DOM ready to be used? Set to true once it occurs.\n isReady: false,\n // A counter to track how many items to wait for before\n // the ready event fires. See #6781\n readyWait: 1,\n // Handle when the DOM is ready\n ready: function ready(wait) {\n // Abort if there are pending holds or we're already ready\n if (wait === true ? --jQuery.readyWait : jQuery.isReady) {\n return;\n } // Remember that the DOM is ready\n\n\n jQuery.isReady = true; // If a normal DOM Ready event fired, decrement, and wait if need be\n\n if (wait !== true && --jQuery.readyWait > 0) {\n return;\n } // If there are functions bound, to execute\n\n\n readyList.resolveWith(document, [jQuery]);\n }\n });\n jQuery.ready.then = readyList.then; // The ready event handler and self cleanup method\n\n function completed() {\n document.removeEventListener(\"DOMContentLoaded\", completed);\n window.removeEventListener(\"load\", completed);\n jQuery.ready();\n } // Catch cases where $(document).ready() is called\n // after the browser event has already occurred.\n // Support: IE <=9 - 10 only\n // Older IE sometimes signals \"interactive\" too soon\n\n\n if (document.readyState === \"complete\" || document.readyState !== \"loading\" && !document.documentElement.doScroll) {\n // Handle it asynchronously to allow scripts the opportunity to delay ready\n window.setTimeout(jQuery.ready);\n } else {\n // Use the handy event callback\n document.addEventListener(\"DOMContentLoaded\", completed); // A fallback to window.onload, that will always work\n\n window.addEventListener(\"load\", completed);\n } // Multifunctional method to get and set values of a collection\n // The value/s can optionally be executed if it's a function\n\n\n var access = function access(elems, fn, key, value, chainable, emptyGet, raw) {\n var i = 0,\n len = elems.length,\n bulk = key == null; // Sets many values\n\n if (toType(key) === \"object\") {\n chainable = true;\n\n for (i in key) {\n access(elems, fn, i, key[i], true, emptyGet, raw);\n } // Sets one value\n\n } else if (value !== undefined) {\n chainable = true;\n\n if (!isFunction(value)) {\n raw = true;\n }\n\n if (bulk) {\n // Bulk operations run against the entire set\n if (raw) {\n fn.call(elems, value);\n fn = null; // ...except when executing function values\n } else {\n bulk = fn;\n\n fn = function fn(elem, _key, value) {\n return bulk.call(jQuery(elem), value);\n };\n }\n }\n\n if (fn) {\n for (; i < len; i++) {\n fn(elems[i], key, raw ? value : value.call(elems[i], i, fn(elems[i], key)));\n }\n }\n }\n\n if (chainable) {\n return elems;\n } // Gets\n\n\n if (bulk) {\n return fn.call(elems);\n }\n\n return len ? fn(elems[0], key) : emptyGet;\n }; // Matches dashed string for camelizing\n\n\n var rmsPrefix = /^-ms-/,\n rdashAlpha = /-([a-z])/g; // Used by camelCase as callback to replace()\n\n function fcamelCase(_all, letter) {\n return letter.toUpperCase();\n } // Convert dashed to camelCase; used by the css and data modules\n // Support: IE <=9 - 11, Edge 12 - 15\n // Microsoft forgot to hump their vendor prefix (#9572)\n\n\n function camelCase(string) {\n return string.replace(rmsPrefix, \"ms-\").replace(rdashAlpha, fcamelCase);\n }\n\n var acceptData = function acceptData(owner) {\n // Accepts only:\n // - Node\n // - Node.ELEMENT_NODE\n // - Node.DOCUMENT_NODE\n // - Object\n // - Any\n return owner.nodeType === 1 || owner.nodeType === 9 || !+owner.nodeType;\n };\n\n function Data() {\n this.expando = jQuery.expando + Data.uid++;\n }\n\n Data.uid = 1;\n Data.prototype = {\n cache: function cache(owner) {\n // Check if the owner object already has a cache\n var value = owner[this.expando]; // If not, create one\n\n if (!value) {\n value = {}; // We can accept data for non-element nodes in modern browsers,\n // but we should not, see #8335.\n // Always return an empty object.\n\n if (acceptData(owner)) {\n // If it is a node unlikely to be stringify-ed or looped over\n // use plain assignment\n if (owner.nodeType) {\n owner[this.expando] = value; // Otherwise secure it in a non-enumerable property\n // configurable must be true to allow the property to be\n // deleted when data is removed\n } else {\n Object.defineProperty(owner, this.expando, {\n value: value,\n configurable: true\n });\n }\n }\n }\n\n return value;\n },\n set: function set(owner, data, value) {\n var prop,\n cache = this.cache(owner); // Handle: [ owner, key, value ] args\n // Always use camelCase key (gh-2257)\n\n if (typeof data === \"string\") {\n cache[camelCase(data)] = value; // Handle: [ owner, { properties } ] args\n } else {\n // Copy the properties one-by-one to the cache object\n for (prop in data) {\n cache[camelCase(prop)] = data[prop];\n }\n }\n\n return cache;\n },\n get: function get(owner, key) {\n return key === undefined ? this.cache(owner) : // Always use camelCase key (gh-2257)\n owner[this.expando] && owner[this.expando][camelCase(key)];\n },\n access: function access(owner, key, value) {\n // In cases where either:\n //\n // 1. No key was specified\n // 2. A string key was specified, but no value provided\n //\n // Take the \"read\" path and allow the get method to determine\n // which value to return, respectively either:\n //\n // 1. The entire cache object\n // 2. The data stored at the key\n //\n if (key === undefined || key && typeof key === \"string\" && value === undefined) {\n return this.get(owner, key);\n } // When the key is not a string, or both a key and value\n // are specified, set or extend (existing objects) with either:\n //\n // 1. An object of properties\n // 2. A key and value\n //\n\n\n this.set(owner, key, value); // Since the \"set\" path can have two possible entry points\n // return the expected data based on which path was taken[*]\n\n return value !== undefined ? value : key;\n },\n remove: function remove(owner, key) {\n var i,\n cache = owner[this.expando];\n\n if (cache === undefined) {\n return;\n }\n\n if (key !== undefined) {\n // Support array or space separated string of keys\n if (Array.isArray(key)) {\n // If key is an array of keys...\n // We always set camelCase keys, so remove that.\n key = key.map(camelCase);\n } else {\n key = camelCase(key); // If a key with the spaces exists, use it.\n // Otherwise, create an array by matching non-whitespace\n\n key = key in cache ? [key] : key.match(rnothtmlwhite) || [];\n }\n\n i = key.length;\n\n while (i--) {\n delete cache[key[i]];\n }\n } // Remove the expando if there's no more data\n\n\n if (key === undefined || jQuery.isEmptyObject(cache)) {\n // Support: Chrome <=35 - 45\n // Webkit & Blink performance suffers when deleting properties\n // from DOM nodes, so set to undefined instead\n // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n if (owner.nodeType) {\n owner[this.expando] = undefined;\n } else {\n delete owner[this.expando];\n }\n }\n },\n hasData: function hasData(owner) {\n var cache = owner[this.expando];\n return cache !== undefined && !jQuery.isEmptyObject(cache);\n }\n };\n var dataPriv = new Data();\n var dataUser = new Data(); //\tImplementation Summary\n //\n //\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n //\t2. Improve the module's maintainability by reducing the storage\n //\t\tpaths to a single mechanism.\n //\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n //\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n //\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n //\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\n var rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n rmultiDash = /[A-Z]/g;\n\n function getData(data) {\n if (data === \"true\") {\n return true;\n }\n\n if (data === \"false\") {\n return false;\n }\n\n if (data === \"null\") {\n return null;\n } // Only convert to a number if it doesn't change the string\n\n\n if (data === +data + \"\") {\n return +data;\n }\n\n if (rbrace.test(data)) {\n return JSON.parse(data);\n }\n\n return data;\n }\n\n function dataAttr(elem, key, data) {\n var name; // If nothing was found internally, try to fetch any\n // data from the HTML5 data-* attribute\n\n if (data === undefined && elem.nodeType === 1) {\n name = \"data-\" + key.replace(rmultiDash, \"-$&\").toLowerCase();\n data = elem.getAttribute(name);\n\n if (typeof data === \"string\") {\n try {\n data = getData(data);\n } catch (e) {} // Make sure we set the data so it isn't changed later\n\n\n dataUser.set(elem, key, data);\n } else {\n data = undefined;\n }\n }\n\n return data;\n }\n\n jQuery.extend({\n hasData: function hasData(elem) {\n return dataUser.hasData(elem) || dataPriv.hasData(elem);\n },\n data: function data(elem, name, _data) {\n return dataUser.access(elem, name, _data);\n },\n removeData: function removeData(elem, name) {\n dataUser.remove(elem, name);\n },\n // TODO: Now that all calls to _data and _removeData have been replaced\n // with direct calls to dataPriv methods, these can be deprecated.\n _data: function _data(elem, name, data) {\n return dataPriv.access(elem, name, data);\n },\n _removeData: function _removeData(elem, name) {\n dataPriv.remove(elem, name);\n }\n });\n jQuery.fn.extend({\n data: function data(key, value) {\n var i,\n name,\n data,\n elem = this[0],\n attrs = elem && elem.attributes; // Gets all values\n\n if (key === undefined) {\n if (this.length) {\n data = dataUser.get(elem);\n\n if (elem.nodeType === 1 && !dataPriv.get(elem, \"hasDataAttrs\")) {\n i = attrs.length;\n\n while (i--) {\n // Support: IE 11 only\n // The attrs elements can be null (#14894)\n if (attrs[i]) {\n name = attrs[i].name;\n\n if (name.indexOf(\"data-\") === 0) {\n name = camelCase(name.slice(5));\n dataAttr(elem, name, data[name]);\n }\n }\n }\n\n dataPriv.set(elem, \"hasDataAttrs\", true);\n }\n }\n\n return data;\n } // Sets multiple values\n\n\n if (_typeof(key) === \"object\") {\n return this.each(function () {\n dataUser.set(this, key);\n });\n }\n\n return access(this, function (value) {\n var data; // The calling jQuery object (element matches) is not empty\n // (and therefore has an element appears at this[ 0 ]) and the\n // `value` parameter was not undefined. An empty jQuery object\n // will result in `undefined` for elem = this[ 0 ] which will\n // throw an exception if an attempt to read a data cache is made.\n\n if (elem && value === undefined) {\n // Attempt to get data from the cache\n // The key will always be camelCased in Data\n data = dataUser.get(elem, key);\n\n if (data !== undefined) {\n return data;\n } // Attempt to \"discover\" the data in\n // HTML5 custom data-* attrs\n\n\n data = dataAttr(elem, key);\n\n if (data !== undefined) {\n return data;\n } // We tried really hard, but the data doesn't exist.\n\n\n return;\n } // Set the data...\n\n\n this.each(function () {\n // We always store the camelCased key\n dataUser.set(this, key, value);\n });\n }, null, value, arguments.length > 1, null, true);\n },\n removeData: function removeData(key) {\n return this.each(function () {\n dataUser.remove(this, key);\n });\n }\n });\n jQuery.extend({\n queue: function queue(elem, type, data) {\n var queue;\n\n if (elem) {\n type = (type || \"fx\") + \"queue\";\n queue = dataPriv.get(elem, type); // Speed up dequeue by getting out quickly if this is just a lookup\n\n if (data) {\n if (!queue || Array.isArray(data)) {\n queue = dataPriv.access(elem, type, jQuery.makeArray(data));\n } else {\n queue.push(data);\n }\n }\n\n return queue || [];\n }\n },\n dequeue: function dequeue(elem, type) {\n type = type || \"fx\";\n\n var queue = jQuery.queue(elem, type),\n startLength = queue.length,\n fn = queue.shift(),\n hooks = jQuery._queueHooks(elem, type),\n next = function next() {\n jQuery.dequeue(elem, type);\n }; // If the fx queue is dequeued, always remove the progress sentinel\n\n\n if (fn === \"inprogress\") {\n fn = queue.shift();\n startLength--;\n }\n\n if (fn) {\n // Add a progress sentinel to prevent the fx queue from being\n // automatically dequeued\n if (type === \"fx\") {\n queue.unshift(\"inprogress\");\n } // Clear up the last queue stop function\n\n\n delete hooks.stop;\n fn.call(elem, next, hooks);\n }\n\n if (!startLength && hooks) {\n hooks.empty.fire();\n }\n },\n // Not public - generate a queueHooks object, or return the current one\n _queueHooks: function _queueHooks(elem, type) {\n var key = type + \"queueHooks\";\n return dataPriv.get(elem, key) || dataPriv.access(elem, key, {\n empty: jQuery.Callbacks(\"once memory\").add(function () {\n dataPriv.remove(elem, [type + \"queue\", key]);\n })\n });\n }\n });\n jQuery.fn.extend({\n queue: function queue(type, data) {\n var setter = 2;\n\n if (typeof type !== \"string\") {\n data = type;\n type = \"fx\";\n setter--;\n }\n\n if (arguments.length < setter) {\n return jQuery.queue(this[0], type);\n }\n\n return data === undefined ? this : this.each(function () {\n var queue = jQuery.queue(this, type, data); // Ensure a hooks for this queue\n\n jQuery._queueHooks(this, type);\n\n if (type === \"fx\" && queue[0] !== \"inprogress\") {\n jQuery.dequeue(this, type);\n }\n });\n },\n dequeue: function dequeue(type) {\n return this.each(function () {\n jQuery.dequeue(this, type);\n });\n },\n clearQueue: function clearQueue(type) {\n return this.queue(type || \"fx\", []);\n },\n // Get a promise resolved when queues of a certain type\n // are emptied (fx is the type by default)\n promise: function promise(type, obj) {\n var tmp,\n count = 1,\n defer = jQuery.Deferred(),\n elements = this,\n i = this.length,\n resolve = function resolve() {\n if (! --count) {\n defer.resolveWith(elements, [elements]);\n }\n };\n\n if (typeof type !== \"string\") {\n obj = type;\n type = undefined;\n }\n\n type = type || \"fx\";\n\n while (i--) {\n tmp = dataPriv.get(elements[i], type + \"queueHooks\");\n\n if (tmp && tmp.empty) {\n count++;\n tmp.empty.add(resolve);\n }\n }\n\n resolve();\n return defer.promise(obj);\n }\n });\n var pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\n var rcssNum = new RegExp(\"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\");\n var cssExpand = [\"Top\", \"Right\", \"Bottom\", \"Left\"];\n var documentElement = document.documentElement;\n\n var isAttached = function isAttached(elem) {\n return jQuery.contains(elem.ownerDocument, elem);\n },\n composed = {\n composed: true\n }; // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n // Check attachment across shadow DOM boundaries when possible (gh-3504)\n // Support: iOS 10.0-10.2 only\n // Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n // leading to errors. We need to check for `getRootNode`.\n\n\n if (documentElement.getRootNode) {\n isAttached = function isAttached(elem) {\n return jQuery.contains(elem.ownerDocument, elem) || elem.getRootNode(composed) === elem.ownerDocument;\n };\n }\n\n var isHiddenWithinTree = function isHiddenWithinTree(elem, el) {\n // isHiddenWithinTree might be called from jQuery#filter function;\n // in that case, element will be second argument\n elem = el || elem; // Inline style trumps all\n\n return elem.style.display === \"none\" || elem.style.display === \"\" && // Otherwise, check computed style\n // Support: Firefox <=43 - 45\n // Disconnected elements can have computed display: none, so first confirm that elem is\n // in the document.\n isAttached(elem) && jQuery.css(elem, \"display\") === \"none\";\n };\n\n function adjustCSS(elem, prop, valueParts, tween) {\n var adjusted,\n scale,\n maxIterations = 20,\n currentValue = tween ? function () {\n return tween.cur();\n } : function () {\n return jQuery.css(elem, prop, \"\");\n },\n initial = currentValue(),\n unit = valueParts && valueParts[3] || (jQuery.cssNumber[prop] ? \"\" : \"px\"),\n // Starting value computation is required for potential unit mismatches\n initialInUnit = elem.nodeType && (jQuery.cssNumber[prop] || unit !== \"px\" && +initial) && rcssNum.exec(jQuery.css(elem, prop));\n\n if (initialInUnit && initialInUnit[3] !== unit) {\n // Support: Firefox <=54\n // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n initial = initial / 2; // Trust units reported by jQuery.css\n\n unit = unit || initialInUnit[3]; // Iteratively approximate from a nonzero starting point\n\n initialInUnit = +initial || 1;\n\n while (maxIterations--) {\n // Evaluate and update our best guess (doubling guesses that zero out).\n // Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n jQuery.style(elem, prop, initialInUnit + unit);\n\n if ((1 - scale) * (1 - (scale = currentValue() / initial || 0.5)) <= 0) {\n maxIterations = 0;\n }\n\n initialInUnit = initialInUnit / scale;\n }\n\n initialInUnit = initialInUnit * 2;\n jQuery.style(elem, prop, initialInUnit + unit); // Make sure we update the tween properties later on\n\n valueParts = valueParts || [];\n }\n\n if (valueParts) {\n initialInUnit = +initialInUnit || +initial || 0; // Apply relative offset (+=/-=) if specified\n\n adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2];\n\n if (tween) {\n tween.unit = unit;\n tween.start = initialInUnit;\n tween.end = adjusted;\n }\n }\n\n return adjusted;\n }\n\n var defaultDisplayMap = {};\n\n function getDefaultDisplay(elem) {\n var temp,\n doc = elem.ownerDocument,\n nodeName = elem.nodeName,\n display = defaultDisplayMap[nodeName];\n\n if (display) {\n return display;\n }\n\n temp = doc.body.appendChild(doc.createElement(nodeName));\n display = jQuery.css(temp, \"display\");\n temp.parentNode.removeChild(temp);\n\n if (display === \"none\") {\n display = \"block\";\n }\n\n defaultDisplayMap[nodeName] = display;\n return display;\n }\n\n function showHide(elements, show) {\n var display,\n elem,\n values = [],\n index = 0,\n length = elements.length; // Determine new display value for elements that need to change\n\n for (; index < length; index++) {\n elem = elements[index];\n\n if (!elem.style) {\n continue;\n }\n\n display = elem.style.display;\n\n if (show) {\n // Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n // check is required in this first loop unless we have a nonempty display value (either\n // inline or about-to-be-restored)\n if (display === \"none\") {\n values[index] = dataPriv.get(elem, \"display\") || null;\n\n if (!values[index]) {\n elem.style.display = \"\";\n }\n }\n\n if (elem.style.display === \"\" && isHiddenWithinTree(elem)) {\n values[index] = getDefaultDisplay(elem);\n }\n } else {\n if (display !== \"none\") {\n values[index] = \"none\"; // Remember what we're overwriting\n\n dataPriv.set(elem, \"display\", display);\n }\n }\n } // Set the display of the elements in a second loop to avoid constant reflow\n\n\n for (index = 0; index < length; index++) {\n if (values[index] != null) {\n elements[index].style.display = values[index];\n }\n }\n\n return elements;\n }\n\n jQuery.fn.extend({\n show: function show() {\n return showHide(this, true);\n },\n hide: function hide() {\n return showHide(this);\n },\n toggle: function toggle(state) {\n if (typeof state === \"boolean\") {\n return state ? this.show() : this.hide();\n }\n\n return this.each(function () {\n if (isHiddenWithinTree(this)) {\n jQuery(this).show();\n } else {\n jQuery(this).hide();\n }\n });\n }\n });\n var rcheckableType = /^(?:checkbox|radio)$/i;\n var rtagName = /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i;\n var rscriptType = /^$|^module$|\\/(?:java|ecma)script/i;\n\n (function () {\n var fragment = document.createDocumentFragment(),\n div = fragment.appendChild(document.createElement(\"div\")),\n input = document.createElement(\"input\"); // Support: Android 4.0 - 4.3 only\n // Check state lost if the name is set (#11217)\n // Support: Windows Web Apps (WWA)\n // `name` and `type` must use .setAttribute for WWA (#14901)\n\n input.setAttribute(\"type\", \"radio\");\n input.setAttribute(\"checked\", \"checked\");\n input.setAttribute(\"name\", \"t\");\n div.appendChild(input); // Support: Android <=4.1 only\n // Older WebKit doesn't clone checked state correctly in fragments\n\n support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked; // Support: IE <=11 only\n // Make sure textarea (and checkbox) defaultValue is properly cloned\n\n div.innerHTML = \"\";\n support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue; // Support: IE <=9 only\n // IE <=9 replaces \";\n support.option = !!div.lastChild;\n })(); // We have to close these tags to support XHTML (#13200)\n\n\n var wrapMap = {\n // XHTML parsers do not magically insert elements in the\n // same way that tag soup parsers do. So we cannot shorten\n // this by omitting or other required elements.\n thead: [1, \"\", \"
\"],\n col: [2, \"\", \"
\"],\n tr: [2, \"\", \"
\"],\n td: [3, \"\", \"
\"],\n _default: [0, \"\", \"\"]\n };\n wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\n wrapMap.th = wrapMap.td; // Support: IE <=9 only\n\n if (!support.option) {\n wrapMap.optgroup = wrapMap.option = [1, \"\"];\n }\n\n function getAll(context, tag) {\n // Support: IE <=9 - 11 only\n // Use typeof to avoid zero-argument method invocation on host objects (#15151)\n var ret;\n\n if (typeof context.getElementsByTagName !== \"undefined\") {\n ret = context.getElementsByTagName(tag || \"*\");\n } else if (typeof context.querySelectorAll !== \"undefined\") {\n ret = context.querySelectorAll(tag || \"*\");\n } else {\n ret = [];\n }\n\n if (tag === undefined || tag && nodeName(context, tag)) {\n return jQuery.merge([context], ret);\n }\n\n return ret;\n } // Mark scripts as having already been evaluated\n\n\n function setGlobalEval(elems, refElements) {\n var i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n dataPriv.set(elems[i], \"globalEval\", !refElements || dataPriv.get(refElements[i], \"globalEval\"));\n }\n }\n\n var rhtml = /<|&#?\\w+;/;\n\n function buildFragment(elems, context, scripts, selection, ignored) {\n var elem,\n tmp,\n tag,\n wrap,\n attached,\n j,\n fragment = context.createDocumentFragment(),\n nodes = [],\n i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n elem = elems[i];\n\n if (elem || elem === 0) {\n // Add nodes directly\n if (toType(elem) === \"object\") {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(nodes, elem.nodeType ? [elem] : elem); // Convert non-html into a text node\n } else if (!rhtml.test(elem)) {\n nodes.push(context.createTextNode(elem)); // Convert html into DOM nodes\n } else {\n tmp = tmp || fragment.appendChild(context.createElement(\"div\")); // Deserialize a standard representation\n\n tag = (rtagName.exec(elem) || [\"\", \"\"])[1].toLowerCase();\n wrap = wrapMap[tag] || wrapMap._default;\n tmp.innerHTML = wrap[1] + jQuery.htmlPrefilter(elem) + wrap[2]; // Descend through wrappers to the right content\n\n j = wrap[0];\n\n while (j--) {\n tmp = tmp.lastChild;\n } // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n\n\n jQuery.merge(nodes, tmp.childNodes); // Remember the top-level container\n\n tmp = fragment.firstChild; // Ensure the created nodes are orphaned (#12392)\n\n tmp.textContent = \"\";\n }\n }\n } // Remove wrapper from fragment\n\n\n fragment.textContent = \"\";\n i = 0;\n\n while (elem = nodes[i++]) {\n // Skip elements already in the context collection (trac-4087)\n if (selection && jQuery.inArray(elem, selection) > -1) {\n if (ignored) {\n ignored.push(elem);\n }\n\n continue;\n }\n\n attached = isAttached(elem); // Append to fragment\n\n tmp = getAll(fragment.appendChild(elem), \"script\"); // Preserve script evaluation history\n\n if (attached) {\n setGlobalEval(tmp);\n } // Capture executables\n\n\n if (scripts) {\n j = 0;\n\n while (elem = tmp[j++]) {\n if (rscriptType.test(elem.type || \"\")) {\n scripts.push(elem);\n }\n }\n }\n }\n\n return fragment;\n }\n\n var rkeyEvent = /^key/,\n rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\n function returnTrue() {\n return true;\n }\n\n function returnFalse() {\n return false;\n } // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous, except when they are no-op.\n // So expect focus to be synchronous when the element is already active,\n // and blur to be synchronous when the element is not already active.\n // (focus and blur are always synchronous in other supported browsers,\n // this just defines when we can count on it).\n\n\n function expectSync(elem, type) {\n return elem === safeActiveElement() === (type === \"focus\");\n } // Support: IE <=9 only\n // Accessing document.activeElement can throw unexpectedly\n // https://bugs.jquery.com/ticket/13393\n\n\n function safeActiveElement() {\n try {\n return document.activeElement;\n } catch (err) {}\n }\n\n function _on(elem, types, selector, data, fn, one) {\n var origFn, type; // Types can be a map of types/handlers\n\n if (_typeof(types) === \"object\") {\n // ( types-Object, selector, data )\n if (typeof selector !== \"string\") {\n // ( types-Object, data )\n data = data || selector;\n selector = undefined;\n }\n\n for (type in types) {\n _on(elem, type, selector, data, types[type], one);\n }\n\n return elem;\n }\n\n if (data == null && fn == null) {\n // ( types, fn )\n fn = selector;\n data = selector = undefined;\n } else if (fn == null) {\n if (typeof selector === \"string\") {\n // ( types, selector, fn )\n fn = data;\n data = undefined;\n } else {\n // ( types, data, fn )\n fn = data;\n data = selector;\n selector = undefined;\n }\n }\n\n if (fn === false) {\n fn = returnFalse;\n } else if (!fn) {\n return elem;\n }\n\n if (one === 1) {\n origFn = fn;\n\n fn = function fn(event) {\n // Can use an empty set, since event contains the info\n jQuery().off(event);\n return origFn.apply(this, arguments);\n }; // Use same guid so caller can remove using origFn\n\n\n fn.guid = origFn.guid || (origFn.guid = jQuery.guid++);\n }\n\n return elem.each(function () {\n jQuery.event.add(this, types, fn, data, selector);\n });\n }\n /*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\n\n\n jQuery.event = {\n global: {},\n add: function add(elem, types, handler, data, selector) {\n var handleObjIn,\n eventHandle,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.get(elem); // Only attach events to objects that accept data\n\n if (!acceptData(elem)) {\n return;\n } // Caller can pass in an object of custom data in lieu of the handler\n\n\n if (handler.handler) {\n handleObjIn = handler;\n handler = handleObjIn.handler;\n selector = handleObjIn.selector;\n } // Ensure that invalid selectors throw exceptions at attach time\n // Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\n\n if (selector) {\n jQuery.find.matchesSelector(documentElement, selector);\n } // Make sure that the handler has a unique ID, used to find/remove it later\n\n\n if (!handler.guid) {\n handler.guid = jQuery.guid++;\n } // Init the element's event structure and main handler, if this is the first\n\n\n if (!(events = elemData.events)) {\n events = elemData.events = Object.create(null);\n }\n\n if (!(eventHandle = elemData.handle)) {\n eventHandle = elemData.handle = function (e) {\n // Discard the second event of a jQuery.event.trigger() and\n // when an event is called after a page has unloaded\n return typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ? jQuery.event.dispatch.apply(elem, arguments) : undefined;\n };\n } // Handle multiple events separated by a space\n\n\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // There *must* be a type, no attaching namespace-only handlers\n\n if (!type) {\n continue;\n } // If event changes its type, use the special event handlers for the changed type\n\n\n special = jQuery.event.special[type] || {}; // If selector defined, determine special event api type, otherwise given type\n\n type = (selector ? special.delegateType : special.bindType) || type; // Update special based on newly reset type\n\n special = jQuery.event.special[type] || {}; // handleObj is passed to all event handlers\n\n handleObj = jQuery.extend({\n type: type,\n origType: origType,\n data: data,\n handler: handler,\n guid: handler.guid,\n selector: selector,\n needsContext: selector && jQuery.expr.match.needsContext.test(selector),\n namespace: namespaces.join(\".\")\n }, handleObjIn); // Init the event handler queue if we're the first\n\n if (!(handlers = events[type])) {\n handlers = events[type] = [];\n handlers.delegateCount = 0; // Only use addEventListener if the special events handler returns false\n\n if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) {\n if (elem.addEventListener) {\n elem.addEventListener(type, eventHandle);\n }\n }\n }\n\n if (special.add) {\n special.add.call(elem, handleObj);\n\n if (!handleObj.handler.guid) {\n handleObj.handler.guid = handler.guid;\n }\n } // Add to the element's handler list, delegates in front\n\n\n if (selector) {\n handlers.splice(handlers.delegateCount++, 0, handleObj);\n } else {\n handlers.push(handleObj);\n } // Keep track of which events have ever been used, for event optimization\n\n\n jQuery.event.global[type] = true;\n }\n },\n // Detach an event or set of events from an element\n remove: function remove(elem, types, handler, selector, mappedTypes) {\n var j,\n origCount,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.hasData(elem) && dataPriv.get(elem);\n\n if (!elemData || !(events = elemData.events)) {\n return;\n } // Once for each type.namespace in types; type may be omitted\n\n\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // Unbind all events (on this namespace, if provided) for the element\n\n if (!type) {\n for (type in events) {\n jQuery.event.remove(elem, type + types[t], handler, selector, true);\n }\n\n continue;\n }\n\n special = jQuery.event.special[type] || {};\n type = (selector ? special.delegateType : special.bindType) || type;\n handlers = events[type] || [];\n tmp = tmp[2] && new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\"); // Remove matching events\n\n origCount = j = handlers.length;\n\n while (j--) {\n handleObj = handlers[j];\n\n if ((mappedTypes || origType === handleObj.origType) && (!handler || handler.guid === handleObj.guid) && (!tmp || tmp.test(handleObj.namespace)) && (!selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector)) {\n handlers.splice(j, 1);\n\n if (handleObj.selector) {\n handlers.delegateCount--;\n }\n\n if (special.remove) {\n special.remove.call(elem, handleObj);\n }\n }\n } // Remove generic event handler if we removed something and no more handlers exist\n // (avoids potential for endless recursion during removal of special event handlers)\n\n\n if (origCount && !handlers.length) {\n if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) {\n jQuery.removeEvent(elem, type, elemData.handle);\n }\n\n delete events[type];\n }\n } // Remove data and the expando if it's no longer used\n\n\n if (jQuery.isEmptyObject(events)) {\n dataPriv.remove(elem, \"handle events\");\n }\n },\n dispatch: function dispatch(nativeEvent) {\n var i,\n j,\n ret,\n matched,\n handleObj,\n handlerQueue,\n args = new Array(arguments.length),\n // Make a writable jQuery.Event from the native event object\n event = jQuery.event.fix(nativeEvent),\n handlers = (dataPriv.get(this, \"events\") || Object.create(null))[event.type] || [],\n special = jQuery.event.special[event.type] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event\n\n args[0] = event;\n\n for (i = 1; i < arguments.length; i++) {\n args[i] = arguments[i];\n }\n\n event.delegateTarget = this; // Call the preDispatch hook for the mapped type, and let it bail if desired\n\n if (special.preDispatch && special.preDispatch.call(this, event) === false) {\n return;\n } // Determine handlers\n\n\n handlerQueue = jQuery.event.handlers.call(this, event, handlers); // Run delegates first; they may want to stop propagation beneath us\n\n i = 0;\n\n while ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) {\n event.currentTarget = matched.elem;\n j = 0;\n\n while ((handleObj = matched.handlers[j++]) && !event.isImmediatePropagationStopped()) {\n // If the event is namespaced, then each handler is only invoked if it is\n // specially universal or its namespaces are a superset of the event's.\n if (!event.rnamespace || handleObj.namespace === false || event.rnamespace.test(handleObj.namespace)) {\n event.handleObj = handleObj;\n event.data = handleObj.data;\n ret = ((jQuery.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply(matched.elem, args);\n\n if (ret !== undefined) {\n if ((event.result = ret) === false) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n } // Call the postDispatch hook for the mapped type\n\n\n if (special.postDispatch) {\n special.postDispatch.call(this, event);\n }\n\n return event.result;\n },\n handlers: function handlers(event, _handlers) {\n var i,\n handleObj,\n sel,\n matchedHandlers,\n matchedSelectors,\n handlerQueue = [],\n delegateCount = _handlers.delegateCount,\n cur = event.target; // Find delegate handlers\n\n if (delegateCount && // Support: IE <=9\n // Black-hole SVG instance trees (trac-13180)\n cur.nodeType && // Support: Firefox <=42\n // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n // Support: IE 11 only\n // ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n !(event.type === \"click\" && event.button >= 1)) {\n for (; cur !== this; cur = cur.parentNode || this) {\n // Don't check non-elements (#13208)\n // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n if (cur.nodeType === 1 && !(event.type === \"click\" && cur.disabled === true)) {\n matchedHandlers = [];\n matchedSelectors = {};\n\n for (i = 0; i < delegateCount; i++) {\n handleObj = _handlers[i]; // Don't conflict with Object.prototype properties (#13203)\n\n sel = handleObj.selector + \" \";\n\n if (matchedSelectors[sel] === undefined) {\n matchedSelectors[sel] = handleObj.needsContext ? jQuery(sel, this).index(cur) > -1 : jQuery.find(sel, this, null, [cur]).length;\n }\n\n if (matchedSelectors[sel]) {\n matchedHandlers.push(handleObj);\n }\n }\n\n if (matchedHandlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: matchedHandlers\n });\n }\n }\n }\n } // Add the remaining (directly-bound) handlers\n\n\n cur = this;\n\n if (delegateCount < _handlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: _handlers.slice(delegateCount)\n });\n }\n\n return handlerQueue;\n },\n addProp: function addProp(name, hook) {\n Object.defineProperty(jQuery.Event.prototype, name, {\n enumerable: true,\n configurable: true,\n get: isFunction(hook) ? function () {\n if (this.originalEvent) {\n return hook(this.originalEvent);\n }\n } : function () {\n if (this.originalEvent) {\n return this.originalEvent[name];\n }\n },\n set: function set(value) {\n Object.defineProperty(this, name, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: value\n });\n }\n });\n },\n fix: function fix(originalEvent) {\n return originalEvent[jQuery.expando] ? originalEvent : new jQuery.Event(originalEvent);\n },\n special: {\n load: {\n // Prevent triggered image.load events from bubbling to window.load\n noBubble: true\n },\n click: {\n // Utilize native event to ensure correct state for checkable inputs\n setup: function setup(data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data; // Claim the first handler\n\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n // dataPriv.set( el, \"click\", ... )\n leverageNative(el, \"click\", returnTrue);\n } // Return false to allow normal processing in the caller\n\n\n return false;\n },\n trigger: function trigger(data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data; // Force setup before triggering a click\n\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n leverageNative(el, \"click\");\n } // Return non-false to allow normal event-path propagation\n\n\n return true;\n },\n // For cross-browser consistency, suppress native .click() on links\n // Also prevent it if we're currently inside a leveraged native-event stack\n _default: function _default(event) {\n var target = event.target;\n return rcheckableType.test(target.type) && target.click && nodeName(target, \"input\") && dataPriv.get(target, \"click\") || nodeName(target, \"a\");\n }\n },\n beforeunload: {\n postDispatch: function postDispatch(event) {\n // Support: Firefox 20+\n // Firefox doesn't alert if the returnValue field is not set.\n if (event.result !== undefined && event.originalEvent) {\n event.originalEvent.returnValue = event.result;\n }\n }\n }\n }\n }; // Ensure the presence of an event listener that handles manually-triggered\n // synthetic events by interrupting progress until reinvoked in response to\n // *native* events that it fires directly, ensuring that state changes have\n // already occurred before other listeners are invoked.\n\n function leverageNative(el, type, expectSync) {\n // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n if (!expectSync) {\n if (dataPriv.get(el, type) === undefined) {\n jQuery.event.add(el, type, returnTrue);\n }\n\n return;\n } // Register the controller as a special universal handler for all event namespaces\n\n\n dataPriv.set(el, type, false);\n jQuery.event.add(el, type, {\n namespace: false,\n handler: function handler(event) {\n var notAsync,\n result,\n saved = dataPriv.get(this, type);\n\n if (event.isTrigger & 1 && this[type]) {\n // Interrupt processing of the outer synthetic .trigger()ed event\n // Saved data should be false in such cases, but might be a leftover capture object\n // from an async native handler (gh-4350)\n if (!saved.length) {\n // Store arguments for use when handling the inner native event\n // There will always be at least one argument (an event object), so this array\n // will not be confused with a leftover capture object.\n saved = _slice.call(arguments);\n dataPriv.set(this, type, saved); // Trigger the native event and capture its result\n // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous\n\n notAsync = expectSync(this, type);\n this[type]();\n result = dataPriv.get(this, type);\n\n if (saved !== result || notAsync) {\n dataPriv.set(this, type, false);\n } else {\n result = {};\n }\n\n if (saved !== result) {\n // Cancel the outer synthetic event\n event.stopImmediatePropagation();\n event.preventDefault();\n return result.value;\n } // If this is an inner synthetic event for an event with a bubbling surrogate\n // (focus or blur), assume that the surrogate already propagated from triggering the\n // native event and prevent that from happening again here.\n // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n // bubbling surrogate propagates *after* the non-bubbling base), but that seems\n // less bad than duplication.\n\n } else if ((jQuery.event.special[type] || {}).delegateType) {\n event.stopPropagation();\n } // If this is a native event triggered above, everything is now in order\n // Fire an inner synthetic event with the original arguments\n\n } else if (saved.length) {\n // ...and capture the result\n dataPriv.set(this, type, {\n value: jQuery.event.trigger( // Support: IE <=9 - 11+\n // Extend with the prototype to reset the above stopImmediatePropagation()\n jQuery.extend(saved[0], jQuery.Event.prototype), saved.slice(1), this)\n }); // Abort handling of the native event\n\n event.stopImmediatePropagation();\n }\n }\n });\n }\n\n jQuery.removeEvent = function (elem, type, handle) {\n // This \"if\" is needed for plain objects\n if (elem.removeEventListener) {\n elem.removeEventListener(type, handle);\n }\n };\n\n jQuery.Event = function (src, props) {\n // Allow instantiation without the 'new' keyword\n if (!(this instanceof jQuery.Event)) {\n return new jQuery.Event(src, props);\n } // Event object\n\n\n if (src && src.type) {\n this.originalEvent = src;\n this.type = src.type; // Events bubbling up the document may have been marked as prevented\n // by a handler lower down the tree; reflect the correct value.\n\n this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === undefined && // Support: Android <=2.3 only\n src.returnValue === false ? returnTrue : returnFalse; // Create target properties\n // Support: Safari <=6 - 7 only\n // Target should not be a text node (#504, #13143)\n\n this.target = src.target && src.target.nodeType === 3 ? src.target.parentNode : src.target;\n this.currentTarget = src.currentTarget;\n this.relatedTarget = src.relatedTarget; // Event type\n } else {\n this.type = src;\n } // Put explicitly provided properties onto the event object\n\n\n if (props) {\n jQuery.extend(this, props);\n } // Create a timestamp if incoming event doesn't have one\n\n\n this.timeStamp = src && src.timeStamp || Date.now(); // Mark it as fixed\n\n this[jQuery.expando] = true;\n }; // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n // https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\n\n\n jQuery.Event.prototype = {\n constructor: jQuery.Event,\n isDefaultPrevented: returnFalse,\n isPropagationStopped: returnFalse,\n isImmediatePropagationStopped: returnFalse,\n isSimulated: false,\n preventDefault: function preventDefault() {\n var e = this.originalEvent;\n this.isDefaultPrevented = returnTrue;\n\n if (e && !this.isSimulated) {\n e.preventDefault();\n }\n },\n stopPropagation: function stopPropagation() {\n var e = this.originalEvent;\n this.isPropagationStopped = returnTrue;\n\n if (e && !this.isSimulated) {\n e.stopPropagation();\n }\n },\n stopImmediatePropagation: function stopImmediatePropagation() {\n var e = this.originalEvent;\n this.isImmediatePropagationStopped = returnTrue;\n\n if (e && !this.isSimulated) {\n e.stopImmediatePropagation();\n }\n\n this.stopPropagation();\n }\n }; // Includes all common event props including KeyEvent and MouseEvent specific props\n\n jQuery.each({\n altKey: true,\n bubbles: true,\n cancelable: true,\n changedTouches: true,\n ctrlKey: true,\n detail: true,\n eventPhase: true,\n metaKey: true,\n pageX: true,\n pageY: true,\n shiftKey: true,\n view: true,\n \"char\": true,\n code: true,\n charCode: true,\n key: true,\n keyCode: true,\n button: true,\n buttons: true,\n clientX: true,\n clientY: true,\n offsetX: true,\n offsetY: true,\n pointerId: true,\n pointerType: true,\n screenX: true,\n screenY: true,\n targetTouches: true,\n toElement: true,\n touches: true,\n which: function which(event) {\n var button = event.button; // Add which for key events\n\n if (event.which == null && rkeyEvent.test(event.type)) {\n return event.charCode != null ? event.charCode : event.keyCode;\n } // Add which for click: 1 === left; 2 === middle; 3 === right\n\n\n if (!event.which && button !== undefined && rmouseEvent.test(event.type)) {\n if (button & 1) {\n return 1;\n }\n\n if (button & 2) {\n return 3;\n }\n\n if (button & 4) {\n return 2;\n }\n\n return 0;\n }\n\n return event.which;\n }\n }, jQuery.event.addProp);\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (type, delegateType) {\n jQuery.event.special[type] = {\n // Utilize native event if possible so blur/focus sequence is correct\n setup: function setup() {\n // Claim the first handler\n // dataPriv.set( this, \"focus\", ... )\n // dataPriv.set( this, \"blur\", ... )\n leverageNative(this, type, expectSync); // Return false to allow normal processing in the caller\n\n return false;\n },\n trigger: function trigger() {\n // Force setup before trigger\n leverageNative(this, type); // Return non-false to allow normal event-path propagation\n\n return true;\n },\n delegateType: delegateType\n };\n }); // Create mouseenter/leave events using mouseover/out and event-time checks\n // so that event delegation works in jQuery.\n // Do the same for pointerenter/pointerleave and pointerover/pointerout\n //\n // Support: Safari 7 only\n // Safari sends mouseenter too often; see:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n // for the description of the bug (it existed in older Chrome versions as well).\n\n jQuery.each({\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\",\n pointerenter: \"pointerover\",\n pointerleave: \"pointerout\"\n }, function (orig, fix) {\n jQuery.event.special[orig] = {\n delegateType: fix,\n bindType: fix,\n handle: function handle(event) {\n var ret,\n target = this,\n related = event.relatedTarget,\n handleObj = event.handleObj; // For mouseenter/leave call the handler if related is outside the target.\n // NB: No relatedTarget if the mouse left/entered the browser window\n\n if (!related || related !== target && !jQuery.contains(target, related)) {\n event.type = handleObj.origType;\n ret = handleObj.handler.apply(this, arguments);\n event.type = fix;\n }\n\n return ret;\n }\n };\n });\n jQuery.fn.extend({\n on: function on(types, selector, data, fn) {\n return _on(this, types, selector, data, fn);\n },\n one: function one(types, selector, data, fn) {\n return _on(this, types, selector, data, fn, 1);\n },\n off: function off(types, selector, fn) {\n var handleObj, type;\n\n if (types && types.preventDefault && types.handleObj) {\n // ( event ) dispatched jQuery.Event\n handleObj = types.handleObj;\n jQuery(types.delegateTarget).off(handleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType, handleObj.selector, handleObj.handler);\n return this;\n }\n\n if (_typeof(types) === \"object\") {\n // ( types-object [, selector] )\n for (type in types) {\n this.off(type, selector, types[type]);\n }\n\n return this;\n }\n\n if (selector === false || typeof selector === \"function\") {\n // ( types [, fn] )\n fn = selector;\n selector = undefined;\n }\n\n if (fn === false) {\n fn = returnFalse;\n }\n\n return this.each(function () {\n jQuery.event.remove(this, types, fn, selector);\n });\n }\n });\n var // Support: IE <=10 - 11, Edge 12 - 13 only\n // In IE/Edge using regex groups here causes severe slowdowns.\n // See https://connect.microsoft.com/IE/feedback/details/1736512/\n rnoInnerhtml = /\\s*$/g; // Prefer a tbody over its parent table for containing new rows\n\n function manipulationTarget(elem, content) {\n if (nodeName(elem, \"table\") && nodeName(content.nodeType !== 11 ? content : content.firstChild, \"tr\")) {\n return jQuery(elem).children(\"tbody\")[0] || elem;\n }\n\n return elem;\n } // Replace/restore the type attribute of script elements for safe DOM manipulation\n\n\n function disableScript(elem) {\n elem.type = (elem.getAttribute(\"type\") !== null) + \"/\" + elem.type;\n return elem;\n }\n\n function restoreScript(elem) {\n if ((elem.type || \"\").slice(0, 5) === \"true/\") {\n elem.type = elem.type.slice(5);\n } else {\n elem.removeAttribute(\"type\");\n }\n\n return elem;\n }\n\n function cloneCopyEvent(src, dest) {\n var i, l, type, pdataOld, udataOld, udataCur, events;\n\n if (dest.nodeType !== 1) {\n return;\n } // 1. Copy private data: events, handlers, etc.\n\n\n if (dataPriv.hasData(src)) {\n pdataOld = dataPriv.get(src);\n events = pdataOld.events;\n\n if (events) {\n dataPriv.remove(dest, \"handle events\");\n\n for (type in events) {\n for (i = 0, l = events[type].length; i < l; i++) {\n jQuery.event.add(dest, type, events[type][i]);\n }\n }\n }\n } // 2. Copy user data\n\n\n if (dataUser.hasData(src)) {\n udataOld = dataUser.access(src);\n udataCur = jQuery.extend({}, udataOld);\n dataUser.set(dest, udataCur);\n }\n } // Fix IE bugs, see support tests\n\n\n function fixInput(src, dest) {\n var nodeName = dest.nodeName.toLowerCase(); // Fails to persist the checked state of a cloned checkbox or radio button.\n\n if (nodeName === \"input\" && rcheckableType.test(src.type)) {\n dest.checked = src.checked; // Fails to return the selected option to the default selected state when cloning options\n } else if (nodeName === \"input\" || nodeName === \"textarea\") {\n dest.defaultValue = src.defaultValue;\n }\n }\n\n function domManip(collection, args, callback, ignored) {\n // Flatten any nested arrays\n args = flat(args);\n var fragment,\n first,\n scripts,\n hasScripts,\n node,\n doc,\n i = 0,\n l = collection.length,\n iNoClone = l - 1,\n value = args[0],\n valueIsFunction = isFunction(value); // We can't cloneNode fragments that contain checked, in WebKit\n\n if (valueIsFunction || l > 1 && typeof value === \"string\" && !support.checkClone && rchecked.test(value)) {\n return collection.each(function (index) {\n var self = collection.eq(index);\n\n if (valueIsFunction) {\n args[0] = value.call(this, index, self.html());\n }\n\n domManip(self, args, callback, ignored);\n });\n }\n\n if (l) {\n fragment = buildFragment(args, collection[0].ownerDocument, false, collection, ignored);\n first = fragment.firstChild;\n\n if (fragment.childNodes.length === 1) {\n fragment = first;\n } // Require either new content or an interest in ignored elements to invoke the callback\n\n\n if (first || ignored) {\n scripts = jQuery.map(getAll(fragment, \"script\"), disableScript);\n hasScripts = scripts.length; // Use the original fragment for the last item\n // instead of the first because it can end up\n // being emptied incorrectly in certain situations (#8070).\n\n for (; i < l; i++) {\n node = fragment;\n\n if (i !== iNoClone) {\n node = jQuery.clone(node, true, true); // Keep references to cloned scripts for later restoration\n\n if (hasScripts) {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(scripts, getAll(node, \"script\"));\n }\n }\n\n callback.call(collection[i], node, i);\n }\n\n if (hasScripts) {\n doc = scripts[scripts.length - 1].ownerDocument; // Reenable scripts\n\n jQuery.map(scripts, restoreScript); // Evaluate executable scripts on first document insertion\n\n for (i = 0; i < hasScripts; i++) {\n node = scripts[i];\n\n if (rscriptType.test(node.type || \"\") && !dataPriv.access(node, \"globalEval\") && jQuery.contains(doc, node)) {\n if (node.src && (node.type || \"\").toLowerCase() !== \"module\") {\n // Optional AJAX dependency, but won't run scripts if not present\n if (jQuery._evalUrl && !node.noModule) {\n jQuery._evalUrl(node.src, {\n nonce: node.nonce || node.getAttribute(\"nonce\")\n }, doc);\n }\n } else {\n DOMEval(node.textContent.replace(rcleanScript, \"\"), node, doc);\n }\n }\n }\n }\n }\n }\n\n return collection;\n }\n\n function _remove(elem, selector, keepData) {\n var node,\n nodes = selector ? jQuery.filter(selector, elem) : elem,\n i = 0;\n\n for (; (node = nodes[i]) != null; i++) {\n if (!keepData && node.nodeType === 1) {\n jQuery.cleanData(getAll(node));\n }\n\n if (node.parentNode) {\n if (keepData && isAttached(node)) {\n setGlobalEval(getAll(node, \"script\"));\n }\n\n node.parentNode.removeChild(node);\n }\n }\n\n return elem;\n }\n\n jQuery.extend({\n htmlPrefilter: function htmlPrefilter(html) {\n return html;\n },\n clone: function clone(elem, dataAndEvents, deepDataAndEvents) {\n var i,\n l,\n srcElements,\n destElements,\n clone = elem.cloneNode(true),\n inPage = isAttached(elem); // Fix IE cloning issues\n\n if (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem)) {\n // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n destElements = getAll(clone);\n srcElements = getAll(elem);\n\n for (i = 0, l = srcElements.length; i < l; i++) {\n fixInput(srcElements[i], destElements[i]);\n }\n } // Copy the events from the original to the clone\n\n\n if (dataAndEvents) {\n if (deepDataAndEvents) {\n srcElements = srcElements || getAll(elem);\n destElements = destElements || getAll(clone);\n\n for (i = 0, l = srcElements.length; i < l; i++) {\n cloneCopyEvent(srcElements[i], destElements[i]);\n }\n } else {\n cloneCopyEvent(elem, clone);\n }\n } // Preserve script evaluation history\n\n\n destElements = getAll(clone, \"script\");\n\n if (destElements.length > 0) {\n setGlobalEval(destElements, !inPage && getAll(elem, \"script\"));\n } // Return the cloned set\n\n\n return clone;\n },\n cleanData: function cleanData(elems) {\n var data,\n elem,\n type,\n special = jQuery.event.special,\n i = 0;\n\n for (; (elem = elems[i]) !== undefined; i++) {\n if (acceptData(elem)) {\n if (data = elem[dataPriv.expando]) {\n if (data.events) {\n for (type in data.events) {\n if (special[type]) {\n jQuery.event.remove(elem, type); // This is a shortcut to avoid jQuery.event.remove's overhead\n } else {\n jQuery.removeEvent(elem, type, data.handle);\n }\n }\n } // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n\n\n elem[dataPriv.expando] = undefined;\n }\n\n if (elem[dataUser.expando]) {\n // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n elem[dataUser.expando] = undefined;\n }\n }\n }\n }\n });\n jQuery.fn.extend({\n detach: function detach(selector) {\n return _remove(this, selector, true);\n },\n remove: function remove(selector) {\n return _remove(this, selector);\n },\n text: function text(value) {\n return access(this, function (value) {\n return value === undefined ? jQuery.text(this) : this.empty().each(function () {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n this.textContent = value;\n }\n });\n }, null, value, arguments.length);\n },\n append: function append() {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.appendChild(elem);\n }\n });\n },\n prepend: function prepend() {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.insertBefore(elem, target.firstChild);\n }\n });\n },\n before: function before() {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this);\n }\n });\n },\n after: function after() {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this.nextSibling);\n }\n });\n },\n empty: function empty() {\n var elem,\n i = 0;\n\n for (; (elem = this[i]) != null; i++) {\n if (elem.nodeType === 1) {\n // Prevent memory leaks\n jQuery.cleanData(getAll(elem, false)); // Remove any remaining nodes\n\n elem.textContent = \"\";\n }\n }\n\n return this;\n },\n clone: function clone(dataAndEvents, deepDataAndEvents) {\n dataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n return this.map(function () {\n return jQuery.clone(this, dataAndEvents, deepDataAndEvents);\n });\n },\n html: function html(value) {\n return access(this, function (value) {\n var elem = this[0] || {},\n i = 0,\n l = this.length;\n\n if (value === undefined && elem.nodeType === 1) {\n return elem.innerHTML;\n } // See if we can take a shortcut and just use innerHTML\n\n\n if (typeof value === \"string\" && !rnoInnerhtml.test(value) && !wrapMap[(rtagName.exec(value) || [\"\", \"\"])[1].toLowerCase()]) {\n value = jQuery.htmlPrefilter(value);\n\n try {\n for (; i < l; i++) {\n elem = this[i] || {}; // Remove element nodes and prevent memory leaks\n\n if (elem.nodeType === 1) {\n jQuery.cleanData(getAll(elem, false));\n elem.innerHTML = value;\n }\n }\n\n elem = 0; // If using innerHTML throws an exception, use the fallback method\n } catch (e) {}\n }\n\n if (elem) {\n this.empty().append(value);\n }\n }, null, value, arguments.length);\n },\n replaceWith: function replaceWith() {\n var ignored = []; // Make the changes, replacing each non-ignored context element with the new content\n\n return domManip(this, arguments, function (elem) {\n var parent = this.parentNode;\n\n if (jQuery.inArray(this, ignored) < 0) {\n jQuery.cleanData(getAll(this));\n\n if (parent) {\n parent.replaceChild(elem, this);\n }\n } // Force callback invocation\n\n }, ignored);\n }\n });\n jQuery.each({\n appendTo: \"append\",\n prependTo: \"prepend\",\n insertBefore: \"before\",\n insertAfter: \"after\",\n replaceAll: \"replaceWith\"\n }, function (name, original) {\n jQuery.fn[name] = function (selector) {\n var elems,\n ret = [],\n insert = jQuery(selector),\n last = insert.length - 1,\n i = 0;\n\n for (; i <= last; i++) {\n elems = i === last ? this : this.clone(true);\n jQuery(insert[i])[original](elems); // Support: Android <=4.0 only, PhantomJS 1 only\n // .get() because push.apply(_, arraylike) throws on ancient WebKit\n\n push.apply(ret, elems.get());\n }\n\n return this.pushStack(ret);\n };\n });\n var rnumnonpx = new RegExp(\"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\");\n\n var getStyles = function getStyles(elem) {\n // Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n // IE throws on elements created in popups\n // FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n var view = elem.ownerDocument.defaultView;\n\n if (!view || !view.opener) {\n view = window;\n }\n\n return view.getComputedStyle(elem);\n };\n\n var swap = function swap(elem, options, callback) {\n var ret,\n name,\n old = {}; // Remember the old values, and insert the new ones\n\n for (name in options) {\n old[name] = elem.style[name];\n elem.style[name] = options[name];\n }\n\n ret = callback.call(elem); // Revert the old values\n\n for (name in options) {\n elem.style[name] = old[name];\n }\n\n return ret;\n };\n\n var rboxStyle = new RegExp(cssExpand.join(\"|\"), \"i\");\n\n (function () {\n // Executing both pixelPosition & boxSizingReliable tests require only one layout\n // so they're executed at the same time to save the second computation.\n function computeStyleTests() {\n // This is a singleton, we need to execute it only once\n if (!div) {\n return;\n }\n\n container.style.cssText = \"position:absolute;left:-11111px;width:60px;\" + \"margin-top:1px;padding:0;border:0\";\n div.style.cssText = \"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" + \"margin:auto;border:1px;padding:1px;\" + \"width:60%;top:1%\";\n documentElement.appendChild(container).appendChild(div);\n var divStyle = window.getComputedStyle(div);\n pixelPositionVal = divStyle.top !== \"1%\"; // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\n reliableMarginLeftVal = roundPixelMeasures(divStyle.marginLeft) === 12; // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n // Some styles come back with percentage values, even though they shouldn't\n\n div.style.right = \"60%\";\n pixelBoxStylesVal = roundPixelMeasures(divStyle.right) === 36; // Support: IE 9 - 11 only\n // Detect misreporting of content dimensions for box-sizing:border-box elements\n\n boxSizingReliableVal = roundPixelMeasures(divStyle.width) === 36; // Support: IE 9 only\n // Detect overflow:scroll screwiness (gh-3699)\n // Support: Chrome <=64\n // Don't get tricked when zoom affects offsetWidth (gh-4029)\n\n div.style.position = \"absolute\";\n scrollboxSizeVal = roundPixelMeasures(div.offsetWidth / 3) === 12;\n documentElement.removeChild(container); // Nullify the div so it wouldn't be stored in the memory and\n // it will also be a sign that checks already performed\n\n div = null;\n }\n\n function roundPixelMeasures(measure) {\n return Math.round(parseFloat(measure));\n }\n\n var pixelPositionVal,\n boxSizingReliableVal,\n scrollboxSizeVal,\n pixelBoxStylesVal,\n reliableTrDimensionsVal,\n reliableMarginLeftVal,\n container = document.createElement(\"div\"),\n div = document.createElement(\"div\"); // Finish early in limited (non-browser) environments\n\n if (!div.style) {\n return;\n } // Support: IE <=9 - 11 only\n // Style of cloned element affects source element cloned (#8908)\n\n\n div.style.backgroundClip = \"content-box\";\n div.cloneNode(true).style.backgroundClip = \"\";\n support.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n jQuery.extend(support, {\n boxSizingReliable: function boxSizingReliable() {\n computeStyleTests();\n return boxSizingReliableVal;\n },\n pixelBoxStyles: function pixelBoxStyles() {\n computeStyleTests();\n return pixelBoxStylesVal;\n },\n pixelPosition: function pixelPosition() {\n computeStyleTests();\n return pixelPositionVal;\n },\n reliableMarginLeft: function reliableMarginLeft() {\n computeStyleTests();\n return reliableMarginLeftVal;\n },\n scrollboxSize: function scrollboxSize() {\n computeStyleTests();\n return scrollboxSizeVal;\n },\n // Support: IE 9 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Behavior in IE 9 is more subtle than in newer versions & it passes\n // some versions of this test; make sure not to make it pass there!\n reliableTrDimensions: function reliableTrDimensions() {\n var table, tr, trChild, trStyle;\n\n if (reliableTrDimensionsVal == null) {\n table = document.createElement(\"table\");\n tr = document.createElement(\"tr\");\n trChild = document.createElement(\"div\");\n table.style.cssText = \"position:absolute;left:-11111px\";\n tr.style.height = \"1px\";\n trChild.style.height = \"9px\";\n documentElement.appendChild(table).appendChild(tr).appendChild(trChild);\n trStyle = window.getComputedStyle(tr);\n reliableTrDimensionsVal = parseInt(trStyle.height) > 3;\n documentElement.removeChild(table);\n }\n\n return reliableTrDimensionsVal;\n }\n });\n })();\n\n function curCSS(elem, name, computed) {\n var width,\n minWidth,\n maxWidth,\n ret,\n // Support: Firefox 51+\n // Retrieving style before computed somehow\n // fixes an issue with getting wrong values\n // on detached elements\n style = elem.style;\n computed = computed || getStyles(elem); // getPropertyValue is needed for:\n // .css('filter') (IE 9 only, #12537)\n // .css('--customProperty) (#3144)\n\n if (computed) {\n ret = computed.getPropertyValue(name) || computed[name];\n\n if (ret === \"\" && !isAttached(elem)) {\n ret = jQuery.style(elem, name);\n } // A tribute to the \"awesome hack by Dean Edwards\"\n // Android Browser returns percentage for some values,\n // but width seems to be reliably pixels.\n // This is against the CSSOM draft spec:\n // https://drafts.csswg.org/cssom/#resolved-values\n\n\n if (!support.pixelBoxStyles() && rnumnonpx.test(ret) && rboxStyle.test(name)) {\n // Remember the original values\n width = style.width;\n minWidth = style.minWidth;\n maxWidth = style.maxWidth; // Put in the new values to get a computed value out\n\n style.minWidth = style.maxWidth = style.width = ret;\n ret = computed.width; // Revert the changed values\n\n style.width = width;\n style.minWidth = minWidth;\n style.maxWidth = maxWidth;\n }\n }\n\n return ret !== undefined ? // Support: IE <=9 - 11 only\n // IE returns zIndex value as an integer.\n ret + \"\" : ret;\n }\n\n function addGetHookIf(conditionFn, hookFn) {\n // Define the hook, we'll check on the first run if it's really needed.\n return {\n get: function get() {\n if (conditionFn()) {\n // Hook not needed (or it's not possible to use it due\n // to missing dependency), remove it.\n delete this.get;\n return;\n } // Hook needed; redefine it so that the support test is not executed again.\n\n\n return (this.get = hookFn).apply(this, arguments);\n }\n };\n }\n\n var cssPrefixes = [\"Webkit\", \"Moz\", \"ms\"],\n emptyStyle = document.createElement(\"div\").style,\n vendorProps = {}; // Return a vendor-prefixed property or undefined\n\n function vendorPropName(name) {\n // Check for vendor prefixed names\n var capName = name[0].toUpperCase() + name.slice(1),\n i = cssPrefixes.length;\n\n while (i--) {\n name = cssPrefixes[i] + capName;\n\n if (name in emptyStyle) {\n return name;\n }\n }\n } // Return a potentially-mapped jQuery.cssProps or vendor prefixed property\n\n\n function finalPropName(name) {\n var _final = jQuery.cssProps[name] || vendorProps[name];\n\n if (_final) {\n return _final;\n }\n\n if (name in emptyStyle) {\n return name;\n }\n\n return vendorProps[name] = vendorPropName(name) || name;\n }\n\n var // Swappable if display is none or starts with table\n // except \"table\", \"table-cell\", or \"table-caption\"\n // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n rdisplayswap = /^(none|table(?!-c[ea]).+)/,\n rcustomProp = /^--/,\n cssShow = {\n position: \"absolute\",\n visibility: \"hidden\",\n display: \"block\"\n },\n cssNormalTransform = {\n letterSpacing: \"0\",\n fontWeight: \"400\"\n };\n\n function setPositiveNumber(_elem, value, subtract) {\n // Any relative (+/-) values have already been\n // normalized at this point\n var matches = rcssNum.exec(value);\n return matches ? // Guard against undefined \"subtract\", e.g., when used as in cssHooks\n Math.max(0, matches[2] - (subtract || 0)) + (matches[3] || \"px\") : value;\n }\n\n function boxModelAdjustment(elem, dimension, box, isBorderBox, styles, computedVal) {\n var i = dimension === \"width\" ? 1 : 0,\n extra = 0,\n delta = 0; // Adjustment may not be necessary\n\n if (box === (isBorderBox ? \"border\" : \"content\")) {\n return 0;\n }\n\n for (; i < 4; i += 2) {\n // Both box models exclude margin\n if (box === \"margin\") {\n delta += jQuery.css(elem, box + cssExpand[i], true, styles);\n } // If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\n\n if (!isBorderBox) {\n // Add padding\n delta += jQuery.css(elem, \"padding\" + cssExpand[i], true, styles); // For \"border\" or \"margin\", add border\n\n if (box !== \"padding\") {\n delta += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles); // But still keep track of it otherwise\n } else {\n extra += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n } // If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n // \"padding\" or \"margin\"\n\n } else {\n // For \"content\", subtract padding\n if (box === \"content\") {\n delta -= jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\n } // For \"content\" or \"padding\", subtract border\n\n\n if (box !== \"margin\") {\n delta -= jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n }\n }\n } // Account for positive content-box scroll gutter when requested by providing computedVal\n\n\n if (!isBorderBox && computedVal >= 0) {\n // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n // Assuming integer scroll gutter, subtract the rest and round down\n delta += Math.max(0, Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - computedVal - delta - extra - 0.5 // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n // Use an explicit zero to avoid NaN (gh-3964)\n )) || 0;\n }\n\n return delta;\n }\n\n function getWidthOrHeight(elem, dimension, extra) {\n // Start with computed style\n var styles = getStyles(elem),\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n // Fake content-box until we know it's needed to know the true value.\n boxSizingNeeded = !support.boxSizingReliable() || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n valueIsBorderBox = isBorderBox,\n val = curCSS(elem, dimension, styles),\n offsetProp = \"offset\" + dimension[0].toUpperCase() + dimension.slice(1); // Support: Firefox <=54\n // Return a confounding non-pixel value or feign ignorance, as appropriate.\n\n if (rnumnonpx.test(val)) {\n if (!extra) {\n return val;\n }\n\n val = \"auto\";\n } // Support: IE 9 - 11 only\n // Use offsetWidth/offsetHeight for when box sizing is unreliable.\n // In those cases, the computed value can be trusted to be border-box.\n\n\n if ((!support.boxSizingReliable() && isBorderBox || // Support: IE 10 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Interestingly, in some cases IE 9 doesn't suffer from this issue.\n !support.reliableTrDimensions() && nodeName(elem, \"tr\") || // Fall back to offsetWidth/offsetHeight when value is \"auto\"\n // This happens for inline elements with no explicit setting (gh-3571)\n val === \"auto\" || // Support: Android <=4.1 - 4.3 only\n // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n !parseFloat(val) && jQuery.css(elem, \"display\", false, styles) === \"inline\") && // Make sure the element is visible & connected\n elem.getClientRects().length) {\n isBorderBox = jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\"; // Where available, offsetWidth/offsetHeight approximate border box dimensions.\n // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n // retrieved value as a content box dimension.\n\n valueIsBorderBox = offsetProp in elem;\n\n if (valueIsBorderBox) {\n val = elem[offsetProp];\n }\n } // Normalize \"\" and auto\n\n\n val = parseFloat(val) || 0; // Adjust for the element's box model\n\n return val + boxModelAdjustment(elem, dimension, extra || (isBorderBox ? \"border\" : \"content\"), valueIsBorderBox, styles, // Provide the current computed size to request scroll gutter calculation (gh-3589)\n val) + \"px\";\n }\n\n jQuery.extend({\n // Add in style property hooks for overriding the default\n // behavior of getting and setting a style property\n cssHooks: {\n opacity: {\n get: function get(elem, computed) {\n if (computed) {\n // We should always get a number back from opacity\n var ret = curCSS(elem, \"opacity\");\n return ret === \"\" ? \"1\" : ret;\n }\n }\n }\n },\n // Don't automatically add \"px\" to these possibly-unitless properties\n cssNumber: {\n \"animationIterationCount\": true,\n \"columnCount\": true,\n \"fillOpacity\": true,\n \"flexGrow\": true,\n \"flexShrink\": true,\n \"fontWeight\": true,\n \"gridArea\": true,\n \"gridColumn\": true,\n \"gridColumnEnd\": true,\n \"gridColumnStart\": true,\n \"gridRow\": true,\n \"gridRowEnd\": true,\n \"gridRowStart\": true,\n \"lineHeight\": true,\n \"opacity\": true,\n \"order\": true,\n \"orphans\": true,\n \"widows\": true,\n \"zIndex\": true,\n \"zoom\": true\n },\n // Add in properties whose names you wish to fix before\n // setting or getting the value\n cssProps: {},\n // Get and set the style property on a DOM Node\n style: function style(elem, name, value, extra) {\n // Don't set styles on text and comment nodes\n if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) {\n return;\n } // Make sure that we're working with the right name\n\n\n var ret,\n type,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name),\n style = elem.style; // Make sure that we're working with the right name. We don't\n // want to query the value if it is a CSS custom property\n // since they are user-defined.\n\n if (!isCustomProp) {\n name = finalPropName(origName);\n } // Gets hook for the prefixed version, then unprefixed version\n\n\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // Check if we're setting a value\n\n if (value !== undefined) {\n type = _typeof(value); // Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\n if (type === \"string\" && (ret = rcssNum.exec(value)) && ret[1]) {\n value = adjustCSS(elem, name, ret); // Fixes bug #9237\n\n type = \"number\";\n } // Make sure that null and NaN values aren't set (#7116)\n\n\n if (value == null || value !== value) {\n return;\n } // If a number was passed in, add the unit (except for certain CSS properties)\n // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n // \"px\" to a few hardcoded values.\n\n\n if (type === \"number\" && !isCustomProp) {\n value += ret && ret[3] || (jQuery.cssNumber[origName] ? \"\" : \"px\");\n } // background-* props affect original clone's values\n\n\n if (!support.clearCloneStyle && value === \"\" && name.indexOf(\"background\") === 0) {\n style[name] = \"inherit\";\n } // If a hook was provided, use that value, otherwise just set the specified value\n\n\n if (!hooks || !(\"set\" in hooks) || (value = hooks.set(elem, value, extra)) !== undefined) {\n if (isCustomProp) {\n style.setProperty(name, value);\n } else {\n style[name] = value;\n }\n }\n } else {\n // If a hook was provided get the non-computed value from there\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, false, extra)) !== undefined) {\n return ret;\n } // Otherwise just get the value from the style object\n\n\n return style[name];\n }\n },\n css: function css(elem, name, extra, styles) {\n var val,\n num,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name); // Make sure that we're working with the right name. We don't\n // want to modify the value if it is a CSS custom property\n // since they are user-defined.\n\n if (!isCustomProp) {\n name = finalPropName(origName);\n } // Try prefixed name followed by the unprefixed name\n\n\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // If a hook was provided get the computed value from there\n\n if (hooks && \"get\" in hooks) {\n val = hooks.get(elem, true, extra);\n } // Otherwise, if a way to get the computed value exists, use that\n\n\n if (val === undefined) {\n val = curCSS(elem, name, styles);\n } // Convert \"normal\" to computed value\n\n\n if (val === \"normal\" && name in cssNormalTransform) {\n val = cssNormalTransform[name];\n } // Make numeric if forced or a qualifier was provided and val looks numeric\n\n\n if (extra === \"\" || extra) {\n num = parseFloat(val);\n return extra === true || isFinite(num) ? num || 0 : val;\n }\n\n return val;\n }\n });\n jQuery.each([\"height\", \"width\"], function (_i, dimension) {\n jQuery.cssHooks[dimension] = {\n get: function get(elem, computed, extra) {\n if (computed) {\n // Certain elements can have dimension info if we invisibly show them\n // but it must have a current display style that would benefit\n return rdisplayswap.test(jQuery.css(elem, \"display\")) && ( // Support: Safari 8+\n // Table columns in Safari have non-zero offsetWidth & zero\n // getBoundingClientRect().width unless display is changed.\n // Support: IE <=11 only\n // Running getBoundingClientRect on a disconnected node\n // in IE throws an error.\n !elem.getClientRects().length || !elem.getBoundingClientRect().width) ? swap(elem, cssShow, function () {\n return getWidthOrHeight(elem, dimension, extra);\n }) : getWidthOrHeight(elem, dimension, extra);\n }\n },\n set: function set(elem, value, extra) {\n var matches,\n styles = getStyles(elem),\n // Only read styles.position if the test has a chance to fail\n // to avoid forcing a reflow.\n scrollboxSizeBuggy = !support.scrollboxSize() && styles.position === \"absolute\",\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n boxSizingNeeded = scrollboxSizeBuggy || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n subtract = extra ? boxModelAdjustment(elem, dimension, extra, isBorderBox, styles) : 0; // Account for unreliable border-box dimensions by comparing offset* to computed and\n // faking a content-box to get border and padding (gh-3699)\n\n if (isBorderBox && scrollboxSizeBuggy) {\n subtract -= Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - parseFloat(styles[dimension]) - boxModelAdjustment(elem, dimension, \"border\", false, styles) - 0.5);\n } // Convert to pixels if value adjustment is needed\n\n\n if (subtract && (matches = rcssNum.exec(value)) && (matches[3] || \"px\") !== \"px\") {\n elem.style[dimension] = value;\n value = jQuery.css(elem, dimension);\n }\n\n return setPositiveNumber(elem, value, subtract);\n }\n };\n });\n jQuery.cssHooks.marginLeft = addGetHookIf(support.reliableMarginLeft, function (elem, computed) {\n if (computed) {\n return (parseFloat(curCSS(elem, \"marginLeft\")) || elem.getBoundingClientRect().left - swap(elem, {\n marginLeft: 0\n }, function () {\n return elem.getBoundingClientRect().left;\n })) + \"px\";\n }\n }); // These hooks are used by animate to expand properties\n\n jQuery.each({\n margin: \"\",\n padding: \"\",\n border: \"Width\"\n }, function (prefix, suffix) {\n jQuery.cssHooks[prefix + suffix] = {\n expand: function expand(value) {\n var i = 0,\n expanded = {},\n // Assumes a single number if not a string\n parts = typeof value === \"string\" ? value.split(\" \") : [value];\n\n for (; i < 4; i++) {\n expanded[prefix + cssExpand[i] + suffix] = parts[i] || parts[i - 2] || parts[0];\n }\n\n return expanded;\n }\n };\n\n if (prefix !== \"margin\") {\n jQuery.cssHooks[prefix + suffix].set = setPositiveNumber;\n }\n });\n jQuery.fn.extend({\n css: function css(name, value) {\n return access(this, function (elem, name, value) {\n var styles,\n len,\n map = {},\n i = 0;\n\n if (Array.isArray(name)) {\n styles = getStyles(elem);\n len = name.length;\n\n for (; i < len; i++) {\n map[name[i]] = jQuery.css(elem, name[i], false, styles);\n }\n\n return map;\n }\n\n return value !== undefined ? jQuery.style(elem, name, value) : jQuery.css(elem, name);\n }, name, value, arguments.length > 1);\n }\n });\n\n function Tween(elem, options, prop, end, easing) {\n return new Tween.prototype.init(elem, options, prop, end, easing);\n }\n\n jQuery.Tween = Tween;\n Tween.prototype = {\n constructor: Tween,\n init: function init(elem, options, prop, end, easing, unit) {\n this.elem = elem;\n this.prop = prop;\n this.easing = easing || jQuery.easing._default;\n this.options = options;\n this.start = this.now = this.cur();\n this.end = end;\n this.unit = unit || (jQuery.cssNumber[prop] ? \"\" : \"px\");\n },\n cur: function cur() {\n var hooks = Tween.propHooks[this.prop];\n return hooks && hooks.get ? hooks.get(this) : Tween.propHooks._default.get(this);\n },\n run: function run(percent) {\n var eased,\n hooks = Tween.propHooks[this.prop];\n\n if (this.options.duration) {\n this.pos = eased = jQuery.easing[this.easing](percent, this.options.duration * percent, 0, 1, this.options.duration);\n } else {\n this.pos = eased = percent;\n }\n\n this.now = (this.end - this.start) * eased + this.start;\n\n if (this.options.step) {\n this.options.step.call(this.elem, this.now, this);\n }\n\n if (hooks && hooks.set) {\n hooks.set(this);\n } else {\n Tween.propHooks._default.set(this);\n }\n\n return this;\n }\n };\n Tween.prototype.init.prototype = Tween.prototype;\n Tween.propHooks = {\n _default: {\n get: function get(tween) {\n var result; // Use a property on the element directly when it is not a DOM element,\n // or when there is no matching style property that exists.\n\n if (tween.elem.nodeType !== 1 || tween.elem[tween.prop] != null && tween.elem.style[tween.prop] == null) {\n return tween.elem[tween.prop];\n } // Passing an empty string as a 3rd parameter to .css will automatically\n // attempt a parseFloat and fallback to a string if the parse fails.\n // Simple values such as \"10px\" are parsed to Float;\n // complex values such as \"rotate(1rad)\" are returned as-is.\n\n\n result = jQuery.css(tween.elem, tween.prop, \"\"); // Empty strings, null, undefined and \"auto\" are converted to 0.\n\n return !result || result === \"auto\" ? 0 : result;\n },\n set: function set(tween) {\n // Use step hook for back compat.\n // Use cssHook if its there.\n // Use .style if available and use plain properties where available.\n if (jQuery.fx.step[tween.prop]) {\n jQuery.fx.step[tween.prop](tween);\n } else if (tween.elem.nodeType === 1 && (jQuery.cssHooks[tween.prop] || tween.elem.style[finalPropName(tween.prop)] != null)) {\n jQuery.style(tween.elem, tween.prop, tween.now + tween.unit);\n } else {\n tween.elem[tween.prop] = tween.now;\n }\n }\n }\n }; // Support: IE <=9 only\n // Panic based approach to setting things on disconnected nodes\n\n Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n set: function set(tween) {\n if (tween.elem.nodeType && tween.elem.parentNode) {\n tween.elem[tween.prop] = tween.now;\n }\n }\n };\n jQuery.easing = {\n linear: function linear(p) {\n return p;\n },\n swing: function swing(p) {\n return 0.5 - Math.cos(p * Math.PI) / 2;\n },\n _default: \"swing\"\n };\n jQuery.fx = Tween.prototype.init; // Back compat <1.8 extension point\n\n jQuery.fx.step = {};\n var fxNow,\n inProgress,\n rfxtypes = /^(?:toggle|show|hide)$/,\n rrun = /queueHooks$/;\n\n function schedule() {\n if (inProgress) {\n if (document.hidden === false && window.requestAnimationFrame) {\n window.requestAnimationFrame(schedule);\n } else {\n window.setTimeout(schedule, jQuery.fx.interval);\n }\n\n jQuery.fx.tick();\n }\n } // Animations created synchronously will run synchronously\n\n\n function createFxNow() {\n window.setTimeout(function () {\n fxNow = undefined;\n });\n return fxNow = Date.now();\n } // Generate parameters to create a standard animation\n\n\n function genFx(type, includeWidth) {\n var which,\n i = 0,\n attrs = {\n height: type\n }; // If we include width, step value is 1 to do all cssExpand values,\n // otherwise step value is 2 to skip over Left and Right\n\n includeWidth = includeWidth ? 1 : 0;\n\n for (; i < 4; i += 2 - includeWidth) {\n which = cssExpand[i];\n attrs[\"margin\" + which] = attrs[\"padding\" + which] = type;\n }\n\n if (includeWidth) {\n attrs.opacity = attrs.width = type;\n }\n\n return attrs;\n }\n\n function createTween(value, prop, animation) {\n var tween,\n collection = (Animation.tweeners[prop] || []).concat(Animation.tweeners[\"*\"]),\n index = 0,\n length = collection.length;\n\n for (; index < length; index++) {\n if (tween = collection[index].call(animation, prop, value)) {\n // We're done with this property\n return tween;\n }\n }\n }\n\n function defaultPrefilter(elem, props, opts) {\n var prop,\n value,\n toggle,\n hooks,\n oldfire,\n propTween,\n restoreDisplay,\n display,\n isBox = \"width\" in props || \"height\" in props,\n anim = this,\n orig = {},\n style = elem.style,\n hidden = elem.nodeType && isHiddenWithinTree(elem),\n dataShow = dataPriv.get(elem, \"fxshow\"); // Queue-skipping animations hijack the fx hooks\n\n if (!opts.queue) {\n hooks = jQuery._queueHooks(elem, \"fx\");\n\n if (hooks.unqueued == null) {\n hooks.unqueued = 0;\n oldfire = hooks.empty.fire;\n\n hooks.empty.fire = function () {\n if (!hooks.unqueued) {\n oldfire();\n }\n };\n }\n\n hooks.unqueued++;\n anim.always(function () {\n // Ensure the complete handler is called before this completes\n anim.always(function () {\n hooks.unqueued--;\n\n if (!jQuery.queue(elem, \"fx\").length) {\n hooks.empty.fire();\n }\n });\n });\n } // Detect show/hide animations\n\n\n for (prop in props) {\n value = props[prop];\n\n if (rfxtypes.test(value)) {\n delete props[prop];\n toggle = toggle || value === \"toggle\";\n\n if (value === (hidden ? \"hide\" : \"show\")) {\n // Pretend to be hidden if this is a \"show\" and\n // there is still data from a stopped show/hide\n if (value === \"show\" && dataShow && dataShow[prop] !== undefined) {\n hidden = true; // Ignore all other no-op show/hide data\n } else {\n continue;\n }\n }\n\n orig[prop] = dataShow && dataShow[prop] || jQuery.style(elem, prop);\n }\n } // Bail out if this is a no-op like .hide().hide()\n\n\n propTween = !jQuery.isEmptyObject(props);\n\n if (!propTween && jQuery.isEmptyObject(orig)) {\n return;\n } // Restrict \"overflow\" and \"display\" styles during box animations\n\n\n if (isBox && elem.nodeType === 1) {\n // Support: IE <=9 - 11, Edge 12 - 15\n // Record all 3 overflow attributes because IE does not infer the shorthand\n // from identically-valued overflowX and overflowY and Edge just mirrors\n // the overflowX value there.\n opts.overflow = [style.overflow, style.overflowX, style.overflowY]; // Identify a display type, preferring old show/hide data over the CSS cascade\n\n restoreDisplay = dataShow && dataShow.display;\n\n if (restoreDisplay == null) {\n restoreDisplay = dataPriv.get(elem, \"display\");\n }\n\n display = jQuery.css(elem, \"display\");\n\n if (display === \"none\") {\n if (restoreDisplay) {\n display = restoreDisplay;\n } else {\n // Get nonempty value(s) by temporarily forcing visibility\n showHide([elem], true);\n restoreDisplay = elem.style.display || restoreDisplay;\n display = jQuery.css(elem, \"display\");\n showHide([elem]);\n }\n } // Animate inline elements as inline-block\n\n\n if (display === \"inline\" || display === \"inline-block\" && restoreDisplay != null) {\n if (jQuery.css(elem, \"float\") === \"none\") {\n // Restore the original display value at the end of pure show/hide animations\n if (!propTween) {\n anim.done(function () {\n style.display = restoreDisplay;\n });\n\n if (restoreDisplay == null) {\n display = style.display;\n restoreDisplay = display === \"none\" ? \"\" : display;\n }\n }\n\n style.display = \"inline-block\";\n }\n }\n }\n\n if (opts.overflow) {\n style.overflow = \"hidden\";\n anim.always(function () {\n style.overflow = opts.overflow[0];\n style.overflowX = opts.overflow[1];\n style.overflowY = opts.overflow[2];\n });\n } // Implement show/hide animations\n\n\n propTween = false;\n\n for (prop in orig) {\n // General show/hide setup for this element animation\n if (!propTween) {\n if (dataShow) {\n if (\"hidden\" in dataShow) {\n hidden = dataShow.hidden;\n }\n } else {\n dataShow = dataPriv.access(elem, \"fxshow\", {\n display: restoreDisplay\n });\n } // Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\n\n if (toggle) {\n dataShow.hidden = !hidden;\n } // Show elements before animating them\n\n\n if (hidden) {\n showHide([elem], true);\n }\n /* eslint-disable no-loop-func */\n\n\n anim.done(function () {\n /* eslint-enable no-loop-func */\n // The final step of a \"hide\" animation is actually hiding the element\n if (!hidden) {\n showHide([elem]);\n }\n\n dataPriv.remove(elem, \"fxshow\");\n\n for (prop in orig) {\n jQuery.style(elem, prop, orig[prop]);\n }\n });\n } // Per-property setup\n\n\n propTween = createTween(hidden ? dataShow[prop] : 0, prop, anim);\n\n if (!(prop in dataShow)) {\n dataShow[prop] = propTween.start;\n\n if (hidden) {\n propTween.end = propTween.start;\n propTween.start = 0;\n }\n }\n }\n }\n\n function propFilter(props, specialEasing) {\n var index, name, easing, value, hooks; // camelCase, specialEasing and expand cssHook pass\n\n for (index in props) {\n name = camelCase(index);\n easing = specialEasing[name];\n value = props[index];\n\n if (Array.isArray(value)) {\n easing = value[1];\n value = props[index] = value[0];\n }\n\n if (index !== name) {\n props[name] = value;\n delete props[index];\n }\n\n hooks = jQuery.cssHooks[name];\n\n if (hooks && \"expand\" in hooks) {\n value = hooks.expand(value);\n delete props[name]; // Not quite $.extend, this won't overwrite existing keys.\n // Reusing 'index' because we have the correct \"name\"\n\n for (index in value) {\n if (!(index in props)) {\n props[index] = value[index];\n specialEasing[index] = easing;\n }\n }\n } else {\n specialEasing[name] = easing;\n }\n }\n }\n\n function Animation(elem, properties, options) {\n var result,\n stopped,\n index = 0,\n length = Animation.prefilters.length,\n deferred = jQuery.Deferred().always(function () {\n // Don't match elem in the :animated selector\n delete tick.elem;\n }),\n tick = function tick() {\n if (stopped) {\n return false;\n }\n\n var currentTime = fxNow || createFxNow(),\n remaining = Math.max(0, animation.startTime + animation.duration - currentTime),\n // Support: Android 2.3 only\n // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n temp = remaining / animation.duration || 0,\n percent = 1 - temp,\n index = 0,\n length = animation.tweens.length;\n\n for (; index < length; index++) {\n animation.tweens[index].run(percent);\n }\n\n deferred.notifyWith(elem, [animation, percent, remaining]); // If there's more to do, yield\n\n if (percent < 1 && length) {\n return remaining;\n } // If this was an empty animation, synthesize a final progress notification\n\n\n if (!length) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n } // Resolve the animation and report its conclusion\n\n\n deferred.resolveWith(elem, [animation]);\n return false;\n },\n animation = deferred.promise({\n elem: elem,\n props: jQuery.extend({}, properties),\n opts: jQuery.extend(true, {\n specialEasing: {},\n easing: jQuery.easing._default\n }, options),\n originalProperties: properties,\n originalOptions: options,\n startTime: fxNow || createFxNow(),\n duration: options.duration,\n tweens: [],\n createTween: function createTween(prop, end) {\n var tween = jQuery.Tween(elem, animation.opts, prop, end, animation.opts.specialEasing[prop] || animation.opts.easing);\n animation.tweens.push(tween);\n return tween;\n },\n stop: function stop(gotoEnd) {\n var index = 0,\n // If we are going to the end, we want to run all the tweens\n // otherwise we skip this part\n length = gotoEnd ? animation.tweens.length : 0;\n\n if (stopped) {\n return this;\n }\n\n stopped = true;\n\n for (; index < length; index++) {\n animation.tweens[index].run(1);\n } // Resolve when we played the last frame; otherwise, reject\n\n\n if (gotoEnd) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n deferred.resolveWith(elem, [animation, gotoEnd]);\n } else {\n deferred.rejectWith(elem, [animation, gotoEnd]);\n }\n\n return this;\n }\n }),\n props = animation.props;\n\n propFilter(props, animation.opts.specialEasing);\n\n for (; index < length; index++) {\n result = Animation.prefilters[index].call(animation, elem, props, animation.opts);\n\n if (result) {\n if (isFunction(result.stop)) {\n jQuery._queueHooks(animation.elem, animation.opts.queue).stop = result.stop.bind(result);\n }\n\n return result;\n }\n }\n\n jQuery.map(props, createTween, animation);\n\n if (isFunction(animation.opts.start)) {\n animation.opts.start.call(elem, animation);\n } // Attach callbacks from options\n\n\n animation.progress(animation.opts.progress).done(animation.opts.done, animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always);\n jQuery.fx.timer(jQuery.extend(tick, {\n elem: elem,\n anim: animation,\n queue: animation.opts.queue\n }));\n return animation;\n }\n\n jQuery.Animation = jQuery.extend(Animation, {\n tweeners: {\n \"*\": [function (prop, value) {\n var tween = this.createTween(prop, value);\n adjustCSS(tween.elem, prop, rcssNum.exec(value), tween);\n return tween;\n }]\n },\n tweener: function tweener(props, callback) {\n if (isFunction(props)) {\n callback = props;\n props = [\"*\"];\n } else {\n props = props.match(rnothtmlwhite);\n }\n\n var prop,\n index = 0,\n length = props.length;\n\n for (; index < length; index++) {\n prop = props[index];\n Animation.tweeners[prop] = Animation.tweeners[prop] || [];\n Animation.tweeners[prop].unshift(callback);\n }\n },\n prefilters: [defaultPrefilter],\n prefilter: function prefilter(callback, prepend) {\n if (prepend) {\n Animation.prefilters.unshift(callback);\n } else {\n Animation.prefilters.push(callback);\n }\n }\n });\n\n jQuery.speed = function (speed, easing, fn) {\n var opt = speed && _typeof(speed) === \"object\" ? jQuery.extend({}, speed) : {\n complete: fn || !fn && easing || isFunction(speed) && speed,\n duration: speed,\n easing: fn && easing || easing && !isFunction(easing) && easing\n }; // Go to the end state if fx are off\n\n if (jQuery.fx.off) {\n opt.duration = 0;\n } else {\n if (typeof opt.duration !== \"number\") {\n if (opt.duration in jQuery.fx.speeds) {\n opt.duration = jQuery.fx.speeds[opt.duration];\n } else {\n opt.duration = jQuery.fx.speeds._default;\n }\n }\n } // Normalize opt.queue - true/undefined/null -> \"fx\"\n\n\n if (opt.queue == null || opt.queue === true) {\n opt.queue = \"fx\";\n } // Queueing\n\n\n opt.old = opt.complete;\n\n opt.complete = function () {\n if (isFunction(opt.old)) {\n opt.old.call(this);\n }\n\n if (opt.queue) {\n jQuery.dequeue(this, opt.queue);\n }\n };\n\n return opt;\n };\n\n jQuery.fn.extend({\n fadeTo: function fadeTo(speed, to, easing, callback) {\n // Show any hidden elements after setting opacity to 0\n return this.filter(isHiddenWithinTree).css(\"opacity\", 0).show() // Animate to the value specified\n .end().animate({\n opacity: to\n }, speed, easing, callback);\n },\n animate: function animate(prop, speed, easing, callback) {\n var empty = jQuery.isEmptyObject(prop),\n optall = jQuery.speed(speed, easing, callback),\n doAnimation = function doAnimation() {\n // Operate on a copy of prop so per-property easing won't be lost\n var anim = Animation(this, jQuery.extend({}, prop), optall); // Empty animations, or finishing resolves immediately\n\n if (empty || dataPriv.get(this, \"finish\")) {\n anim.stop(true);\n }\n };\n\n doAnimation.finish = doAnimation;\n return empty || optall.queue === false ? this.each(doAnimation) : this.queue(optall.queue, doAnimation);\n },\n stop: function stop(type, clearQueue, gotoEnd) {\n var stopQueue = function stopQueue(hooks) {\n var stop = hooks.stop;\n delete hooks.stop;\n stop(gotoEnd);\n };\n\n if (typeof type !== \"string\") {\n gotoEnd = clearQueue;\n clearQueue = type;\n type = undefined;\n }\n\n if (clearQueue) {\n this.queue(type || \"fx\", []);\n }\n\n return this.each(function () {\n var dequeue = true,\n index = type != null && type + \"queueHooks\",\n timers = jQuery.timers,\n data = dataPriv.get(this);\n\n if (index) {\n if (data[index] && data[index].stop) {\n stopQueue(data[index]);\n }\n } else {\n for (index in data) {\n if (data[index] && data[index].stop && rrun.test(index)) {\n stopQueue(data[index]);\n }\n }\n }\n\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && (type == null || timers[index].queue === type)) {\n timers[index].anim.stop(gotoEnd);\n dequeue = false;\n timers.splice(index, 1);\n }\n } // Start the next in the queue if the last step wasn't forced.\n // Timers currently will call their complete callbacks, which\n // will dequeue but only if they were gotoEnd.\n\n\n if (dequeue || !gotoEnd) {\n jQuery.dequeue(this, type);\n }\n });\n },\n finish: function finish(type) {\n if (type !== false) {\n type = type || \"fx\";\n }\n\n return this.each(function () {\n var index,\n data = dataPriv.get(this),\n queue = data[type + \"queue\"],\n hooks = data[type + \"queueHooks\"],\n timers = jQuery.timers,\n length = queue ? queue.length : 0; // Enable finishing flag on private data\n\n data.finish = true; // Empty the queue first\n\n jQuery.queue(this, type, []);\n\n if (hooks && hooks.stop) {\n hooks.stop.call(this, true);\n } // Look for any active animations, and finish them\n\n\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && timers[index].queue === type) {\n timers[index].anim.stop(true);\n timers.splice(index, 1);\n }\n } // Look for any animations in the old queue and finish them\n\n\n for (index = 0; index < length; index++) {\n if (queue[index] && queue[index].finish) {\n queue[index].finish.call(this);\n }\n } // Turn off finishing flag\n\n\n delete data.finish;\n });\n }\n });\n jQuery.each([\"toggle\", \"show\", \"hide\"], function (_i, name) {\n var cssFn = jQuery.fn[name];\n\n jQuery.fn[name] = function (speed, easing, callback) {\n return speed == null || typeof speed === \"boolean\" ? cssFn.apply(this, arguments) : this.animate(genFx(name, true), speed, easing, callback);\n };\n }); // Generate shortcuts for custom animations\n\n jQuery.each({\n slideDown: genFx(\"show\"),\n slideUp: genFx(\"hide\"),\n slideToggle: genFx(\"toggle\"),\n fadeIn: {\n opacity: \"show\"\n },\n fadeOut: {\n opacity: \"hide\"\n },\n fadeToggle: {\n opacity: \"toggle\"\n }\n }, function (name, props) {\n jQuery.fn[name] = function (speed, easing, callback) {\n return this.animate(props, speed, easing, callback);\n };\n });\n jQuery.timers = [];\n\n jQuery.fx.tick = function () {\n var timer,\n i = 0,\n timers = jQuery.timers;\n fxNow = Date.now();\n\n for (; i < timers.length; i++) {\n timer = timers[i]; // Run the timer and safely remove it when done (allowing for external removal)\n\n if (!timer() && timers[i] === timer) {\n timers.splice(i--, 1);\n }\n }\n\n if (!timers.length) {\n jQuery.fx.stop();\n }\n\n fxNow = undefined;\n };\n\n jQuery.fx.timer = function (timer) {\n jQuery.timers.push(timer);\n jQuery.fx.start();\n };\n\n jQuery.fx.interval = 13;\n\n jQuery.fx.start = function () {\n if (inProgress) {\n return;\n }\n\n inProgress = true;\n schedule();\n };\n\n jQuery.fx.stop = function () {\n inProgress = null;\n };\n\n jQuery.fx.speeds = {\n slow: 600,\n fast: 200,\n // Default speed\n _default: 400\n }; // Based off of the plugin by Clint Helfers, with permission.\n // https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\n\n jQuery.fn.delay = function (time, type) {\n time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;\n type = type || \"fx\";\n return this.queue(type, function (next, hooks) {\n var timeout = window.setTimeout(next, time);\n\n hooks.stop = function () {\n window.clearTimeout(timeout);\n };\n });\n };\n\n (function () {\n var input = document.createElement(\"input\"),\n select = document.createElement(\"select\"),\n opt = select.appendChild(document.createElement(\"option\"));\n input.type = \"checkbox\"; // Support: Android <=4.3 only\n // Default value for a checkbox should be \"on\"\n\n support.checkOn = input.value !== \"\"; // Support: IE <=11 only\n // Must access selectedIndex to make default options select\n\n support.optSelected = opt.selected; // Support: IE <=11 only\n // An input loses its value after becoming a radio\n\n input = document.createElement(\"input\");\n input.value = \"t\";\n input.type = \"radio\";\n support.radioValue = input.value === \"t\";\n })();\n\n var boolHook,\n attrHandle = jQuery.expr.attrHandle;\n jQuery.fn.extend({\n attr: function attr(name, value) {\n return access(this, jQuery.attr, name, value, arguments.length > 1);\n },\n removeAttr: function removeAttr(name) {\n return this.each(function () {\n jQuery.removeAttr(this, name);\n });\n }\n });\n jQuery.extend({\n attr: function attr(elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType; // Don't get/set attributes on text, comment and attribute nodes\n\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n } // Fallback to prop when attributes are not supported\n\n\n if (typeof elem.getAttribute === \"undefined\") {\n return jQuery.prop(elem, name, value);\n } // Attribute hooks are determined by the lowercase version\n // Grab necessary hook if one is defined\n\n\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n hooks = jQuery.attrHooks[name.toLowerCase()] || (jQuery.expr.match.bool.test(name) ? boolHook : undefined);\n }\n\n if (value !== undefined) {\n if (value === null) {\n jQuery.removeAttr(elem, name);\n return;\n }\n\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n\n elem.setAttribute(name, value + \"\");\n return value;\n }\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n\n ret = jQuery.find.attr(elem, name); // Non-existent attributes return null, we normalize to undefined\n\n return ret == null ? undefined : ret;\n },\n attrHooks: {\n type: {\n set: function set(elem, value) {\n if (!support.radioValue && value === \"radio\" && nodeName(elem, \"input\")) {\n var val = elem.value;\n elem.setAttribute(\"type\", value);\n\n if (val) {\n elem.value = val;\n }\n\n return value;\n }\n }\n }\n },\n removeAttr: function removeAttr(elem, value) {\n var name,\n i = 0,\n // Attribute names can contain non-HTML whitespace characters\n // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n attrNames = value && value.match(rnothtmlwhite);\n\n if (attrNames && elem.nodeType === 1) {\n while (name = attrNames[i++]) {\n elem.removeAttribute(name);\n }\n }\n }\n }); // Hooks for boolean attributes\n\n boolHook = {\n set: function set(elem, value, name) {\n if (value === false) {\n // Remove boolean attributes when set to false\n jQuery.removeAttr(elem, name);\n } else {\n elem.setAttribute(name, name);\n }\n\n return name;\n }\n };\n jQuery.each(jQuery.expr.match.bool.source.match(/\\w+/g), function (_i, name) {\n var getter = attrHandle[name] || jQuery.find.attr;\n\n attrHandle[name] = function (elem, name, isXML) {\n var ret,\n handle,\n lowercaseName = name.toLowerCase();\n\n if (!isXML) {\n // Avoid an infinite loop by temporarily removing this function from the getter\n handle = attrHandle[lowercaseName];\n attrHandle[lowercaseName] = ret;\n ret = getter(elem, name, isXML) != null ? lowercaseName : null;\n attrHandle[lowercaseName] = handle;\n }\n\n return ret;\n };\n });\n var rfocusable = /^(?:input|select|textarea|button)$/i,\n rclickable = /^(?:a|area)$/i;\n jQuery.fn.extend({\n prop: function prop(name, value) {\n return access(this, jQuery.prop, name, value, arguments.length > 1);\n },\n removeProp: function removeProp(name) {\n return this.each(function () {\n delete this[jQuery.propFix[name] || name];\n });\n }\n });\n jQuery.extend({\n prop: function prop(elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType; // Don't get/set properties on text, comment and attribute nodes\n\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n }\n\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n // Fix name and attach hooks\n name = jQuery.propFix[name] || name;\n hooks = jQuery.propHooks[name];\n }\n\n if (value !== undefined) {\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n\n return elem[name] = value;\n }\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n\n return elem[name];\n },\n propHooks: {\n tabIndex: {\n get: function get(elem) {\n // Support: IE <=9 - 11 only\n // elem.tabIndex doesn't always return the\n // correct value when it hasn't been explicitly set\n // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n // Use proper attribute retrieval(#12072)\n var tabindex = jQuery.find.attr(elem, \"tabindex\");\n\n if (tabindex) {\n return parseInt(tabindex, 10);\n }\n\n if (rfocusable.test(elem.nodeName) || rclickable.test(elem.nodeName) && elem.href) {\n return 0;\n }\n\n return -1;\n }\n }\n },\n propFix: {\n \"for\": \"htmlFor\",\n \"class\": \"className\"\n }\n }); // Support: IE <=11 only\n // Accessing the selectedIndex property\n // forces the browser to respect setting selected\n // on the option\n // The getter ensures a default option is selected\n // when in an optgroup\n // eslint rule \"no-unused-expressions\" is disabled for this code\n // since it considers such accessions noop\n\n if (!support.optSelected) {\n jQuery.propHooks.selected = {\n get: function get(elem) {\n /* eslint no-unused-expressions: \"off\" */\n var parent = elem.parentNode;\n\n if (parent && parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n\n return null;\n },\n set: function set(elem) {\n /* eslint no-unused-expressions: \"off\" */\n var parent = elem.parentNode;\n\n if (parent) {\n parent.selectedIndex;\n\n if (parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n }\n }\n };\n }\n\n jQuery.each([\"tabIndex\", \"readOnly\", \"maxLength\", \"cellSpacing\", \"cellPadding\", \"rowSpan\", \"colSpan\", \"useMap\", \"frameBorder\", \"contentEditable\"], function () {\n jQuery.propFix[this.toLowerCase()] = this;\n }); // Strip and collapse whitespace according to HTML spec\n // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\n function stripAndCollapse(value) {\n var tokens = value.match(rnothtmlwhite) || [];\n return tokens.join(\" \");\n }\n\n function getClass(elem) {\n return elem.getAttribute && elem.getAttribute(\"class\") || \"\";\n }\n\n function classesToArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n\n if (typeof value === \"string\") {\n return value.match(rnothtmlwhite) || [];\n }\n\n return [];\n }\n\n jQuery.fn.extend({\n addClass: function addClass(value) {\n var classes,\n elem,\n cur,\n curValue,\n clazz,\n j,\n finalValue,\n i = 0;\n\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).addClass(value.call(this, j, getClass(this)));\n });\n }\n\n classes = classesToArray(value);\n\n if (classes.length) {\n while (elem = this[i++]) {\n curValue = getClass(elem);\n cur = elem.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n\n if (cur) {\n j = 0;\n\n while (clazz = classes[j++]) {\n if (cur.indexOf(\" \" + clazz + \" \") < 0) {\n cur += clazz + \" \";\n }\n } // Only assign if different to avoid unneeded rendering.\n\n\n finalValue = stripAndCollapse(cur);\n\n if (curValue !== finalValue) {\n elem.setAttribute(\"class\", finalValue);\n }\n }\n }\n }\n\n return this;\n },\n removeClass: function removeClass(value) {\n var classes,\n elem,\n cur,\n curValue,\n clazz,\n j,\n finalValue,\n i = 0;\n\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).removeClass(value.call(this, j, getClass(this)));\n });\n }\n\n if (!arguments.length) {\n return this.attr(\"class\", \"\");\n }\n\n classes = classesToArray(value);\n\n if (classes.length) {\n while (elem = this[i++]) {\n curValue = getClass(elem); // This expression is here for better compressibility (see addClass)\n\n cur = elem.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n\n if (cur) {\n j = 0;\n\n while (clazz = classes[j++]) {\n // Remove *all* instances\n while (cur.indexOf(\" \" + clazz + \" \") > -1) {\n cur = cur.replace(\" \" + clazz + \" \", \" \");\n }\n } // Only assign if different to avoid unneeded rendering.\n\n\n finalValue = stripAndCollapse(cur);\n\n if (curValue !== finalValue) {\n elem.setAttribute(\"class\", finalValue);\n }\n }\n }\n }\n\n return this;\n },\n toggleClass: function toggleClass(value, stateVal) {\n var type = _typeof(value),\n isValidValue = type === \"string\" || Array.isArray(value);\n\n if (typeof stateVal === \"boolean\" && isValidValue) {\n return stateVal ? this.addClass(value) : this.removeClass(value);\n }\n\n if (isFunction(value)) {\n return this.each(function (i) {\n jQuery(this).toggleClass(value.call(this, i, getClass(this), stateVal), stateVal);\n });\n }\n\n return this.each(function () {\n var className, i, self, classNames;\n\n if (isValidValue) {\n // Toggle individual class names\n i = 0;\n self = jQuery(this);\n classNames = classesToArray(value);\n\n while (className = classNames[i++]) {\n // Check each className given, space separated list\n if (self.hasClass(className)) {\n self.removeClass(className);\n } else {\n self.addClass(className);\n }\n } // Toggle whole class name\n\n } else if (value === undefined || type === \"boolean\") {\n className = getClass(this);\n\n if (className) {\n // Store className if set\n dataPriv.set(this, \"__className__\", className);\n } // If the element has a class name or if we're passed `false`,\n // then remove the whole classname (if there was one, the above saved it).\n // Otherwise bring back whatever was previously saved (if anything),\n // falling back to the empty string if nothing was stored.\n\n\n if (this.setAttribute) {\n this.setAttribute(\"class\", className || value === false ? \"\" : dataPriv.get(this, \"__className__\") || \"\");\n }\n }\n });\n },\n hasClass: function hasClass(selector) {\n var className,\n elem,\n i = 0;\n className = \" \" + selector + \" \";\n\n while (elem = this[i++]) {\n if (elem.nodeType === 1 && (\" \" + stripAndCollapse(getClass(elem)) + \" \").indexOf(className) > -1) {\n return true;\n }\n }\n\n return false;\n }\n });\n var rreturn = /\\r/g;\n jQuery.fn.extend({\n val: function val(value) {\n var hooks,\n ret,\n valueIsFunction,\n elem = this[0];\n\n if (!arguments.length) {\n if (elem) {\n hooks = jQuery.valHooks[elem.type] || jQuery.valHooks[elem.nodeName.toLowerCase()];\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, \"value\")) !== undefined) {\n return ret;\n }\n\n ret = elem.value; // Handle most common string cases\n\n if (typeof ret === \"string\") {\n return ret.replace(rreturn, \"\");\n } // Handle cases where value is null/undef or number\n\n\n return ret == null ? \"\" : ret;\n }\n\n return;\n }\n\n valueIsFunction = isFunction(value);\n return this.each(function (i) {\n var val;\n\n if (this.nodeType !== 1) {\n return;\n }\n\n if (valueIsFunction) {\n val = value.call(this, i, jQuery(this).val());\n } else {\n val = value;\n } // Treat null/undefined as \"\"; convert numbers to string\n\n\n if (val == null) {\n val = \"\";\n } else if (typeof val === \"number\") {\n val += \"\";\n } else if (Array.isArray(val)) {\n val = jQuery.map(val, function (value) {\n return value == null ? \"\" : value + \"\";\n });\n }\n\n hooks = jQuery.valHooks[this.type] || jQuery.valHooks[this.nodeName.toLowerCase()]; // If set returns undefined, fall back to normal setting\n\n if (!hooks || !(\"set\" in hooks) || hooks.set(this, val, \"value\") === undefined) {\n this.value = val;\n }\n });\n }\n });\n jQuery.extend({\n valHooks: {\n option: {\n get: function get(elem) {\n var val = jQuery.find.attr(elem, \"value\");\n return val != null ? val : // Support: IE <=10 - 11 only\n // option.text throws exceptions (#14686, #14858)\n // Strip and collapse whitespace\n // https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n stripAndCollapse(jQuery.text(elem));\n }\n },\n select: {\n get: function get(elem) {\n var value,\n option,\n i,\n options = elem.options,\n index = elem.selectedIndex,\n one = elem.type === \"select-one\",\n values = one ? null : [],\n max = one ? index + 1 : options.length;\n\n if (index < 0) {\n i = max;\n } else {\n i = one ? index : 0;\n } // Loop through all the selected options\n\n\n for (; i < max; i++) {\n option = options[i]; // Support: IE <=9 only\n // IE8-9 doesn't update selected after form reset (#2551)\n\n if ((option.selected || i === index) && // Don't return options that are disabled or in a disabled optgroup\n !option.disabled && (!option.parentNode.disabled || !nodeName(option.parentNode, \"optgroup\"))) {\n // Get the specific value for the option\n value = jQuery(option).val(); // We don't need an array for one selects\n\n if (one) {\n return value;\n } // Multi-Selects return an array\n\n\n values.push(value);\n }\n }\n\n return values;\n },\n set: function set(elem, value) {\n var optionSet,\n option,\n options = elem.options,\n values = jQuery.makeArray(value),\n i = options.length;\n\n while (i--) {\n option = options[i];\n /* eslint-disable no-cond-assign */\n\n if (option.selected = jQuery.inArray(jQuery.valHooks.option.get(option), values) > -1) {\n optionSet = true;\n }\n /* eslint-enable no-cond-assign */\n\n } // Force browsers to behave consistently when non-matching value is set\n\n\n if (!optionSet) {\n elem.selectedIndex = -1;\n }\n\n return values;\n }\n }\n }\n }); // Radios and checkboxes getter/setter\n\n jQuery.each([\"radio\", \"checkbox\"], function () {\n jQuery.valHooks[this] = {\n set: function set(elem, value) {\n if (Array.isArray(value)) {\n return elem.checked = jQuery.inArray(jQuery(elem).val(), value) > -1;\n }\n }\n };\n\n if (!support.checkOn) {\n jQuery.valHooks[this].get = function (elem) {\n return elem.getAttribute(\"value\") === null ? \"on\" : elem.value;\n };\n }\n }); // Return jQuery for attributes-only inclusion\n\n support.focusin = \"onfocusin\" in window;\n\n var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n stopPropagationCallback = function stopPropagationCallback(e) {\n e.stopPropagation();\n };\n\n jQuery.extend(jQuery.event, {\n trigger: function trigger(event, data, elem, onlyHandlers) {\n var i,\n cur,\n tmp,\n bubbleType,\n ontype,\n handle,\n special,\n lastElement,\n eventPath = [elem || document],\n type = hasOwn.call(event, \"type\") ? event.type : event,\n namespaces = hasOwn.call(event, \"namespace\") ? event.namespace.split(\".\") : [];\n cur = lastElement = tmp = elem = elem || document; // Don't do events on text and comment nodes\n\n if (elem.nodeType === 3 || elem.nodeType === 8) {\n return;\n } // focus/blur morphs to focusin/out; ensure we're not firing them right now\n\n\n if (rfocusMorph.test(type + jQuery.event.triggered)) {\n return;\n }\n\n if (type.indexOf(\".\") > -1) {\n // Namespaced trigger; create a regexp to match event type in handle()\n namespaces = type.split(\".\");\n type = namespaces.shift();\n namespaces.sort();\n }\n\n ontype = type.indexOf(\":\") < 0 && \"on\" + type; // Caller can pass in a jQuery.Event object, Object, or just an event type string\n\n event = event[jQuery.expando] ? event : new jQuery.Event(type, _typeof(event) === \"object\" && event); // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\n event.isTrigger = onlyHandlers ? 2 : 3;\n event.namespace = namespaces.join(\".\");\n event.rnamespace = event.namespace ? new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") : null; // Clean up the event in case it is being reused\n\n event.result = undefined;\n\n if (!event.target) {\n event.target = elem;\n } // Clone any incoming data and prepend the event, creating the handler arg list\n\n\n data = data == null ? [event] : jQuery.makeArray(data, [event]); // Allow special events to draw outside the lines\n\n special = jQuery.event.special[type] || {};\n\n if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) {\n return;\n } // Determine event propagation path in advance, per W3C events spec (#9951)\n // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\n\n if (!onlyHandlers && !special.noBubble && !isWindow(elem)) {\n bubbleType = special.delegateType || type;\n\n if (!rfocusMorph.test(bubbleType + type)) {\n cur = cur.parentNode;\n }\n\n for (; cur; cur = cur.parentNode) {\n eventPath.push(cur);\n tmp = cur;\n } // Only add window if we got to document (e.g., not plain obj or detached DOM)\n\n\n if (tmp === (elem.ownerDocument || document)) {\n eventPath.push(tmp.defaultView || tmp.parentWindow || window);\n }\n } // Fire handlers on the event path\n\n\n i = 0;\n\n while ((cur = eventPath[i++]) && !event.isPropagationStopped()) {\n lastElement = cur;\n event.type = i > 1 ? bubbleType : special.bindType || type; // jQuery handler\n\n handle = (dataPriv.get(cur, \"events\") || Object.create(null))[event.type] && dataPriv.get(cur, \"handle\");\n\n if (handle) {\n handle.apply(cur, data);\n } // Native handler\n\n\n handle = ontype && cur[ontype];\n\n if (handle && handle.apply && acceptData(cur)) {\n event.result = handle.apply(cur, data);\n\n if (event.result === false) {\n event.preventDefault();\n }\n }\n }\n\n event.type = type; // If nobody prevented the default action, do it now\n\n if (!onlyHandlers && !event.isDefaultPrevented()) {\n if ((!special._default || special._default.apply(eventPath.pop(), data) === false) && acceptData(elem)) {\n // Call a native DOM method on the target with the same name as the event.\n // Don't do default actions on window, that's where global variables be (#6170)\n if (ontype && isFunction(elem[type]) && !isWindow(elem)) {\n // Don't re-trigger an onFOO event when we call its FOO() method\n tmp = elem[ontype];\n\n if (tmp) {\n elem[ontype] = null;\n } // Prevent re-triggering of the same event, since we already bubbled it above\n\n\n jQuery.event.triggered = type;\n\n if (event.isPropagationStopped()) {\n lastElement.addEventListener(type, stopPropagationCallback);\n }\n\n elem[type]();\n\n if (event.isPropagationStopped()) {\n lastElement.removeEventListener(type, stopPropagationCallback);\n }\n\n jQuery.event.triggered = undefined;\n\n if (tmp) {\n elem[ontype] = tmp;\n }\n }\n }\n }\n\n return event.result;\n },\n // Piggyback on a donor event to simulate a different one\n // Used only for `focus(in | out)` events\n simulate: function simulate(type, elem, event) {\n var e = jQuery.extend(new jQuery.Event(), event, {\n type: type,\n isSimulated: true\n });\n jQuery.event.trigger(e, null, elem);\n }\n });\n jQuery.fn.extend({\n trigger: function trigger(type, data) {\n return this.each(function () {\n jQuery.event.trigger(type, data, this);\n });\n },\n triggerHandler: function triggerHandler(type, data) {\n var elem = this[0];\n\n if (elem) {\n return jQuery.event.trigger(type, data, elem, true);\n }\n }\n }); // Support: Firefox <=44\n // Firefox doesn't have focus(in | out) events\n // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n //\n // Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n // focus(in | out) events fire after focus & blur events,\n // which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n // Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\n\n if (!support.focusin) {\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (orig, fix) {\n // Attach a single capturing handler on the document while someone wants focusin/focusout\n var handler = function handler(event) {\n jQuery.event.simulate(fix, event.target, jQuery.event.fix(event));\n };\n\n jQuery.event.special[fix] = {\n setup: function setup() {\n // Handle: regular nodes (via `this.ownerDocument`), window\n // (via `this.document`) & document (via `this`).\n var doc = this.ownerDocument || this.document || this,\n attaches = dataPriv.access(doc, fix);\n\n if (!attaches) {\n doc.addEventListener(orig, handler, true);\n }\n\n dataPriv.access(doc, fix, (attaches || 0) + 1);\n },\n teardown: function teardown() {\n var doc = this.ownerDocument || this.document || this,\n attaches = dataPriv.access(doc, fix) - 1;\n\n if (!attaches) {\n doc.removeEventListener(orig, handler, true);\n dataPriv.remove(doc, fix);\n } else {\n dataPriv.access(doc, fix, attaches);\n }\n }\n };\n });\n }\n\n var location = window.location;\n var nonce = {\n guid: Date.now()\n };\n var rquery = /\\?/; // Cross-browser xml parsing\n\n jQuery.parseXML = function (data) {\n var xml;\n\n if (!data || typeof data !== \"string\") {\n return null;\n } // Support: IE 9 - 11 only\n // IE throws on parseFromString with invalid input.\n\n\n try {\n xml = new window.DOMParser().parseFromString(data, \"text/xml\");\n } catch (e) {\n xml = undefined;\n }\n\n if (!xml || xml.getElementsByTagName(\"parsererror\").length) {\n jQuery.error(\"Invalid XML: \" + data);\n }\n\n return xml;\n };\n\n var rbracket = /\\[\\]$/,\n rCRLF = /\\r?\\n/g,\n rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n rsubmittable = /^(?:input|select|textarea|keygen)/i;\n\n function buildParams(prefix, obj, traditional, add) {\n var name;\n\n if (Array.isArray(obj)) {\n // Serialize array item.\n jQuery.each(obj, function (i, v) {\n if (traditional || rbracket.test(prefix)) {\n // Treat each array item as a scalar.\n add(prefix, v);\n } else {\n // Item is non-scalar (array or object), encode its numeric index.\n buildParams(prefix + \"[\" + (_typeof(v) === \"object\" && v != null ? i : \"\") + \"]\", v, traditional, add);\n }\n });\n } else if (!traditional && toType(obj) === \"object\") {\n // Serialize object item.\n for (name in obj) {\n buildParams(prefix + \"[\" + name + \"]\", obj[name], traditional, add);\n }\n } else {\n // Serialize scalar item.\n add(prefix, obj);\n }\n } // Serialize an array of form elements or a set of\n // key/values into a query string\n\n\n jQuery.param = function (a, traditional) {\n var prefix,\n s = [],\n add = function add(key, valueOrFunction) {\n // If value is a function, invoke it and use its return value\n var value = isFunction(valueOrFunction) ? valueOrFunction() : valueOrFunction;\n s[s.length] = encodeURIComponent(key) + \"=\" + encodeURIComponent(value == null ? \"\" : value);\n };\n\n if (a == null) {\n return \"\";\n } // If an array was passed in, assume that it is an array of form elements.\n\n\n if (Array.isArray(a) || a.jquery && !jQuery.isPlainObject(a)) {\n // Serialize the form elements\n jQuery.each(a, function () {\n add(this.name, this.value);\n });\n } else {\n // If traditional, encode the \"old\" way (the way 1.3.2 or older\n // did it), otherwise encode params recursively.\n for (prefix in a) {\n buildParams(prefix, a[prefix], traditional, add);\n }\n } // Return the resulting serialization\n\n\n return s.join(\"&\");\n };\n\n jQuery.fn.extend({\n serialize: function serialize() {\n return jQuery.param(this.serializeArray());\n },\n serializeArray: function serializeArray() {\n return this.map(function () {\n // Can add propHook for \"elements\" to filter or add form elements\n var elements = jQuery.prop(this, \"elements\");\n return elements ? jQuery.makeArray(elements) : this;\n }).filter(function () {\n var type = this.type; // Use .is( \":disabled\" ) so that fieldset[disabled] works\n\n return this.name && !jQuery(this).is(\":disabled\") && rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) && (this.checked || !rcheckableType.test(type));\n }).map(function (_i, elem) {\n var val = jQuery(this).val();\n\n if (val == null) {\n return null;\n }\n\n if (Array.isArray(val)) {\n return jQuery.map(val, function (val) {\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n });\n }\n\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n }).get();\n }\n });\n var r20 = /%20/g,\n rhash = /#.*$/,\n rantiCache = /([?&])_=[^&]*/,\n rheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n // #7653, #8125, #8152: local protocol detection\n rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n rnoContent = /^(?:GET|HEAD)$/,\n rprotocol = /^\\/\\//,\n\n /* Prefilters\n * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n * 2) These are called:\n * - BEFORE asking for a transport\n * - AFTER param serialization (s.data is a string if s.processData is true)\n * 3) key is the dataType\n * 4) the catchall symbol \"*\" can be used\n * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n */\n prefilters = {},\n\n /* Transports bindings\n * 1) key is the dataType\n * 2) the catchall symbol \"*\" can be used\n * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n */\n transports = {},\n // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n allTypes = \"*/\".concat(\"*\"),\n // Anchor tag for parsing the document origin\n originAnchor = document.createElement(\"a\");\n originAnchor.href = location.href; // Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\n\n function addToPrefiltersOrTransports(structure) {\n // dataTypeExpression is optional and defaults to \"*\"\n return function (dataTypeExpression, func) {\n if (typeof dataTypeExpression !== \"string\") {\n func = dataTypeExpression;\n dataTypeExpression = \"*\";\n }\n\n var dataType,\n i = 0,\n dataTypes = dataTypeExpression.toLowerCase().match(rnothtmlwhite) || [];\n\n if (isFunction(func)) {\n // For each dataType in the dataTypeExpression\n while (dataType = dataTypes[i++]) {\n // Prepend if requested\n if (dataType[0] === \"+\") {\n dataType = dataType.slice(1) || \"*\";\n (structure[dataType] = structure[dataType] || []).unshift(func); // Otherwise append\n } else {\n (structure[dataType] = structure[dataType] || []).push(func);\n }\n }\n }\n };\n } // Base inspection function for prefilters and transports\n\n\n function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) {\n var inspected = {},\n seekingTransport = structure === transports;\n\n function inspect(dataType) {\n var selected;\n inspected[dataType] = true;\n jQuery.each(structure[dataType] || [], function (_, prefilterOrFactory) {\n var dataTypeOrTransport = prefilterOrFactory(options, originalOptions, jqXHR);\n\n if (typeof dataTypeOrTransport === \"string\" && !seekingTransport && !inspected[dataTypeOrTransport]) {\n options.dataTypes.unshift(dataTypeOrTransport);\n inspect(dataTypeOrTransport);\n return false;\n } else if (seekingTransport) {\n return !(selected = dataTypeOrTransport);\n }\n });\n return selected;\n }\n\n return inspect(options.dataTypes[0]) || !inspected[\"*\"] && inspect(\"*\");\n } // A special extend for ajax options\n // that takes \"flat\" options (not to be deep extended)\n // Fixes #9887\n\n\n function ajaxExtend(target, src) {\n var key,\n deep,\n flatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n for (key in src) {\n if (src[key] !== undefined) {\n (flatOptions[key] ? target : deep || (deep = {}))[key] = src[key];\n }\n }\n\n if (deep) {\n jQuery.extend(true, target, deep);\n }\n\n return target;\n }\n /* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\n\n\n function ajaxHandleResponses(s, jqXHR, responses) {\n var ct,\n type,\n finalDataType,\n firstDataType,\n contents = s.contents,\n dataTypes = s.dataTypes; // Remove auto dataType and get content-type in the process\n\n while (dataTypes[0] === \"*\") {\n dataTypes.shift();\n\n if (ct === undefined) {\n ct = s.mimeType || jqXHR.getResponseHeader(\"Content-Type\");\n }\n } // Check if we're dealing with a known content-type\n\n\n if (ct) {\n for (type in contents) {\n if (contents[type] && contents[type].test(ct)) {\n dataTypes.unshift(type);\n break;\n }\n }\n } // Check to see if we have a response for the expected dataType\n\n\n if (dataTypes[0] in responses) {\n finalDataType = dataTypes[0];\n } else {\n // Try convertible dataTypes\n for (type in responses) {\n if (!dataTypes[0] || s.converters[type + \" \" + dataTypes[0]]) {\n finalDataType = type;\n break;\n }\n\n if (!firstDataType) {\n firstDataType = type;\n }\n } // Or just use first one\n\n\n finalDataType = finalDataType || firstDataType;\n } // If we found a dataType\n // We add the dataType to the list if needed\n // and return the corresponding response\n\n\n if (finalDataType) {\n if (finalDataType !== dataTypes[0]) {\n dataTypes.unshift(finalDataType);\n }\n\n return responses[finalDataType];\n }\n }\n /* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\n\n\n function ajaxConvert(s, response, jqXHR, isSuccess) {\n var conv2,\n current,\n conv,\n tmp,\n prev,\n converters = {},\n // Work with a copy of dataTypes in case we need to modify it for conversion\n dataTypes = s.dataTypes.slice(); // Create converters map with lowercased keys\n\n if (dataTypes[1]) {\n for (conv in s.converters) {\n converters[conv.toLowerCase()] = s.converters[conv];\n }\n }\n\n current = dataTypes.shift(); // Convert to each sequential dataType\n\n while (current) {\n if (s.responseFields[current]) {\n jqXHR[s.responseFields[current]] = response;\n } // Apply the dataFilter if provided\n\n\n if (!prev && isSuccess && s.dataFilter) {\n response = s.dataFilter(response, s.dataType);\n }\n\n prev = current;\n current = dataTypes.shift();\n\n if (current) {\n // There's only work to do if current dataType is non-auto\n if (current === \"*\") {\n current = prev; // Convert response if prev dataType is non-auto and differs from current\n } else if (prev !== \"*\" && prev !== current) {\n // Seek a direct converter\n conv = converters[prev + \" \" + current] || converters[\"* \" + current]; // If none found, seek a pair\n\n if (!conv) {\n for (conv2 in converters) {\n // If conv2 outputs current\n tmp = conv2.split(\" \");\n\n if (tmp[1] === current) {\n // If prev can be converted to accepted input\n conv = converters[prev + \" \" + tmp[0]] || converters[\"* \" + tmp[0]];\n\n if (conv) {\n // Condense equivalence converters\n if (conv === true) {\n conv = converters[conv2]; // Otherwise, insert the intermediate dataType\n } else if (converters[conv2] !== true) {\n current = tmp[0];\n dataTypes.unshift(tmp[1]);\n }\n\n break;\n }\n }\n }\n } // Apply converter (if not an equivalence)\n\n\n if (conv !== true) {\n // Unless errors are allowed to bubble, catch and return them\n if (conv && s[\"throws\"]) {\n response = conv(response);\n } else {\n try {\n response = conv(response);\n } catch (e) {\n return {\n state: \"parsererror\",\n error: conv ? e : \"No conversion from \" + prev + \" to \" + current\n };\n }\n }\n }\n }\n }\n }\n\n return {\n state: \"success\",\n data: response\n };\n }\n\n jQuery.extend({\n // Counter for holding the number of active queries\n active: 0,\n // Last-Modified header cache for next request\n lastModified: {},\n etag: {},\n ajaxSettings: {\n url: location.href,\n type: \"GET\",\n isLocal: rlocalProtocol.test(location.protocol),\n global: true,\n processData: true,\n async: true,\n contentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n /*\n timeout: 0,\n data: null,\n dataType: null,\n username: null,\n password: null,\n cache: null,\n throws: false,\n traditional: false,\n headers: {},\n */\n accepts: {\n \"*\": allTypes,\n text: \"text/plain\",\n html: \"text/html\",\n xml: \"application/xml, text/xml\",\n json: \"application/json, text/javascript\"\n },\n contents: {\n xml: /\\bxml\\b/,\n html: /\\bhtml/,\n json: /\\bjson\\b/\n },\n responseFields: {\n xml: \"responseXML\",\n text: \"responseText\",\n json: \"responseJSON\"\n },\n // Data converters\n // Keys separate source (or catchall \"*\") and destination types with a single space\n converters: {\n // Convert anything to text\n \"* text\": String,\n // Text to html (true = no transformation)\n \"text html\": true,\n // Evaluate text as a json expression\n \"text json\": JSON.parse,\n // Parse text as xml\n \"text xml\": jQuery.parseXML\n },\n // For options that shouldn't be deep extended:\n // you can add your own custom options here if\n // and when you create one that shouldn't be\n // deep extended (see ajaxExtend)\n flatOptions: {\n url: true,\n context: true\n }\n },\n // Creates a full fledged settings object into target\n // with both ajaxSettings and settings fields.\n // If target is omitted, writes into ajaxSettings.\n ajaxSetup: function ajaxSetup(target, settings) {\n return settings ? // Building a settings object\n ajaxExtend(ajaxExtend(target, jQuery.ajaxSettings), settings) : // Extending ajaxSettings\n ajaxExtend(jQuery.ajaxSettings, target);\n },\n ajaxPrefilter: addToPrefiltersOrTransports(prefilters),\n ajaxTransport: addToPrefiltersOrTransports(transports),\n // Main method\n ajax: function ajax(url, options) {\n // If url is an object, simulate pre-1.5 signature\n if (_typeof(url) === \"object\") {\n options = url;\n url = undefined;\n } // Force options to be an object\n\n\n options = options || {};\n\n var transport,\n // URL without anti-cache param\n cacheURL,\n // Response headers\n responseHeadersString,\n responseHeaders,\n // timeout handle\n timeoutTimer,\n // Url cleanup var\n urlAnchor,\n // Request state (becomes false upon send and true upon completion)\n completed,\n // To know if global events are to be dispatched\n fireGlobals,\n // Loop variable\n i,\n // uncached part of the url\n uncached,\n // Create the final options object\n s = jQuery.ajaxSetup({}, options),\n // Callbacks context\n callbackContext = s.context || s,\n // Context for global events is callbackContext if it is a DOM node or jQuery collection\n globalEventContext = s.context && (callbackContext.nodeType || callbackContext.jquery) ? jQuery(callbackContext) : jQuery.event,\n // Deferreds\n deferred = jQuery.Deferred(),\n completeDeferred = jQuery.Callbacks(\"once memory\"),\n // Status-dependent callbacks\n _statusCode = s.statusCode || {},\n // Headers (they are sent all at once)\n requestHeaders = {},\n requestHeadersNames = {},\n // Default abort message\n strAbort = \"canceled\",\n // Fake xhr\n jqXHR = {\n readyState: 0,\n // Builds headers hashtable if needed\n getResponseHeader: function getResponseHeader(key) {\n var match;\n\n if (completed) {\n if (!responseHeaders) {\n responseHeaders = {};\n\n while (match = rheaders.exec(responseHeadersString)) {\n responseHeaders[match[1].toLowerCase() + \" \"] = (responseHeaders[match[1].toLowerCase() + \" \"] || []).concat(match[2]);\n }\n }\n\n match = responseHeaders[key.toLowerCase() + \" \"];\n }\n\n return match == null ? null : match.join(\", \");\n },\n // Raw string\n getAllResponseHeaders: function getAllResponseHeaders() {\n return completed ? responseHeadersString : null;\n },\n // Caches the header\n setRequestHeader: function setRequestHeader(name, value) {\n if (completed == null) {\n name = requestHeadersNames[name.toLowerCase()] = requestHeadersNames[name.toLowerCase()] || name;\n requestHeaders[name] = value;\n }\n\n return this;\n },\n // Overrides response content-type header\n overrideMimeType: function overrideMimeType(type) {\n if (completed == null) {\n s.mimeType = type;\n }\n\n return this;\n },\n // Status-dependent callbacks\n statusCode: function statusCode(map) {\n var code;\n\n if (map) {\n if (completed) {\n // Execute the appropriate callbacks\n jqXHR.always(map[jqXHR.status]);\n } else {\n // Lazy-add the new callbacks in a way that preserves old ones\n for (code in map) {\n _statusCode[code] = [_statusCode[code], map[code]];\n }\n }\n }\n\n return this;\n },\n // Cancel the request\n abort: function abort(statusText) {\n var finalText = statusText || strAbort;\n\n if (transport) {\n transport.abort(finalText);\n }\n\n done(0, finalText);\n return this;\n }\n }; // Attach deferreds\n\n\n deferred.promise(jqXHR); // Add protocol if not provided (prefilters might expect it)\n // Handle falsy url in the settings object (#10093: consistency with old signature)\n // We also use the url parameter if available\n\n s.url = ((url || s.url || location.href) + \"\").replace(rprotocol, location.protocol + \"//\"); // Alias method option to type as per ticket #12004\n\n s.type = options.method || options.type || s.method || s.type; // Extract dataTypes list\n\n s.dataTypes = (s.dataType || \"*\").toLowerCase().match(rnothtmlwhite) || [\"\"]; // A cross-domain request is in order when the origin doesn't match the current origin.\n\n if (s.crossDomain == null) {\n urlAnchor = document.createElement(\"a\"); // Support: IE <=8 - 11, Edge 12 - 15\n // IE throws exception on accessing the href property if url is malformed,\n // e.g. http://example.com:80x/\n\n try {\n urlAnchor.href = s.url; // Support: IE <=8 - 11 only\n // Anchor's host property isn't correctly set when s.url is relative\n\n urlAnchor.href = urlAnchor.href;\n s.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !== urlAnchor.protocol + \"//\" + urlAnchor.host;\n } catch (e) {\n // If there is an error parsing the URL, assume it is crossDomain,\n // it can be rejected by the transport if it is invalid\n s.crossDomain = true;\n }\n } // Convert data if not already a string\n\n\n if (s.data && s.processData && typeof s.data !== \"string\") {\n s.data = jQuery.param(s.data, s.traditional);\n } // Apply prefilters\n\n\n inspectPrefiltersOrTransports(prefilters, s, options, jqXHR); // If request was aborted inside a prefilter, stop there\n\n if (completed) {\n return jqXHR;\n } // We can fire global events as of now if asked to\n // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\n\n fireGlobals = jQuery.event && s.global; // Watch for a new set of requests\n\n if (fireGlobals && jQuery.active++ === 0) {\n jQuery.event.trigger(\"ajaxStart\");\n } // Uppercase the type\n\n\n s.type = s.type.toUpperCase(); // Determine if request has content\n\n s.hasContent = !rnoContent.test(s.type); // Save the URL in case we're toying with the If-Modified-Since\n // and/or If-None-Match header later on\n // Remove hash to simplify url manipulation\n\n cacheURL = s.url.replace(rhash, \"\"); // More options handling for requests with no content\n\n if (!s.hasContent) {\n // Remember the hash so we can put it back\n uncached = s.url.slice(cacheURL.length); // If data is available and should be processed, append data to url\n\n if (s.data && (s.processData || typeof s.data === \"string\")) {\n cacheURL += (rquery.test(cacheURL) ? \"&\" : \"?\") + s.data; // #9682: remove data so that it's not used in an eventual retry\n\n delete s.data;\n } // Add or update anti-cache param if needed\n\n\n if (s.cache === false) {\n cacheURL = cacheURL.replace(rantiCache, \"$1\");\n uncached = (rquery.test(cacheURL) ? \"&\" : \"?\") + \"_=\" + nonce.guid++ + uncached;\n } // Put hash and anti-cache on the URL that will be requested (gh-1732)\n\n\n s.url = cacheURL + uncached; // Change '%20' to '+' if this is encoded form body content (gh-2658)\n } else if (s.data && s.processData && (s.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") === 0) {\n s.data = s.data.replace(r20, \"+\");\n } // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\n\n if (s.ifModified) {\n if (jQuery.lastModified[cacheURL]) {\n jqXHR.setRequestHeader(\"If-Modified-Since\", jQuery.lastModified[cacheURL]);\n }\n\n if (jQuery.etag[cacheURL]) {\n jqXHR.setRequestHeader(\"If-None-Match\", jQuery.etag[cacheURL]);\n }\n } // Set the correct header, if data is being sent\n\n\n if (s.data && s.hasContent && s.contentType !== false || options.contentType) {\n jqXHR.setRequestHeader(\"Content-Type\", s.contentType);\n } // Set the Accepts header for the server, depending on the dataType\n\n\n jqXHR.setRequestHeader(\"Accept\", s.dataTypes[0] && s.accepts[s.dataTypes[0]] ? s.accepts[s.dataTypes[0]] + (s.dataTypes[0] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\") : s.accepts[\"*\"]); // Check for headers option\n\n for (i in s.headers) {\n jqXHR.setRequestHeader(i, s.headers[i]);\n } // Allow custom headers/mimetypes and early abort\n\n\n if (s.beforeSend && (s.beforeSend.call(callbackContext, jqXHR, s) === false || completed)) {\n // Abort if not done already and return\n return jqXHR.abort();\n } // Aborting is no longer a cancellation\n\n\n strAbort = \"abort\"; // Install callbacks on deferreds\n\n completeDeferred.add(s.complete);\n jqXHR.done(s.success);\n jqXHR.fail(s.error); // Get transport\n\n transport = inspectPrefiltersOrTransports(transports, s, options, jqXHR); // If no transport, we auto-abort\n\n if (!transport) {\n done(-1, \"No Transport\");\n } else {\n jqXHR.readyState = 1; // Send global event\n\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxSend\", [jqXHR, s]);\n } // If request was aborted inside ajaxSend, stop there\n\n\n if (completed) {\n return jqXHR;\n } // Timeout\n\n\n if (s.async && s.timeout > 0) {\n timeoutTimer = window.setTimeout(function () {\n jqXHR.abort(\"timeout\");\n }, s.timeout);\n }\n\n try {\n completed = false;\n transport.send(requestHeaders, done);\n } catch (e) {\n // Rethrow post-completion exceptions\n if (completed) {\n throw e;\n } // Propagate others as results\n\n\n done(-1, e);\n }\n } // Callback for when everything is done\n\n\n function done(status, nativeStatusText, responses, headers) {\n var isSuccess,\n success,\n error,\n response,\n modified,\n statusText = nativeStatusText; // Ignore repeat invocations\n\n if (completed) {\n return;\n }\n\n completed = true; // Clear timeout if it exists\n\n if (timeoutTimer) {\n window.clearTimeout(timeoutTimer);\n } // Dereference transport for early garbage collection\n // (no matter how long the jqXHR object will be used)\n\n\n transport = undefined; // Cache response headers\n\n responseHeadersString = headers || \"\"; // Set readyState\n\n jqXHR.readyState = status > 0 ? 4 : 0; // Determine if successful\n\n isSuccess = status >= 200 && status < 300 || status === 304; // Get response data\n\n if (responses) {\n response = ajaxHandleResponses(s, jqXHR, responses);\n } // Use a noop converter for missing script\n\n\n if (!isSuccess && jQuery.inArray(\"script\", s.dataTypes) > -1) {\n s.converters[\"text script\"] = function () {};\n } // Convert no matter what (that way responseXXX fields are always set)\n\n\n response = ajaxConvert(s, response, jqXHR, isSuccess); // If successful, handle type chaining\n\n if (isSuccess) {\n // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n if (s.ifModified) {\n modified = jqXHR.getResponseHeader(\"Last-Modified\");\n\n if (modified) {\n jQuery.lastModified[cacheURL] = modified;\n }\n\n modified = jqXHR.getResponseHeader(\"etag\");\n\n if (modified) {\n jQuery.etag[cacheURL] = modified;\n }\n } // if no content\n\n\n if (status === 204 || s.type === \"HEAD\") {\n statusText = \"nocontent\"; // if not modified\n } else if (status === 304) {\n statusText = \"notmodified\"; // If we have data, let's convert it\n } else {\n statusText = response.state;\n success = response.data;\n error = response.error;\n isSuccess = !error;\n }\n } else {\n // Extract error from statusText and normalize for non-aborts\n error = statusText;\n\n if (status || !statusText) {\n statusText = \"error\";\n\n if (status < 0) {\n status = 0;\n }\n }\n } // Set data for the fake xhr object\n\n\n jqXHR.status = status;\n jqXHR.statusText = (nativeStatusText || statusText) + \"\"; // Success/Error\n\n if (isSuccess) {\n deferred.resolveWith(callbackContext, [success, statusText, jqXHR]);\n } else {\n deferred.rejectWith(callbackContext, [jqXHR, statusText, error]);\n } // Status-dependent callbacks\n\n\n jqXHR.statusCode(_statusCode);\n _statusCode = undefined;\n\n if (fireGlobals) {\n globalEventContext.trigger(isSuccess ? \"ajaxSuccess\" : \"ajaxError\", [jqXHR, s, isSuccess ? success : error]);\n } // Complete\n\n\n completeDeferred.fireWith(callbackContext, [jqXHR, statusText]);\n\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxComplete\", [jqXHR, s]); // Handle the global AJAX counter\n\n if (! --jQuery.active) {\n jQuery.event.trigger(\"ajaxStop\");\n }\n }\n }\n\n return jqXHR;\n },\n getJSON: function getJSON(url, data, callback) {\n return jQuery.get(url, data, callback, \"json\");\n },\n getScript: function getScript(url, callback) {\n return jQuery.get(url, undefined, callback, \"script\");\n }\n });\n jQuery.each([\"get\", \"post\"], function (_i, method) {\n jQuery[method] = function (url, data, callback, type) {\n // Shift arguments if data argument was omitted\n if (isFunction(data)) {\n type = type || callback;\n callback = data;\n data = undefined;\n } // The url can be an options object (which then must have .url)\n\n\n return jQuery.ajax(jQuery.extend({\n url: url,\n type: method,\n dataType: type,\n data: data,\n success: callback\n }, jQuery.isPlainObject(url) && url));\n };\n });\n jQuery.ajaxPrefilter(function (s) {\n var i;\n\n for (i in s.headers) {\n if (i.toLowerCase() === \"content-type\") {\n s.contentType = s.headers[i] || \"\";\n }\n }\n });\n\n jQuery._evalUrl = function (url, options, doc) {\n return jQuery.ajax({\n url: url,\n // Make this explicit, since user can override this through ajaxSetup (#11264)\n type: \"GET\",\n dataType: \"script\",\n cache: true,\n async: false,\n global: false,\n // Only evaluate the response if it is successful (gh-4126)\n // dataFilter is not invoked for failure responses, so using it instead\n // of the default converter is kludgy but it works.\n converters: {\n \"text script\": function textScript() {}\n },\n dataFilter: function dataFilter(response) {\n jQuery.globalEval(response, options, doc);\n }\n });\n };\n\n jQuery.fn.extend({\n wrapAll: function wrapAll(html) {\n var wrap;\n\n if (this[0]) {\n if (isFunction(html)) {\n html = html.call(this[0]);\n } // The elements to wrap the target around\n\n\n wrap = jQuery(html, this[0].ownerDocument).eq(0).clone(true);\n\n if (this[0].parentNode) {\n wrap.insertBefore(this[0]);\n }\n\n wrap.map(function () {\n var elem = this;\n\n while (elem.firstElementChild) {\n elem = elem.firstElementChild;\n }\n\n return elem;\n }).append(this);\n }\n\n return this;\n },\n wrapInner: function wrapInner(html) {\n if (isFunction(html)) {\n return this.each(function (i) {\n jQuery(this).wrapInner(html.call(this, i));\n });\n }\n\n return this.each(function () {\n var self = jQuery(this),\n contents = self.contents();\n\n if (contents.length) {\n contents.wrapAll(html);\n } else {\n self.append(html);\n }\n });\n },\n wrap: function wrap(html) {\n var htmlIsFunction = isFunction(html);\n return this.each(function (i) {\n jQuery(this).wrapAll(htmlIsFunction ? html.call(this, i) : html);\n });\n },\n unwrap: function unwrap(selector) {\n this.parent(selector).not(\"body\").each(function () {\n jQuery(this).replaceWith(this.childNodes);\n });\n return this;\n }\n });\n\n jQuery.expr.pseudos.hidden = function (elem) {\n return !jQuery.expr.pseudos.visible(elem);\n };\n\n jQuery.expr.pseudos.visible = function (elem) {\n return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);\n };\n\n jQuery.ajaxSettings.xhr = function () {\n try {\n return new window.XMLHttpRequest();\n } catch (e) {}\n };\n\n var xhrSuccessStatus = {\n // File protocol always yields status code 0, assume 200\n 0: 200,\n // Support: IE <=9 only\n // #1450: sometimes IE returns 1223 when it should be 204\n 1223: 204\n },\n xhrSupported = jQuery.ajaxSettings.xhr();\n support.cors = !!xhrSupported && \"withCredentials\" in xhrSupported;\n support.ajax = xhrSupported = !!xhrSupported;\n jQuery.ajaxTransport(function (options) {\n var _callback, errorCallback; // Cross domain only allowed if supported through XMLHttpRequest\n\n\n if (support.cors || xhrSupported && !options.crossDomain) {\n return {\n send: function send(headers, complete) {\n var i,\n xhr = options.xhr();\n xhr.open(options.type, options.url, options.async, options.username, options.password); // Apply custom fields if provided\n\n if (options.xhrFields) {\n for (i in options.xhrFields) {\n xhr[i] = options.xhrFields[i];\n }\n } // Override mime type if needed\n\n\n if (options.mimeType && xhr.overrideMimeType) {\n xhr.overrideMimeType(options.mimeType);\n } // X-Requested-With header\n // For cross-domain requests, seeing as conditions for a preflight are\n // akin to a jigsaw puzzle, we simply never set it to be sure.\n // (it can always be set on a per-request basis or even using ajaxSetup)\n // For same-domain requests, won't change header if already provided.\n\n\n if (!options.crossDomain && !headers[\"X-Requested-With\"]) {\n headers[\"X-Requested-With\"] = \"XMLHttpRequest\";\n } // Set headers\n\n\n for (i in headers) {\n xhr.setRequestHeader(i, headers[i]);\n } // Callback\n\n\n _callback = function callback(type) {\n return function () {\n if (_callback) {\n _callback = errorCallback = xhr.onload = xhr.onerror = xhr.onabort = xhr.ontimeout = xhr.onreadystatechange = null;\n\n if (type === \"abort\") {\n xhr.abort();\n } else if (type === \"error\") {\n // Support: IE <=9 only\n // On a manual native abort, IE9 throws\n // errors on any property access that is not readyState\n if (typeof xhr.status !== \"number\") {\n complete(0, \"error\");\n } else {\n complete( // File: protocol always yields status 0; see #8605, #14207\n xhr.status, xhr.statusText);\n }\n } else {\n complete(xhrSuccessStatus[xhr.status] || xhr.status, xhr.statusText, // Support: IE <=9 only\n // IE9 has no XHR2 but throws on binary (trac-11426)\n // For XHR2 non-text, let the caller handle it (gh-2498)\n (xhr.responseType || \"text\") !== \"text\" || typeof xhr.responseText !== \"string\" ? {\n binary: xhr.response\n } : {\n text: xhr.responseText\n }, xhr.getAllResponseHeaders());\n }\n }\n };\n }; // Listen to events\n\n\n xhr.onload = _callback();\n errorCallback = xhr.onerror = xhr.ontimeout = _callback(\"error\"); // Support: IE 9 only\n // Use onreadystatechange to replace onabort\n // to handle uncaught aborts\n\n if (xhr.onabort !== undefined) {\n xhr.onabort = errorCallback;\n } else {\n xhr.onreadystatechange = function () {\n // Check readyState before timeout as it changes\n if (xhr.readyState === 4) {\n // Allow onerror to be called first,\n // but that will not handle a native abort\n // Also, save errorCallback to a variable\n // as xhr.onerror cannot be accessed\n window.setTimeout(function () {\n if (_callback) {\n errorCallback();\n }\n });\n }\n };\n } // Create the abort callback\n\n\n _callback = _callback(\"abort\");\n\n try {\n // Do send the request (this may raise an exception)\n xhr.send(options.hasContent && options.data || null);\n } catch (e) {\n // #14683: Only rethrow if this hasn't been notified as an error yet\n if (_callback) {\n throw e;\n }\n }\n },\n abort: function abort() {\n if (_callback) {\n _callback();\n }\n }\n };\n }\n }); // Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\n\n jQuery.ajaxPrefilter(function (s) {\n if (s.crossDomain) {\n s.contents.script = false;\n }\n }); // Install script dataType\n\n jQuery.ajaxSetup({\n accepts: {\n script: \"text/javascript, application/javascript, \" + \"application/ecmascript, application/x-ecmascript\"\n },\n contents: {\n script: /\\b(?:java|ecma)script\\b/\n },\n converters: {\n \"text script\": function textScript(text) {\n jQuery.globalEval(text);\n return text;\n }\n }\n }); // Handle cache's special case and crossDomain\n\n jQuery.ajaxPrefilter(\"script\", function (s) {\n if (s.cache === undefined) {\n s.cache = false;\n }\n\n if (s.crossDomain) {\n s.type = \"GET\";\n }\n }); // Bind script tag hack transport\n\n jQuery.ajaxTransport(\"script\", function (s) {\n // This transport only deals with cross domain or forced-by-attrs requests\n if (s.crossDomain || s.scriptAttrs) {\n var script, _callback2;\n\n return {\n send: function send(_, complete) {\n script = jQuery(\"}\n *
  • define style rules. See the example page for examples.\n *
  • mark the {@code
    } and {@code } tags in your source with\n *    {@code class=prettyprint.}\n *    You can also use the (html deprecated) {@code } tag, but the pretty\n *    printer needs to do more substantial DOM manipulations to support that, so\n *    some css styles may not be preserved.\n * </ol>\n * That's it.  I wanted to keep the API as simple as possible, so there's no\n * need to specify which language the code is in, but if you wish, you can add\n * another class to the {@code <pre>} or {@code <code>} element to specify the\n * language, as in {@code <pre class=\"prettyprint lang-java\">}.  Any class that\n * starts with \"lang-\" followed by a file extension, specifies the file type.\n * See the \"lang-*.js\" files in this directory for code that implements\n * per-language file handlers.\n * <p>\n * Change log:<br>\n * cbeust, 2006/08/22\n * <blockquote>\n *   Java annotations (start with \"@\") are now captured as literals (\"lit\")\n * </blockquote>\n * @requires console\n */\n// JSLint declarations\n\n/*global console, document, navigator, setTimeout, window, define */\n\n/**\n* @typedef {!Array.<number|string>}\n* Alternating indices and the decorations that should be inserted there.\n* The indices are monotonically increasing.\n*/\nvar DecorationsT;\n/**\n* @typedef {!{\n*   sourceNode: !Element,\n*   pre: !(number|boolean),\n*   langExtension: ?string,\n*   numberLines: ?(number|boolean),\n*   sourceCode: ?string,\n*   spans: ?(Array.<number|Node>),\n*   basePos: ?number,\n*   decorations: ?DecorationsT\n* }}\n* <dl>\n*  <dt>sourceNode<dd>the element containing the source\n*  <dt>sourceCode<dd>source as plain text\n*  <dt>pre<dd>truthy if white-space in text nodes\n*     should be considered significant.\n*  <dt>spans<dd> alternating span start indices into source\n*     and the text node or element (e.g. {@code <BR>}) corresponding to that\n*     span.\n*  <dt>decorations<dd>an array of style classes preceded\n*     by the position at which they start in job.sourceCode in order\n*  <dt>basePos<dd>integer position of this.sourceCode in the larger chunk of\n*     source.\n* </dl>\n*/\n\nvar JobT;\n/**\n* @typedef {!{\n*   sourceCode: string,\n*   spans: !(Array.<number|Node>)\n* }}\n* <dl>\n*  <dt>sourceCode<dd>source as plain text\n*  <dt>spans<dd> alternating span start indices into source\n*     and the text node or element (e.g. {@code <BR>}) corresponding to that\n*     span.\n* </dl>\n*/\n\nvar SourceSpansT;\n/** @define {boolean} */\n\nvar IN_GLOBAL_SCOPE = false;\nvar HACK_TO_FIX_JS_INCLUDE_PL;\n/**\n * {@type !{\n *   'createSimpleLexer': function (Array, Array): (function (JobT)),\n *   'registerLangHandler': function (function (JobT), Array.<string>),\n *   'PR_ATTRIB_NAME': string,\n *   'PR_ATTRIB_NAME': string,\n *   'PR_ATTRIB_VALUE': string,\n *   'PR_COMMENT': string,\n *   'PR_DECLARATION': string,\n *   'PR_KEYWORD': string,\n *   'PR_LITERAL': string,\n *   'PR_NOCODE': string,\n *   'PR_PLAIN': string,\n *   'PR_PUNCTUATION': string,\n *   'PR_SOURCE': string,\n *   'PR_STRING': string,\n *   'PR_TAG': string,\n *   'PR_TYPE': string,\n *   'prettyPrintOne': function (string, string, number|boolean),\n *   'prettyPrint': function (?function, ?(HTMLElement|HTMLDocument))\n * }}\n * @const\n */\n\nvar PR;\n/**\n * Split {@code prettyPrint} into multiple timeouts so as not to interfere with\n * UI events.\n * If set to {@code false}, {@code prettyPrint()} is synchronous.\n */\n\nwindow['PR_SHOULD_USE_CONTINUATION'] = true;\n/**\n * Pretty print a chunk of code.\n * @param {string} sourceCodeHtml The HTML to pretty print.\n * @param {string} opt_langExtension The language name to use.\n *     Typically, a filename extension like 'cpp' or 'java'.\n * @param {number|boolean} opt_numberLines True to number lines,\n *     or the 1-indexed number of the first line in sourceCodeHtml.\n * @return {string} code as html, but prettier\n */\n\nvar prettyPrintOne;\n/**\n * Find all the {@code <pre>} and {@code <code>} tags in the DOM with\n * {@code class=prettyprint} and prettify them.\n *\n * @param {Function} opt_whenDone called when prettifying is done.\n * @param {HTMLElement|HTMLDocument} opt_root an element or document\n *   containing all the elements to pretty print.\n *   Defaults to {@code document.body}.\n */\n\nvar prettyPrint;\n\n(function () {\n  var win = window; // Keyword lists for various languages.\n  // We use things that coerce to strings to make them compact when minified\n  // and to defeat aggressive optimizers that fold large string constants.\n\n  var FLOW_CONTROL_KEYWORDS = [\"break,continue,do,else,for,if,return,while\"];\n  var C_KEYWORDS = [FLOW_CONTROL_KEYWORDS, \"auto,case,char,const,default,\" + \"double,enum,extern,float,goto,inline,int,long,register,restrict,short,signed,\" + \"sizeof,static,struct,switch,typedef,union,unsigned,void,volatile\"];\n  var COMMON_KEYWORDS = [C_KEYWORDS, \"catch,class,delete,false,import,\" + \"new,operator,private,protected,public,this,throw,true,try,typeof\"];\n  var CPP_KEYWORDS = [COMMON_KEYWORDS, \"alignas,alignof,align_union,asm,axiom,bool,\" + \"concept,concept_map,const_cast,constexpr,decltype,delegate,\" + \"dynamic_cast,explicit,export,friend,generic,late_check,\" + \"mutable,namespace,noexcept,noreturn,nullptr,property,reinterpret_cast,static_assert,\" + \"static_cast,template,typeid,typename,using,virtual,where\"];\n  var JAVA_KEYWORDS = [COMMON_KEYWORDS, \"abstract,assert,boolean,byte,extends,finally,final,implements,import,\" + \"instanceof,interface,null,native,package,strictfp,super,synchronized,\" + \"throws,transient\"];\n  var CSHARP_KEYWORDS = [COMMON_KEYWORDS, \"abstract,add,alias,as,ascending,async,await,base,bool,by,byte,checked,decimal,delegate,descending,\" + \"dynamic,event,finally,fixed,foreach,from,get,global,group,implicit,in,interface,\" + \"internal,into,is,join,let,lock,null,object,out,override,orderby,params,\" + \"partial,readonly,ref,remove,sbyte,sealed,select,set,stackalloc,string,select,uint,ulong,\" + \"unchecked,unsafe,ushort,value,var,virtual,where,yield\"];\n  var COFFEE_KEYWORDS = \"all,and,by,catch,class,else,extends,false,finally,\" + \"for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,\" + \"throw,true,try,unless,until,when,while,yes\";\n  var JSCRIPT_KEYWORDS = [COMMON_KEYWORDS, \"abstract,async,await,constructor,debugger,enum,eval,export,function,\" + \"get,implements,instanceof,interface,let,null,set,undefined,var,with,\" + \"yield,Infinity,NaN\"];\n  var PERL_KEYWORDS = \"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,\" + \"goto,if,import,last,local,my,next,no,our,print,package,redo,require,\" + \"sub,undef,unless,until,use,wantarray,while,BEGIN,END\";\n  var PYTHON_KEYWORDS = [FLOW_CONTROL_KEYWORDS, \"and,as,assert,class,def,del,\" + \"elif,except,exec,finally,from,global,import,in,is,lambda,\" + \"nonlocal,not,or,pass,print,raise,try,with,yield,\" + \"False,True,None\"];\n  var RUBY_KEYWORDS = [FLOW_CONTROL_KEYWORDS, \"alias,and,begin,case,class,\" + \"def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,\" + \"rescue,retry,self,super,then,true,undef,unless,until,when,yield,\" + \"BEGIN,END\"];\n  var SH_KEYWORDS = [FLOW_CONTROL_KEYWORDS, \"case,done,elif,esac,eval,fi,\" + \"function,in,local,set,then,until\"];\n  var ALL_KEYWORDS = [CPP_KEYWORDS, CSHARP_KEYWORDS, JAVA_KEYWORDS, JSCRIPT_KEYWORDS, PERL_KEYWORDS, PYTHON_KEYWORDS, RUBY_KEYWORDS, SH_KEYWORDS];\n  var C_TYPES = /^(DIR|FILE|array|vector|(de|priority_)?queue|(forward_)?list|stack|(const_)?(reverse_)?iterator|(unordered_)?(multi)?(set|map)|bitset|u?(int|float)\\d*)\\b/; // token style names.  correspond to css classes\n\n  /**\n   * token style for a string literal\n   * @const\n   */\n\n  var PR_STRING = 'str';\n  /**\n   * token style for a keyword\n   * @const\n   */\n\n  var PR_KEYWORD = 'kwd';\n  /**\n   * token style for a comment\n   * @const\n   */\n\n  var PR_COMMENT = 'com';\n  /**\n   * token style for a type\n   * @const\n   */\n\n  var PR_TYPE = 'typ';\n  /**\n   * token style for a literal value.  e.g. 1, null, true.\n   * @const\n   */\n\n  var PR_LITERAL = 'lit';\n  /**\n   * token style for a punctuation string.\n   * @const\n   */\n\n  var PR_PUNCTUATION = 'pun';\n  /**\n   * token style for plain text.\n   * @const\n   */\n\n  var PR_PLAIN = 'pln';\n  /**\n   * token style for an sgml tag.\n   * @const\n   */\n\n  var PR_TAG = 'tag';\n  /**\n   * token style for a markup declaration such as a DOCTYPE.\n   * @const\n   */\n\n  var PR_DECLARATION = 'dec';\n  /**\n   * token style for embedded source.\n   * @const\n   */\n\n  var PR_SOURCE = 'src';\n  /**\n   * token style for an sgml attribute name.\n   * @const\n   */\n\n  var PR_ATTRIB_NAME = 'atn';\n  /**\n   * token style for an sgml attribute value.\n   * @const\n   */\n\n  var PR_ATTRIB_VALUE = 'atv';\n  /**\n   * A class that indicates a section of markup that is not code, e.g. to allow\n   * embedding of line numbers within code listings.\n   * @const\n   */\n\n  var PR_NOCODE = 'nocode';\n  /**\n   * A set of tokens that can precede a regular expression literal in\n   * javascript\n   * http://web.archive.org/web/20070717142515/http://www.mozilla.org/js/language/js20/rationale/syntax.html\n   * has the full list, but I've removed ones that might be problematic when\n   * seen in languages that don't support regular expression literals.\n   *\n   * <p>Specifically, I've removed any keywords that can't precede a regexp\n   * literal in a syntactically legal javascript program, and I've removed the\n   * \"in\" keyword since it's not a keyword in many languages, and might be used\n   * as a count of inches.\n   *\n   * <p>The link above does not accurately describe EcmaScript rules since\n   * it fails to distinguish between (a=++/b/i) and (a++/b/i) but it works\n   * very well in practice.\n   *\n   * @private\n   * @const\n   */\n\n  var REGEXP_PRECEDER_PATTERN = '(?:^^\\\\.?|[+-]|[!=]=?=?|\\\\#|%=?|&&?=?|\\\\(|\\\\*=?|[+\\\\-]=|->|\\\\/=?|::?|<<?=?|>>?>?=?|,|;|\\\\?|@|\\\\[|~|{|\\\\^\\\\^?=?|\\\\|\\\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\\\s*'; // CAVEAT: this does not properly handle the case where a regular\n  // expression immediately follows another since a regular expression may\n  // have flags for case-sensitivity and the like.  Having regexp tokens\n  // adjacent is not valid in any language I'm aware of, so I'm punting.\n  // TODO: maybe style special characters inside a regexp as punctuation.\n\n  /**\n   * Given a group of {@link RegExp}s, returns a {@code RegExp} that globally\n   * matches the union of the sets of strings matched by the input RegExp.\n   * Since it matches globally, if the input strings have a start-of-input\n   * anchor (/^.../), it is ignored for the purposes of unioning.\n   * @param {Array.<RegExp>} regexs non multiline, non-global regexs.\n   * @return {RegExp} a global regex.\n   */\n\n  function combinePrefixPatterns(regexs) {\n    var capturedGroupIndex = 0;\n    var needToFoldCase = false;\n    var ignoreCase = false;\n\n    for (var i = 0, n = regexs.length; i < n; ++i) {\n      var regex = regexs[i];\n\n      if (regex.ignoreCase) {\n        ignoreCase = true;\n      } else if (/[a-z]/i.test(regex.source.replace(/\\\\u[0-9a-f]{4}|\\\\x[0-9a-f]{2}|\\\\[^ux]/gi, ''))) {\n        needToFoldCase = true;\n        ignoreCase = false;\n        break;\n      }\n    }\n\n    var escapeCharToCodeUnit = {\n      'b': 8,\n      't': 9,\n      'n': 0xa,\n      'v': 0xb,\n      'f': 0xc,\n      'r': 0xd\n    };\n\n    function decodeEscape(charsetPart) {\n      var cc0 = charsetPart.charCodeAt(0);\n\n      if (cc0 !== 92\n      /* \\\\ */\n      ) {\n          return cc0;\n        }\n\n      var c1 = charsetPart.charAt(1);\n      cc0 = escapeCharToCodeUnit[c1];\n\n      if (cc0) {\n        return cc0;\n      } else if ('0' <= c1 && c1 <= '7') {\n        return parseInt(charsetPart.substring(1), 8);\n      } else if (c1 === 'u' || c1 === 'x') {\n        return parseInt(charsetPart.substring(2), 16);\n      } else {\n        return charsetPart.charCodeAt(1);\n      }\n    }\n\n    function encodeEscape(charCode) {\n      if (charCode < 0x20) {\n        return (charCode < 0x10 ? '\\\\x0' : '\\\\x') + charCode.toString(16);\n      }\n\n      var ch = String.fromCharCode(charCode);\n      return ch === '\\\\' || ch === '-' || ch === ']' || ch === '^' ? \"\\\\\" + ch : ch;\n    }\n\n    function caseFoldCharset(charSet) {\n      var charsetParts = charSet.substring(1, charSet.length - 1).match(new RegExp(\"\\\\\\\\u[0-9A-Fa-f]{4}\" + '|\\\\\\\\x[0-9A-Fa-f]{2}' + '|\\\\\\\\[0-3][0-7]{0,2}' + '|\\\\\\\\[0-7]{1,2}' + '|\\\\\\\\[\\\\s\\\\S]' + '|-' + '|[^-\\\\\\\\]', 'g'));\n      var ranges = [];\n      var inverse = charsetParts[0] === '^';\n      var out = ['['];\n\n      if (inverse) {\n        out.push('^');\n      }\n\n      for (var i = inverse ? 1 : 0, n = charsetParts.length; i < n; ++i) {\n        var p = charsetParts[i];\n\n        if (/\\\\[bdsw]/i.test(p)) {\n          // Don't muck with named groups.\n          out.push(p);\n        } else {\n          var start = decodeEscape(p);\n          var end;\n\n          if (i + 2 < n && '-' === charsetParts[i + 1]) {\n            end = decodeEscape(charsetParts[i + 2]);\n            i += 2;\n          } else {\n            end = start;\n          }\n\n          ranges.push([start, end]); // If the range might intersect letters, then expand it.\n          // This case handling is too simplistic.\n          // It does not deal with non-latin case folding.\n          // It works for latin source code identifiers though.\n\n          if (!(end < 65 || start > 122)) {\n            if (!(end < 65 || start > 90)) {\n              ranges.push([Math.max(65, start) | 32, Math.min(end, 90) | 32]);\n            }\n\n            if (!(end < 97 || start > 122)) {\n              ranges.push([Math.max(97, start) & ~32, Math.min(end, 122) & ~32]);\n            }\n          }\n        }\n      } // [[1, 10], [3, 4], [8, 12], [14, 14], [16, 16], [17, 17]]\n      // -> [[1, 12], [14, 14], [16, 17]]\n\n\n      ranges.sort(function (a, b) {\n        return a[0] - b[0] || b[1] - a[1];\n      });\n      var consolidatedRanges = [];\n      var lastRange = [];\n\n      for (var i = 0; i < ranges.length; ++i) {\n        var range = ranges[i];\n\n        if (range[0] <= lastRange[1] + 1) {\n          lastRange[1] = Math.max(lastRange[1], range[1]);\n        } else {\n          consolidatedRanges.push(lastRange = range);\n        }\n      }\n\n      for (var i = 0; i < consolidatedRanges.length; ++i) {\n        var range = consolidatedRanges[i];\n        out.push(encodeEscape(range[0]));\n\n        if (range[1] > range[0]) {\n          if (range[1] + 1 > range[0]) {\n            out.push('-');\n          }\n\n          out.push(encodeEscape(range[1]));\n        }\n      }\n\n      out.push(']');\n      return out.join('');\n    }\n\n    function allowAnywhereFoldCaseAndRenumberGroups(regex) {\n      // Split into character sets, escape sequences, punctuation strings\n      // like ('(', '(?:', ')', '^'), and runs of characters that do not\n      // include any of the above.\n      var parts = regex.source.match(new RegExp('(?:' + '\\\\[(?:[^\\\\x5C\\\\x5D]|\\\\\\\\[\\\\s\\\\S])*\\\\]' // a character set\n      + \"|\\\\\\\\u[A-Fa-f0-9]{4}\" // a unicode escape\n      + '|\\\\\\\\x[A-Fa-f0-9]{2}' // a hex escape\n      + '|\\\\\\\\[0-9]+' // a back-reference or octal escape\n      + '|\\\\\\\\[^ux0-9]' // other escape sequence\n      + '|\\\\(\\\\?[:!=]' // start of a non-capturing group\n      + '|[\\\\(\\\\)\\\\^]' // start/end of a group, or line start\n      + '|[^\\\\x5B\\\\x5C\\\\(\\\\)\\\\^]+' // run of other characters\n      + ')', 'g'));\n      var n = parts.length; // Maps captured group numbers to the number they will occupy in\n      // the output or to -1 if that has not been determined, or to\n      // undefined if they need not be capturing in the output.\n\n      var capturedGroups = []; // Walk over and identify back references to build the capturedGroups\n      // mapping.\n\n      for (var i = 0, groupIndex = 0; i < n; ++i) {\n        var p = parts[i];\n\n        if (p === '(') {\n          // groups are 1-indexed, so max group index is count of '('\n          ++groupIndex;\n        } else if ('\\\\' === p.charAt(0)) {\n          var decimalValue = +p.substring(1);\n\n          if (decimalValue) {\n            if (decimalValue <= groupIndex) {\n              capturedGroups[decimalValue] = -1;\n            } else {\n              // Replace with an unambiguous escape sequence so that\n              // an octal escape sequence does not turn into a backreference\n              // to a capturing group from an earlier regex.\n              parts[i] = encodeEscape(decimalValue);\n            }\n          }\n        }\n      } // Renumber groups and reduce capturing groups to non-capturing groups\n      // where possible.\n\n\n      for (var i = 1; i < capturedGroups.length; ++i) {\n        if (-1 === capturedGroups[i]) {\n          capturedGroups[i] = ++capturedGroupIndex;\n        }\n      }\n\n      for (var i = 0, groupIndex = 0; i < n; ++i) {\n        var p = parts[i];\n\n        if (p === '(') {\n          ++groupIndex;\n\n          if (!capturedGroups[groupIndex]) {\n            parts[i] = '(?:';\n          }\n        } else if ('\\\\' === p.charAt(0)) {\n          var decimalValue = +p.substring(1);\n\n          if (decimalValue && decimalValue <= groupIndex) {\n            parts[i] = '\\\\' + capturedGroups[decimalValue];\n          }\n        }\n      } // Remove any prefix anchors so that the output will match anywhere.\n      // ^^ really does mean an anchored match though.\n\n\n      for (var i = 0; i < n; ++i) {\n        if ('^' === parts[i] && '^' !== parts[i + 1]) {\n          parts[i] = '';\n        }\n      } // Expand letters to groups to handle mixing of case-sensitive and\n      // case-insensitive patterns if necessary.\n\n\n      if (regex.ignoreCase && needToFoldCase) {\n        for (var i = 0; i < n; ++i) {\n          var p = parts[i];\n          var ch0 = p.charAt(0);\n\n          if (p.length >= 2 && ch0 === '[') {\n            parts[i] = caseFoldCharset(p);\n          } else if (ch0 !== '\\\\') {\n            // TODO: handle letters in numeric escapes.\n            parts[i] = p.replace(/[a-zA-Z]/g, function (ch) {\n              var cc = ch.charCodeAt(0);\n              return '[' + String.fromCharCode(cc & ~32, cc | 32) + ']';\n            });\n          }\n        }\n      }\n\n      return parts.join('');\n    }\n\n    var rewritten = [];\n\n    for (var i = 0, n = regexs.length; i < n; ++i) {\n      var regex = regexs[i];\n\n      if (regex.global || regex.multiline) {\n        throw new Error('' + regex);\n      }\n\n      rewritten.push('(?:' + allowAnywhereFoldCaseAndRenumberGroups(regex) + ')');\n    }\n\n    return new RegExp(rewritten.join('|'), ignoreCase ? 'gi' : 'g');\n  }\n  /**\n   * Split markup into a string of source code and an array mapping ranges in\n   * that string to the text nodes in which they appear.\n   *\n   * <p>\n   * The HTML DOM structure:</p>\n   * <pre>\n   * (Element   \"p\"\n   *   (Element \"b\"\n   *     (Text  \"print \"))       ; #1\n   *   (Text    \"'Hello '\")      ; #2\n   *   (Element \"br\")            ; #3\n   *   (Text    \"  + 'World';\")) ; #4\n   * </pre>\n   * <p>\n   * corresponds to the HTML\n   * {@code <p><b>print </b>'Hello '<br>  + 'World';</p>}.</p>\n   *\n   * <p>\n   * It will produce the output:</p>\n   * <pre>\n   * {\n   *   sourceCode: \"print 'Hello '\\n  + 'World';\",\n   *   //                     1          2\n   *   //           012345678901234 5678901234567\n   *   spans: [0, #1, 6, #2, 14, #3, 15, #4]\n   * }\n   * </pre>\n   * <p>\n   * where #1 is a reference to the {@code \"print \"} text node above, and so\n   * on for the other text nodes.\n   * </p>\n   *\n   * <p>\n   * The {@code} spans array is an array of pairs.  Even elements are the start\n   * indices of substrings, and odd elements are the text nodes (or BR elements)\n   * that contain the text for those substrings.\n   * Substrings continue until the next index or the end of the source.\n   * </p>\n   *\n   * @param {Node} node an HTML DOM subtree containing source-code.\n   * @param {boolean|number} isPreformatted truthy if white-space in\n   *    text nodes should be considered significant.\n   * @return {SourceSpansT} source code and the nodes in which they occur.\n   */\n\n\n  function extractSourceSpans(node, isPreformatted) {\n    var nocode = /(?:^|\\s)nocode(?:\\s|$)/;\n    var chunks = [];\n    var length = 0;\n    var spans = [];\n    var k = 0;\n\n    function walk(node) {\n      var type = node.nodeType;\n\n      if (type == 1) {\n        // Element\n        if (nocode.test(node.className)) {\n          return;\n        }\n\n        for (var child = node.firstChild; child; child = child.nextSibling) {\n          walk(child);\n        }\n\n        var nodeName = node.nodeName.toLowerCase();\n\n        if ('br' === nodeName || 'li' === nodeName) {\n          chunks[k] = '\\n';\n          spans[k << 1] = length++;\n          spans[k++ << 1 | 1] = node;\n        }\n      } else if (type == 3 || type == 4) {\n        // Text\n        var text = node.nodeValue;\n\n        if (text.length) {\n          if (!isPreformatted) {\n            text = text.replace(/[ \\t\\r\\n]+/g, ' ');\n          } else {\n            text = text.replace(/\\r\\n?/g, '\\n'); // Normalize newlines.\n          } // TODO: handle tabs here?\n\n\n          chunks[k] = text;\n          spans[k << 1] = length;\n          length += text.length;\n          spans[k++ << 1 | 1] = node;\n        }\n      }\n    }\n\n    walk(node);\n    return {\n      sourceCode: chunks.join('').replace(/\\n$/, ''),\n      spans: spans\n    };\n  }\n  /**\n   * Apply the given language handler to sourceCode and add the resulting\n   * decorations to out.\n   * @param {!Element} sourceNode\n   * @param {number} basePos the index of sourceCode within the chunk of source\n   *    whose decorations are already present on out.\n   * @param {string} sourceCode\n   * @param {function(JobT)} langHandler\n   * @param {DecorationsT} out\n   */\n\n\n  function appendDecorations(sourceNode, basePos, sourceCode, langHandler, out) {\n    if (!sourceCode) {\n      return;\n    }\n    /** @type {JobT} */\n\n\n    var job = {\n      sourceNode: sourceNode,\n      pre: 1,\n      langExtension: null,\n      numberLines: null,\n      sourceCode: sourceCode,\n      spans: null,\n      basePos: basePos,\n      decorations: null\n    };\n    langHandler(job);\n    out.push.apply(out, job.decorations);\n  }\n\n  var notWs = /\\S/;\n  /**\n   * Given an element, if it contains only one child element and any text nodes\n   * it contains contain only space characters, return the sole child element.\n   * Otherwise returns undefined.\n   * <p>\n   * This is meant to return the CODE element in {@code <pre><code ...>} when\n   * there is a single child element that contains all the non-space textual\n   * content, but not to return anything where there are multiple child elements\n   * as in {@code <pre><code>...</code><code>...</code></pre>} or when there\n   * is textual content.\n   */\n\n  function childContentWrapper(element) {\n    var wrapper = undefined;\n\n    for (var c = element.firstChild; c; c = c.nextSibling) {\n      var type = c.nodeType;\n      wrapper = type === 1 ? // Element Node\n      wrapper ? element : c : type === 3 ? // Text Node\n      notWs.test(c.nodeValue) ? element : wrapper : wrapper;\n    }\n\n    return wrapper === element ? undefined : wrapper;\n  }\n  /** Given triples of [style, pattern, context] returns a lexing function,\n    * The lexing function interprets the patterns to find token boundaries and\n    * returns a decoration list of the form\n    * [index_0, style_0, index_1, style_1, ..., index_n, style_n]\n    * where index_n is an index into the sourceCode, and style_n is a style\n    * constant like PR_PLAIN.  index_n-1 <= index_n, and style_n-1 applies to\n    * all characters in sourceCode[index_n-1:index_n].\n    *\n    * The stylePatterns is a list whose elements have the form\n    * [style : string, pattern : RegExp, DEPRECATED, shortcut : string].\n    *\n    * Style is a style constant like PR_PLAIN, or can be a string of the\n    * form 'lang-FOO', where FOO is a language extension describing the\n    * language of the portion of the token in $1 after pattern executes.\n    * E.g., if style is 'lang-lisp', and group 1 contains the text\n    * '(hello (world))', then that portion of the token will be passed to the\n    * registered lisp handler for formatting.\n    * The text before and after group 1 will be restyled using this decorator\n    * so decorators should take care that this doesn't result in infinite\n    * recursion.  For example, the HTML lexer rule for SCRIPT elements looks\n    * something like ['lang-js', /<[s]cript>(.+?)<\\/script>/].  This may match\n    * '<script>foo()<\\/script>', which would cause the current decorator to\n    * be called with '<script>' which would not match the same rule since\n    * group 1 must not be empty, so it would be instead styled as PR_TAG by\n    * the generic tag rule.  The handler registered for the 'js' extension would\n    * then be called with 'foo()', and finally, the current decorator would\n    * be called with '<\\/script>' which would not match the original rule and\n    * so the generic tag rule would identify it as a tag.\n    *\n    * Pattern must only match prefixes, and if it matches a prefix, then that\n    * match is considered a token with the same style.\n    *\n    * Context is applied to the last non-whitespace, non-comment token\n    * recognized.\n    *\n    * Shortcut is an optional string of characters, any of which, if the first\n    * character, gurantee that this pattern and only this pattern matches.\n    *\n    * @param {Array} shortcutStylePatterns patterns that always start with\n    *   a known character.  Must have a shortcut string.\n    * @param {Array} fallthroughStylePatterns patterns that will be tried in\n    *   order if the shortcut ones fail.  May have shortcuts.\n    *\n    * @return {function (JobT)} a function that takes an undecorated job and\n    *   attaches a list of decorations.\n    */\n\n\n  function createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns) {\n    var shortcuts = {};\n    var tokenizer;\n\n    (function () {\n      var allPatterns = shortcutStylePatterns.concat(fallthroughStylePatterns);\n      var allRegexs = [];\n      var regexKeys = {};\n\n      for (var i = 0, n = allPatterns.length; i < n; ++i) {\n        var patternParts = allPatterns[i];\n        var shortcutChars = patternParts[3];\n\n        if (shortcutChars) {\n          for (var c = shortcutChars.length; --c >= 0;) {\n            shortcuts[shortcutChars.charAt(c)] = patternParts;\n          }\n        }\n\n        var regex = patternParts[1];\n        var k = '' + regex;\n\n        if (!regexKeys.hasOwnProperty(k)) {\n          allRegexs.push(regex);\n          regexKeys[k] = null;\n        }\n      }\n\n      allRegexs.push(/[\\0-\\uffff]/);\n      tokenizer = combinePrefixPatterns(allRegexs);\n    })();\n\n    var nPatterns = fallthroughStylePatterns.length;\n    /**\n     * Lexes job.sourceCode and attaches an output array job.decorations of\n     * style classes preceded by the position at which they start in\n     * job.sourceCode in order.\n     *\n     * @type{function (JobT)}\n     */\n\n    var decorate = function decorate(job) {\n      var sourceCode = job.sourceCode,\n          basePos = job.basePos;\n      var sourceNode = job.sourceNode;\n      /** Even entries are positions in source in ascending order.  Odd enties\n        * are style markers (e.g., PR_COMMENT) that run from that position until\n        * the end.\n        * @type {DecorationsT}\n        */\n\n      var decorations = [basePos, PR_PLAIN];\n      var pos = 0; // index into sourceCode\n\n      var tokens = sourceCode.match(tokenizer) || [];\n      var styleCache = {};\n\n      for (var ti = 0, nTokens = tokens.length; ti < nTokens; ++ti) {\n        var token = tokens[ti];\n        var style = styleCache[token];\n        var match = void 0;\n        var isEmbedded;\n\n        if (typeof style === 'string') {\n          isEmbedded = false;\n        } else {\n          var patternParts = shortcuts[token.charAt(0)];\n\n          if (patternParts) {\n            match = token.match(patternParts[1]);\n            style = patternParts[0];\n          } else {\n            for (var i = 0; i < nPatterns; ++i) {\n              patternParts = fallthroughStylePatterns[i];\n              match = token.match(patternParts[1]);\n\n              if (match) {\n                style = patternParts[0];\n                break;\n              }\n            }\n\n            if (!match) {\n              // make sure that we make progress\n              style = PR_PLAIN;\n            }\n          }\n\n          isEmbedded = style.length >= 5 && 'lang-' === style.substring(0, 5);\n\n          if (isEmbedded && !(match && typeof match[1] === 'string')) {\n            isEmbedded = false;\n            style = PR_SOURCE;\n          }\n\n          if (!isEmbedded) {\n            styleCache[token] = style;\n          }\n        }\n\n        var tokenStart = pos;\n        pos += token.length;\n\n        if (!isEmbedded) {\n          decorations.push(basePos + tokenStart, style);\n        } else {\n          // Treat group 1 as an embedded block of source code.\n          var embeddedSource = match[1];\n          var embeddedSourceStart = token.indexOf(embeddedSource);\n          var embeddedSourceEnd = embeddedSourceStart + embeddedSource.length;\n\n          if (match[2]) {\n            // If embeddedSource can be blank, then it would match at the\n            // beginning which would cause us to infinitely recurse on the\n            // entire token, so we catch the right context in match[2].\n            embeddedSourceEnd = token.length - match[2].length;\n            embeddedSourceStart = embeddedSourceEnd - embeddedSource.length;\n          }\n\n          var lang = style.substring(5); // Decorate the left of the embedded source\n\n          appendDecorations(sourceNode, basePos + tokenStart, token.substring(0, embeddedSourceStart), decorate, decorations); // Decorate the embedded source\n\n          appendDecorations(sourceNode, basePos + tokenStart + embeddedSourceStart, embeddedSource, langHandlerForExtension(lang, embeddedSource), decorations); // Decorate the right of the embedded section\n\n          appendDecorations(sourceNode, basePos + tokenStart + embeddedSourceEnd, token.substring(embeddedSourceEnd), decorate, decorations);\n        }\n      }\n\n      job.decorations = decorations;\n    };\n\n    return decorate;\n  }\n  /** returns a function that produces a list of decorations from source text.\n    *\n    * This code treats \", ', and ` as string delimiters, and \\ as a string\n    * escape.  It does not recognize perl's qq() style strings.\n    * It has no special handling for double delimiter escapes as in basic, or\n    * the tripled delimiters used in python, but should work on those regardless\n    * although in those cases a single string literal may be broken up into\n    * multiple adjacent string literals.\n    *\n    * It recognizes C, C++, and shell style comments.\n    *\n    * @param {Object} options a set of optional parameters.\n    * @return {function (JobT)} a function that examines the source code\n    *     in the input job and builds a decoration list which it attaches to\n    *     the job.\n    */\n\n\n  function sourceDecorator(options) {\n    var shortcutStylePatterns = [],\n        fallthroughStylePatterns = [];\n\n    if (options['tripleQuotedStrings']) {\n      // '''multi-line-string''', 'single-line-string', and double-quoted\n      shortcutStylePatterns.push([PR_STRING, /^(?:\\'\\'\\'(?:[^\\'\\\\]|\\\\[\\s\\S]|\\'{1,2}(?=[^\\']))*(?:\\'\\'\\'|$)|\\\"\\\"\\\"(?:[^\\\"\\\\]|\\\\[\\s\\S]|\\\"{1,2}(?=[^\\\"]))*(?:\\\"\\\"\\\"|$)|\\'(?:[^\\\\\\']|\\\\[\\s\\S])*(?:\\'|$)|\\\"(?:[^\\\\\\\"]|\\\\[\\s\\S])*(?:\\\"|$))/, null, '\\'\"']);\n    } else if (options['multiLineStrings']) {\n      // 'multi-line-string', \"multi-line-string\"\n      shortcutStylePatterns.push([PR_STRING, /^(?:\\'(?:[^\\\\\\']|\\\\[\\s\\S])*(?:\\'|$)|\\\"(?:[^\\\\\\\"]|\\\\[\\s\\S])*(?:\\\"|$)|\\`(?:[^\\\\\\`]|\\\\[\\s\\S])*(?:\\`|$))/, null, '\\'\"`']);\n    } else {\n      // 'single-line-string', \"single-line-string\"\n      shortcutStylePatterns.push([PR_STRING, /^(?:\\'(?:[^\\\\\\'\\r\\n]|\\\\.)*(?:\\'|$)|\\\"(?:[^\\\\\\\"\\r\\n]|\\\\.)*(?:\\\"|$))/, null, '\"\\'']);\n    }\n\n    if (options['verbatimStrings']) {\n      // verbatim-string-literal production from the C# grammar.  See issue 93.\n      fallthroughStylePatterns.push([PR_STRING, /^@\\\"(?:[^\\\"]|\\\"\\\")*(?:\\\"|$)/, null]);\n    }\n\n    var hc = options['hashComments'];\n\n    if (hc) {\n      if (options['cStyleComments']) {\n        if (hc > 1) {\n          // multiline hash comments\n          shortcutStylePatterns.push([PR_COMMENT, /^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/, null, '#']);\n        } else {\n          // Stop C preprocessor declarations at an unclosed open comment\n          shortcutStylePatterns.push([PR_COMMENT, /^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\\b|[^\\r\\n]*)/, null, '#']);\n        } // #include <stdio.h>\n\n\n        fallthroughStylePatterns.push([PR_STRING, /^<(?:(?:(?:\\.\\.\\/)*|\\/?)(?:[\\w-]+(?:\\/[\\w-]+)+)?[\\w-]+\\.h(?:h|pp|\\+\\+)?|[a-z]\\w*)>/, null]);\n      } else {\n        shortcutStylePatterns.push([PR_COMMENT, /^#[^\\r\\n]*/, null, '#']);\n      }\n    }\n\n    if (options['cStyleComments']) {\n      fallthroughStylePatterns.push([PR_COMMENT, /^\\/\\/[^\\r\\n]*/, null]);\n      fallthroughStylePatterns.push([PR_COMMENT, /^\\/\\*[\\s\\S]*?(?:\\*\\/|$)/, null]);\n    }\n\n    var regexLiterals = options['regexLiterals'];\n\n    if (regexLiterals) {\n      /**\n       * @const\n       */\n      var regexExcls = regexLiterals > 1 ? '' // Multiline regex literals\n      : '\\n\\r';\n      /**\n       * @const\n       */\n\n      var regexAny = regexExcls ? '.' : '[\\\\S\\\\s]';\n      /**\n       * @const\n       */\n\n      var REGEX_LITERAL = // A regular expression literal starts with a slash that is\n      // not followed by * or / so that it is not confused with\n      // comments.\n      '/(?=[^/*' + regexExcls + '])' // and then contains any number of raw characters,\n      + '(?:[^/\\\\x5B\\\\x5C' + regexExcls + ']' // escape sequences (\\x5C),\n      + '|\\\\x5C' + regexAny // or non-nesting character sets (\\x5B\\x5D);\n      + '|\\\\x5B(?:[^\\\\x5C\\\\x5D' + regexExcls + ']' + '|\\\\x5C' + regexAny + ')*(?:\\\\x5D|$))+' // finally closed by a /.\n      + '/';\n      fallthroughStylePatterns.push(['lang-regex', RegExp('^' + REGEXP_PRECEDER_PATTERN + '(' + REGEX_LITERAL + ')')]);\n    }\n\n    var types = options['types'];\n\n    if (types) {\n      fallthroughStylePatterns.push([PR_TYPE, types]);\n    }\n\n    var keywords = (\"\" + options['keywords']).replace(/^ | $/g, '');\n\n    if (keywords.length) {\n      fallthroughStylePatterns.push([PR_KEYWORD, new RegExp('^(?:' + keywords.replace(/[\\s,]+/g, '|') + ')\\\\b'), null]);\n    }\n\n    shortcutStylePatterns.push([PR_PLAIN, /^\\s+/, null, ' \\r\\n\\t\\xA0']);\n    var punctuation = // The Bash man page says\n    // A word is a sequence of characters considered as a single\n    // unit by GRUB. Words are separated by metacharacters,\n    // which are the following plus space, tab, and newline: { }\n    // | & $ ; < >\n    // ...\n    // A word beginning with # causes that word and all remaining\n    // characters on that line to be ignored.\n    // which means that only a '#' after /(?:^|[{}|&$;<>\\s])/ starts a\n    // comment but empirically\n    // $ echo {#}\n    // {#}\n    // $ echo \\$#\n    // $#\n    // $ echo }#\n    // }#\n    // so /(?:^|[|&;<>\\s])/ is more appropriate.\n    // http://gcc.gnu.org/onlinedocs/gcc-2.95.3/cpp_1.html#SEC3\n    // suggests that this definition is compatible with a\n    // default mode that tries to use a single token definition\n    // to recognize both bash/python style comments and C\n    // preprocessor directives.\n    // This definition of punctuation does not include # in the list of\n    // follow-on exclusions, so # will not be broken before if preceeded\n    // by a punctuation character.  We could try to exclude # after\n    // [|&;<>] but that doesn't seem to cause many major problems.\n    // If that does turn out to be a problem, we should change the below\n    // when hc is truthy to include # in the run of punctuation characters\n    // only when not followint [|&;<>].\n    '^.[^\\\\s\\\\w.$@\\'\"`/\\\\\\\\]*';\n\n    if (options['regexLiterals']) {\n      punctuation += '(?!\\s*\\/)';\n    }\n\n    fallthroughStylePatterns.push( // TODO(mikesamuel): recognize non-latin letters and numerals in idents\n    [PR_LITERAL, /^@[a-z_$][a-z_$@0-9]*/i, null], [PR_TYPE, /^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\\w+_t\\b)/, null], [PR_PLAIN, /^[a-z_$][a-z_$@0-9]*/i, null], [PR_LITERAL, new RegExp('^(?:' // A hex number\n    + '0x[a-f0-9]+' // or an octal or decimal number,\n    + '|(?:\\\\d(?:_\\\\d+)*\\\\d*(?:\\\\.\\\\d*)?|\\\\.\\\\d\\\\+)' // possibly in scientific notation\n    + '(?:e[+\\\\-]?\\\\d+)?' + ')' // with an optional modifier like UL for unsigned long\n    + '[a-z]*', 'i'), null, '0123456789'], // Don't treat escaped quotes in bash as starting strings.\n    // See issue 144.\n    [PR_PLAIN, /^\\\\[\\s\\S]?/, null], [PR_PUNCTUATION, new RegExp(punctuation), null]);\n    return createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns);\n  }\n\n  var decorateSource = sourceDecorator({\n    'keywords': ALL_KEYWORDS,\n    'hashComments': true,\n    'cStyleComments': true,\n    'multiLineStrings': true,\n    'regexLiterals': true\n  });\n  /**\n   * Given a DOM subtree, wraps it in a list, and puts each line into its own\n   * list item.\n   *\n   * @param {Node} node modified in place.  Its content is pulled into an\n   *     HTMLOListElement, and each line is moved into a separate list item.\n   *     This requires cloning elements, so the input might not have unique\n   *     IDs after numbering.\n   * @param {number|null|boolean} startLineNum\n   *     If truthy, coerced to an integer which is the 1-indexed line number\n   *     of the first line of code.  The number of the first line will be\n   *     attached to the list.\n   * @param {boolean} isPreformatted true iff white-space in text nodes should\n   *     be treated as significant.\n   */\n\n  function numberLines(node, startLineNum, isPreformatted) {\n    var nocode = /(?:^|\\s)nocode(?:\\s|$)/;\n    var lineBreak = /\\r\\n?|\\n/;\n    var document = node.ownerDocument;\n    var li = document.createElement('li');\n\n    while (node.firstChild) {\n      li.appendChild(node.firstChild);\n    } // An array of lines.  We split below, so this is initialized to one\n    // un-split line.\n\n\n    var listItems = [li];\n\n    function walk(node) {\n      var type = node.nodeType;\n\n      if (type == 1 && !nocode.test(node.className)) {\n        // Element\n        if ('br' === node.nodeName) {\n          breakAfter(node); // Discard the <BR> since it is now flush against a </LI>.\n\n          if (node.parentNode) {\n            node.parentNode.removeChild(node);\n          }\n        } else {\n          for (var child = node.firstChild; child; child = child.nextSibling) {\n            walk(child);\n          }\n        }\n      } else if ((type == 3 || type == 4) && isPreformatted) {\n        // Text\n        var text = node.nodeValue;\n        var match = text.match(lineBreak);\n\n        if (match) {\n          var firstLine = text.substring(0, match.index);\n          node.nodeValue = firstLine;\n          var tail = text.substring(match.index + match[0].length);\n\n          if (tail) {\n            var parent = node.parentNode;\n            parent.insertBefore(document.createTextNode(tail), node.nextSibling);\n          }\n\n          breakAfter(node);\n\n          if (!firstLine) {\n            // Don't leave blank text nodes in the DOM.\n            node.parentNode.removeChild(node);\n          }\n        }\n      }\n    } // Split a line after the given node.\n\n\n    function breakAfter(lineEndNode) {\n      // If there's nothing to the right, then we can skip ending the line\n      // here, and move root-wards since splitting just before an end-tag\n      // would require us to create a bunch of empty copies.\n      while (!lineEndNode.nextSibling) {\n        lineEndNode = lineEndNode.parentNode;\n\n        if (!lineEndNode) {\n          return;\n        }\n      }\n\n      function breakLeftOf(limit, copy) {\n        // Clone shallowly if this node needs to be on both sides of the break.\n        var rightSide = copy ? limit.cloneNode(false) : limit;\n        var parent = limit.parentNode;\n\n        if (parent) {\n          // We clone the parent chain.\n          // This helps us resurrect important styling elements that cross lines.\n          // E.g. in <i>Foo<br>Bar</i>\n          // should be rewritten to <li><i>Foo</i></li><li><i>Bar</i></li>.\n          var parentClone = breakLeftOf(parent, 1); // Move the clone and everything to the right of the original\n          // onto the cloned parent.\n\n          var next = limit.nextSibling;\n          parentClone.appendChild(rightSide);\n\n          for (var sibling = next; sibling; sibling = next) {\n            next = sibling.nextSibling;\n            parentClone.appendChild(sibling);\n          }\n        }\n\n        return rightSide;\n      }\n\n      var copiedListItem = breakLeftOf(lineEndNode.nextSibling, 0); // Walk the parent chain until we reach an unattached LI.\n\n      for (var parent; // Check nodeType since IE invents document fragments.\n      (parent = copiedListItem.parentNode) && parent.nodeType === 1;) {\n        copiedListItem = parent;\n      } // Put it on the list of lines for later processing.\n\n\n      listItems.push(copiedListItem);\n    } // Split lines while there are lines left to split.\n\n\n    for (var i = 0; // Number of lines that have been split so far.\n    i < listItems.length; // length updated by breakAfter calls.\n    ++i) {\n      walk(listItems[i]);\n    } // Make sure numeric indices show correctly.\n\n\n    if (startLineNum === (startLineNum | 0)) {\n      listItems[0].setAttribute('value', startLineNum);\n    }\n\n    var ol = document.createElement('ol');\n    ol.className = 'linenums';\n    var offset = Math.max(0, startLineNum - 1\n    /* zero index */\n    | 0) || 0;\n\n    for (var i = 0, n = listItems.length; i < n; ++i) {\n      li = listItems[i]; // Stick a class on the LIs so that stylesheets can\n      // color odd/even rows, or any other row pattern that\n      // is co-prime with 10.\n\n      li.className = 'L' + (i + offset) % 10;\n\n      if (!li.firstChild) {\n        li.appendChild(document.createTextNode('\\xA0'));\n      }\n\n      ol.appendChild(li);\n    }\n\n    node.appendChild(ol);\n  }\n  /**\n   * Breaks {@code job.sourceCode} around style boundaries in\n   * {@code job.decorations} and modifies {@code job.sourceNode} in place.\n   * @param {JobT} job\n   * @private\n   */\n\n\n  function recombineTagsAndDecorations(job) {\n    var isIE8OrEarlier = /\\bMSIE\\s(\\d+)/.exec(navigator.userAgent);\n    isIE8OrEarlier = isIE8OrEarlier && +isIE8OrEarlier[1] <= 8;\n    var newlineRe = /\\n/g;\n    var source = job.sourceCode;\n    var sourceLength = source.length; // Index into source after the last code-unit recombined.\n\n    var sourceIndex = 0;\n    var spans = job.spans;\n    var nSpans = spans.length; // Index into spans after the last span which ends at or before sourceIndex.\n\n    var spanIndex = 0;\n    var decorations = job.decorations;\n    var nDecorations = decorations.length; // Index into decorations after the last decoration which ends at or before\n    // sourceIndex.\n\n    var decorationIndex = 0; // Remove all zero-length decorations.\n\n    decorations[nDecorations] = sourceLength;\n    var decPos, i;\n\n    for (i = decPos = 0; i < nDecorations;) {\n      if (decorations[i] !== decorations[i + 2]) {\n        decorations[decPos++] = decorations[i++];\n        decorations[decPos++] = decorations[i++];\n      } else {\n        i += 2;\n      }\n    }\n\n    nDecorations = decPos; // Simplify decorations.\n\n    for (i = decPos = 0; i < nDecorations;) {\n      var startPos = decorations[i]; // Conflate all adjacent decorations that use the same style.\n\n      var startDec = decorations[i + 1];\n      var end = i + 2;\n\n      while (end + 2 <= nDecorations && decorations[end + 1] === startDec) {\n        end += 2;\n      }\n\n      decorations[decPos++] = startPos;\n      decorations[decPos++] = startDec;\n      i = end;\n    }\n\n    nDecorations = decorations.length = decPos;\n    var sourceNode = job.sourceNode;\n    var oldDisplay = \"\";\n\n    if (sourceNode) {\n      oldDisplay = sourceNode.style.display;\n      sourceNode.style.display = 'none';\n    }\n\n    try {\n      var decoration = null;\n\n      while (spanIndex < nSpans) {\n        var spanStart = spans[spanIndex];\n        var spanEnd =\n        /** @type{number} */\n        spans[spanIndex + 2] || sourceLength;\n        var decEnd = decorations[decorationIndex + 2] || sourceLength;\n        var end = Math.min(spanEnd, decEnd);\n        var textNode =\n        /** @type{Node} */\n        spans[spanIndex + 1];\n        var styledText;\n\n        if (textNode.nodeType !== 1 // Don't muck with <BR>s or <LI>s\n        // Don't introduce spans around empty text nodes.\n        && (styledText = source.substring(sourceIndex, end))) {\n          // This may seem bizarre, and it is.  Emitting LF on IE causes the\n          // code to display with spaces instead of line breaks.\n          // Emitting Windows standard issue linebreaks (CRLF) causes a blank\n          // space to appear at the beginning of every line but the first.\n          // Emitting an old Mac OS 9 line separator makes everything spiffy.\n          if (isIE8OrEarlier) {\n            styledText = styledText.replace(newlineRe, '\\r');\n          }\n\n          textNode.nodeValue = styledText;\n          var document = textNode.ownerDocument;\n          var span = document.createElement('span');\n          span.className = decorations[decorationIndex + 1];\n          var parentNode = textNode.parentNode;\n          parentNode.replaceChild(span, textNode);\n          span.appendChild(textNode);\n\n          if (sourceIndex < spanEnd) {\n            // Split off a text node.\n            spans[spanIndex + 1] = textNode // TODO: Possibly optimize by using '' if there's no flicker.\n            = document.createTextNode(source.substring(end, spanEnd));\n            parentNode.insertBefore(textNode, span.nextSibling);\n          }\n        }\n\n        sourceIndex = end;\n\n        if (sourceIndex >= spanEnd) {\n          spanIndex += 2;\n        }\n\n        if (sourceIndex >= decEnd) {\n          decorationIndex += 2;\n        }\n      }\n    } finally {\n      if (sourceNode) {\n        sourceNode.style.display = oldDisplay;\n      }\n    }\n  }\n  /** Maps language-specific file extensions to handlers. */\n\n\n  var langHandlerRegistry = {};\n  /** Register a language handler for the given file extensions.\n    * @param {function (JobT)} handler a function from source code to a list\n    *      of decorations.  Takes a single argument job which describes the\n    *      state of the computation and attaches the decorations to it.\n    * @param {Array.<string>} fileExtensions\n    */\n\n  function registerLangHandler(handler, fileExtensions) {\n    for (var i = fileExtensions.length; --i >= 0;) {\n      var ext = fileExtensions[i];\n\n      if (!langHandlerRegistry.hasOwnProperty(ext)) {\n        langHandlerRegistry[ext] = handler;\n      } else if (win['console']) {\n        console['warn']('cannot override language handler %s', ext);\n      }\n    }\n  }\n\n  function langHandlerForExtension(extension, source) {\n    if (!(extension && langHandlerRegistry.hasOwnProperty(extension))) {\n      // Treat it as markup if the first non whitespace character is a < and\n      // the last non-whitespace character is a >.\n      extension = /^\\s*</.test(source) ? 'default-markup' : 'default-code';\n    }\n\n    return langHandlerRegistry[extension];\n  }\n\n  registerLangHandler(decorateSource, ['default-code']);\n  registerLangHandler(createSimpleLexer([], [[PR_PLAIN, /^[^<?]+/], [PR_DECLARATION, /^<!\\w[^>]*(?:>|$)/], [PR_COMMENT, /^<\\!--[\\s\\S]*?(?:-\\->|$)/], // Unescaped content in an unknown language\n  ['lang-', /^<\\?([\\s\\S]+?)(?:\\?>|$)/], ['lang-', /^<%([\\s\\S]+?)(?:%>|$)/], [PR_PUNCTUATION, /^(?:<[%?]|[%?]>)/], ['lang-', /^<xmp\\b[^>]*>([\\s\\S]+?)<\\/xmp\\b[^>]*>/i], // Unescaped content in javascript.  (Or possibly vbscript).\n  ['lang-js', /^<script\\b[^>]*>([\\s\\S]*?)(<\\/script\\b[^>]*>)/i], // Contains unescaped stylesheet content\n  ['lang-css', /^<style\\b[^>]*>([\\s\\S]*?)(<\\/style\\b[^>]*>)/i], ['lang-in.tag', /^(<\\/?[a-z][^<>]*>)/i]]), ['default-markup', 'htm', 'html', 'mxml', 'xhtml', 'xml', 'xsl']);\n  registerLangHandler(createSimpleLexer([[PR_PLAIN, /^[\\s]+/, null, ' \\t\\r\\n'], [PR_ATTRIB_VALUE, /^(?:\\\"[^\\\"]*\\\"?|\\'[^\\']*\\'?)/, null, '\\\"\\'']], [[PR_TAG, /^^<\\/?[a-z](?:[\\w.:-]*\\w)?|\\/?>$/i], [PR_ATTRIB_NAME, /^(?!style[\\s=]|on)[a-z](?:[\\w:-]*\\w)?/i], ['lang-uq.val', /^=\\s*([^>\\'\\\"\\s]*(?:[^>\\'\\\"\\s\\/]|\\/(?=\\s)))/], [PR_PUNCTUATION, /^[=<>\\/]+/], ['lang-js', /^on\\w+\\s*=\\s*\\\"([^\\\"]+)\\\"/i], ['lang-js', /^on\\w+\\s*=\\s*\\'([^\\']+)\\'/i], ['lang-js', /^on\\w+\\s*=\\s*([^\\\"\\'>\\s]+)/i], ['lang-css', /^style\\s*=\\s*\\\"([^\\\"]+)\\\"/i], ['lang-css', /^style\\s*=\\s*\\'([^\\']+)\\'/i], ['lang-css', /^style\\s*=\\s*([^\\\"\\'>\\s]+)/i]]), ['in.tag']);\n  registerLangHandler(createSimpleLexer([], [[PR_ATTRIB_VALUE, /^[\\s\\S]+/]]), ['uq.val']);\n  registerLangHandler(sourceDecorator({\n    'keywords': CPP_KEYWORDS,\n    'hashComments': true,\n    'cStyleComments': true,\n    'types': C_TYPES\n  }), ['c', 'cc', 'cpp', 'cxx', 'cyc', 'm']);\n  registerLangHandler(sourceDecorator({\n    'keywords': 'null,true,false'\n  }), ['json']);\n  registerLangHandler(sourceDecorator({\n    'keywords': CSHARP_KEYWORDS,\n    'hashComments': true,\n    'cStyleComments': true,\n    'verbatimStrings': true,\n    'types': C_TYPES\n  }), ['cs']);\n  registerLangHandler(sourceDecorator({\n    'keywords': JAVA_KEYWORDS,\n    'cStyleComments': true\n  }), ['java']);\n  registerLangHandler(sourceDecorator({\n    'keywords': SH_KEYWORDS,\n    'hashComments': true,\n    'multiLineStrings': true\n  }), ['bash', 'bsh', 'csh', 'sh']);\n  registerLangHandler(sourceDecorator({\n    'keywords': PYTHON_KEYWORDS,\n    'hashComments': true,\n    'multiLineStrings': true,\n    'tripleQuotedStrings': true\n  }), ['cv', 'py', 'python']);\n  registerLangHandler(sourceDecorator({\n    'keywords': PERL_KEYWORDS,\n    'hashComments': true,\n    'multiLineStrings': true,\n    'regexLiterals': 2 // multiline regex literals\n\n  }), ['perl', 'pl', 'pm']);\n  registerLangHandler(sourceDecorator({\n    'keywords': RUBY_KEYWORDS,\n    'hashComments': true,\n    'multiLineStrings': true,\n    'regexLiterals': true\n  }), ['rb', 'ruby']);\n  registerLangHandler(sourceDecorator({\n    'keywords': JSCRIPT_KEYWORDS,\n    'cStyleComments': true,\n    'regexLiterals': true\n  }), ['javascript', 'js', 'ts', 'typescript']);\n  registerLangHandler(sourceDecorator({\n    'keywords': COFFEE_KEYWORDS,\n    'hashComments': 3,\n    // ### style block comments\n    'cStyleComments': true,\n    'multilineStrings': true,\n    'tripleQuotedStrings': true,\n    'regexLiterals': true\n  }), ['coffee']);\n  registerLangHandler(createSimpleLexer([], [[PR_STRING, /^[\\s\\S]+/]]), ['regex']);\n  /** @param {JobT} job */\n\n  function applyDecorator(job) {\n    var opt_langExtension = job.langExtension;\n\n    try {\n      // Extract tags, and convert the source code to plain text.\n      var sourceAndSpans = extractSourceSpans(job.sourceNode, job.pre);\n      /** Plain text. @type {string} */\n\n      var source = sourceAndSpans.sourceCode;\n      job.sourceCode = source;\n      job.spans = sourceAndSpans.spans;\n      job.basePos = 0; // Apply the appropriate language handler\n\n      langHandlerForExtension(opt_langExtension, source)(job); // Integrate the decorations and tags back into the source code,\n      // modifying the sourceNode in place.\n\n      recombineTagsAndDecorations(job);\n    } catch (e) {\n      if (win['console']) {\n        console['log'](e && e['stack'] || e);\n      }\n    }\n  }\n  /**\n   * Pretty print a chunk of code.\n   * @param sourceCodeHtml {string} The HTML to pretty print.\n   * @param opt_langExtension {string} The language name to use.\n   *     Typically, a filename extension like 'cpp' or 'java'.\n   * @param opt_numberLines {number|boolean} True to number lines,\n   *     or the 1-indexed number of the first line in sourceCodeHtml.\n   */\n\n\n  function $prettyPrintOne(sourceCodeHtml, opt_langExtension, opt_numberLines) {\n    /** @type{number|boolean} */\n    var nl = opt_numberLines || false;\n    /** @type{string|null} */\n\n    var langExtension = opt_langExtension || null;\n    /** @type{!Element} */\n\n    var container = document.createElement('div'); // This could cause images to load and onload listeners to fire.\n    // E.g. <img onerror=\"alert(1337)\" src=\"nosuchimage.png\">.\n    // We assume that the inner HTML is from a trusted source.\n    // The pre-tag is required for IE8 which strips newlines from innerHTML\n    // when it is injected into a <pre> tag.\n    // http://stackoverflow.com/questions/451486/pre-tag-loses-line-breaks-when-setting-innerhtml-in-ie\n    // http://stackoverflow.com/questions/195363/inserting-a-newline-into-a-pre-tag-ie-javascript\n\n    container.innerHTML = '<pre>' + sourceCodeHtml + '</pre>';\n    container =\n    /** @type{!Element} */\n    container.firstChild;\n\n    if (nl) {\n      numberLines(container, nl, true);\n    }\n    /** @type{JobT} */\n\n\n    var job = {\n      langExtension: langExtension,\n      numberLines: nl,\n      sourceNode: container,\n      pre: 1,\n      sourceCode: null,\n      basePos: null,\n      spans: null,\n      decorations: null\n    };\n    applyDecorator(job);\n    return container.innerHTML;\n  }\n  /**\n   * Find all the {@code <pre>} and {@code <code>} tags in the DOM with\n   * {@code class=prettyprint} and prettify them.\n   *\n   * @param {Function} opt_whenDone called when prettifying is done.\n   * @param {HTMLElement|HTMLDocument} opt_root an element or document\n   *   containing all the elements to pretty print.\n   *   Defaults to {@code document.body}.\n   */\n\n\n  function $prettyPrint(opt_whenDone, opt_root) {\n    var root = opt_root || document.body;\n    var doc = root.ownerDocument || document;\n\n    function byTagName(tn) {\n      return root.getElementsByTagName(tn);\n    } // fetch a list of nodes to rewrite\n\n\n    var codeSegments = [byTagName('pre'), byTagName('code'), byTagName('xmp')];\n    var elements = [];\n\n    for (var i = 0; i < codeSegments.length; ++i) {\n      for (var j = 0, n = codeSegments[i].length; j < n; ++j) {\n        elements.push(codeSegments[i][j]);\n      }\n    }\n\n    codeSegments = null;\n    var clock = Date;\n\n    if (!clock['now']) {\n      clock = {\n        'now': function now() {\n          return +new Date();\n        }\n      };\n    } // The loop is broken into a series of continuations to make sure that we\n    // don't make the browser unresponsive when rewriting a large page.\n\n\n    var k = 0;\n    var langExtensionRe = /\\blang(?:uage)?-([\\w.]+)(?!\\S)/;\n    var prettyPrintRe = /\\bprettyprint\\b/;\n    var prettyPrintedRe = /\\bprettyprinted\\b/;\n    var preformattedTagNameRe = /pre|xmp/i;\n    var codeRe = /^code$/i;\n    var preCodeXmpRe = /^(?:pre|code|xmp)$/i;\n    var EMPTY = {};\n\n    function doWork() {\n      var endTime = win['PR_SHOULD_USE_CONTINUATION'] ? clock['now']() + 250\n      /* ms */\n      : Infinity;\n\n      for (; k < elements.length && clock['now']() < endTime; k++) {\n        var cs = elements[k]; // Look for a preceding comment like\n        // <?prettify lang=\"...\" linenums=\"...\"?>\n\n        var attrs = EMPTY;\n        {\n          for (var preceder = cs; preceder = preceder.previousSibling;) {\n            var nt = preceder.nodeType; // <?foo?> is parsed by HTML 5 to a comment node (8)\n            // like <!--?foo?-->, but in XML is a processing instruction\n\n            var value = (nt === 7 || nt === 8) && preceder.nodeValue;\n\n            if (value ? !/^\\??prettify\\b/.test(value) : nt !== 3 || /\\S/.test(preceder.nodeValue)) {\n              // Skip over white-space text nodes but not others.\n              break;\n            }\n\n            if (value) {\n              attrs = {};\n              value.replace(/\\b(\\w+)=([\\w:.%+-]+)/g, function (_, name, value) {\n                attrs[name] = value;\n              });\n              break;\n            }\n          }\n        }\n        var className = cs.className;\n\n        if ((attrs !== EMPTY || prettyPrintRe.test(className)) && // Don't redo this if we've already done it.\n        // This allows recalling pretty print to just prettyprint elements\n        // that have been added to the page since last call.\n        !prettyPrintedRe.test(className)) {\n          // make sure this is not nested in an already prettified element\n          var nested = false;\n\n          for (var p = cs.parentNode; p; p = p.parentNode) {\n            var tn = p.tagName;\n\n            if (preCodeXmpRe.test(tn) && p.className && prettyPrintRe.test(p.className)) {\n              nested = true;\n              break;\n            }\n          }\n\n          if (!nested) {\n            // Mark done.  If we fail to prettyprint for whatever reason,\n            // we shouldn't try again.\n            cs.className += ' prettyprinted'; // If the classes includes a language extensions, use it.\n            // Language extensions can be specified like\n            //     <pre class=\"prettyprint lang-cpp\">\n            // the language extension \"cpp\" is used to find a language handler\n            // as passed to PR.registerLangHandler.\n            // HTML5 recommends that a language be specified using \"language-\"\n            // as the prefix instead.  Google Code Prettify supports both.\n            // http://dev.w3.org/html5/spec-author-view/the-code-element.html\n\n            var langExtension = attrs['lang'];\n\n            if (!langExtension) {\n              langExtension = className.match(langExtensionRe); // Support <pre class=\"prettyprint\"><code class=\"language-c\">\n\n              var wrapper;\n\n              if (!langExtension && (wrapper = childContentWrapper(cs)) && codeRe.test(wrapper.tagName)) {\n                langExtension = wrapper.className.match(langExtensionRe);\n              }\n\n              if (langExtension) {\n                langExtension = langExtension[1];\n              }\n            }\n\n            var preformatted;\n\n            if (preformattedTagNameRe.test(cs.tagName)) {\n              preformatted = 1;\n            } else {\n              var currentStyle = cs['currentStyle'];\n              var defaultView = doc.defaultView;\n              var whitespace = currentStyle ? currentStyle['whiteSpace'] : defaultView && defaultView.getComputedStyle ? defaultView.getComputedStyle(cs, null).getPropertyValue('white-space') : 0;\n              preformatted = whitespace && 'pre' === whitespace.substring(0, 3);\n            } // Look for a class like linenums or linenums:<n> where <n> is the\n            // 1-indexed number of the first line.\n\n\n            var lineNums = attrs['linenums'];\n\n            if (!(lineNums = lineNums === 'true' || +lineNums)) {\n              lineNums = className.match(/\\blinenums\\b(?::(\\d+))?/);\n              lineNums = lineNums ? lineNums[1] && lineNums[1].length ? +lineNums[1] : true : false;\n            }\n\n            if (lineNums) {\n              numberLines(cs, lineNums, preformatted);\n            } // do the pretty printing\n\n\n            var prettyPrintingJob = {\n              langExtension: langExtension,\n              sourceNode: cs,\n              numberLines: lineNums,\n              pre: preformatted,\n              sourceCode: null,\n              basePos: null,\n              spans: null,\n              decorations: null\n            };\n            applyDecorator(prettyPrintingJob);\n          }\n        }\n      }\n\n      if (k < elements.length) {\n        // finish up in a continuation\n        win.setTimeout(doWork, 250);\n      } else if ('function' === typeof opt_whenDone) {\n        opt_whenDone();\n      }\n    }\n\n    doWork();\n  }\n  /**\n   * Contains functions for creating and registering new language handlers.\n   * @type {Object}\n   */\n\n\n  var PR = win['PR'] = {\n    'createSimpleLexer': createSimpleLexer,\n    'registerLangHandler': registerLangHandler,\n    'sourceDecorator': sourceDecorator,\n    'PR_ATTRIB_NAME': PR_ATTRIB_NAME,\n    'PR_ATTRIB_VALUE': PR_ATTRIB_VALUE,\n    'PR_COMMENT': PR_COMMENT,\n    'PR_DECLARATION': PR_DECLARATION,\n    'PR_KEYWORD': PR_KEYWORD,\n    'PR_LITERAL': PR_LITERAL,\n    'PR_NOCODE': PR_NOCODE,\n    'PR_PLAIN': PR_PLAIN,\n    'PR_PUNCTUATION': PR_PUNCTUATION,\n    'PR_SOURCE': PR_SOURCE,\n    'PR_STRING': PR_STRING,\n    'PR_TAG': PR_TAG,\n    'PR_TYPE': PR_TYPE,\n    'prettyPrintOne': IN_GLOBAL_SCOPE ? win['prettyPrintOne'] = $prettyPrintOne : prettyPrintOne = $prettyPrintOne,\n    'prettyPrint': prettyPrint = IN_GLOBAL_SCOPE ? win['prettyPrint'] = $prettyPrint : prettyPrint = $prettyPrint\n  }; // Make PR available via the Asynchronous Module Definition (AMD) API.\n  // Per https://github.com/amdjs/amdjs-api/wiki/AMD:\n  // The Asynchronous Module Definition (AMD) API specifies a\n  // mechanism for defining modules such that the module and its\n  // dependencies can be asynchronously loaded.\n  // ...\n  // To allow a clear indicator that a global define function (as\n  // needed for script src browser loading) conforms to the AMD API,\n  // any global define function SHOULD have a property called \"amd\"\n  // whose value is an object. This helps avoid conflict with any\n  // other existing JavaScript code that could have defined a define()\n  // function that does not conform to the AMD API.\n\n  var define = win['define'];\n\n  if (typeof define === \"function\" && define['amd']) {\n    define(\"google-code-prettify\", [], function () {\n      return PR;\n    });\n  }\n})();","/* **********************************************\n     Begin prism-core.js\n********************************************** */\n/// <reference lib=\"WebWorker\"/>\nvar _self = typeof window !== 'undefined' ? window // if in browser\n: typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope ? self // if in worker\n: {} // if in node js\n;\n/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT <https://opensource.org/licenses/MIT>\n * @author Lea Verou <https://lea.verou.me>\n * @namespace\n * @public\n */\n\n\nvar Prism = function (_self) {\n  // Private helper vars\n  var lang = /\\blang(?:uage)?-([\\w-]+)\\b/i;\n  var uniqueId = 0;\n  var _ = {\n    /**\n     * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the\n     * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load\n     * additional languages or plugins yourself.\n     *\n     * By setting this value to `true`, Prism will not automatically highlight all code elements on the page.\n     *\n     * You obviously have to change this value before the automatic highlighting started. To do this, you can add an\n     * empty Prism object into the global scope before loading the Prism script like this:\n     *\n     * ```js\n     * window.Prism = window.Prism || {};\n     * Prism.manual = true;\n     * // add a new <script> to load Prism's script\n     * ```\n     *\n     * @default false\n     * @type {boolean}\n     * @memberof Prism\n     * @public\n     */\n    manual: _self.Prism && _self.Prism.manual,\n    disableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler,\n\n    /**\n     * A namespace for utility methods.\n     *\n     * All function in this namespace that are not explicitly marked as _public_ are for __internal use only__ and may\n     * change or disappear at any time.\n     *\n     * @namespace\n     * @memberof Prism\n     */\n    util: {\n      encode: function encode(tokens) {\n        if (tokens instanceof Token) {\n          return new Token(tokens.type, encode(tokens.content), tokens.alias);\n        } else if (Array.isArray(tokens)) {\n          return tokens.map(encode);\n        } else {\n          return tokens.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/\\u00a0/g, ' ');\n        }\n      },\n\n      /**\n       * Returns the name of the type of the given value.\n       *\n       * @param {any} o\n       * @returns {string}\n       * @example\n       * type(null)      === 'Null'\n       * type(undefined) === 'Undefined'\n       * type(123)       === 'Number'\n       * type('foo')     === 'String'\n       * type(true)      === 'Boolean'\n       * type([1, 2])    === 'Array'\n       * type({})        === 'Object'\n       * type(String)    === 'Function'\n       * type(/abc+/)    === 'RegExp'\n       */\n      type: function type(o) {\n        return Object.prototype.toString.call(o).slice(8, -1);\n      },\n\n      /**\n       * Returns a unique number for the given object. Later calls will still return the same number.\n       *\n       * @param {Object} obj\n       * @returns {number}\n       */\n      objId: function objId(obj) {\n        if (!obj['__id']) {\n          Object.defineProperty(obj, '__id', {\n            value: ++uniqueId\n          });\n        }\n\n        return obj['__id'];\n      },\n\n      /**\n       * Creates a deep clone of the given object.\n       *\n       * The main intended use of this function is to clone language definitions.\n       *\n       * @param {T} o\n       * @param {Record<number, any>} [visited]\n       * @returns {T}\n       * @template T\n       */\n      clone: function deepClone(o, visited) {\n        visited = visited || {};\n        var clone, id;\n\n        switch (_.util.type(o)) {\n          case 'Object':\n            id = _.util.objId(o);\n\n            if (visited[id]) {\n              return visited[id];\n            }\n\n            clone =\n            /** @type {Record<string, any>} */\n            {};\n            visited[id] = clone;\n\n            for (var key in o) {\n              if (o.hasOwnProperty(key)) {\n                clone[key] = deepClone(o[key], visited);\n              }\n            }\n\n            return (\n              /** @type {any} */\n              clone\n            );\n\n          case 'Array':\n            id = _.util.objId(o);\n\n            if (visited[id]) {\n              return visited[id];\n            }\n\n            clone = [];\n            visited[id] = clone;\n\n            /** @type {Array} */\n\n            /** @type {any} */\n            o.forEach(function (v, i) {\n              clone[i] = deepClone(v, visited);\n            });\n            return (\n              /** @type {any} */\n              clone\n            );\n\n          default:\n            return o;\n        }\n      },\n\n      /**\n       * Returns the Prism language of the given element set by a `language-xxxx` or `lang-xxxx` class.\n       *\n       * If no language is set for the element or the element is `null` or `undefined`, `none` will be returned.\n       *\n       * @param {Element} element\n       * @returns {string}\n       */\n      getLanguage: function getLanguage(element) {\n        while (element && !lang.test(element.className)) {\n          element = element.parentElement;\n        }\n\n        if (element) {\n          return (element.className.match(lang) || [, 'none'])[1].toLowerCase();\n        }\n\n        return 'none';\n      },\n\n      /**\n       * Returns the script element that is currently executing.\n       *\n       * This does __not__ work for line script element.\n       *\n       * @returns {HTMLScriptElement | null}\n       */\n      currentScript: function currentScript() {\n        if (typeof document === 'undefined') {\n          return null;\n        }\n\n        if ('currentScript' in document && 1 < 2\n        /* hack to trip TS' flow analysis */\n        ) {\n            return (\n              /** @type {any} */\n              document.currentScript\n            );\n          } // IE11 workaround\n        // we'll get the src of the current script by parsing IE11's error stack trace\n        // this will not work for inline scripts\n\n\n        try {\n          throw new Error();\n        } catch (err) {\n          // Get file src url from stack. Specifically works with the format of stack traces in IE.\n          // A stack will look like this:\n          //\n          // Error\n          //    at _.util.currentScript (http://localhost/components/prism-core.js:119:5)\n          //    at Global code (http://localhost/components/prism-core.js:606:1)\n          var src = (/at [^(\\r\\n]*\\((.*):.+:.+\\)$/i.exec(err.stack) || [])[1];\n\n          if (src) {\n            var scripts = document.getElementsByTagName('script');\n\n            for (var i in scripts) {\n              if (scripts[i].src == src) {\n                return scripts[i];\n              }\n            }\n          }\n\n          return null;\n        }\n      },\n\n      /**\n       * Returns whether a given class is active for `element`.\n       *\n       * The class can be activated if `element` or one of its ancestors has the given class and it can be deactivated\n       * if `element` or one of its ancestors has the negated version of the given class. The _negated version_ of the\n       * given class is just the given class with a `no-` prefix.\n       *\n       * Whether the class is active is determined by the closest ancestor of `element` (where `element` itself is\n       * closest ancestor) that has the given class or the negated version of it. If neither `element` nor any of its\n       * ancestors have the given class or the negated version of it, then the default activation will be returned.\n       *\n       * In the paradoxical situation where the closest ancestor contains __both__ the given class and the negated\n       * version of it, the class is considered active.\n       *\n       * @param {Element} element\n       * @param {string} className\n       * @param {boolean} [defaultActivation=false]\n       * @returns {boolean}\n       */\n      isActive: function isActive(element, className, defaultActivation) {\n        var no = 'no-' + className;\n\n        while (element) {\n          var classList = element.classList;\n\n          if (classList.contains(className)) {\n            return true;\n          }\n\n          if (classList.contains(no)) {\n            return false;\n          }\n\n          element = element.parentElement;\n        }\n\n        return !!defaultActivation;\n      }\n    },\n\n    /**\n     * This namespace contains all currently loaded languages and the some helper functions to create and modify languages.\n     *\n     * @namespace\n     * @memberof Prism\n     * @public\n     */\n    languages: {\n      /**\n       * Creates a deep copy of the language with the given id and appends the given tokens.\n       *\n       * If a token in `redef` also appears in the copied language, then the existing token in the copied language\n       * will be overwritten at its original position.\n       *\n       * ## Best practices\n       *\n       * Since the position of overwriting tokens (token in `redef` that overwrite tokens in the copied language)\n       * doesn't matter, they can technically be in any order. However, this can be confusing to others that trying to\n       * understand the language definition because, normally, the order of tokens matters in Prism grammars.\n       *\n       * Therefore, it is encouraged to order overwriting tokens according to the positions of the overwritten tokens.\n       * Furthermore, all non-overwriting tokens should be placed after the overwriting ones.\n       *\n       * @param {string} id The id of the language to extend. This has to be a key in `Prism.languages`.\n       * @param {Grammar} redef The new tokens to append.\n       * @returns {Grammar} The new language created.\n       * @public\n       * @example\n       * Prism.languages['css-with-colors'] = Prism.languages.extend('css', {\n       *     // Prism.languages.css already has a 'comment' token, so this token will overwrite CSS' 'comment' token\n       *     // at its original position\n       *     'comment': { ... },\n       *     // CSS doesn't have a 'color' token, so this token will be appended\n       *     'color': /\\b(?:red|green|blue)\\b/\n       * });\n       */\n      extend: function extend(id, redef) {\n        var lang = _.util.clone(_.languages[id]);\n\n        for (var key in redef) {\n          lang[key] = redef[key];\n        }\n\n        return lang;\n      },\n\n      /**\n       * Inserts tokens _before_ another token in a language definition or any other grammar.\n       *\n       * ## Usage\n       *\n       * This helper method makes it easy to modify existing languages. For example, the CSS language definition\n       * not only defines CSS highlighting for CSS documents, but also needs to define highlighting for CSS embedded\n       * in HTML through `<style>` elements. To do this, it needs to modify `Prism.languages.markup` and add the\n       * appropriate tokens. However, `Prism.languages.markup` is a regular JavaScript object literal, so if you do\n       * this:\n       *\n       * ```js\n       * Prism.languages.markup.style = {\n       *     // token\n       * };\n       * ```\n       *\n       * then the `style` token will be added (and processed) at the end. `insertBefore` allows you to insert tokens\n       * before existing tokens. For the CSS example above, you would use it like this:\n       *\n       * ```js\n       * Prism.languages.insertBefore('markup', 'cdata', {\n       *     'style': {\n       *         // token\n       *     }\n       * });\n       * ```\n       *\n       * ## Special cases\n       *\n       * If the grammars of `inside` and `insert` have tokens with the same name, the tokens in `inside`'s grammar\n       * will be ignored.\n       *\n       * This behavior can be used to insert tokens after `before`:\n       *\n       * ```js\n       * Prism.languages.insertBefore('markup', 'comment', {\n       *     'comment': Prism.languages.markup.comment,\n       *     // tokens after 'comment'\n       * });\n       * ```\n       *\n       * ## Limitations\n       *\n       * The main problem `insertBefore` has to solve is iteration order. Since ES2015, the iteration order for object\n       * properties is guaranteed to be the insertion order (except for integer keys) but some browsers behave\n       * differently when keys are deleted and re-inserted. So `insertBefore` can't be implemented by temporarily\n       * deleting properties which is necessary to insert at arbitrary positions.\n       *\n       * To solve this problem, `insertBefore` doesn't actually insert the given tokens into the target object.\n       * Instead, it will create a new object and replace all references to the target object with the new one. This\n       * can be done without temporarily deleting properties, so the iteration order is well-defined.\n       *\n       * However, only references that can be reached from `Prism.languages` or `insert` will be replaced. I.e. if\n       * you hold the target object in a variable, then the value of the variable will not change.\n       *\n       * ```js\n       * var oldMarkup = Prism.languages.markup;\n       * var newMarkup = Prism.languages.insertBefore('markup', 'comment', { ... });\n       *\n       * assert(oldMarkup !== Prism.languages.markup);\n       * assert(newMarkup === Prism.languages.markup);\n       * ```\n       *\n       * @param {string} inside The property of `root` (e.g. a language id in `Prism.languages`) that contains the\n       * object to be modified.\n       * @param {string} before The key to insert before.\n       * @param {Grammar} insert An object containing the key-value pairs to be inserted.\n       * @param {Object<string, any>} [root] The object containing `inside`, i.e. the object that contains the\n       * object to be modified.\n       *\n       * Defaults to `Prism.languages`.\n       * @returns {Grammar} The new grammar object.\n       * @public\n       */\n      insertBefore: function insertBefore(inside, before, insert, root) {\n        root = root ||\n        /** @type {any} */\n        _.languages;\n        var grammar = root[inside];\n        /** @type {Grammar} */\n\n        var ret = {};\n\n        for (var token in grammar) {\n          if (grammar.hasOwnProperty(token)) {\n            if (token == before) {\n              for (var newToken in insert) {\n                if (insert.hasOwnProperty(newToken)) {\n                  ret[newToken] = insert[newToken];\n                }\n              }\n            } // Do not insert token which also occur in insert. See #1525\n\n\n            if (!insert.hasOwnProperty(token)) {\n              ret[token] = grammar[token];\n            }\n          }\n        }\n\n        var old = root[inside];\n        root[inside] = ret; // Update references in other language definitions\n\n        _.languages.DFS(_.languages, function (key, value) {\n          if (value === old && key != inside) {\n            this[key] = ret;\n          }\n        });\n\n        return ret;\n      },\n      // Traverse a language definition with Depth First Search\n      DFS: function DFS(o, callback, type, visited) {\n        visited = visited || {};\n        var objId = _.util.objId;\n\n        for (var i in o) {\n          if (o.hasOwnProperty(i)) {\n            callback.call(o, i, o[i], type || i);\n\n            var property = o[i],\n                propertyType = _.util.type(property);\n\n            if (propertyType === 'Object' && !visited[objId(property)]) {\n              visited[objId(property)] = true;\n              DFS(property, callback, null, visited);\n            } else if (propertyType === 'Array' && !visited[objId(property)]) {\n              visited[objId(property)] = true;\n              DFS(property, callback, i, visited);\n            }\n          }\n        }\n      }\n    },\n    plugins: {},\n\n    /**\n     * This is the most high-level function in Prism’s API.\n     * It fetches all the elements that have a `.language-xxxx` class and then calls {@link Prism.highlightElement} on\n     * each one of them.\n     *\n     * This is equivalent to `Prism.highlightAllUnder(document, async, callback)`.\n     *\n     * @param {boolean} [async=false] Same as in {@link Prism.highlightAllUnder}.\n     * @param {HighlightCallback} [callback] Same as in {@link Prism.highlightAllUnder}.\n     * @memberof Prism\n     * @public\n     */\n    highlightAll: function highlightAll(async, callback) {\n      _.highlightAllUnder(document, async, callback);\n    },\n\n    /**\n     * Fetches all the descendants of `container` that have a `.language-xxxx` class and then calls\n     * {@link Prism.highlightElement} on each one of them.\n     *\n     * The following hooks will be run:\n     * 1. `before-highlightall`\n     * 2. All hooks of {@link Prism.highlightElement} for each element.\n     *\n     * @param {ParentNode} container The root element, whose descendants that have a `.language-xxxx` class will be highlighted.\n     * @param {boolean} [async=false] Whether each element is to be highlighted asynchronously using Web Workers.\n     * @param {HighlightCallback} [callback] An optional callback to be invoked on each element after its highlighting is done.\n     * @memberof Prism\n     * @public\n     */\n    highlightAllUnder: function highlightAllUnder(container, async, callback) {\n      var env = {\n        callback: callback,\n        container: container,\n        selector: 'code[class*=\"language-\"], [class*=\"language-\"] code, code[class*=\"lang-\"], [class*=\"lang-\"] code'\n      };\n\n      _.hooks.run('before-highlightall', env);\n\n      env.elements = Array.prototype.slice.apply(env.container.querySelectorAll(env.selector));\n\n      _.hooks.run('before-all-elements-highlight', env);\n\n      for (var i = 0, element; element = env.elements[i++];) {\n        _.highlightElement(element, async === true, env.callback);\n      }\n    },\n\n    /**\n     * Highlights the code inside a single element.\n     *\n     * The following hooks will be run:\n     * 1. `before-sanity-check`\n     * 2. `before-highlight`\n     * 3. All hooks of {@link Prism.highlight}. These hooks will only be run by the current worker if `async` is `true`.\n     * 4. `before-insert`\n     * 5. `after-highlight`\n     * 6. `complete`\n     *\n     * @param {Element} element The element containing the code.\n     * It must have a class of `language-xxxx` to be processed, where `xxxx` is a valid language identifier.\n     * @param {boolean} [async=false] Whether the element is to be highlighted asynchronously using Web Workers\n     * to improve performance and avoid blocking the UI when highlighting very large chunks of code. This option is\n     * [disabled by default](https://prismjs.com/faq.html#why-is-asynchronous-highlighting-disabled-by-default).\n     *\n     * Note: All language definitions required to highlight the code must be included in the main `prism.js` file for\n     * asynchronous highlighting to work. You can build your own bundle on the\n     * [Download page](https://prismjs.com/download.html).\n     * @param {HighlightCallback} [callback] An optional callback to be invoked after the highlighting is done.\n     * Mostly useful when `async` is `true`, since in that case, the highlighting is done asynchronously.\n     * @memberof Prism\n     * @public\n     */\n    highlightElement: function highlightElement(element, async, callback) {\n      // Find language\n      var language = _.util.getLanguage(element);\n\n      var grammar = _.languages[language]; // Set language on the element, if not present\n\n      element.className = element.className.replace(lang, '').replace(/\\s+/g, ' ') + ' language-' + language; // Set language on the parent, for styling\n\n      var parent = element.parentElement;\n\n      if (parent && parent.nodeName.toLowerCase() === 'pre') {\n        parent.className = parent.className.replace(lang, '').replace(/\\s+/g, ' ') + ' language-' + language;\n      }\n\n      var code = element.textContent;\n      var env = {\n        element: element,\n        language: language,\n        grammar: grammar,\n        code: code\n      };\n\n      function insertHighlightedCode(highlightedCode) {\n        env.highlightedCode = highlightedCode;\n\n        _.hooks.run('before-insert', env);\n\n        env.element.innerHTML = env.highlightedCode;\n\n        _.hooks.run('after-highlight', env);\n\n        _.hooks.run('complete', env);\n\n        callback && callback.call(env.element);\n      }\n\n      _.hooks.run('before-sanity-check', env);\n\n      if (!env.code) {\n        _.hooks.run('complete', env);\n\n        callback && callback.call(env.element);\n        return;\n      }\n\n      _.hooks.run('before-highlight', env);\n\n      if (!env.grammar) {\n        insertHighlightedCode(_.util.encode(env.code));\n        return;\n      }\n\n      if (async && _self.Worker) {\n        var worker = new Worker(_.filename);\n\n        worker.onmessage = function (evt) {\n          insertHighlightedCode(evt.data);\n        };\n\n        worker.postMessage(JSON.stringify({\n          language: env.language,\n          code: env.code,\n          immediateClose: true\n        }));\n      } else {\n        insertHighlightedCode(_.highlight(env.code, env.grammar, env.language));\n      }\n    },\n\n    /**\n     * Low-level function, only use if you know what you’re doing. It accepts a string of text as input\n     * and the language definitions to use, and returns a string with the HTML produced.\n     *\n     * The following hooks will be run:\n     * 1. `before-tokenize`\n     * 2. `after-tokenize`\n     * 3. `wrap`: On each {@link Token}.\n     *\n     * @param {string} text A string with the code to be highlighted.\n     * @param {Grammar} grammar An object containing the tokens to use.\n     *\n     * Usually a language definition like `Prism.languages.markup`.\n     * @param {string} language The name of the language definition passed to `grammar`.\n     * @returns {string} The highlighted HTML.\n     * @memberof Prism\n     * @public\n     * @example\n     * Prism.highlight('var foo = true;', Prism.languages.javascript, 'javascript');\n     */\n    highlight: function highlight(text, grammar, language) {\n      var env = {\n        code: text,\n        grammar: grammar,\n        language: language\n      };\n\n      _.hooks.run('before-tokenize', env);\n\n      env.tokens = _.tokenize(env.code, env.grammar);\n\n      _.hooks.run('after-tokenize', env);\n\n      return Token.stringify(_.util.encode(env.tokens), env.language);\n    },\n\n    /**\n     * This is the heart of Prism, and the most low-level function you can use. It accepts a string of text as input\n     * and the language definitions to use, and returns an array with the tokenized code.\n     *\n     * When the language definition includes nested tokens, the function is called recursively on each of these tokens.\n     *\n     * This method could be useful in other contexts as well, as a very crude parser.\n     *\n     * @param {string} text A string with the code to be highlighted.\n     * @param {Grammar} grammar An object containing the tokens to use.\n     *\n     * Usually a language definition like `Prism.languages.markup`.\n     * @returns {TokenStream} An array of strings and tokens, a token stream.\n     * @memberof Prism\n     * @public\n     * @example\n     * let code = `var foo = 0;`;\n     * let tokens = Prism.tokenize(code, Prism.languages.javascript);\n     * tokens.forEach(token => {\n     *     if (token instanceof Prism.Token && token.type === 'number') {\n     *         console.log(`Found numeric literal: ${token.content}`);\n     *     }\n     * });\n     */\n    tokenize: function tokenize(text, grammar) {\n      var rest = grammar.rest;\n\n      if (rest) {\n        for (var token in rest) {\n          grammar[token] = rest[token];\n        }\n\n        delete grammar.rest;\n      }\n\n      var tokenList = new LinkedList();\n      addAfter(tokenList, tokenList.head, text);\n      matchGrammar(text, tokenList, grammar, tokenList.head, 0);\n      return toArray(tokenList);\n    },\n\n    /**\n     * @namespace\n     * @memberof Prism\n     * @public\n     */\n    hooks: {\n      all: {},\n\n      /**\n       * Adds the given callback to the list of callbacks for the given hook.\n       *\n       * The callback will be invoked when the hook it is registered for is run.\n       * Hooks are usually directly run by a highlight function but you can also run hooks yourself.\n       *\n       * One callback function can be registered to multiple hooks and the same hook multiple times.\n       *\n       * @param {string} name The name of the hook.\n       * @param {HookCallback} callback The callback function which is given environment variables.\n       * @public\n       */\n      add: function add(name, callback) {\n        var hooks = _.hooks.all;\n        hooks[name] = hooks[name] || [];\n        hooks[name].push(callback);\n      },\n\n      /**\n       * Runs a hook invoking all registered callbacks with the given environment variables.\n       *\n       * Callbacks will be invoked synchronously and in the order in which they were registered.\n       *\n       * @param {string} name The name of the hook.\n       * @param {Object<string, any>} env The environment variables of the hook passed to all callbacks registered.\n       * @public\n       */\n      run: function run(name, env) {\n        var callbacks = _.hooks.all[name];\n\n        if (!callbacks || !callbacks.length) {\n          return;\n        }\n\n        for (var i = 0, callback; callback = callbacks[i++];) {\n          callback(env);\n        }\n      }\n    },\n    Token: Token\n  };\n  _self.Prism = _; // Typescript note:\n  // The following can be used to import the Token type in JSDoc:\n  //\n  //   @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token\n\n  /**\n   * Creates a new token.\n   *\n   * @param {string} type See {@link Token#type type}\n   * @param {string | TokenStream} content See {@link Token#content content}\n   * @param {string|string[]} [alias] The alias(es) of the token.\n   * @param {string} [matchedStr=\"\"] A copy of the full string this token was created from.\n   * @class\n   * @global\n   * @public\n   */\n\n  function Token(type, content, alias, matchedStr) {\n    /**\n     * The type of the token.\n     *\n     * This is usually the key of a pattern in a {@link Grammar}.\n     *\n     * @type {string}\n     * @see GrammarToken\n     * @public\n     */\n    this.type = type;\n    /**\n     * The strings or tokens contained by this token.\n     *\n     * This will be a token stream if the pattern matched also defined an `inside` grammar.\n     *\n     * @type {string | TokenStream}\n     * @public\n     */\n\n    this.content = content;\n    /**\n     * The alias(es) of the token.\n     *\n     * @type {string|string[]}\n     * @see GrammarToken\n     * @public\n     */\n\n    this.alias = alias; // Copy of the full string this token was created from\n\n    this.length = (matchedStr || '').length | 0;\n  }\n  /**\n   * A token stream is an array of strings and {@link Token Token} objects.\n   *\n   * Token streams have to fulfill a few properties that are assumed by most functions (mostly internal ones) that process\n   * them.\n   *\n   * 1. No adjacent strings.\n   * 2. No empty strings.\n   *\n   *    The only exception here is the token stream that only contains the empty string and nothing else.\n   *\n   * @typedef {Array<string | Token>} TokenStream\n   * @global\n   * @public\n   */\n\n  /**\n   * Converts the given token or token stream to an HTML representation.\n   *\n   * The following hooks will be run:\n   * 1. `wrap`: On each {@link Token}.\n   *\n   * @param {string | Token | TokenStream} o The token or token stream to be converted.\n   * @param {string} language The name of current language.\n   * @returns {string} The HTML representation of the token or token stream.\n   * @memberof Token\n   * @static\n   */\n\n\n  Token.stringify = function stringify(o, language) {\n    if (typeof o == 'string') {\n      return o;\n    }\n\n    if (Array.isArray(o)) {\n      var s = '';\n      o.forEach(function (e) {\n        s += stringify(e, language);\n      });\n      return s;\n    }\n\n    var env = {\n      type: o.type,\n      content: stringify(o.content, language),\n      tag: 'span',\n      classes: ['token', o.type],\n      attributes: {},\n      language: language\n    };\n    var aliases = o.alias;\n\n    if (aliases) {\n      if (Array.isArray(aliases)) {\n        Array.prototype.push.apply(env.classes, aliases);\n      } else {\n        env.classes.push(aliases);\n      }\n    }\n\n    _.hooks.run('wrap', env);\n\n    var attributes = '';\n\n    for (var name in env.attributes) {\n      attributes += ' ' + name + '=\"' + (env.attributes[name] || '').replace(/\"/g, '&quot;') + '\"';\n    }\n\n    return '<' + env.tag + ' class=\"' + env.classes.join(' ') + '\"' + attributes + '>' + env.content + '</' + env.tag + '>';\n  };\n  /**\n   * @param {string} text\n   * @param {LinkedList<string | Token>} tokenList\n   * @param {any} grammar\n   * @param {LinkedListNode<string | Token>} startNode\n   * @param {number} startPos\n   * @param {RematchOptions} [rematch]\n   * @returns {void}\n   * @private\n   *\n   * @typedef RematchOptions\n   * @property {string} cause\n   * @property {number} reach\n   */\n\n\n  function matchGrammar(text, tokenList, grammar, startNode, startPos, rematch) {\n    for (var token in grammar) {\n      if (!grammar.hasOwnProperty(token) || !grammar[token]) {\n        continue;\n      }\n\n      var patterns = grammar[token];\n      patterns = Array.isArray(patterns) ? patterns : [patterns];\n\n      for (var j = 0; j < patterns.length; ++j) {\n        if (rematch && rematch.cause == token + ',' + j) {\n          return;\n        }\n\n        var patternObj = patterns[j],\n            inside = patternObj.inside,\n            lookbehind = !!patternObj.lookbehind,\n            greedy = !!patternObj.greedy,\n            lookbehindLength = 0,\n            alias = patternObj.alias;\n\n        if (greedy && !patternObj.pattern.global) {\n          // Without the global flag, lastIndex won't work\n          var flags = patternObj.pattern.toString().match(/[imsuy]*$/)[0];\n          patternObj.pattern = RegExp(patternObj.pattern.source, flags + 'g');\n        }\n        /** @type {RegExp} */\n\n\n        var pattern = patternObj.pattern || patternObj;\n\n        for ( // iterate the token list and keep track of the current token/string position\n        var currentNode = startNode.next, pos = startPos; currentNode !== tokenList.tail; pos += currentNode.value.length, currentNode = currentNode.next) {\n          if (rematch && pos >= rematch.reach) {\n            break;\n          }\n\n          var str = currentNode.value;\n\n          if (tokenList.length > text.length) {\n            // Something went terribly wrong, ABORT, ABORT!\n            return;\n          }\n\n          if (str instanceof Token) {\n            continue;\n          }\n\n          var removeCount = 1; // this is the to parameter of removeBetween\n\n          if (greedy && currentNode != tokenList.tail.prev) {\n            pattern.lastIndex = pos;\n            var match = pattern.exec(text);\n\n            if (!match) {\n              break;\n            }\n\n            var from = match.index + (lookbehind && match[1] ? match[1].length : 0);\n            var to = match.index + match[0].length;\n            var p = pos; // find the node that contains the match\n\n            p += currentNode.value.length;\n\n            while (from >= p) {\n              currentNode = currentNode.next;\n              p += currentNode.value.length;\n            } // adjust pos (and p)\n\n\n            p -= currentNode.value.length;\n            pos = p; // the current node is a Token, then the match starts inside another Token, which is invalid\n\n            if (currentNode.value instanceof Token) {\n              continue;\n            } // find the last node which is affected by this match\n\n\n            for (var k = currentNode; k !== tokenList.tail && (p < to || typeof k.value === 'string'); k = k.next) {\n              removeCount++;\n              p += k.value.length;\n            }\n\n            removeCount--; // replace with the new match\n\n            str = text.slice(pos, p);\n            match.index -= pos;\n          } else {\n            pattern.lastIndex = 0;\n            var match = pattern.exec(str);\n          }\n\n          if (!match) {\n            continue;\n          }\n\n          if (lookbehind) {\n            lookbehindLength = match[1] ? match[1].length : 0;\n          }\n\n          var from = match.index + lookbehindLength,\n              matchStr = match[0].slice(lookbehindLength),\n              to = from + matchStr.length,\n              before = str.slice(0, from),\n              after = str.slice(to);\n          var reach = pos + str.length;\n\n          if (rematch && reach > rematch.reach) {\n            rematch.reach = reach;\n          }\n\n          var removeFrom = currentNode.prev;\n\n          if (before) {\n            removeFrom = addAfter(tokenList, removeFrom, before);\n            pos += before.length;\n          }\n\n          removeRange(tokenList, removeFrom, removeCount);\n          var wrapped = new Token(token, inside ? _.tokenize(matchStr, inside) : matchStr, alias, matchStr);\n          currentNode = addAfter(tokenList, removeFrom, wrapped);\n\n          if (after) {\n            addAfter(tokenList, currentNode, after);\n          }\n\n          if (removeCount > 1) {\n            // at least one Token object was removed, so we have to do some rematching\n            // this can only happen if the current pattern is greedy\n            matchGrammar(text, tokenList, grammar, currentNode.prev, pos, {\n              cause: token + ',' + j,\n              reach: reach\n            });\n          }\n        }\n      }\n    }\n  }\n  /**\n   * @typedef LinkedListNode\n   * @property {T} value\n   * @property {LinkedListNode<T> | null} prev The previous node.\n   * @property {LinkedListNode<T> | null} next The next node.\n   * @template T\n   * @private\n   */\n\n  /**\n   * @template T\n   * @private\n   */\n\n\n  function LinkedList() {\n    /** @type {LinkedListNode<T>} */\n    var head = {\n      value: null,\n      prev: null,\n      next: null\n    };\n    /** @type {LinkedListNode<T>} */\n\n    var tail = {\n      value: null,\n      prev: head,\n      next: null\n    };\n    head.next = tail;\n    /** @type {LinkedListNode<T>} */\n\n    this.head = head;\n    /** @type {LinkedListNode<T>} */\n\n    this.tail = tail;\n    this.length = 0;\n  }\n  /**\n   * Adds a new node with the given value to the list.\n   * @param {LinkedList<T>} list\n   * @param {LinkedListNode<T>} node\n   * @param {T} value\n   * @returns {LinkedListNode<T>} The added node.\n   * @template T\n   */\n\n\n  function addAfter(list, node, value) {\n    // assumes that node != list.tail && values.length >= 0\n    var next = node.next;\n    var newNode = {\n      value: value,\n      prev: node,\n      next: next\n    };\n    node.next = newNode;\n    next.prev = newNode;\n    list.length++;\n    return newNode;\n  }\n  /**\n   * Removes `count` nodes after the given node. The given node will not be removed.\n   * @param {LinkedList<T>} list\n   * @param {LinkedListNode<T>} node\n   * @param {number} count\n   * @template T\n   */\n\n\n  function removeRange(list, node, count) {\n    var next = node.next;\n\n    for (var i = 0; i < count && next !== list.tail; i++) {\n      next = next.next;\n    }\n\n    node.next = next;\n    next.prev = node;\n    list.length -= i;\n  }\n  /**\n   * @param {LinkedList<T>} list\n   * @returns {T[]}\n   * @template T\n   */\n\n\n  function toArray(list) {\n    var array = [];\n    var node = list.head.next;\n\n    while (node !== list.tail) {\n      array.push(node.value);\n      node = node.next;\n    }\n\n    return array;\n  }\n\n  if (!_self.document) {\n    if (!_self.addEventListener) {\n      // in Node.js\n      return _;\n    }\n\n    if (!_.disableWorkerMessageHandler) {\n      // In worker\n      _self.addEventListener('message', function (evt) {\n        var message = JSON.parse(evt.data),\n            lang = message.language,\n            code = message.code,\n            immediateClose = message.immediateClose;\n\n        _self.postMessage(_.highlight(code, _.languages[lang], lang));\n\n        if (immediateClose) {\n          _self.close();\n        }\n      }, false);\n    }\n\n    return _;\n  } // Get current script and highlight\n\n\n  var script = _.util.currentScript();\n\n  if (script) {\n    _.filename = script.src;\n\n    if (script.hasAttribute('data-manual')) {\n      _.manual = true;\n    }\n  }\n\n  function highlightAutomaticallyCallback() {\n    if (!_.manual) {\n      _.highlightAll();\n    }\n  }\n\n  if (!_.manual) {\n    // If the document state is \"loading\", then we'll use DOMContentLoaded.\n    // If the document state is \"interactive\" and the prism.js script is deferred, then we'll also use the\n    // DOMContentLoaded event because there might be some plugins or languages which have also been deferred and they\n    // might take longer one animation frame to execute which can create a race condition where only some plugins have\n    // been loaded when Prism.highlightAll() is executed, depending on how fast resources are loaded.\n    // See https://github.com/PrismJS/prism/issues/2102\n    var readyState = document.readyState;\n\n    if (readyState === 'loading' || readyState === 'interactive' && script && script.defer) {\n      document.addEventListener('DOMContentLoaded', highlightAutomaticallyCallback);\n    } else {\n      if (window.requestAnimationFrame) {\n        window.requestAnimationFrame(highlightAutomaticallyCallback);\n      } else {\n        window.setTimeout(highlightAutomaticallyCallback, 16);\n      }\n    }\n  }\n\n  return _;\n}(_self);\n\nif (typeof module !== 'undefined' && module.exports) {\n  module.exports = Prism;\n} // hack for components to work correctly in node.js\n\n\nif (typeof global !== 'undefined') {\n  global.Prism = Prism;\n} // some additional documentation/types\n\n/**\n * The expansion of a simple `RegExp` literal to support additional properties.\n *\n * @typedef GrammarToken\n * @property {RegExp} pattern The regular expression of the token.\n * @property {boolean} [lookbehind=false] If `true`, then the first capturing group of `pattern` will (effectively)\n * behave as a lookbehind group meaning that the captured text will not be part of the matched text of the new token.\n * @property {boolean} [greedy=false] Whether the token is greedy.\n * @property {string|string[]} [alias] An optional alias or list of aliases.\n * @property {Grammar} [inside] The nested grammar of this token.\n *\n * The `inside` grammar will be used to tokenize the text value of each token of this kind.\n *\n * This can be used to make nested and even recursive language definitions.\n *\n * Note: This can cause infinite recursion. Be careful when you embed different languages or even the same language into\n * each another.\n * @global\n * @public\n*/\n\n/**\n * @typedef Grammar\n * @type {Object<string, RegExp | GrammarToken | Array<RegExp | GrammarToken>>}\n * @property {Grammar} [rest] An optional grammar object that will be appended to this grammar.\n * @global\n * @public\n */\n\n/**\n * A function which will invoked after an element was successfully highlighted.\n *\n * @callback HighlightCallback\n * @param {Element} element The element successfully highlighted.\n * @returns {void}\n * @global\n * @public\n*/\n\n/**\n * @callback HookCallback\n * @param {Object<string, any>} env The environment variables of the hook.\n * @returns {void}\n * @global\n * @public\n */\n\n/* **********************************************\n     Begin prism-markup.js\n********************************************** */\n\n\nPrism.languages.markup = {\n  'comment': /<!--[\\s\\S]*?-->/,\n  'prolog': /<\\?[\\s\\S]+?\\?>/,\n  'doctype': {\n    // https://www.w3.org/TR/xml/#NT-doctypedecl\n    pattern: /<!DOCTYPE(?:[^>\"'[\\]]|\"[^\"]*\"|'[^']*')+(?:\\[(?:[^<\"'\\]]|\"[^\"]*\"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\\]\\s*)?>/i,\n    greedy: true,\n    inside: {\n      'internal-subset': {\n        pattern: /(\\[)[\\s\\S]+(?=\\]>$)/,\n        lookbehind: true,\n        greedy: true,\n        inside: null // see below\n\n      },\n      'string': {\n        pattern: /\"[^\"]*\"|'[^']*'/,\n        greedy: true\n      },\n      'punctuation': /^<!|>$|[[\\]]/,\n      'doctype-tag': /^DOCTYPE/,\n      'name': /[^\\s<>'\"]+/\n    }\n  },\n  'cdata': /<!\\[CDATA\\[[\\s\\S]*?]]>/i,\n  'tag': {\n    pattern: /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?\\s*\\/?>/,\n    greedy: true,\n    inside: {\n      'tag': {\n        pattern: /^<\\/?[^\\s>\\/]+/,\n        inside: {\n          'punctuation': /^<\\/?/,\n          'namespace': /^[^\\s>\\/:]+:/\n        }\n      },\n      'attr-value': {\n        pattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+)/,\n        inside: {\n          'punctuation': [{\n            pattern: /^=/,\n            alias: 'attr-equals'\n          }, /\"|'/]\n        }\n      },\n      'punctuation': /\\/?>/,\n      'attr-name': {\n        pattern: /[^\\s>\\/]+/,\n        inside: {\n          'namespace': /^[^\\s>\\/:]+:/\n        }\n      }\n    }\n  },\n  'entity': [{\n    pattern: /&[\\da-z]{1,8};/i,\n    alias: 'named-entity'\n  }, /&#x?[\\da-f]{1,8};/i]\n};\nPrism.languages.markup['tag'].inside['attr-value'].inside['entity'] = Prism.languages.markup['entity'];\nPrism.languages.markup['doctype'].inside['internal-subset'].inside = Prism.languages.markup; // Plugin to make entity title show the real entity, idea by Roman Komarov\n\nPrism.hooks.add('wrap', function (env) {\n  if (env.type === 'entity') {\n    env.attributes['title'] = env.content.replace(/&amp;/, '&');\n  }\n});\nObject.defineProperty(Prism.languages.markup.tag, 'addInlined', {\n  /**\n   * Adds an inlined language to markup.\n   *\n   * An example of an inlined language is CSS with `<style>` tags.\n   *\n   * @param {string} tagName The name of the tag that contains the inlined language. This name will be treated as\n   * case insensitive.\n   * @param {string} lang The language key.\n   * @example\n   * addInlined('style', 'css');\n   */\n  value: function addInlined(tagName, lang) {\n    var includedCdataInside = {};\n    includedCdataInside['language-' + lang] = {\n      pattern: /(^<!\\[CDATA\\[)[\\s\\S]+?(?=\\]\\]>$)/i,\n      lookbehind: true,\n      inside: Prism.languages[lang]\n    };\n    includedCdataInside['cdata'] = /^<!\\[CDATA\\[|\\]\\]>$/i;\n    var inside = {\n      'included-cdata': {\n        pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n        inside: includedCdataInside\n      }\n    };\n    inside['language-' + lang] = {\n      pattern: /[\\s\\S]+/,\n      inside: Prism.languages[lang]\n    };\n    var def = {};\n    def[tagName] = {\n      pattern: RegExp(/(<__[\\s\\S]*?>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[\\s\\S])*?(?=<\\/__>)/.source.replace(/__/g, function () {\n        return tagName;\n      }), 'i'),\n      lookbehind: true,\n      greedy: true,\n      inside: inside\n    };\n    Prism.languages.insertBefore('markup', 'cdata', def);\n  }\n});\nPrism.languages.html = Prism.languages.markup;\nPrism.languages.mathml = Prism.languages.markup;\nPrism.languages.svg = Prism.languages.markup;\nPrism.languages.xml = Prism.languages.extend('markup', {});\nPrism.languages.ssml = Prism.languages.xml;\nPrism.languages.atom = Prism.languages.xml;\nPrism.languages.rss = Prism.languages.xml;\n/* **********************************************\n     Begin prism-css.js\n********************************************** */\n\n(function (Prism) {\n  var string = /(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/;\n  Prism.languages.css = {\n    'comment': /\\/\\*[\\s\\S]*?\\*\\//,\n    'atrule': {\n      pattern: /@[\\w-]+[\\s\\S]*?(?:;|(?=\\s*\\{))/,\n      inside: {\n        'rule': /^@[\\w-]+/,\n        'selector-function-argument': {\n          pattern: /(\\bselector\\s*\\((?!\\s*\\))\\s*)(?:[^()]|\\((?:[^()]|\\([^()]*\\))*\\))+?(?=\\s*\\))/,\n          lookbehind: true,\n          alias: 'selector'\n        },\n        'keyword': {\n          pattern: /(^|[^\\w-])(?:and|not|only|or)(?![\\w-])/,\n          lookbehind: true\n        } // See rest below\n\n      }\n    },\n    'url': {\n      // https://drafts.csswg.org/css-values-3/#urls\n      pattern: RegExp('\\\\burl\\\\((?:' + string.source + '|' + /(?:[^\\\\\\r\\n()\"']|\\\\[\\s\\S])*/.source + ')\\\\)', 'i'),\n      greedy: true,\n      inside: {\n        'function': /^url/i,\n        'punctuation': /^\\(|\\)$/,\n        'string': {\n          pattern: RegExp('^' + string.source + '$'),\n          alias: 'url'\n        }\n      }\n    },\n    'selector': RegExp('[^{}\\\\s](?:[^{};\"\\']|' + string.source + ')*?(?=\\\\s*\\\\{)'),\n    'string': {\n      pattern: string,\n      greedy: true\n    },\n    'property': /[-_a-z\\xA0-\\uFFFF][-\\w\\xA0-\\uFFFF]*(?=\\s*:)/i,\n    'important': /!important\\b/i,\n    'function': /[-a-z0-9]+(?=\\()/i,\n    'punctuation': /[(){};:,]/\n  };\n  Prism.languages.css['atrule'].inside.rest = Prism.languages.css;\n  var markup = Prism.languages.markup;\n\n  if (markup) {\n    markup.tag.addInlined('style', 'css');\n    Prism.languages.insertBefore('inside', 'attr-value', {\n      'style-attr': {\n        pattern: /\\s*style=(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/i,\n        inside: {\n          'attr-name': {\n            pattern: /^\\s*style/i,\n            inside: markup.tag.inside\n          },\n          'punctuation': /^\\s*=\\s*['\"]|['\"]\\s*$/,\n          'attr-value': {\n            pattern: /.+/i,\n            inside: Prism.languages.css\n          }\n        },\n        alias: 'language-css'\n      }\n    }, markup.tag);\n  }\n})(Prism);\n/* **********************************************\n     Begin prism-clike.js\n********************************************** */\n\n\nPrism.languages.clike = {\n  'comment': [{\n    pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n    lookbehind: true\n  }, {\n    pattern: /(^|[^\\\\:])\\/\\/.*/,\n    lookbehind: true,\n    greedy: true\n  }],\n  'string': {\n    pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n    greedy: true\n  },\n  'class-name': {\n    pattern: /(\\b(?:class|interface|extends|implements|trait|instanceof|new)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+/i,\n    lookbehind: true,\n    inside: {\n      'punctuation': /[.\\\\]/\n    }\n  },\n  'keyword': /\\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\\b/,\n  'boolean': /\\b(?:true|false)\\b/,\n  'function': /\\w+(?=\\()/,\n  'number': /\\b0x[\\da-f]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n  'operator': /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/,\n  'punctuation': /[{}[\\];(),.:]/\n};\n/* **********************************************\n     Begin prism-javascript.js\n********************************************** */\n\nPrism.languages.javascript = Prism.languages.extend('clike', {\n  'class-name': [Prism.languages.clike['class-name'], {\n    pattern: /(^|[^$\\w\\xA0-\\uFFFF])[_$A-Z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\.(?:prototype|constructor))/,\n    lookbehind: true\n  }],\n  'keyword': [{\n    pattern: /((?:^|})\\s*)(?:catch|finally)\\b/,\n    lookbehind: true\n  }, {\n    pattern: /(^|[^.]|\\.\\.\\.\\s*)\\b(?:as|async(?=\\s*(?:function\\b|\\(|[$\\w\\xA0-\\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|(?:get|set)(?=\\s*[\\[$\\w\\xA0-\\uFFFF])|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\\b/,\n    lookbehind: true\n  }],\n  'number': /\\b(?:(?:0[xX](?:[\\dA-Fa-f](?:_[\\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\\d(?:_\\d)?)+n|NaN|Infinity)\\b|(?:\\b(?:\\d(?:_\\d)?)+\\.?(?:\\d(?:_\\d)?)*|\\B\\.(?:\\d(?:_\\d)?)+)(?:[Ee][+-]?(?:\\d(?:_\\d)?)+)?/,\n  // Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)\n  'function': /#?[_$a-zA-Z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/,\n  'operator': /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/\n});\nPrism.languages.javascript['class-name'][0].pattern = /(\\b(?:class|interface|extends|implements|instanceof|new)\\s+)[\\w.\\\\]+/;\nPrism.languages.insertBefore('javascript', 'keyword', {\n  'regex': {\n    pattern: /((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)\\/(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[gimyus]{0,6}(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))/,\n    lookbehind: true,\n    greedy: true\n  },\n  // This must be declared before keyword because we use \"function\" inside the look-forward\n  'function-variable': {\n    pattern: /#?[_$a-zA-Z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\s*[=:]\\s*(?:async\\s*)?(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|[_$a-zA-Z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*)\\s*=>))/,\n    alias: 'function'\n  },\n  'parameter': [{\n    pattern: /(function(?:\\s+[_$A-Za-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*)?\\s*\\(\\s*)(?!\\s)(?:[^()]|\\([^()]*\\))+?(?=\\s*\\))/,\n    lookbehind: true,\n    inside: Prism.languages.javascript\n  }, {\n    pattern: /[_$a-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\s*=>)/i,\n    inside: Prism.languages.javascript\n  }, {\n    pattern: /(\\(\\s*)(?!\\s)(?:[^()]|\\([^()]*\\))+?(?=\\s*\\)\\s*=>)/,\n    lookbehind: true,\n    inside: Prism.languages.javascript\n  }, {\n    pattern: /((?:\\b|\\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\\w\\xA0-\\uFFFF]))(?:[_$A-Za-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*\\s*)\\(\\s*|\\]\\s*\\(\\s*)(?!\\s)(?:[^()]|\\([^()]*\\))+?(?=\\s*\\)\\s*\\{)/,\n    lookbehind: true,\n    inside: Prism.languages.javascript\n  }],\n  'constant': /\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/\n});\nPrism.languages.insertBefore('javascript', 'string', {\n  'template-string': {\n    pattern: /`(?:\\\\[\\s\\S]|\\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}|(?!\\${)[^\\\\`])*`/,\n    greedy: true,\n    inside: {\n      'template-punctuation': {\n        pattern: /^`|`$/,\n        alias: 'string'\n      },\n      'interpolation': {\n        pattern: /((?:^|[^\\\\])(?:\\\\{2})*)\\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}/,\n        lookbehind: true,\n        inside: {\n          'interpolation-punctuation': {\n            pattern: /^\\${|}$/,\n            alias: 'punctuation'\n          },\n          rest: Prism.languages.javascript\n        }\n      },\n      'string': /[\\s\\S]+/\n    }\n  }\n});\n\nif (Prism.languages.markup) {\n  Prism.languages.markup.tag.addInlined('script', 'javascript');\n}\n\nPrism.languages.js = Prism.languages.javascript;\n/* **********************************************\n     Begin prism-file-highlight.js\n********************************************** */\n\n(function () {\n  if (typeof self === 'undefined' || !self.Prism || !self.document) {\n    return;\n  }\n\n  var Prism = window.Prism;\n  var LOADING_MESSAGE = 'Loading…';\n\n  var FAILURE_MESSAGE = function FAILURE_MESSAGE(status, message) {\n    return '✖ Error ' + status + ' while fetching file: ' + message;\n  };\n\n  var FAILURE_EMPTY_MESSAGE = '✖ Error: File does not exist or is empty';\n  var EXTENSIONS = {\n    'js': 'javascript',\n    'py': 'python',\n    'rb': 'ruby',\n    'ps1': 'powershell',\n    'psm1': 'powershell',\n    'sh': 'bash',\n    'bat': 'batch',\n    'h': 'c',\n    'tex': 'latex'\n  };\n  var STATUS_ATTR = 'data-src-status';\n  var STATUS_LOADING = 'loading';\n  var STATUS_LOADED = 'loaded';\n  var STATUS_FAILED = 'failed';\n  var SELECTOR = 'pre[data-src]:not([' + STATUS_ATTR + '=\"' + STATUS_LOADED + '\"])' + ':not([' + STATUS_ATTR + '=\"' + STATUS_LOADING + '\"])';\n  var lang = /\\blang(?:uage)?-([\\w-]+)\\b/i;\n  /**\n   * Sets the Prism `language-xxxx` or `lang-xxxx` class to the given language.\n   *\n   * @param {HTMLElement} element\n   * @param {string} language\n   * @returns {void}\n   */\n\n  function setLanguageClass(element, language) {\n    var className = element.className;\n    className = className.replace(lang, ' ') + ' language-' + language;\n    element.className = className.replace(/\\s+/g, ' ').trim();\n  }\n\n  Prism.hooks.add('before-highlightall', function (env) {\n    env.selector += ', ' + SELECTOR;\n  });\n  Prism.hooks.add('before-sanity-check', function (env) {\n    var pre =\n    /** @type {HTMLPreElement} */\n    env.element;\n\n    if (pre.matches(SELECTOR)) {\n      env.code = ''; // fast-path the whole thing and go to complete\n\n      pre.setAttribute(STATUS_ATTR, STATUS_LOADING); // mark as loading\n      // add code element with loading message\n\n      var code = pre.appendChild(document.createElement('CODE'));\n      code.textContent = LOADING_MESSAGE;\n      var src = pre.getAttribute('data-src');\n      var language = env.language;\n\n      if (language === 'none') {\n        // the language might be 'none' because there is no language set;\n        // in this case, we want to use the extension as the language\n        var extension = (/\\.(\\w+)$/.exec(src) || [, 'none'])[1];\n        language = EXTENSIONS[extension] || extension;\n      } // set language classes\n\n\n      setLanguageClass(code, language);\n      setLanguageClass(pre, language); // preload the language\n\n      var autoloader = Prism.plugins.autoloader;\n\n      if (autoloader) {\n        autoloader.loadLanguages(language);\n      } // load file\n\n\n      var xhr = new XMLHttpRequest();\n      xhr.open('GET', src, true);\n\n      xhr.onreadystatechange = function () {\n        if (xhr.readyState == 4) {\n          if (xhr.status < 400 && xhr.responseText) {\n            // mark as loaded\n            pre.setAttribute(STATUS_ATTR, STATUS_LOADED); // highlight code\n\n            code.textContent = xhr.responseText;\n            Prism.highlightElement(code);\n          } else {\n            // mark as failed\n            pre.setAttribute(STATUS_ATTR, STATUS_FAILED);\n\n            if (xhr.status >= 400) {\n              code.textContent = FAILURE_MESSAGE(xhr.status, xhr.statusText);\n            } else {\n              code.textContent = FAILURE_EMPTY_MESSAGE;\n            }\n          }\n        }\n      };\n\n      xhr.send(null);\n    }\n  });\n  Prism.plugins.fileHighlight = {\n    /**\n     * Executes the File Highlight plugin for all matching `pre` elements under the given container.\n     *\n     * Note: Elements which are already loaded or currently loading will not be touched by this method.\n     *\n     * @param {ParentNode} [container=document]\n     */\n    highlight: function highlight(container) {\n      var elements = (container || document).querySelectorAll(SELECTOR);\n\n      for (var i = 0, element; element = elements[i++];) {\n        Prism.highlightElement(element);\n      }\n    }\n  };\n  var logged = false;\n  /** @deprecated Use `Prism.plugins.fileHighlight.highlight` instead. */\n\n  Prism.fileHighlight = function () {\n    if (!logged) {\n      console.warn('Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead.');\n      logged = true;\n    }\n\n    Prism.plugins.fileHighlight.highlight.apply(this, arguments);\n  };\n})();","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module.\n    define(factory);\n  } else if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like enviroments that support module.exports,\n    // like Node.\n    module.exports = factory();\n  } else {\n    // Browser globals (root is window)\n    root.Sparkline = factory();\n  }\n})(window, function () {\n  function extend(specific, general) {\n    var obj = {};\n\n    for (var key in general) {\n      obj[key] = key in specific ? specific[key] : general[key];\n    }\n\n    return obj;\n  }\n\n  function Sparkline(element, options) {\n    this.element = element;\n    this.options = extend(options || {}, Sparkline.options);\n\n    init: {\n      this.element.innerHTML = \"<canvas></canvas>\";\n      this.canvas = this.element.firstChild;\n      this.context = this.canvas.getContext(\"2d\");\n      this.ratio = window.devicePixelRatio || 1;\n\n      if (this.options.tooltip) {\n        this.canvas.style.position = \"relative\";\n        this.canvas.onmousemove = showTooltip.bind(this);\n      }\n    }\n  }\n\n  Sparkline.options = {\n    width: 100,\n    height: null,\n    lineColor: \"black\",\n    lineWidth: 1.5,\n    startColor: \"transparent\",\n    endColor: \"black\",\n    maxColor: \"transparent\",\n    minColor: \"transparent\",\n    minValue: null,\n    maxValue: null,\n    minMaxValue: null,\n    maxMinValue: null,\n    dotRadius: 2.5,\n    tooltip: null,\n    fillBelow: true,\n    fillLighten: 0.5,\n    startLine: false,\n    endLine: false,\n    minLine: false,\n    maxLine: false,\n    bottomLine: false,\n    topLine: false,\n    averageLine: false\n  };\n\n  Sparkline.init = function (element, options) {\n    return new Sparkline(element, options);\n  };\n\n  Sparkline.draw = function (element, points, options) {\n    var sparkline = new Sparkline(element, options);\n    sparkline.draw(points);\n    return sparkline;\n  };\n\n  function getY(minValue, maxValue, offsetY, height, index) {\n    var range = maxValue - minValue;\n\n    if (range == 0) {\n      return offsetY + height / 2;\n    } else {\n      return offsetY + height - (this[index] - minValue) / range * height;\n    }\n  }\n\n  function drawDot(radius, x1, x2, color, line, x, y) {\n    this.context.beginPath();\n    this.context.fillStyle = color;\n    this.context.arc(x, y, radius, 0, Math.PI * 2, false);\n    this.context.fill();\n    drawLine.call(this, x1, x2, line, x, y);\n  }\n\n  function drawLine(x1, x2, style, x, y) {\n    if (!style) return;\n    this.context.save();\n    this.context.strokeStyle = style.color || 'black';\n    this.context.lineWidth = (style.width || 1) * this.ratio;\n    this.context.globalAlpha = style.alpha || 1;\n    this.context.beginPath();\n    this.context.moveTo(style.direction != 'right' ? x1 : x, y);\n    this.context.lineTo(style.direction != 'left' ? x2 : x, y);\n    this.context.stroke();\n    this.context.restore();\n  }\n\n  function showTooltip(e) {\n    var x = e.offsetX || e.layerX || 0;\n    var delta = (this.options.width - this.options.dotRadius * 2) / (this.points.length - 1);\n    var index = minmax(0, Math.round((x - this.options.dotRadius) / delta), this.points.length - 1);\n    this.canvas.title = this.options.tooltip(this.points[index], index, this.points);\n  }\n\n  Sparkline.prototype.draw = function (points) {\n    points = points || [];\n    this.points = points;\n    this.canvas.width = this.options.width * this.ratio;\n    this.canvas.style.width = this.options.width + 'px';\n    var pxHeight = this.options.height || this.element.offsetHeight;\n    this.canvas.height = pxHeight * this.ratio;\n    this.canvas.style.height = pxHeight + 'px';\n    var lineWidth = this.options.lineWidth * this.ratio;\n    var offsetX = Math.max(this.options.dotRadius * this.ratio, lineWidth / 2);\n    var offsetY = Math.max(this.options.dotRadius * this.ratio, lineWidth / 2);\n    var width = this.canvas.width - offsetX * 2;\n    var height = this.canvas.height - offsetY * 2;\n    var minValue = Math.min.apply(Math, points);\n    var maxValue = Math.max.apply(Math, points);\n    var bottomValue = this.options.minValue != undefined ? this.options.minValue : Math.min(minValue, this.options.maxMinValue != undefined ? this.options.maxMinValue : minValue);\n    var topValue = this.options.maxValue != undefined ? this.options.maxValue : Math.max(maxValue, this.options.minMaxValue != undefined ? this.options.minMaxValue : maxValue);\n    var minX = offsetX;\n    var maxX = offsetX;\n    var x = offsetX;\n    var y = getY.bind(points, bottomValue, topValue, offsetY, height);\n    var delta = width / (points.length - 1);\n    var dot = drawDot.bind(this, this.options.dotRadius * this.ratio, offsetX, width + offsetX);\n    var line = drawLine.bind(this, offsetX, width + offsetX);\n    this.context.save();\n    this.context.strokeStyle = this.options.lineColor;\n    this.context.fillStyle = this.options.lineColor;\n    this.context.lineWidth = lineWidth;\n    this.context.lineCap = 'round';\n    this.context.lineJoin = 'round';\n\n    if (this.options.fillBelow && points.length > 1) {\n      this.context.save();\n      this.context.beginPath();\n      this.context.moveTo(x, y(0));\n\n      for (var i = 1; i < points.length; i++) {\n        x += delta;\n        minX = points[i] == minValue ? x : minX;\n        maxX = points[i] == maxValue ? x : maxX;\n        this.context.lineTo(x, y(i));\n      }\n\n      this.context.lineTo(width + offsetX, height + offsetY + lineWidth / 2);\n      this.context.lineTo(offsetX, height + offsetY + lineWidth / 2);\n      this.context.fill();\n\n      if (this.options.fillLighten > 0) {\n        this.context.fillStyle = 'white';\n        this.context.globalAlpha = this.options.fillLighten;\n        this.context.fill();\n        this.context.globalAlpha = 1;\n      } else if (this.options.fillLighten < 0) {\n        this.context.fillStyle = 'black';\n        this.context.globalAlpha = -this.options.fillLighten;\n        this.context.fill();\n      }\n\n      this.context.restore();\n    }\n\n    x = offsetX;\n    this.context.beginPath();\n    this.context.moveTo(x, y(0));\n\n    for (var i = 1; i < points.length; i++) {\n      x += delta;\n      this.context.lineTo(x, y(i));\n    }\n\n    this.context.stroke();\n    this.context.restore();\n    line(this.options.bottomLine, 0, offsetY);\n    line(this.options.topLine, 0, height + offsetY + lineWidth / 2);\n    dot(this.options.startColor, this.options.startLine, offsetX + (points.length == 1 ? width / 2 : 0), y(0));\n    dot(this.options.endColor, this.options.endLine, offsetX + (points.length == 1 ? width / 2 : width), y(points.length - 1));\n    dot(this.options.minColor, this.options.minLine, minX + (points.length == 1 ? width / 2 : 0), y(points.indexOf(minValue)));\n    dot(this.options.maxColor, this.options.maxLine, maxX + (points.length == 1 ? width / 2 : 0), y(points.indexOf(maxValue))); //line(this.options.averageLine, )\n  };\n\n  function minmax(a, b, c) {\n    return Math.max(a, Math.min(b, c));\n  }\n\n  return Sparkline;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*\nTrix 1.2.3\nCopyright © 2020 Basecamp, LLC\nhttp://trix-editor.org/\n */\n(function () {}).call(this), function () {\n  var t;\n  null == window.Set && (window.Set = t = function () {\n    function t() {\n      this.clear();\n    }\n\n    return t.prototype.clear = function () {\n      return this.values = [];\n    }, t.prototype.has = function (t) {\n      return -1 !== this.values.indexOf(t);\n    }, t.prototype.add = function (t) {\n      return this.has(t) || this.values.push(t), this;\n    }, t.prototype[\"delete\"] = function (t) {\n      var e;\n      return -1 === (e = this.values.indexOf(t)) ? !1 : (this.values.splice(e, 1), !0);\n    }, t.prototype.forEach = function () {\n      var t;\n      return (t = this.values).forEach.apply(t, arguments);\n    }, t;\n  }());\n}.call(this), function (t) {\n  function e() {}\n\n  function n(t, e) {\n    return function () {\n      t.apply(e, arguments);\n    };\n  }\n\n  function i(t) {\n    if (\"object\" != _typeof(this)) throw new TypeError(\"Promises must be constructed via new\");\n    if (\"function\" != typeof t) throw new TypeError(\"not a function\");\n    this._state = 0, this._handled = !1, this._value = void 0, this._deferreds = [], c(t, this);\n  }\n\n  function o(t, e) {\n    for (; 3 === t._state;) {\n      t = t._value;\n    }\n\n    return 0 === t._state ? void t._deferreds.push(e) : (t._handled = !0, void h(function () {\n      var n = 1 === t._state ? e.onFulfilled : e.onRejected;\n      if (null === n) return void (1 === t._state ? r : s)(e.promise, t._value);\n      var i;\n\n      try {\n        i = n(t._value);\n      } catch (o) {\n        return void s(e.promise, o);\n      }\n\n      r(e.promise, i);\n    }));\n  }\n\n  function r(t, e) {\n    try {\n      if (e === t) throw new TypeError(\"A promise cannot be resolved with itself.\");\n\n      if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) {\n        var o = e.then;\n        if (e instanceof i) return t._state = 3, t._value = e, void a(t);\n        if (\"function\" == typeof o) return void c(n(o, e), t);\n      }\n\n      t._state = 1, t._value = e, a(t);\n    } catch (r) {\n      s(t, r);\n    }\n  }\n\n  function s(t, e) {\n    t._state = 2, t._value = e, a(t);\n  }\n\n  function a(t) {\n    2 === t._state && 0 === t._deferreds.length && setTimeout(function () {\n      t._handled || p(t._value);\n    }, 1);\n\n    for (var e = 0, n = t._deferreds.length; n > e; e++) {\n      o(t, t._deferreds[e]);\n    }\n\n    t._deferreds = null;\n  }\n\n  function u(t, e, n) {\n    this.onFulfilled = \"function\" == typeof t ? t : null, this.onRejected = \"function\" == typeof e ? e : null, this.promise = n;\n  }\n\n  function c(t, e) {\n    var n = !1;\n\n    try {\n      t(function (t) {\n        n || (n = !0, r(e, t));\n      }, function (t) {\n        n || (n = !0, s(e, t));\n      });\n    } catch (i) {\n      if (n) return;\n      n = !0, s(e, i);\n    }\n  }\n\n  var l = setTimeout,\n      h = \"function\" == typeof setImmediate && setImmediate || function (t) {\n    l(t, 1);\n  },\n      p = function p(t) {\n    \"undefined\" != typeof console && console && console.warn(\"Possible Unhandled Promise Rejection:\", t);\n  };\n\n  i.prototype[\"catch\"] = function (t) {\n    return this.then(null, t);\n  }, i.prototype.then = function (t, n) {\n    var r = new i(e);\n    return o(this, new u(t, n, r)), r;\n  }, i.all = function (t) {\n    var e = Array.prototype.slice.call(t);\n    return new i(function (t, n) {\n      function i(r, s) {\n        try {\n          if (s && (\"object\" == _typeof(s) || \"function\" == typeof s)) {\n            var a = s.then;\n            if (\"function\" == typeof a) return void a.call(s, function (t) {\n              i(r, t);\n            }, n);\n          }\n\n          e[r] = s, 0 === --o && t(e);\n        } catch (u) {\n          n(u);\n        }\n      }\n\n      if (0 === e.length) return t([]);\n\n      for (var o = e.length, r = 0; r < e.length; r++) {\n        i(r, e[r]);\n      }\n    });\n  }, i.resolve = function (t) {\n    return t && \"object\" == _typeof(t) && t.constructor === i ? t : new i(function (e) {\n      e(t);\n    });\n  }, i.reject = function (t) {\n    return new i(function (e, n) {\n      n(t);\n    });\n  }, i.race = function (t) {\n    return new i(function (e, n) {\n      for (var i = 0, o = t.length; o > i; i++) {\n        t[i].then(e, n);\n      }\n    });\n  }, i._setImmediateFn = function (t) {\n    h = t;\n  }, i._setUnhandledRejectionFn = function (t) {\n    p = t;\n  }, \"undefined\" != typeof module && module.exports ? module.exports = i : t.Promise || (t.Promise = i);\n}(this), function () {\n  var t = \"object\" == _typeof(window.customElements),\n      e = \"function\" == typeof document.registerElement,\n      n = t || e;\n\n  n || (\n  /**\n  * @license\n  * Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n  * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n  * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n  * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n  * Code distributed by Google as part of the polymer project is also\n  * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n  */\n  \"undefined\" == typeof WeakMap && !function () {\n    var t = Object.defineProperty,\n        e = Date.now() % 1e9,\n        n = function n() {\n      this.name = \"__st\" + (1e9 * Math.random() >>> 0) + (e++ + \"__\");\n    };\n\n    n.prototype = {\n      set: function set(e, n) {\n        var i = e[this.name];\n        return i && i[0] === e ? i[1] = n : t(e, this.name, {\n          value: [e, n],\n          writable: !0\n        }), this;\n      },\n      get: function get(t) {\n        var e;\n        return (e = t[this.name]) && e[0] === t ? e[1] : void 0;\n      },\n      \"delete\": function _delete(t) {\n        var e = t[this.name];\n        return e && e[0] === t ? (e[0] = e[1] = void 0, !0) : !1;\n      },\n      has: function has(t) {\n        var e = t[this.name];\n        return e ? e[0] === t : !1;\n      }\n    }, window.WeakMap = n;\n  }(), function (t) {\n    function e(t) {\n      A.push(t), b || (b = !0, g(i));\n    }\n\n    function n(t) {\n      return window.ShadowDOMPolyfill && window.ShadowDOMPolyfill.wrapIfNeeded(t) || t;\n    }\n\n    function i() {\n      b = !1;\n      var t = A;\n      A = [], t.sort(function (t, e) {\n        return t.uid_ - e.uid_;\n      });\n      var e = !1;\n      t.forEach(function (t) {\n        var n = t.takeRecords();\n        o(t), n.length && (t.callback_(n, t), e = !0);\n      }), e && i();\n    }\n\n    function o(t) {\n      t.nodes_.forEach(function (e) {\n        var n = m.get(e);\n        n && n.forEach(function (e) {\n          e.observer === t && e.removeTransientObservers();\n        });\n      });\n    }\n\n    function r(t, e) {\n      for (var n = t; n; n = n.parentNode) {\n        var i = m.get(n);\n        if (i) for (var o = 0; o < i.length; o++) {\n          var r = i[o],\n              s = r.options;\n\n          if (n === t || s.subtree) {\n            var a = e(s);\n            a && r.enqueue(a);\n          }\n        }\n      }\n    }\n\n    function s(t) {\n      this.callback_ = t, this.nodes_ = [], this.records_ = [], this.uid_ = ++C;\n    }\n\n    function a(t, e) {\n      this.type = t, this.target = e, this.addedNodes = [], this.removedNodes = [], this.previousSibling = null, this.nextSibling = null, this.attributeName = null, this.attributeNamespace = null, this.oldValue = null;\n    }\n\n    function u(t) {\n      var e = new a(t.type, t.target);\n      return e.addedNodes = t.addedNodes.slice(), e.removedNodes = t.removedNodes.slice(), e.previousSibling = t.previousSibling, e.nextSibling = t.nextSibling, e.attributeName = t.attributeName, e.attributeNamespace = t.attributeNamespace, e.oldValue = t.oldValue, e;\n    }\n\n    function c(t, e) {\n      return x = new a(t, e);\n    }\n\n    function l(t) {\n      return w ? w : (w = u(x), w.oldValue = t, w);\n    }\n\n    function h() {\n      x = w = void 0;\n    }\n\n    function p(t) {\n      return t === w || t === x;\n    }\n\n    function d(t, e) {\n      return t === e ? t : w && p(t) ? w : null;\n    }\n\n    function f(t, e, n) {\n      this.observer = t, this.target = e, this.options = n, this.transientObservedNodes = [];\n    }\n\n    if (!t.JsMutationObserver) {\n      var g,\n          m = new WeakMap();\n      if (/Trident|Edge/.test(navigator.userAgent)) g = setTimeout;else if (window.setImmediate) g = window.setImmediate;else {\n        var v = [],\n            y = String(Math.random());\n        window.addEventListener(\"message\", function (t) {\n          if (t.data === y) {\n            var e = v;\n            v = [], e.forEach(function (t) {\n              t();\n            });\n          }\n        }), g = function g(t) {\n          v.push(t), window.postMessage(y, \"*\");\n        };\n      }\n      var b = !1,\n          A = [],\n          C = 0;\n      s.prototype = {\n        observe: function observe(t, e) {\n          if (t = n(t), !e.childList && !e.attributes && !e.characterData || e.attributeOldValue && !e.attributes || e.attributeFilter && e.attributeFilter.length && !e.attributes || e.characterDataOldValue && !e.characterData) throw new SyntaxError();\n          var i = m.get(t);\n          i || m.set(t, i = []);\n\n          for (var o, r = 0; r < i.length; r++) {\n            if (i[r].observer === this) {\n              o = i[r], o.removeListeners(), o.options = e;\n              break;\n            }\n          }\n\n          o || (o = new f(this, t, e), i.push(o), this.nodes_.push(t)), o.addListeners();\n        },\n        disconnect: function disconnect() {\n          this.nodes_.forEach(function (t) {\n            for (var e = m.get(t), n = 0; n < e.length; n++) {\n              var i = e[n];\n\n              if (i.observer === this) {\n                i.removeListeners(), e.splice(n, 1);\n                break;\n              }\n            }\n          }, this), this.records_ = [];\n        },\n        takeRecords: function takeRecords() {\n          var t = this.records_;\n          return this.records_ = [], t;\n        }\n      };\n      var x, w;\n      f.prototype = {\n        enqueue: function enqueue(t) {\n          var n = this.observer.records_,\n              i = n.length;\n\n          if (n.length > 0) {\n            var o = n[i - 1],\n                r = d(o, t);\n            if (r) return void (n[i - 1] = r);\n          } else e(this.observer);\n\n          n[i] = t;\n        },\n        addListeners: function addListeners() {\n          this.addListeners_(this.target);\n        },\n        addListeners_: function addListeners_(t) {\n          var e = this.options;\n          e.attributes && t.addEventListener(\"DOMAttrModified\", this, !0), e.characterData && t.addEventListener(\"DOMCharacterDataModified\", this, !0), e.childList && t.addEventListener(\"DOMNodeInserted\", this, !0), (e.childList || e.subtree) && t.addEventListener(\"DOMNodeRemoved\", this, !0);\n        },\n        removeListeners: function removeListeners() {\n          this.removeListeners_(this.target);\n        },\n        removeListeners_: function removeListeners_(t) {\n          var e = this.options;\n          e.attributes && t.removeEventListener(\"DOMAttrModified\", this, !0), e.characterData && t.removeEventListener(\"DOMCharacterDataModified\", this, !0), e.childList && t.removeEventListener(\"DOMNodeInserted\", this, !0), (e.childList || e.subtree) && t.removeEventListener(\"DOMNodeRemoved\", this, !0);\n        },\n        addTransientObserver: function addTransientObserver(t) {\n          if (t !== this.target) {\n            this.addListeners_(t), this.transientObservedNodes.push(t);\n            var e = m.get(t);\n            e || m.set(t, e = []), e.push(this);\n          }\n        },\n        removeTransientObservers: function removeTransientObservers() {\n          var t = this.transientObservedNodes;\n          this.transientObservedNodes = [], t.forEach(function (t) {\n            this.removeListeners_(t);\n\n            for (var e = m.get(t), n = 0; n < e.length; n++) {\n              if (e[n] === this) {\n                e.splice(n, 1);\n                break;\n              }\n            }\n          }, this);\n        },\n        handleEvent: function handleEvent(t) {\n          switch (t.stopImmediatePropagation(), t.type) {\n            case \"DOMAttrModified\":\n              var e = t.attrName,\n                  n = t.relatedNode.namespaceURI,\n                  i = t.target,\n                  o = new c(\"attributes\", i);\n              o.attributeName = e, o.attributeNamespace = n;\n              var s = t.attrChange === MutationEvent.ADDITION ? null : t.prevValue;\n              r(i, function (t) {\n                return !t.attributes || t.attributeFilter && t.attributeFilter.length && -1 === t.attributeFilter.indexOf(e) && -1 === t.attributeFilter.indexOf(n) ? void 0 : t.attributeOldValue ? l(s) : o;\n              });\n              break;\n\n            case \"DOMCharacterDataModified\":\n              var i = t.target,\n                  o = c(\"characterData\", i),\n                  s = t.prevValue;\n              r(i, function (t) {\n                return t.characterData ? t.characterDataOldValue ? l(s) : o : void 0;\n              });\n              break;\n\n            case \"DOMNodeRemoved\":\n              this.addTransientObserver(t.target);\n\n            case \"DOMNodeInserted\":\n              var a,\n                  u,\n                  p = t.target;\n              \"DOMNodeInserted\" === t.type ? (a = [p], u = []) : (a = [], u = [p]);\n              var d = p.previousSibling,\n                  f = p.nextSibling,\n                  o = c(\"childList\", t.target.parentNode);\n              o.addedNodes = a, o.removedNodes = u, o.previousSibling = d, o.nextSibling = f, r(t.relatedNode, function (t) {\n                return t.childList ? o : void 0;\n              });\n          }\n\n          h();\n        }\n      }, t.JsMutationObserver = s, t.MutationObserver || (t.MutationObserver = s, s._isPolyfilled = !0);\n    }\n  }(self), function () {\n    \"use strict\";\n\n    if (!window.performance || !window.performance.now) {\n      var t = Date.now();\n      window.performance = {\n        now: function now() {\n          return Date.now() - t;\n        }\n      };\n    }\n\n    window.requestAnimationFrame || (window.requestAnimationFrame = function () {\n      var t = window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame;\n      return t ? function (e) {\n        return t(function () {\n          e(performance.now());\n        });\n      } : function (t) {\n        return window.setTimeout(t, 1e3 / 60);\n      };\n    }()), window.cancelAnimationFrame || (window.cancelAnimationFrame = function () {\n      return window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || function (t) {\n        clearTimeout(t);\n      };\n    }());\n\n    var e = function () {\n      var t = document.createEvent(\"Event\");\n      return t.initEvent(\"foo\", !0, !0), t.preventDefault(), t.defaultPrevented;\n    }();\n\n    if (!e) {\n      var n = Event.prototype.preventDefault;\n\n      Event.prototype.preventDefault = function () {\n        this.cancelable && (n.call(this), Object.defineProperty(this, \"defaultPrevented\", {\n          get: function get() {\n            return !0;\n          },\n          configurable: !0\n        }));\n      };\n    }\n\n    var i = /Trident/.test(navigator.userAgent);\n\n    if ((!window.CustomEvent || i && \"function\" != typeof window.CustomEvent) && (window.CustomEvent = function (t, e) {\n      e = e || {};\n      var n = document.createEvent(\"CustomEvent\");\n      return n.initCustomEvent(t, Boolean(e.bubbles), Boolean(e.cancelable), e.detail), n;\n    }, window.CustomEvent.prototype = window.Event.prototype), !window.Event || i && \"function\" != typeof window.Event) {\n      var o = window.Event;\n      window.Event = function (t, e) {\n        e = e || {};\n        var n = document.createEvent(\"Event\");\n        return n.initEvent(t, Boolean(e.bubbles), Boolean(e.cancelable)), n;\n      }, window.Event.prototype = o.prototype;\n    }\n  }(window.WebComponents), window.CustomElements = window.CustomElements || {\n    flags: {}\n  }, function (t) {\n    var e = t.flags,\n        n = [],\n        i = function i(t) {\n      n.push(t);\n    },\n        o = function o() {\n      n.forEach(function (e) {\n        e(t);\n      });\n    };\n\n    t.addModule = i, t.initializeModules = o, t.hasNative = Boolean(document.registerElement), t.isIE = /Trident/.test(navigator.userAgent), t.useNative = !e.register && t.hasNative && !window.ShadowDOMPolyfill && (!window.HTMLImports || window.HTMLImports.useNative);\n  }(window.CustomElements), window.CustomElements.addModule(function (t) {\n    function e(t, e) {\n      n(t, function (t) {\n        return e(t) ? !0 : void i(t, e);\n      }), i(t, e);\n    }\n\n    function n(t, e, i) {\n      var o = t.firstElementChild;\n      if (!o) for (o = t.firstChild; o && o.nodeType !== Node.ELEMENT_NODE;) {\n        o = o.nextSibling;\n      }\n\n      for (; o;) {\n        e(o, i) !== !0 && n(o, e, i), o = o.nextElementSibling;\n      }\n\n      return null;\n    }\n\n    function i(t, n) {\n      for (var i = t.shadowRoot; i;) {\n        e(i, n), i = i.olderShadowRoot;\n      }\n    }\n\n    function o(t, e) {\n      r(t, e, []);\n    }\n\n    function r(t, e, n) {\n      if (t = window.wrap(t), !(n.indexOf(t) >= 0)) {\n        n.push(t);\n\n        for (var i, o = t.querySelectorAll(\"link[rel=\" + s + \"]\"), a = 0, u = o.length; u > a && (i = o[a]); a++) {\n          i[\"import\"] && r(i[\"import\"], e, n);\n        }\n\n        e(t);\n      }\n    }\n\n    var s = window.HTMLImports ? window.HTMLImports.IMPORT_LINK_TYPE : \"none\";\n    t.forDocumentTree = o, t.forSubtree = e;\n  }), window.CustomElements.addModule(function (t) {\n    function e(t, e) {\n      return n(t, e) || i(t, e);\n    }\n\n    function n(e, n) {\n      return t.upgrade(e, n) ? !0 : void (n && s(e));\n    }\n\n    function i(t, e) {\n      b(t, function (t) {\n        return n(t, e) ? !0 : void 0;\n      });\n    }\n\n    function o(t) {\n      w.push(t), x || (x = !0, setTimeout(r));\n    }\n\n    function r() {\n      x = !1;\n\n      for (var t, e = w, n = 0, i = e.length; i > n && (t = e[n]); n++) {\n        t();\n      }\n\n      w = [];\n    }\n\n    function s(t) {\n      C ? o(function () {\n        a(t);\n      }) : a(t);\n    }\n\n    function a(t) {\n      t.__upgraded__ && !t.__attached && (t.__attached = !0, t.attachedCallback && t.attachedCallback());\n    }\n\n    function u(t) {\n      c(t), b(t, function (t) {\n        c(t);\n      });\n    }\n\n    function c(t) {\n      C ? o(function () {\n        l(t);\n      }) : l(t);\n    }\n\n    function l(t) {\n      t.__upgraded__ && t.__attached && (t.__attached = !1, t.detachedCallback && t.detachedCallback());\n    }\n\n    function h(t) {\n      for (var e = t, n = window.wrap(document); e;) {\n        if (e == n) return !0;\n        e = e.parentNode || e.nodeType === Node.DOCUMENT_FRAGMENT_NODE && e.host;\n      }\n    }\n\n    function p(t) {\n      if (t.shadowRoot && !t.shadowRoot.__watched) {\n        y.dom && console.log(\"watching shadow-root for: \", t.localName);\n\n        for (var e = t.shadowRoot; e;) {\n          g(e), e = e.olderShadowRoot;\n        }\n      }\n    }\n\n    function d(t, n) {\n      if (y.dom) {\n        var i = n[0];\n\n        if (i && \"childList\" === i.type && i.addedNodes && i.addedNodes) {\n          for (var o = i.addedNodes[0]; o && o !== document && !o.host;) {\n            o = o.parentNode;\n          }\n\n          var r = o && (o.URL || o._URL || o.host && o.host.localName) || \"\";\n          r = r.split(\"/?\").shift().split(\"/\").pop();\n        }\n\n        console.group(\"mutations (%d) [%s]\", n.length, r || \"\");\n      }\n\n      var s = h(t);\n      n.forEach(function (t) {\n        \"childList\" === t.type && (E(t.addedNodes, function (t) {\n          t.localName && e(t, s);\n        }), E(t.removedNodes, function (t) {\n          t.localName && u(t);\n        }));\n      }), y.dom && console.groupEnd();\n    }\n\n    function f(t) {\n      for (t = window.wrap(t), t || (t = window.wrap(document)); t.parentNode;) {\n        t = t.parentNode;\n      }\n\n      var e = t.__observer;\n      e && (d(t, e.takeRecords()), r());\n    }\n\n    function g(t) {\n      if (!t.__observer) {\n        var e = new MutationObserver(d.bind(this, t));\n        e.observe(t, {\n          childList: !0,\n          subtree: !0\n        }), t.__observer = e;\n      }\n    }\n\n    function m(t) {\n      t = window.wrap(t), y.dom && console.group(\"upgradeDocument: \", t.baseURI.split(\"/\").pop());\n      var n = t === window.wrap(document);\n      e(t, n), g(t), y.dom && console.groupEnd();\n    }\n\n    function v(t) {\n      A(t, m);\n    }\n\n    var y = t.flags,\n        b = t.forSubtree,\n        A = t.forDocumentTree,\n        C = window.MutationObserver._isPolyfilled && y[\"throttle-attached\"];\n    t.hasPolyfillMutations = C, t.hasThrottledAttached = C;\n    var x = !1,\n        w = [],\n        E = Array.prototype.forEach.call.bind(Array.prototype.forEach),\n        S = Element.prototype.createShadowRoot;\n    S && (Element.prototype.createShadowRoot = function () {\n      var t = S.call(this);\n      return window.CustomElements.watchShadow(this), t;\n    }), t.watchShadow = p, t.upgradeDocumentTree = v, t.upgradeDocument = m, t.upgradeSubtree = i, t.upgradeAll = e, t.attached = s, t.takeRecords = f;\n  }), window.CustomElements.addModule(function (t) {\n    function e(e, i) {\n      if (\"template\" === e.localName && window.HTMLTemplateElement && HTMLTemplateElement.decorate && HTMLTemplateElement.decorate(e), !e.__upgraded__ && e.nodeType === Node.ELEMENT_NODE) {\n        var o = e.getAttribute(\"is\"),\n            r = t.getRegisteredDefinition(e.localName) || t.getRegisteredDefinition(o);\n        if (r && (o && r.tag == e.localName || !o && !r[\"extends\"])) return n(e, r, i);\n      }\n    }\n\n    function n(e, n, o) {\n      return s.upgrade && console.group(\"upgrade:\", e.localName), n.is && e.setAttribute(\"is\", n.is), i(e, n), e.__upgraded__ = !0, r(e), o && t.attached(e), t.upgradeSubtree(e, o), s.upgrade && console.groupEnd(), e;\n    }\n\n    function i(t, e) {\n      Object.__proto__ ? t.__proto__ = e.prototype : (o(t, e.prototype, e[\"native\"]), t.__proto__ = e.prototype);\n    }\n\n    function o(t, e, n) {\n      for (var i = {}, o = e; o !== n && o !== HTMLElement.prototype;) {\n        for (var r, s = Object.getOwnPropertyNames(o), a = 0; r = s[a]; a++) {\n          i[r] || (Object.defineProperty(t, r, Object.getOwnPropertyDescriptor(o, r)), i[r] = 1);\n        }\n\n        o = Object.getPrototypeOf(o);\n      }\n    }\n\n    function r(t) {\n      t.createdCallback && t.createdCallback();\n    }\n\n    var s = t.flags;\n    t.upgrade = e, t.upgradeWithDefinition = n, t.implementPrototype = i;\n  }), window.CustomElements.addModule(function (t) {\n    function e(e, i) {\n      var u = i || {};\n      if (!e) throw new Error(\"document.registerElement: first argument `name` must not be empty\");\n      if (e.indexOf(\"-\") < 0) throw new Error(\"document.registerElement: first argument ('name') must contain a dash ('-'). Argument provided was '\" + String(e) + \"'.\");\n      if (o(e)) throw new Error(\"Failed to execute 'registerElement' on 'Document': Registration failed for type '\" + String(e) + \"'. The type name is invalid.\");\n      if (c(e)) throw new Error(\"DuplicateDefinitionError: a type with name '\" + String(e) + \"' is already registered\");\n      return u.prototype || (u.prototype = Object.create(HTMLElement.prototype)), u.__name = e.toLowerCase(), u[\"extends\"] && (u[\"extends\"] = u[\"extends\"].toLowerCase()), u.lifecycle = u.lifecycle || {}, u.ancestry = r(u[\"extends\"]), s(u), a(u), n(u.prototype), l(u.__name, u), u.ctor = h(u), u.ctor.prototype = u.prototype, u.prototype.constructor = u.ctor, t.ready && m(document), u.ctor;\n    }\n\n    function n(t) {\n      if (!t.setAttribute._polyfilled) {\n        var e = t.setAttribute;\n\n        t.setAttribute = function (t, n) {\n          i.call(this, t, n, e);\n        };\n\n        var n = t.removeAttribute;\n        t.removeAttribute = function (t) {\n          i.call(this, t, null, n);\n        }, t.setAttribute._polyfilled = !0;\n      }\n    }\n\n    function i(t, e, n) {\n      t = t.toLowerCase();\n      var i = this.getAttribute(t);\n      n.apply(this, arguments);\n      var o = this.getAttribute(t);\n      this.attributeChangedCallback && o !== i && this.attributeChangedCallback(t, i, o);\n    }\n\n    function o(t) {\n      for (var e = 0; e < C.length; e++) {\n        if (t === C[e]) return !0;\n      }\n    }\n\n    function r(t) {\n      var e = c(t);\n      return e ? r(e[\"extends\"]).concat([e]) : [];\n    }\n\n    function s(t) {\n      for (var e, n = t[\"extends\"], i = 0; e = t.ancestry[i]; i++) {\n        n = e.is && e.tag;\n      }\n\n      t.tag = n || t.__name, n && (t.is = t.__name);\n    }\n\n    function a(t) {\n      if (!Object.__proto__) {\n        var e = HTMLElement.prototype;\n\n        if (t.is) {\n          var n = document.createElement(t.tag);\n          e = Object.getPrototypeOf(n);\n        }\n\n        for (var i, o = t.prototype, r = !1; o;) {\n          o == e && (r = !0), i = Object.getPrototypeOf(o), i && (o.__proto__ = i), o = i;\n        }\n\n        r || console.warn(t.tag + \" prototype not found in prototype chain for \" + t.is), t[\"native\"] = e;\n      }\n    }\n\n    function u(t) {\n      return y(E(t.tag), t);\n    }\n\n    function c(t) {\n      return t ? x[t.toLowerCase()] : void 0;\n    }\n\n    function l(t, e) {\n      x[t] = e;\n    }\n\n    function h(t) {\n      return function () {\n        return u(t);\n      };\n    }\n\n    function p(t, e, n) {\n      return t === w ? d(e, n) : S(t, e);\n    }\n\n    function d(t, e) {\n      t && (t = t.toLowerCase()), e && (e = e.toLowerCase());\n      var n = c(e || t);\n\n      if (n) {\n        if (t == n.tag && e == n.is) return new n.ctor();\n        if (!e && !n.is) return new n.ctor();\n      }\n\n      var i;\n      return e ? (i = d(t), i.setAttribute(\"is\", e), i) : (i = E(t), t.indexOf(\"-\") >= 0 && b(i, HTMLElement), i);\n    }\n\n    function f(t, e) {\n      var n = t[e];\n\n      t[e] = function () {\n        var t = n.apply(this, arguments);\n        return v(t), t;\n      };\n    }\n\n    var g,\n        m = (t.isIE, t.upgradeDocumentTree),\n        v = t.upgradeAll,\n        y = t.upgradeWithDefinition,\n        b = t.implementPrototype,\n        A = t.useNative,\n        C = [\"annotation-xml\", \"color-profile\", \"font-face\", \"font-face-src\", \"font-face-uri\", \"font-face-format\", \"font-face-name\", \"missing-glyph\"],\n        x = {},\n        w = \"http://www.w3.org/1999/xhtml\",\n        E = document.createElement.bind(document),\n        S = document.createElementNS.bind(document);\n    g = Object.__proto__ || A ? function (t, e) {\n      return t instanceof e;\n    } : function (t, e) {\n      if (t instanceof e) return !0;\n\n      for (var n = t; n;) {\n        if (n === e.prototype) return !0;\n        n = n.__proto__;\n      }\n\n      return !1;\n    }, f(Node.prototype, \"cloneNode\"), f(document, \"importNode\"), document.registerElement = e, document.createElement = d, document.createElementNS = p, t.registry = x, t[\"instanceof\"] = g, t.reservedTagList = C, t.getRegisteredDefinition = c, document.register = document.registerElement;\n  }), function (t) {\n    function e() {\n      r(window.wrap(document)), window.CustomElements.ready = !0;\n\n      var t = window.requestAnimationFrame || function (t) {\n        setTimeout(t, 16);\n      };\n\n      t(function () {\n        setTimeout(function () {\n          window.CustomElements.readyTime = Date.now(), window.HTMLImports && (window.CustomElements.elapsed = window.CustomElements.readyTime - window.HTMLImports.readyTime), document.dispatchEvent(new CustomEvent(\"WebComponentsReady\", {\n            bubbles: !0\n          }));\n        });\n      });\n    }\n\n    var n = t.useNative,\n        i = t.initializeModules;\n\n    if (t.isIE, n) {\n      var o = function o() {};\n\n      t.watchShadow = o, t.upgrade = o, t.upgradeAll = o, t.upgradeDocumentTree = o, t.upgradeSubtree = o, t.takeRecords = o, t[\"instanceof\"] = function (t, e) {\n        return t instanceof e;\n      };\n    } else i();\n\n    var r = t.upgradeDocumentTree,\n        s = t.upgradeDocument;\n    if (window.wrap || (window.ShadowDOMPolyfill ? (window.wrap = window.ShadowDOMPolyfill.wrapIfNeeded, window.unwrap = window.ShadowDOMPolyfill.unwrapIfNeeded) : window.wrap = window.unwrap = function (t) {\n      return t;\n    }), window.HTMLImports && (window.HTMLImports.__importsParsingHook = function (t) {\n      t[\"import\"] && s(wrap(t[\"import\"]));\n    }), \"complete\" === document.readyState || t.flags.eager) e();else if (\"interactive\" !== document.readyState || window.attachEvent || window.HTMLImports && !window.HTMLImports.ready) {\n      var a = window.HTMLImports && !window.HTMLImports.ready ? \"HTMLImportsLoaded\" : \"DOMContentLoaded\";\n      window.addEventListener(a, e);\n    } else e();\n  }(window.CustomElements));\n}.call(this), function () {}.call(this), function () {\n  var t = this;\n  (function () {\n    (function () {\n      this.Trix = {\n        VERSION: \"1.2.3\",\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(\"<!--block-->\", \"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 '<div class=\"trix-button-row\">\\n  <span class=\"trix-button-group trix-button-group--text-tools\" data-trix-button-group=\"text-tools\">\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-bold\" data-trix-attribute=\"bold\" data-trix-key=\"b\" title=\"' + t.bold + '\" tabindex=\"-1\">' + t.bold + '</button>\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-italic\" data-trix-attribute=\"italic\" data-trix-key=\"i\" title=\"' + t.italic + '\" tabindex=\"-1\">' + t.italic + '</button>\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-strike\" data-trix-attribute=\"strike\" title=\"' + t.strike + '\" tabindex=\"-1\">' + t.strike + '</button>\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-link\" data-trix-attribute=\"href\" data-trix-action=\"link\" data-trix-key=\"k\" title=\"' + t.link + '\" tabindex=\"-1\">' + t.link + '</button>\\n  </span>\\n\\n  <span class=\"trix-button-group trix-button-group--block-tools\" data-trix-button-group=\"block-tools\">\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-heading-1\" data-trix-attribute=\"heading1\" title=\"' + t.heading1 + '\" tabindex=\"-1\">' + t.heading1 + '</button>\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-quote\" data-trix-attribute=\"quote\" title=\"' + t.quote + '\" tabindex=\"-1\">' + t.quote + '</button>\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-code\" data-trix-attribute=\"code\" title=\"' + t.code + '\" tabindex=\"-1\">' + t.code + '</button>\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-bullet-list\" data-trix-attribute=\"bullet\" title=\"' + t.bullets + '\" tabindex=\"-1\">' + t.bullets + '</button>\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-number-list\" data-trix-attribute=\"number\" title=\"' + t.numbers + '\" tabindex=\"-1\">' + t.numbers + '</button>\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-decrease-nesting-level\" data-trix-action=\"decreaseNestingLevel\" title=\"' + t.outdent + '\" tabindex=\"-1\">' + t.outdent + '</button>\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-increase-nesting-level\" data-trix-action=\"increaseNestingLevel\" title=\"' + t.indent + '\" tabindex=\"-1\">' + t.indent + '</button>\\n  </span>\\n\\n  <span class=\"trix-button-group trix-button-group--file-tools\" data-trix-button-group=\"file-tools\">\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-attach\" data-trix-action=\"attachFiles\" title=\"' + t.attachFiles + '\" tabindex=\"-1\">' + t.attachFiles + '</button>\\n  </span>\\n\\n  <span class=\"trix-button-group-spacer\"></span>\\n\\n  <span class=\"trix-button-group trix-button-group--history-tools\" data-trix-button-group=\"history-tools\">\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-undo\" data-trix-action=\"undo\" data-trix-key=\"z\" title=\"' + t.undo + '\" tabindex=\"-1\">' + t.undo + '</button>\\n    <button type=\"button\" class=\"trix-button trix-button--icon trix-button--icon-redo\" data-trix-action=\"redo\" data-trix-key=\"shift+z\" title=\"' + t.redo + '\" tabindex=\"-1\">' + t.redo + '</button>\\n  </span>\\n</div>\\n\\n<div class=\"trix-dialogs\" data-trix-dialogs>\\n  <div class=\"trix-dialog trix-dialog--link\" data-trix-dialog=\"href\" data-trix-dialog-attribute=\"href\">\\n    <div class=\"trix-dialog__link-fields\">\\n      <input type=\"url\" name=\"href\" class=\"trix-input trix-input--dialog\" placeholder=\"' + t.urlPlaceholder + '\" aria-label=\"' + t.url + '\" required data-trix-input>\\n      <div class=\"trix-button-group\">\\n        <input type=\"button\" class=\"trix-button trix-button--dialog\" value=\"' + t.link + '\" data-trix-method=\"setAttribute\">\\n        <input type=\"button\" class=\"trix-button trix-button--dialog\" value=\"' + t.unlink + '\" data-trix-method=\"removeAttribute\">\\n      </div>\\n    </div>\\n  </div>\\n</div>';\n        }\n      };\n    }.call(this), function () {\n      e.config.undoInterval = 5e3;\n    }.call(this), function () {\n      e.config.attachments = {\n        preview: {\n          presentation: \"gallery\",\n          caption: {\n            name: !0,\n            size: !0\n          }\n        },\n        file: {\n          caption: {\n            size: !0\n          }\n        }\n      };\n    }.call(this), function () {\n      e.config.keyNames = {\n        8: \"backspace\",\n        9: \"tab\",\n        13: \"return\",\n        27: \"escape\",\n        37: \"left\",\n        39: \"right\",\n        46: \"delete\",\n        68: \"d\",\n        72: \"h\",\n        79: \"o\"\n      };\n    }.call(this), function () {\n      e.config.input = {\n        level2Enabled: !0,\n        getLevel: function 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 = '<div class=\"trix-button-row\">\\n  <span class=\"trix-button-group trix-button-group--actions\">\\n    <button type=\"button\" data-trix-action=\"remove\" class=\"trix-button trix-button--remove\" title=\"' + s.remove + '\">' + s.remove + \"</button>\\n  </span>\\n</div>\", this.attachment.isPreviewable() && (r = i(this.attachment.getFilename()), u = i(this.attachment.getFormattedFilesize()), n.innerHTML += '<div class=\"' + t.attachmentMetadataContainer + '\">\\n  <span class=\"' + t.attachmentMetadata + '\">\\n    <span class=\"' + t.attachmentName + '\" title=\"' + r + '\">' + r + '</span>\\n    <span class=\"' + t.attachmentSize + '\">' + u + \"</span>\\n  </span>\\n</div>\"), 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(/&nbsp;/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 = [].indexOf || function (t) {\n        for (var e = 0, n = this.length; n > e; e++) {\n          if (e in this && this[e] === t) return e;\n        }\n\n        return -1;\n      },\n          a = [].slice;\n\n      n = e.tagName, i = e.walkTree, t = e.nodeIsAttachmentElement, e.HTMLSanitizer = function (r) {\n        function u(t, e) {\n          var n;\n          n = null != e ? e : {}, this.allowedAttributes = n.allowedAttributes, this.forbiddenProtocols = n.forbiddenProtocols, null == this.allowedAttributes && (this.allowedAttributes = c), null == this.forbiddenProtocols && (this.forbiddenProtocols = l), this.body = h(t);\n        }\n\n        var c, l, h, p;\n        return o(u, r), c = \"style href src width height class\".split(\" \"), l = \"javascript:\".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                p(o) ? r.push(o) : this.sanitizeElement(o);\n                break;\n\n              case Node.COMMENT_NODE:\n                r.push(o);\n            }\n          }\n\n          for (t = 0, n = r.length; n > t; t++) {\n            o = r[t], e.removeNode(o);\n          }\n\n          return this.body;\n        }, u.prototype.sanitizeElement = function (t) {\n          var e, n, i, o, r;\n\n          for (t.hasAttribute(\"href\") && (o = t.protocol, s.call(this.forbiddenProtocols, o) >= 0 && t.removeAttribute(\"href\")), r = a.call(t.attributes), e = 0, n = r.length; n > e; e++) {\n            i = r[e].name, s.call(this.allowedAttributes, i) >= 0 || 0 === i.indexOf(\"data-trix\") || t.removeAttribute(i);\n          }\n\n          return t;\n        }, u.prototype.normalizeListElementNesting = function () {\n          var t, e, i, o, r;\n\n          for (r = a.call(this.body.querySelectorAll(\"ul,ol\")), t = 0, e = r.length; e > t; t++) {\n            i = r[t], (o = i.previousElementSibling) && \"li\" === n(o) && o.appendChild(i);\n          }\n\n          return this.body;\n        }, p = function p(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        }, h = function h(t) {\n          var e, n, i, o, r;\n\n          for (null == t && (t = \"\"), t = t.replace(/<\\/html[^>]*>[^]*$/i, \"</html>\"), e = document.implementation.createHTMLDocument(\"\"), e.documentElement.innerHTML = t, r = e.head.querySelectorAll(\"style\"), i = 0, o = r.length; o > i; i++) {\n            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 || i !== this.containerElement && !this.isBlockElement(i) ? void 0 : (n = this.getBlockAttributes(i), t(n, null != (o = this.currentBlock) ? o.attributes : void 0) ? void 0 : (this.currentBlock = this.appendBlockForAttributesWithElement(n, i), this.currentBlockElement = i));\n        }, g.prototype.appendBlockForElement = function (e) {\n          var n, o, r, s;\n\n          if (r = this.isBlockElement(e), o = i(this.currentBlockElement, e), r && !this.isBlockElement(e.firstChild)) {\n            if (!(this.isInsignificantTextNode(e.firstChild) && this.isBlockElement(e.firstElementChild) || (n = this.getBlockAttributes(e), 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.toolbarController.hideDialog(), this.composition.editAttachment(t, e);\n        }, u.prototype.compositionControllerDidRequestDeselectingAttachment = function (t) {\n          var e, n;\n          return e = null != (n = this.attachmentLocationRange) ? n : this.composition.document.getLocationRangeOfAttachment(t), this.selectionManager.setLocationRange(e[1]);\n        }, u.prototype.compositionControllerWillUpdateAttachment = function (t) {\n          return this.editor.recordUndoEntry(\"Edit Attachment\", {\n            context: t.id,\n            consolidatable: !0\n          });\n        }, u.prototype.compositionControllerDidRequestRemovalOfAttachment = function (t) {\n          return this.removeAttachment(t);\n        }, u.prototype.inputControllerWillHandleInput = function () {\n          return this.handlingInput = !0, this.requestedRender = !1;\n        }, u.prototype.inputControllerDidRequestRender = function () {\n          return this.requestedRender = !0;\n        }, u.prototype.inputControllerDidHandleInput = function () {\n          return this.handlingInput = !1, this.requestedRender ? (this.requestedRender = !1, this.render()) : void 0;\n        }, u.prototype.inputControllerDidAllowUnhandledInput = function () {\n          return this.notifyEditorElement(\"change\");\n        }, u.prototype.inputControllerDidRequestReparse = function () {\n          return this.reparse();\n        }, u.prototype.inputControllerWillPerformTyping = function () {\n          return this.recordTypingUndoEntry();\n        }, u.prototype.inputControllerWillPerformFormatting = function (t) {\n          return this.recordFormattingUndoEntry(t);\n        }, u.prototype.inputControllerWillCutText = function () {\n          return this.editor.recordUndoEntry(\"Cut\");\n        }, u.prototype.inputControllerWillPaste = function (t) {\n          return this.editor.recordUndoEntry(\"Paste\"), this.pasting = !0, this.notifyEditorElement(\"before-paste\", {\n            paste: t\n          });\n        }, u.prototype.inputControllerDidPaste = function (t) {\n          return t.range = this.pastedRange, this.pastedRange = null, this.pasting = null, this.notifyEditorElement(\"paste\", {\n            paste: t\n          });\n        }, u.prototype.inputControllerWillMoveText = function () {\n          return this.editor.recordUndoEntry(\"Move\");\n        }, u.prototype.inputControllerWillAttachFiles = function () {\n          return this.editor.recordUndoEntry(\"Drop Files\");\n        }, u.prototype.inputControllerWillPerformUndo = function () {\n          return this.editor.undo();\n        }, u.prototype.inputControllerWillPerformRedo = function () {\n          return this.editor.redo();\n        }, u.prototype.inputControllerDidReceiveKeyboardCommand = function (t) {\n          return this.toolbarController.applyKeyboardCommand(t);\n        }, u.prototype.inputControllerDidStartDrag = function () {\n          return this.locationRangeBeforeDrag = this.selectionManager.getLocationRange();\n        }, u.prototype.inputControllerDidReceiveDragOverPoint = function (t) {\n          return this.selectionManager.setLocationRangeFromPointRange(t);\n        }, u.prototype.inputControllerDidCancelDrag = function () {\n          return this.selectionManager.setLocationRange(this.locationRangeBeforeDrag), this.locationRangeBeforeDrag = null;\n        }, u.prototype.locationRangeDidChange = function (t) {\n          return this.composition.updateCurrentAttributes(), this.updateCurrentActions(), this.attachmentLocationRange && !o(this.attachmentLocationRange, t) && this.composition.stopEditingAttachment(), this.notifyEditorElement(\"selection-change\");\n        }, u.prototype.toolbarDidClickButton = function () {\n          return this.getLocationRange() ? void 0 : this.setLocationRange({\n            index: 0,\n            offset: 0\n          });\n        }, u.prototype.toolbarDidInvokeAction = function (t) {\n          return this.invokeAction(t);\n        }, u.prototype.toolbarDidToggleAttribute = function (t) {\n          return this.recordFormattingUndoEntry(t), this.composition.toggleCurrentAttribute(t), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n        }, u.prototype.toolbarDidUpdateAttribute = function (t, e) {\n          return this.recordFormattingUndoEntry(t), this.composition.setCurrentAttribute(t, e), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n        }, u.prototype.toolbarDidRemoveAttribute = function (t) {\n          return this.recordFormattingUndoEntry(t), this.composition.removeCurrentAttribute(t), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n        }, u.prototype.toolbarWillShowDialog = function () {\n          return this.composition.expandSelectionForEditing(), this.freezeSelection();\n        }, u.prototype.toolbarDidShowDialog = function (t) {\n          return this.notifyEditorElement(\"toolbar-dialog-show\", {\n            dialogName: t\n          });\n        }, u.prototype.toolbarDidHideDialog = function (t) {\n          return this.thawSelection(), this.editorElement.focus(), this.notifyEditorElement(\"toolbar-dialog-hide\", {\n            dialogName: t\n          });\n        }, u.prototype.freezeSelection = function () {\n          return this.selectionFrozen ? void 0 : (this.selectionManager.lock(), this.composition.freezeSelection(), this.selectionFrozen = !0, this.render());\n        }, u.prototype.thawSelection = function () {\n          return this.selectionFrozen ? (this.composition.thawSelection(), this.selectionManager.unlock(), this.selectionFrozen = !1, this.render()) : void 0;\n        }, u.prototype.actions = {\n          undo: {\n            test: function test() {\n              return this.editor.canUndo();\n            },\n            perform: function perform() {\n              return this.editor.undo();\n            }\n          },\n          redo: {\n            test: function test() {\n              return this.editor.canRedo();\n            },\n            perform: function perform() {\n              return this.editor.redo();\n            }\n          },\n          link: {\n            test: function test() {\n              return this.editor.canActivateAttribute(\"href\");\n            }\n          },\n          increaseNestingLevel: {\n            test: function test() {\n              return this.editor.canIncreaseNestingLevel();\n            },\n            perform: function perform() {\n              return this.editor.increaseNestingLevel() && this.render();\n            }\n          },\n          decreaseNestingLevel: {\n            test: function test() {\n              return this.editor.canDecreaseNestingLevel();\n            },\n            perform: function perform() {\n              return this.editor.decreaseNestingLevel() && this.render();\n            }\n          },\n          attachFiles: {\n            test: function test() {\n              return !0;\n            },\n            perform: function perform() {\n              return e.config.input.pickFiles(this.editor.insertFiles);\n            }\n          }\n        }, u.prototype.canInvokeAction = function (t) {\n          var e, n;\n          return this.actionIsExternal(t) ? !0 : !!(null != (e = this.actions[t]) && null != (n = e.test) ? n.call(this) : void 0);\n        }, u.prototype.invokeAction = function (t) {\n          var e, n;\n          return this.actionIsExternal(t) ? this.notifyEditorElement(\"action-invoke\", {\n            actionName: t\n          }) : null != (e = this.actions[t]) && null != (n = e.perform) ? n.call(this) : void 0;\n        }, u.prototype.actionIsExternal = function (t) {\n          return /^x-./.test(t);\n        }, u.prototype.getCurrentActions = function () {\n          var t, e;\n          e = {};\n\n          for (t in this.actions) {\n            e[t] = this.canInvokeAction(t);\n          }\n\n          return e;\n        }, u.prototype.updateCurrentActions = function () {\n          var t;\n          return t = this.getCurrentActions(), n(t, this.currentActions) ? void 0 : (this.currentActions = t, this.toolbarController.updateActions(this.currentActions), this.notifyEditorElement(\"actions-change\", {\n            actions: this.currentActions\n          }));\n        }, u.prototype.runEditorFilters = function () {\n          var t, e, n, i, o, r, s, a;\n\n          for (a = this.composition.getSnapshot(), o = this.editor.filters, n = 0, i = o.length; i > n; n++) {\n            e = o[n], t = a.document, s = a.selectedRange, a = null != (r = e.call(this.editor, a)) ? r : {}, null == a.document && (a.document = t), null == a.selectedRange && (a.selectedRange = s);\n          }\n\n          return c(a, this.composition.getSnapshot()) ? void 0 : this.composition.loadSnapshot(a);\n        }, c = function c(t, e) {\n          return o(t.selectedRange, e.selectedRange) && t.document.isEqualTo(e.document);\n        }, u.prototype.updateInputElement = function () {\n          var t, n;\n          return t = this.compositionController.getSerializableElement(), n = e.serializeToContentType(t, \"text/html\"), this.editorElement.setInputElementValue(n);\n        }, u.prototype.notifyEditorElement = function (t, e) {\n          switch (t) {\n            case \"document-change\":\n              this.documentChangedSinceLastRender = !0;\n              break;\n\n            case \"render\":\n              this.documentChangedSinceLastRender && (this.documentChangedSinceLastRender = !1, this.notifyEditorElement(\"change\"));\n              break;\n\n            case \"change\":\n            case \"attachment-add\":\n            case \"attachment-edit\":\n            case \"attachment-remove\":\n              this.updateInputElement();\n          }\n\n          return this.editorElement.notify(t, e);\n        }, u.prototype.removeAttachment = function (t) {\n          return this.editor.recordUndoEntry(\"Delete Attachment\"), this.composition.removeAttachment(t), this.render();\n        }, u.prototype.recordFormattingUndoEntry = function (e) {\n          var n, o;\n          return n = t(e), o = this.selectionManager.getLocationRange(), n || !i(o) ? this.editor.recordUndoEntry(\"Formatting\", {\n            context: this.getUndoContext(),\n            consolidatable: !0\n          }) : void 0;\n        }, u.prototype.recordTypingUndoEntry = function () {\n          return this.editor.recordUndoEntry(\"Typing\", {\n            context: this.getUndoContext(this.currentAttributes),\n            consolidatable: !0\n          });\n        }, u.prototype.getUndoContext = function () {\n          var t;\n          return t = 1 <= arguments.length ? a.call(arguments, 0) : [], [this.getLocationContext(), this.getTimeContext()].concat(a.call(t));\n        }, u.prototype.getLocationContext = function () {\n          var t;\n          return t = this.selectionManager.getLocationRange(), i(t) ? t[0].index : t;\n        }, u.prototype.getTimeContext = function () {\n          return e.config.undoInterval > 0 ? Math.floor(new Date().getTime() / e.config.undoInterval) : 0;\n        }, u.prototype.isFocused = function () {\n          var t;\n          return this.editorElement === (null != (t = this.editorElement.ownerDocument) ? t.activeElement : void 0);\n        }, u;\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 <script> element; its readystatechange event will be fired asynchronously once it is inserted\n      // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n      var script = doc.createElement(\"script\");\n\n      script.onreadystatechange = function () {\n        runIfPresent(handle);\n        script.onreadystatechange = null;\n        html.removeChild(script);\n        script = null;\n      };\n\n      html.appendChild(script);\n    };\n  }\n\n  function installSetTimeoutImplementation() {\n    registerImmediate = function registerImmediate(handle) {\n      setTimeout(runIfPresent, 0, handle);\n    };\n  } // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.\n\n\n  var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n  attachTo = attachTo && attachTo.setTimeout ? attachTo : global; // Don't get fooled by e.g. browserify environments.\n\n  if ({}.toString.call(global.process) === \"[object process]\") {\n    // For Node.js before 0.9\n    installNextTickImplementation();\n  } else if (canUsePostMessage()) {\n    // For non-IE10 modern browsers\n    installPostMessageImplementation();\n  } else if (global.MessageChannel) {\n    // For web workers, where supported\n    installMessageChannelImplementation();\n  } else if (doc && \"onreadystatechange\" in doc.createElement(\"script\")) {\n    // For IE 6–8\n    installReadyStateChangeImplementation();\n  } else {\n    // For older browsers\n    installSetTimeoutImplementation();\n  }\n\n  attachTo.setImmediate = setImmediate;\n  attachTo.clearImmediate = clearImmediate;\n})(typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self);","// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n  throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n  throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n  try {\n    if (typeof setTimeout === 'function') {\n      cachedSetTimeout = setTimeout;\n    } else {\n      cachedSetTimeout = defaultSetTimout;\n    }\n  } catch (e) {\n    cachedSetTimeout = defaultSetTimout;\n  }\n\n  try {\n    if (typeof clearTimeout === 'function') {\n      cachedClearTimeout = clearTimeout;\n    } else {\n      cachedClearTimeout = defaultClearTimeout;\n    }\n  } catch (e) {\n    cachedClearTimeout = defaultClearTimeout;\n  }\n})();\n\nfunction runTimeout(fun) {\n  if (cachedSetTimeout === setTimeout) {\n    //normal enviroments in sane situations\n    return setTimeout(fun, 0);\n  } // if setTimeout wasn't available but was latter defined\n\n\n  if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n    cachedSetTimeout = setTimeout;\n    return setTimeout(fun, 0);\n  }\n\n  try {\n    // when when somebody has screwed with setTimeout but no I.E. maddness\n    return cachedSetTimeout(fun, 0);\n  } catch (e) {\n    try {\n      // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n      return cachedSetTimeout.call(null, fun, 0);\n    } catch (e) {\n      // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n      return cachedSetTimeout.call(this, fun, 0);\n    }\n  }\n}\n\nfunction runClearTimeout(marker) {\n  if (cachedClearTimeout === clearTimeout) {\n    //normal enviroments in sane situations\n    return clearTimeout(marker);\n  } // if clearTimeout wasn't available but was latter defined\n\n\n  if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n    cachedClearTimeout = clearTimeout;\n    return clearTimeout(marker);\n  }\n\n  try {\n    // when when somebody has screwed with setTimeout but no I.E. maddness\n    return cachedClearTimeout(marker);\n  } catch (e) {\n    try {\n      // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n      return cachedClearTimeout.call(null, marker);\n    } catch (e) {\n      // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n      // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n      return cachedClearTimeout.call(this, marker);\n    }\n  }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n  if (!draining || !currentQueue) {\n    return;\n  }\n\n  draining = false;\n\n  if (currentQueue.length) {\n    queue = currentQueue.concat(queue);\n  } else {\n    queueIndex = -1;\n  }\n\n  if (queue.length) {\n    drainQueue();\n  }\n}\n\nfunction drainQueue() {\n  if (draining) {\n    return;\n  }\n\n  var timeout = runTimeout(cleanUpNextTick);\n  draining = true;\n  var len = queue.length;\n\n  while (len) {\n    currentQueue = queue;\n    queue = [];\n\n    while (++queueIndex < len) {\n      if (currentQueue) {\n        currentQueue[queueIndex].run();\n      }\n    }\n\n    queueIndex = -1;\n    len = queue.length;\n  }\n\n  currentQueue = null;\n  draining = false;\n  runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n  var args = new Array(arguments.length - 1);\n\n  if (arguments.length > 1) {\n    for (var i = 1; i < arguments.length; i++) {\n      args[i - 1] = arguments[i];\n    }\n  }\n\n  queue.push(new Item(fun, args));\n\n  if (queue.length === 1 && !draining) {\n    runTimeout(drainQueue);\n  }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n  this.fun = fun;\n  this.array = array;\n}\n\nItem.prototype.run = function () {\n  this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n  return [];\n};\n\nprocess.binding = function (name) {\n  throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n  return '/';\n};\n\nprocess.chdir = function (dir) {\n  throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n  return 0;\n};","require('./kiso_themes/kernel');\nrequire('./kiso_themes/fastclick');\nrequire('./kiso_themes/slimscroll');\nrequire('./kiso_themes/metis_menu');\nrequire('./kiso_themes/popper');\nrequire('./kiso_themes/bootstrap');\nrequire('./kiso_themes/sidenav');\nrequire('./kiso_themes/header');\nrequire('./kiso_themes/forms');\nrequire('./kiso_themes/bootstrap_switch');\nrequire('./kiso_themes/sheets');\nrequire('./kiso_themes/gmaps');\nrequire('./kiso_themes/jqvectormaps');\nrequire('./kiso_themes/jasny');\nrequire('./kiso_themes/flot');\nrequire('./kiso_themes/chartjs');\nrequire('./kiso_themes/sparklines');\nrequire('./kiso_themes/easypiechart');\nrequire('./kiso_themes/prettify');\nrequire('./kiso_themes/countTo');\nrequire('./kiso_themes/prism');\nrequire('./kiso_themes/clipboard');\nrequire('./kiso_themes/countdown');\nrequire('./kiso_themes/parallax');\n\nrequire('./kiso_themes/demo/data_generator');\nrequire('./kiso_themes/demo/chartjs');\nrequire('./kiso_themes/demo/dashboard');\nrequire('./kiso_themes/demo/easypiechart');\nrequire('./kiso_themes/demo/flot');\nrequire('./kiso_themes/demo/gmaps');\nrequire('./kiso_themes/demo/jqvectormap');\nrequire('./kiso_themes/demo/sparklines');\n\nrequire('./kiso_themes/inspect_mode/inspect_mode');\n\nPopper.Defaults.modifiers.computeStyle.gpuAcceleration = false;\n//Popper.Defaults.modifiers.computeStyle.enabled = false;\n\n","\nwindow.KisoThemes || (window.KisoThemes = {});\n\n// Get the features array\nKisoThemes.jsLibs = function() {\n  var jsLibs = $('body').data('js-libs');\n  var jsLibsArray = [];\n  if(jsLibs) {\n    jsLibsArray = jsLibs.split(' ');\n  }\n  return jsLibsArray;\n};\n\nKisoThemes.hookOnPageLoad = function( callback ) {\n  if (typeof window.Turbolinks === 'object') {\n    $(document).on('turbolinks:load', function() { callback(); });\n  } else {\n    $(function() { callback(); });\n  }\n}\n\nKisoThemes.jsLibIsActive = function( jsLibName ) {\n  return $.inArray(jsLibName, KisoThemes.jsLibs()) >= 0\n}\n\nKisoThemes.getRootCssVariable = function( varName ) {\n  return KisoThemes.getCssVariable( 'body', varName )\n}\n\nKisoThemes.getCssVariable = function( el, varName ) {\n  var elStyles = window.getComputedStyle(document.querySelector(el));\n  return elStyles.getPropertyValue(varName);\n}\n\nKisoThemes.debounce = function (func, wait, immediate) {\n\tvar timeout;\n\treturn function() {\n\t\tvar context = this, args = arguments;\n\t\tvar later = function() {\n\t\t\ttimeout = null;\n\t\t\tif (!immediate) func.apply(context, args);\n\t\t};\n\t\tvar callNow = immediate && !timeout;\n\t\tclearTimeout(timeout);\n\t\ttimeout = setTimeout(later, wait);\n\t\tif (callNow) func.apply(context, args);\n\t};\n};\n","//= require vendor/fastclick/fastclick\n\n(function() {\n\n  function initFastclick() {\n    if (Modernizr.touch) {\n      FastClick.attach(document.body);\n    }\n  }\n\n  KisoThemes.hookOnPageLoad( function() {\n    KisoThemes.jsLibIsActive('fastclick') && initFastclick.call(this)\n  })\n\n})()\n\n","//= require vendor/metis_menu/metis_menu\n\n(function() {\n  function initMetisMenu() {\n    $('.nav-side-menu').metisMenu({\n      triggerElement: '.nav-link', // bootstrap 4\n      parentTrigger: '.nav-item', // bootstrap 4\n      collapseInClass: 'show'\n    });\n  }\n\n  KisoThemes.hookOnPageLoad( function() {\n    KisoThemes.jsLibIsActive('metis') && initMetisMenu.call(this)\n  })\n})()\n\n","//= require vendor/bootstrap/bootstrap\n\n(function() {\n\n  function initBootstrap() {\n    $('[data-toggle=\"popover\"]').popover({\n      container: 'body'\n    });\n\n    $('[data-toggle=\"tooltip\"]').tooltip({\n      container: 'body'\n    });\n  }\n\n  KisoThemes.hookOnPageLoad( function() {\n    KisoThemes.jsLibIsActive('bootstrap') && initBootstrap.call(this)\n  })\n\n})()\n\n","(function (){\n\n  function getSideNavHeight() {\n    var hasSideNavHeader = $('.navbar-header').length > 0\n    return hasSideNavHeader ? $('.nav-side-menu').outerHeight() - $('.navbar-header').outerHeight() : $('.nav-side-menu').outerHeight()\n  }\n\n  function initSidenav() {\n    var width = document.body.clientWidth;\n    var sideNavTrackColor = KisoThemes.getRootCssVariable('--sidenav-track-color');\n\n    var sideNavContainer = $('.nav-side-container')\n\n    if(!sideNavContainer.length) {\n      return\n    }\n\n    sideNavContainer = $(sideNavContainer[0]);\n\n    $('.SideNavToggle').on('click', function() {\n      $('body').toggleClass(\n        'show-sidebar'\n      )\n    })\n\n    if (!Modernizr.touch && width > 992) {\n      sideNavContainer.slimScroll({\n        height: getSideNavHeight(),\n        color: sideNavTrackColor,\n        size: '4px',\n        opacity: 0.9,\n        wheelStep: 15,\n        distance: '0',\n        railVisible: false,\n        railOpacity: 1\n      });\n\n      sideNavContainer.mouseover();\n    } else {\n      sideNavContainer.slimScroll({ destroy: 'true' });\n\n      sideNavContainer.mouseover();\n    }\n\n    $(window).on('resize', KisoThemes.debounce(function() {\n      if (Modernizr.touch) return;\n\n      width = document.body.clientWidth;\n\n      if (width < 992) {\n        sideNavContainer.slimScroll({ destroy: 'true' });\n        sideNavContainer.height('auto')\n\n        sideNavContainer.mouseover();\n      } else {\n        sideNavContainer.slimScroll({ destroy: 'true' });\n        sideNavContainer.slimScroll({\n          height: getSideNavHeight(),\n          color: sideNavTrackColor,\n          size: '4px',\n          opacity: 0.9,\n          wheelStep: 15,\n          distance: '0',\n          railVisible: false,\n          railOpacity: 1\n        });\n\n        sideNavContainer.mouseover();\n      }\n    }, 250));\n  }\n\n  KisoThemes.hookOnPageLoad( function() {\n    KisoThemes.jsLibIsActive('sidenav') && initSidenav.call(this)\n  })\n})()\n\n","!function( $ ) {\n\n  $(function () {\n    \n    // fix sub nav on scroll\n    var $win = $(window)\n      , $bar = $('header hr')\n      , barTop = $('header hr').length && $('header hr').offset().top - 58\n      , isFixed = 0\n\n    function processScroll() {\n      var i, scrollTop = $win.scrollTop()\n      if (scrollTop >= barTop && !isFixed) {\n        isFixed = 1\n        $bar.addClass('bar-fixed')\n      } else if (scrollTop <= barTop && isFixed) {\n        isFixed = 0\n        $bar.removeClass('bar-fixed')\n      }\n    }\n    \n    if (!$(\"header .navbar\").hasClass(\"navbar-fixed-top\")) {\n      // Navbar is static, bar should be too\n    } else if ($(\"header #featured\")[0]) {\n      processScroll()\n      $win.on('scroll', processScroll)\n    } else {\n      $bar.addClass('bar-fixed')\n    }\n\n  })\n\n}( window.jQuery )\n","(function() {\n  function initForms() {\n    $('.form-control').on('focus', function() {\n      $(this).parent('.input-group').addClass('input-group-focus');\n    }).on('blur', function() {\n      $(this).parent('.input-group').removeClass('input-group-focus');\n    });\n  }\n\n  KisoThemes.hookOnPageLoad( function() {\n    KisoThemes.jsLibIsActive('forms') && initForms.call(this)\n  })\n})()\n","//= require vendor/bootstrap_switch/bootstrap_switch\n\n(function() {\n\n  function initBootstrapSwitch() {\n    $('.bootstrap-switch').each(function() {\n      $this = $(this);\n      data_on_label = $this.data('on-label') || '';\n      data_off_label = $this.data('off-label') || '';\n\n      $this.bootstrapSwitch({\n        onText: data_on_label,\n        offText: data_off_label\n      });\n    });\n  }\n\n  KisoThemes.hookOnPageLoad( function() {\n    KisoThemes.jsLibIsActive('bs-switch') && initBootstrapSwitch.call(this)\n  })\n\n})()\n\n","\n(function() {\n  function initFormSheets() {\n    // This is the fix for when Webkit decides to autofill a field,\n    // and it causes the label being used as a placeholder to be seen underneath\n    // the autofilled text.\n    var attemptCount = 0;\n    var intervalId = window.setInterval(function(){\n      try {\n        $('.form-sheet').find('input:-webkit-autofill').each(function(){\n          hideLabel(this);\n          attemptCount++;\n\n          if(attemptCount > 3) {\n            clearInterval(intervalId);\n          }\n        });\n      } catch( e ) { /* Do Nothing */ }\n    }, 300);\n\n    // Use label as placeholder in sheet forms, as placeholder can't be styled fully in most browsers.\n\n    $(\".form-sheet\").find(\"input, textarea\")\n\n    .bind(\"keydown.formsheet\", function(e) {\n      checkForChange(e)\n    })\n\n    .change(function() {\n      if (this.value == \"\") {\n        showLabel(this)\n      } else {\n        hideLabel(this)\n      }\n    })\n\n    .focus(function() {\n      findLabel(this).addClass(\"focused\")\n    })\n\n    .blur(function() {\n      if (this.value == \"\") {\n        showLabel(this)\n      } else {\n        hideLabel(this)\n      }\n\n      findLabel(this).removeClass(\"focused\")\n    })\n\n    // Ensure inputs with some values on load have their label hidden.\n    .each(function() {\n      $(this).triggerHandler(\"blur\")\n    })\n\n    // Apply .focused class to inputs already focused on page load.\n    .filter(\":focus\")\n    .each(function() {\n      findLabel(this).addClass(\"focused\")\n    })\n    .end()\n\n    function checkForChange(e) {\n      if(\te.keyCode == 9  || // Skip Tab\n         e.keyCode == 16 || // Skip Shift\n           e.keyCode == 17 || // Skip Control\n             e.keyCode == 18 || // Skip Option\n               e.keyCode == 91 || // Skip LCommand\n                 e.keyCode == 93    // Skip RCommand\n        ) return;\n\n      hideLabel(e.target)\n    }\n\n    function hideLabel(input) {\n      findLabel(input).hide()\n      $(input).unbind(\"keydown.formsheet\")\n    }\n\n    function showLabel(input) {\n      findLabel(input).show()\n      $(input).bind(\"keydown.form-sheet\", function(e) {\n        checkForChange(e)\n      })\n    }\n\n    function findLabel(input) {\n      return $(input).parents(\".form-group\").find(\"label.form-label\")\n    }\n  }\n\n  KisoThemes.hookOnPageLoad( function() {\n    KisoThemes.jsLibIsActive('form-sheets') && initFormSheets.call(this)\n  })\n\n\n})()\n\n","\n(function() {\n  function initGMaps() {\n  }\n\n  KisoThemes.hookOnPageLoad( function() {\n    KisoThemes.jsLibIsActive('gmaps') && initGMaps.call(this)\n  })\n})()\n","\n//= require vendor/jqvectormaps/jquery-jvectormap\n//= require vendor/jqvectormaps/maps/jquery-jvectormap-au-mill-en\n//= require vendor/jqvectormaps/maps/jquery-jvectormap-cn-mill-en\n//= require vendor/jqvectormaps/maps/jquery-jvectormap-de-mill-en\n//= require vendor/jqvectormaps/maps/jquery-jvectormap-europe-mill-en\n//= require vendor/jqvectormaps/maps/jquery-jvectormap-fr-mill-en\n//= require vendor/jqvectormaps/maps/jquery-jvectormap-in-mill-en\n//= require vendor/jqvectormaps/maps/jquery-jvectormap-us-aea-en\n//= require vendor/jqvectormaps/maps/jquery-jvectormap-world-mill-en\n//= require vendor/jqvectormaps/maps/jquery-jvectormap-za-mill-en\n//= require vendor/jqvectormaps/maps/jquery-jvectormap-ca-mill\n\n(function() {\n\n  function initVectorMap() {\n  }\n\n  KisoThemes.hookOnPageLoad( function() {\n    KisoThemes.jsLibIsActive('vectormaps') && initVectorMap.call(this)\n  })\n\n})()\n\n","//= require vendor/jasny/jasny_bootstrap\n\n(function() {\n\n  function initJasny() {\n  }\n\n  KisoThemes.hookOnPageLoad( function() {\n    KisoThemes.jsLibIsActive('jasny') && initJasny.call(this)\n  })\n\n})()\n\n","\n(function() {\n  function initFlot() {\n  }\n\n  KisoThemes.hookOnPageLoad( function() {\n    KisoThemes.jsLibIsActive('flot') && initFlot.call(this)\n  })\n})()\n\n\n","\n(function() {\n\n  function initChartJS() {\n  }\n\n  KisoThemes.hookOnPageLoad( function() {\n    KisoThemes.jsLibIsActive('chartjs') && initChartJS.call(this)\n  })\n\n})()\n","//= require vendor/easypiechart/jquery.easypiechart\n\n(function() {\n\n  function initEasyPieChart() {\n  }\n\n  KisoThemes.hookOnPageLoad( function() {\n    KisoThemes.jsLibIsActive('easypiechart') && initEasyPieChart.call(this)\n  })\n\n})()\n","//= require vendor/prettify/prettify\n\n(function() {\n  function initPrettify() {\n    PR.prettyPrint()\n  }\n\n  KisoThemes.hookOnPageLoad( function() {\n    KisoThemes.jsLibIsActive('prettify') && initPrettify.call(this)\n  })\n})()\n\n","//= require vendor/prism/prism\n\n(function() {\n  function initPrism() {\n  }\n\n  KisoThemes.hookOnPageLoad( function() {\n    KisoThemes.jsLibIsActive('prism') && initPrism.call(this)\n  })\n})()\n","//= require vendor/clipboardjs/clipboard\n\n(function() {\n\n  function initClipboard() {\n  }\n\n  KisoThemes.hookOnPageLoad( function() {\n    KisoThemes.jsLibIsActive('clipboard') && initClipboard.call(this)\n  })\n\n})()\n","//= require vendor/countdown/countdown\n\n(function() {\n\n  function initCountdown() {\n    var els = $('.countdown')\n\n    els.each(function() {\n      var el = $(this)\n      var countDownTo = el.attr('data-countdownto')\n\n      el.countdown(countDownTo, function(event) {\n        var $this = $(this).html(event.strftime(''\n                                                + '<div class=\"countDownWrap\"><span class=\"digits\">%-D</span> <div class=\"digits-label\">day%!d</div></div> '\n                                                + '<div class=\"countDownWrap\"><span class=\"digits\">%H</span> <div class=\"digits-label\">hours</div></div> '\n                                                + '<div class=\"countDownWrap\"><span class=\"digits\">%M</span> <div class=\"digits-label\">minutes</div></div> '\n                                                + '<div class=\"countDownWrap\"><span class=\"digits\">%S</span> <div class=\"digits-label\">seconds</div></div> '))\n\n      })\n    })\n  }\n\n  KisoThemes.hookOnPageLoad( function() {\n    KisoThemes.jsLibIsActive('countdown') && initCountdown.call(this)\n  })\n\n})()\n\n","//= require vendor/parallax/parallax\n\n(function() {\n\n  function initParallax() {\n    $('[data-parallax=\"scroll\"]').parallax();\n  }\n\n  KisoThemes.hookOnPageLoad( function() {\n    KisoThemes.jsLibIsActive('parallax') && initParallax.call(this)\n  })\n\n})()\n\n","import DataGenerator from './data_generator';\n\n(function() {\n\n  if(window.Chart) {\n    Chart.defaults.global.defaultFontColor              = '#555555';\n    Chart.defaults.scale.gridLines.color                = \"rgba(0,0,0,.04)\";\n    Chart.defaults.scale.gridLines.zeroLineColor        = \"rgba(0,0,0,.1)\";\n    Chart.defaults.scale.ticks.beginAtZero              = true;\n    Chart.defaults.global.elements.line.borderWidth     = 2;\n    Chart.defaults.global.elements.point.radius         = 5;\n    Chart.defaults.global.elements.point.hoverRadius    = 7;\n    Chart.defaults.global.tooltips.cornerRadius         = 3;\n    Chart.defaults.global.legend.labels.boxWidth        = 6;\n  }\n\n  function lineCharts(el, type) {\n    var chartLinesCon  = jQuery(el);\n\n    var data = {\n      labels: ['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN'],\n      datasets: [\n        {\n        label: 'Refunds',\n        fill: true,\n        backgroundColor: '#81A2D0',\n        borderColor: 'rgba(66,165,245,1)',\n        pointBackgroundColor: 'rgba(66,165,245,1)',\n        pointBorderColor: '#fff',\n        pointHoverBackgroundColor: '#fff',\n        pointHoverBorderColor: 'rgba(66,165,245,1)',\n        data: [19, 20, 8, 32, 100, 15, 99]\n      },\n      {\n        label: 'Sales',\n        fill: true,\n        backgroundColor: '#e9f4fb',\n        borderColor: '#A3D9FE',\n        pointBackgroundColor: '#A3D9FE',\n        pointBorderColor: '#fff',\n        pointHoverBackgroundColor: '#fff',\n        pointHoverBorderColor: 'rgba(66,165,245,1)',\n        data: [200, 192, 220, 240, 200, 131, 126]\n      }\n      ]\n    };\n\n    if(chartLinesCon.length > 0) {\n      new Chart(chartLinesCon, { type: type, data: data });\n    }\n  }\n\n  function roundChart(el, type) {\n    var chart  = jQuery(el);\n\n    var data = {\n      labels: [\n        'New Issues',\n        'Closed Issues',\n        'Reopened Issues'\n      ],\n      datasets: [{\n        data: [\n          67,\n          23,\n          10\n        ],\n        backgroundColor: [\n          'rgba(156,204,101,1)',\n          'rgba(255,202,40,1)',\n          'rgba(239,83,80,1)'\n        ],\n        hoverBackgroundColor: [\n          'rgba(156,204,101,.5)',\n          'rgba(255,202,40,.5)',\n          'rgba(239,83,80,.5)'\n        ]\n      }]\n    };\n\n    if(chart.length > 0) {\n      new Chart(chart, { type: type, data: data });\n    }\n  }\n\n  function initChartJsDemo() {\n    lineCharts('.sales-vs-refunds', 'line');\n    lineCharts('.sales-vs-refunds-bars', 'bar');\n    lineCharts('.demo-radar', 'radar');\n    roundChart('.demo-pie', 'pie')\n    roundChart('.demo-polar', 'polarArea')\n    roundChart('.demo-doughnut', 'doughnut')\n\n    lineCharts('[data-chartjs-line-demo]', 'line');\n  }\n\n  KisoThemes.hookOnPageLoad( function() {\n    KisoThemes.jsLibIsActive('demo-chartjs') && initChartJsDemo.call(this)\n  })\n})()\n\n","import DataGenerator from './data_generator';\n\nif(window.Chart) {\n  Chart.defaults.global.defaultFontColor              = '#555555';\n  Chart.defaults.scale.gridLines.color                = \"rgba(0,0,0,.04)\";\n  Chart.defaults.scale.gridLines.zeroLineColor        = \"rgba(0,0,0,.1)\";\n  Chart.defaults.scale.ticks.beginAtZero              = true;\n  Chart.defaults.global.elements.line.borderWidth     = 2;\n  Chart.defaults.global.elements.point.radius         = 5;\n  Chart.defaults.global.elements.point.hoverRadius    = 7;\n  Chart.defaults.global.tooltips.cornerRadius         = 3;\n  Chart.defaults.global.legend.labels.boxWidth        = 12;\n}\n\n(function() {\n  function flotRealtime() {\n    if ($('.flot-realtime').length === 0) {\n      return;\n    }\n\n    var dataGenerator = new DataGenerator(200);\n    var plot = $.plot($('.flot-realtime'), [dataGenerator.getRandomizedData()], {\n      series: {\n        shadowSize: 0\n      },\n      colors: [\n        KisoThemes.getRootCssVariable('--metric-chart-fill-color'),\n        KisoThemes.getRootCssVariable('--metric-chart-fill-color-1'),\n        KisoThemes.getRootCssVariable('--metric-chart-fill-color-2')\n      ],\n      lines: {\n        fill: true,\n        fillColor: {\n          colors: [{opacity: 1}, {opacity: .3}]\n        }\n      },\n      yaxis: {\n        min: 0,\n        max: 100\n      },\n      xaxis: {\n        show: false\n      }\n    });\n\n    function update() {\n      plot.setData([dataGenerator.getRandomizedData()]);\n      plot.draw();\n\n      if (!Modernizr.touch) {\n        window.requestAnimationFrame(update);\n      } else {\n        setTimeout(update, 1000);\n      }\n    }\n\n    update();\n  }\n\n  function displayRandomMetricCharts() {\n    var randomMetricGraphs = jQuery('.metric-random-graph');\n\n    if(randomMetricGraphs.length > 0) {\n      randomMetricGraphs.each(function(i, graph) {\n        var isDetailGraph = $(graph).hasClass('detail-graph')\n\n        var data = Array.apply(null, Array(10)).map(function() { return Math.floor(Math.random() * 100 % 100); })\n        var lablels = null;\n\n        if(isDetailGraph) {\n          var monthNames = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n          var endDate = new Date()\n          var startDate = new Date(new Date().setDate(endDate.getDate()-30))\n          labels = Array(Math.floor((endDate - startDate) / 86400000) + 1).fill().map( function(_, idx) {\n            var d = new Date(startDate.getTime() + idx * 86400000)\n            return monthNames[d.getMonth()] + ' ' + d.getDate()\n          })\n          data = Array.apply(null, Array(31)).map(function() { return Math.floor(Math.random() * 100 % 100); })\n        }\n\n        var metricChartFillColor = KisoThemes.getRootCssVariable('--metric-chart-fill-color');\n        var metricChartBorderColor = KisoThemes.getRootCssVariable('--metric-chart-border-color');\n\n        var graphData = {\n          datasets: [{\n            fill: true,\n            backgroundColor: metricChartFillColor,\n            borderColor: metricChartBorderColor,\n            borderWidth: 4,\n            pointRadius: 0,\n            data: data\n          }]\n        };\n\n        if(isDetailGraph) {\n          graphData.labels = labels\n          graphData.datasets[0].pointBackgroundColor = 'rgba(66,165,245,1)';\n          graphData.datasets[0].pointBorderColor= '#fff';\n          graphData.datasets[0].pointHoverBackgroundColor= '#fff';\n          graphData.datasets[0].pointHoverBorderColor= 'rgba(66,165,245,1)';\n          graphData.datasets[0].pointRadius = 4;\n          graphData.datasets[0].borderWidth = 2;\n        }\n\n        new Chart(graph, { type: 'line', data: graphData, options: {\n          maintainAspectRatio: false,\n          responsive: true,\n          legend: {\n            display: false\n          },\n          scales: {\n            xAxes: [{\n              display: isDetailGraph,\n              gridLines: {\n                    display: isDetailGraph,\n                    drawBorder: false,\n                    drawOnChartArea: true,\n                    drawTicks: isDetailGraph,\n                }\n            }],\n\n            yAxes: [{\n              display: isDetailGraph,\n              gridLines: {\n                    display: isDetailGraph,\n                    drawBorder: false,\n                    drawOnChartArea: true,\n                    drawTicks: isDetailGraph,\n                }\n            }]\n          }\n        } })\n      });\n    }\n\n  }\n\n  function salesVsRefunds() {\n    var chartLinesCon  = jQuery('.sales-vs-refunds');\n\n    var metricChartFillColor = KisoThemes.getRootCssVariable('--metric-chart-fill-color');\n    var metricChartFillColorAlt = KisoThemes.getRootCssVariable('--metric-chart-fill-color-1');\n    var metricChartBorderColor = KisoThemes.getRootCssVariable('--metric-chart-border-color');\n\n    var chartLinesBarsRadarData = {\n      labels: ['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN'],\n      datasets: [\n        {\n        label: 'Refunds',\n        fill: true,\n        backgroundColor: metricChartBorderColor,\n        borderColor: metricChartFillColor,\n        pointBackgroundColor: 'rgba(66,165,245,1)',\n        pointBorderColor: '#fff',\n        pointHoverBackgroundColor: '#fff',\n        pointHoverBorderColor: 'rgba(66,165,245,1)',\n        data: [19, 20, 8, 32, 100, 15, 99]\n      },\n      {\n        label: 'Sales',\n        fill: true,\n        backgroundColor: metricChartFillColorAlt,\n        borderColor: metricChartBorderColor,\n        pointBackgroundColor: metricChartFillColorAlt,\n        pointBorderColor: '#fff',\n        pointHoverBackgroundColor: '#fff',\n        pointHoverBorderColor: 'rgba(66,165,245,1)',\n        data: [200, 192, 220, 240, 200, 131, 126]\n      }\n      ]\n    };\n\n    if(chartLinesCon.length > 0) {\n      new Chart(chartLinesCon, { type: 'line', data: chartLinesBarsRadarData });\n    }\n\n\n  }\n  function initDashboardDemo() {\n    function count(options) {\n      var $this = $(this);\n      options = $.extend({}, options || {}, $this.data('countToOptions') || {});\n      $this.countTo(options);\n    }\n\n    $('.counter').data('countToOptions', {\n      onComplete: function (value) {\n        var timeout = setTimeout(function() {\n          count.call(this, {\n            from: value,\n            to: value + (Math.random()*100)\n          });\n          clearTimeout(timeout)\n        }.bind(this), 2000 + Math.floor(Math.random() * 10000))\n      },\n      formatter: function (value, options) {\n        return value.toFixed(0).replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, \"$1,\")\n      }\n    });\n\n    $('.cash-counter').data('countToOptions', {\n      onComplete: function (value) {\n        var timeout = setTimeout(function() {\n          count.call(this, {\n            from: value,\n            to: value + (Math.floor(value * (1/90)))\n          });\n          clearTimeout(timeout)\n        }.bind(this), 3550 + Math.floor(Math.random() * 10000))\n      },\n      formatter: function (value, options) {\n        return '$' + value.toFixed(0).replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, \"$1,\")\n      }\n    });\n\n    $('.counter').each(count)\n    $('.cash-counter').each(count)\n\n\n    displayRandomMetricCharts();\n    flotRealtime();\n    salesVsRefunds();\n  }\n\n  KisoThemes.hookOnPageLoad( function() {\n    KisoThemes.jsLibIsActive('demo-dashboard') && initDashboardDemo.call(this)\n  })\n})()\n\n","\n(function() {\n  function initEasyPieChartDemo() {\n\n    jQuery('.js-pie-chart:not(.js-pie-chart-enabled)').each(function(){\n      var el = jQuery(this);\n\n      // Add .js-pie-chart-enabled class to tag it as activated\n      el.addClass('js-pie-chart-enabled');\n\n      // Init\n      el.easyPieChart({\n        barColor: el.data('bar-color') || '#777777',\n        trackColor: el.data('track-color') || '#eeeeee',\n        lineWidth: el.data('line-width') || 3,\n        size: el.data('size') || '80',\n        animate: el.data('animate') || 750,\n        scaleColor: el.data('scale-color') || false\n      });\n    });\n\n    jQuery('.js-pie-randomize').on('click', function(){\n            jQuery(this)\n                .parents('.block')\n                .find('.pie-chart')\n                .each(function() {\n                    var random = Math.floor((Math.random() * 100) + 1);\n\n                    jQuery(this)\n                        .data('easyPieChart')\n                        .update(random);\n                });\n        });\n  }\n\n  KisoThemes.hookOnPageLoad( function() {\n    KisoThemes.jsLibIsActive('demo-easypiechart') && initEasyPieChartDemo.call(this)\n  })\n\n})()\n\n","\nimport DataGenerator from './data_generator';\n\n(function() {\n\n  function initFlotDemo() {\n    var dataEarnings    = [[1, 1500], [2, 1700], [3, 1400], [4, 1900], [5, 2500], [6, 2300], [7, 2700], [8, 3200], [9, 3500], [10, 3260], [11, 4100], [12, 4600]];\n    var dataSales       = [[1, 500], [2, 600], [3, 400], [4, 750], [5, 1150], [6, 950], [7, 1400], [8, 1700], [9, 1800], [10, 1300], [11, 1750], [12, 2900]];\n\n    var dataSalesBefore = [[1, 500], [4, 600], [7, 1000], [10, 600], [13, 800], [16, 1200], [19, 1500], [22, 1600], [25, 2500], [28, 2700], [31, 3500], [34, 4500]];\n    var dataSalesAfter  = [[2, 900], [5, 1200], [8, 2000], [11, 1200], [14, 1600], [17, 2400], [20, 3000], [23, 3200], [26, 5000], [29, 5400], [32, 7000], [35, 9000]];\n\n    var dataMonths      = [[1, 'Jan'], [2, 'Feb'], [3, 'Mar'], [4, 'Apr'], [5, 'May'], [6, 'Jun'], [7, 'Jul'], [8, 'Aug'], [9, 'Sep'], [10, 'Oct'], [11, 'Nov'], [12, 'Dec']];\n    var dataMonthsBars  = [[2, 'Jan'], [5, 'Feb'], [8, 'Mar'], [11, 'Apr'], [14, 'May'], [17, 'Jun'], [20, 'Jul'], [23, 'Aug'], [26, 'Sep'], [29, 'Oct'], [32, 'Nov'], [35, 'Dec']];\n\n    function flotRealtime(el) {\n      var dataGenerator = new DataGenerator(200);\n      var plot = $.plot(el, [dataGenerator.getRandomizedData()], {\n        series: {\n          shadowSize: 0\n        },\n        lines: {\n          fill: true,\n          fillColor: {\n            colors: [{opacity: 1}, {opacity: .3}]\n          }\n        },\n        yaxis: {\n          min: 0,\n          max: 100\n        },\n        xaxis: {\n          show: false\n        }\n      });\n\n      function update() {\n        plot.setData([dataGenerator.getRandomizedData()]);\n        plot.draw();\n\n        if (!Modernizr.touch) {\n          setTimeout(function() { window.requestAnimationFrame(update)}, 24);\n        } else {\n          setTimeout(function() { window.requestAnimationFrame(update) }, 1000);\n        }\n      }\n\n      update();\n    }\n\n    function flotLine(el) {\n\n      $.plot(el,\n             [\n               {\n               label: 'Earnings',\n               data: dataEarnings,\n               lines: {\n                 show: true,\n                 fill: true,\n                 fillColor: {\n                   colors: [{opacity: .7}, {opacity: .7}]\n                 }\n               },\n               points: {\n                 show: true,\n                 radius: 5\n               }\n             },\n             {\n               label: 'Sales',\n               data: dataSales,\n               lines: {\n                 show: true,\n                 fill: true,\n                 fillColor: {\n                   colors: [{opacity: .5}, {opacity: .5}]\n                 }\n               },\n               points: {\n                 show: true,\n                 radius: 5\n               }\n             }\n             ],\n             {\n               colors: ['#ffca28', '#555555'],\n               legend: {\n                 show: true,\n                 position: 'nw',\n                 backgroundOpacity: 0\n               },\n               grid: {\n                 borderWidth: 0,\n                 hoverable: true,\n                 clickable: true\n               },\n               yaxis: {\n                 tickColor: '#ffffff',\n                 ticks: 3\n               },\n               xaxis: {\n                 ticks: dataMonths,\n                 tickColor: '#f5f5f5'\n               }\n             }\n            );\n    }\n\n    function flotStacked(el) {\n      $.plot(el,\n             [\n               {\n               label: 'Sales',\n               data: dataSales\n             },\n             {\n               label: 'Earnings',\n               data: dataEarnings\n             }\n             ],\n             {\n               colors: ['#555555', '#26c6da'],\n               series: {\n                 stack: true,\n                 lines: {\n                   show: true,\n                   fill: true\n                 }\n               },\n               lines: {show: true,\n                 lineWidth: 0,\n                 fill: true,\n                 fillColor: {\n                   colors: [{opacity: 1}, {opacity: 1}]\n                 }\n               },\n               legend: {\n                 show: true,\n                 position: 'nw',\n                 sorted: true,\n                 backgroundOpacity: 0\n               },\n               grid: {\n                 borderWidth: 0\n               },\n               yaxis: {\n                 tickColor: '#ffffff',\n                 ticks: 3\n               },\n               xaxis: {\n                 ticks: dataMonths,\n                 tickColor: '#f5f5f5'\n               }\n             }\n            );\n    }\n\n    function flotBars(el) {\n      $.plot(el,\n             [\n               {\n               label: 'Sales Before Release',\n               data: dataSalesBefore,\n               bars: {\n                 show: true,\n                 lineWidth: 0,\n                 fillColor: {\n                   colors: [{opacity: .75}, {opacity: .75}]\n                 }\n               }\n             },\n             {\n               label: 'Sales After Release',\n               data: dataSalesAfter,\n               bars: {\n                 show: true,\n                 lineWidth: 0,\n                 fillColor: {\n                   colors: [{opacity: .75}, {opacity: .75}]\n                 }\n               }\n             }\n             ],\n             {\n               colors: ['#ef5350', '#9ccc65'],\n               legend: {\n                 show: true,\n                 position: 'nw',\n                 backgroundOpacity: 0\n               },\n               grid: {\n                 borderWidth: 0\n               },\n               yaxis: {\n                 ticks: 3,\n                 tickColor: '#f5f5f5'\n               },\n               xaxis: {\n                 ticks: dataMonthsBars,\n                 tickColor: '#f5f5f5'\n               }\n             }\n            );\n    }\n\n    function flotPie(el) {\n      $.plot(el,\n             [\n               {\n               label: 'Sales',\n               data: 15\n             },\n             {\n               label: 'Tickets',\n               data: 12\n             },\n             {\n               label: 'Earnings',\n               data: 73\n             }\n             ],\n             {\n               colors: ['#26c6da', '#ffca28', '#9ccc65'],\n               legend: {show: false},\n               series: {\n                 pie: {\n                   show: true,\n                   radius: 1,\n                   label: {\n                     show: true,\n                     radius: 2/3,\n                     formatter: function(label, pieSeries) {\n                       return '<div class=\"flot-pie-label\">' + label + '<br>' + Math.round(pieSeries.percent) + '%</div>';\n                     },\n                     background: {\n                       opacity: .75,\n                       color: '#000000'\n                     }\n                   }\n                 }\n               }\n             }\n            );\n    }\n\n    flotRealtime('.demo-realtime')\n    flotLine('.demo-line')\n    flotStacked('.demo-stacked')\n    flotBars('.demo-bars')\n    flotPie('.demo-pie')\n  }\n\n  KisoThemes.hookOnPageLoad( function() {\n    KisoThemes.jsLibIsActive('demo-flot') && initFlotDemo.call(this)\n  })\n})()\n\n","\n(function() {\n  function dashboardGmap() {\n    if ($('#gmapDemo')[0] === undefined || !KisoThemes.jsLibIsActive('gmaps')) {\n      return;\n    }\n\n    var oldMarker;\n\n    var map = new GMaps({\n      div: '#gmapDemo',\n      lat: 0,\n      lng: 0,\n      disableDefaultUI: true,\n      scaleControl: false,\n      scrollwheel: false,\n      disableDoubleClickZoom: true,\n      zoomControl: true,\n      zoomControlOpt: {\n        style: 'SMALL',\n        position: 'TOP_RIGHT'\n      },\n      height: '485px',\n      zoom: 1\n    });\n\n    function removeMarkers() {\n      map.removeMarkers();\n    }\n\n    function update() {\n      map.addMarker({\n        lat: Math.random() * 280,\n        lng: Math.random() * 360\n      });\n\n      if (!Modernizr.touch) {\n        setTimeout(update, Math.random() * 1000);\n        setTimeout(removeMarkers, 10000);\n      }\n    }\n\n    update();\n  }\n\n  function makeGmap(el, type, opts) {\n    var satelliteGmap = $(el)\n    if(satelliteGmap.length === 0) {\n      return\n    }\n\n    var defaultOpts = {\n      div: el,\n      lat: '55.855573',\n      lng: '-4.3728844',\n      mapType: type,\n      disableDefaultUI: true,\n      scaleControl: false,\n      scrollwheel: false,\n      disableDoubleClickZoom: false,\n      zoomControl: true,\n      zoomControlOpt: {\n        style: 'SMALL',\n        position: 'TOP_RIGHT'\n      },\n      height: '485px',\n      zoom: 5\n    }\n\n\n    for (var attrname in opts) { defaultOpts[attrname] = opts[attrname]; }\n\n    var map = new GMaps(defaultOpts);\n\n    return map\n  }\n\n  function createStreetview( el, lat, long, heading, pitch ) {\n    if ($(el).length) {\n      return new GMaps.createPanorama({\n        el: el,\n        lat: lat,\n        lng: long,\n        pov: { heading: heading, pitch: pitch },\n        scrollwheel: false\n      });\n    }\n  }\n\n  function drawMapOverlay(map, lat, long, content) {\n    map.drawOverlay({\n      lat: lat,\n      lng: long,\n      content: content\n    });\n  }\n\n  function initGmapsDemo() {\n    dashboardGmap();\n\n    if($('.gmap-satellite').length) {\n      makeGmap('.gmap-satellite', 'satellite');\n    }\n\n    if($('.gmap-terrain').length) {\n      makeGmap('.gmap-terrain', 'terrain');\n    }\n\n    if($('.gmap-hybrid').length) {\n      makeGmap('.gmap-hybrid', 'hybrid');\n    }\n\n    if($('.gmap-roadmap').length) {\n      makeGmap('.gmap-roadmap', 'roadmap');\n    }\n\n    if($('.gmap-default').length) {\n      makeGmap('.gmap-default', 'roadmap');\n    }\n\n    if($('#gmap-streetview').length) {\n      createStreetview('#gmap-streetview', '55.8611768', '-4.2538145', 250, 9);\n    }\n\n    if($('.gmap-overlay').length) {\n      var overlayMap = makeGmap('.gmap-overlay', 'satellite')\n      drawMapOverlay(overlayMap, '55.855573', '-4.3728844','<div class=\"alert alert-danger\">ZOMBIES ALERT</div>')\n    }\n\n    if($('.gmap-markers').length) {\n      var markerMap = makeGmap('.gmap-markers', 'roadmap');\n      markerMap.addMarker({\n        lat: 55.855573,\n        lng: -4.3728844,\n        title: 'Zombies',\n        animation: google.maps.Animation.DROP,\n        click: function(e) {\n          alert('You clicked in this marker');\n        }\n      });\n    }\n\n    if($('.gmap-polygons').length) {\n      var polyMap = makeGmap('.gmap-polygons', 'roadmap', {zoom: 15, lat: '55.863340', lng:'-4.254116'});\n      var path = [[55.864894, -4.261562], [55.864581, -4.249031], [55.861907, -4.252507],\t[55.862678, -4.262678]];\n\n      polygon = polyMap.drawPolygon({\n        paths: path, // pre-defined polygon shape\n        strokeColor: '#BBD8E9',\n        strokeOpacity: 1,\n        strokeWeight: 3,\n        fillColor: '#BBD8E9',\n        fillOpacity: 0.6\n      });\n    }\n  }\n\n  KisoThemes.hookOnPageLoad( function() {\n    KisoThemes.jsLibIsActive('demo-gmaps') && initGmapsDemo.call(this)\n  })\n\n})()\n\n","(function() {\n\n  function makeJqvMap(el, type, opts) {\n    var defaultOpts = {\n      map: type,\n      backgroundColor: '#ffffff',\n      regionStyle: {\n        initial: {\n          fill: '#42a5f5',\n          'fill-opacity': 1,\n          stroke: 'none',\n          'stroke-width': 0,\n          'stroke-opacity': 1\n        },\n        hover: {\n          'fill-opacity': .8,\n          cursor: 'pointer'\n        }\n      }\n    }\n\n    for (var attrname in opts) { defaultOpts[attrname] = opts[attrname]; }\n    el.vectorMap(defaultOpts)\n  }\n\n  function initJqvDemoMaps() {\n    makeJqvMap($('.jqv-world-map'), 'world_mill_en')\n\n    makeJqvMap($('.jqv-inverse-world-map'), 'world_mill_en', {\n      backgroundColor: '#193341',\n      regionStyle: {\n        initial: {\n          fill: '#3C6A81',\n          'fill-opacity': 0.8,\n          stroke: 'none',\n          'stroke-width': 1,\n          'stroke-opacity': 1\n        },\n        hover: {\n          fill: '#FFF',\n          'fill-opacity': 1\n        }\n      }\n    })\n\n    makeJqvMap($('.jqv-canada-map'), 'ca_mill')\n\n    makeJqvMap($('.jqv-europe-map'), 'europe_mill_en')\n    makeJqvMap($('.jqv-us-map'), 'us_aea_en')\n    makeJqvMap($('.jqv-india-map'), 'in_mill_en')\n    makeJqvMap($('.jqv-china-map'), 'cn_mill_en')\n    makeJqvMap($('.jqv-australia-map'), 'au_mill_en')\n    makeJqvMap($('.jqv-southafrica-map'), 'za_mill_en')\n    makeJqvMap($('.jqv-france-map'), 'fr_mill_en')\n    makeJqvMap($('.jqv-germany-map'), 'de_mill_en')\n\n  }\n\n\n  KisoThemes.hookOnPageLoad( function() {\n    KisoThemes.jsLibIsActive('demo-jqvectormap') && initJqvDemoMaps.call(this)\n  })\n\n})()\n\n","\n(function() {\n\n  function lineSparks(el, opts) {\n    var lineSpark = jQuery(el);\n\n    var defaultOpts = {\n      type: 'line',\n      width: '100px',\n      height: '60px',\n      tooltipOffsetX: -25,\n      tooltipOffsetY: 20,\n      lineColor: '#ffca28',\n      fillColor: '#ffca28',\n      spotColor: '#555',\n      minSpotColor: '#555',\n      maxSpotColor: '#555',\n      highlightSpotColor: '#555',\n      highlightLineColor: '#555',\n      spotRadius: 2,\n      tooltipPrefix: '',\n      tooltipFormat: '{{prefix}}{{y}}{{suffix}}'\n    };\n\n    for (var attrname in opts) { defaultOpts[attrname] = opts[attrname]; }\n\n    if ( lineSpark.length ) { lineSpark.sparkline('html', defaultOpts); }\n  }\n\n  function barSparks(el, opts) {\n    var barSpark = jQuery(el);\n\n    var defaultOpts = {\n      type: 'bar',\n      barWidth: 8,\n      barSpacing: 6,\n      barColor: '#ffca28',\n      tooltipPrefix: '',\n      tooltipSuffix: ' Tickets',\n      tooltipFormat: '{{prefix}}{{value}}{{suffix}}',\n      enableTagOptions: true\n    };\n\n    for (var attrname in opts) { defaultOpts[attrname] = opts[attrname]; }\n\n    if ( barSpark.length ) { barSpark.sparkline('html', defaultOpts); }\n  }\n\n  function pieSparks(el, opts) {\n    var pieSpark = jQuery(el);\n\n    var defaultOpts = {\n      type: 'pie',\n      width: '80px',\n      height: '80px',\n      sliceColors: ['#ffca28','#9ccc65', '#42a5f5','#ef5350'],\n      highlightLighten: 1.1,\n      tooltipPrefix: '',\n      tooltipSuffix: ' Tickets',\n      tooltipFormat: '{{prefix}}{{value}}{{suffix}}'\n    };\n\n    for (var attrname in opts) { defaultOpts[attrname] = opts[attrname]; }\n\n    if ( pieSpark.length ) { pieSpark.sparkline('html', defaultOpts); }\n  }\n\n  function triSparks(el, opts) {\n    var triSpark    = jQuery(el);\n\n    var defaultOpts = {\n      type: 'tristate',\n      barWidth: 8,\n      barSpacing: 6,\n      height: '110px',\n      posBarColor: '#9ccc65',\n      negBarColor: '#ef5350'\n    };\n\n    for (var attrname in opts) { defaultOpts[attrname] = opts[attrname]; }\n\n    if ( triSpark.length ) { triSpark.sparkline('html', defaultOpts); }\n  }\n\n  function initSparklineDemo() {\n    lineSparks('.spark-line-1', {\n      lineColor: '#9ccc65',\n      fillColor: '#9ccc65',\n      tooltipSuffix: ' Tickets',\n      tooltipPrefix: '$ ',\n    })\n\n    lineSparks('.spark-line-2', {\n      lineColor: '#9ccc65',\n      fillColor: '#9ccc65',\n      tooltipPrefix: '$ ',\n      tooltipSuffix: ''\n    })\n\n\n    lineSparks('.spark-line-3', {\n      lineColor: '#9ccc65',\n      fillColor: '#9ccc65',\n      tooltipPrefix: '$ ',\n      tooltipSuffix: ''\n    })\n\n    pieSparks('.spark-pie-1', {\n\n    })\n\n    pieSparks('.spark-pie-2', {\n\n    })\n\n    pieSparks('.spark-pie-3', {\n\n    })\n\n    barSparks('.spark-bar-1', {\n      barColor: '#9ccc65',\n      tooltipPrefix: '$ ',\n      tooltipSuffix: ''\n    })\n\n    barSparks('.spark-bar-2', {\n      barColor: '#9ccc65',\n      tooltipPrefix: '$ ',\n      tooltipSuffix: ''\n    })\n\n    barSparks('.spark-bar-3', {\n      barColor: '#9ccc65',\n      tooltipPrefix: '$ ',\n      tooltipSuffix: ''\n    })\n\n    triSparks('.spark-tri-1',{\n\n    })\n\n    triSparks('.spark-tri-2',{\n\n    })\n\n    triSparks('.spark-tri-3',{\n\n    })\n  }\n\n  KisoThemes.hookOnPageLoad( function() {\n    KisoThemes.jsLibIsActive('demo-sparklines') && initSparklineDemo.call(this)\n  })\n\n})()\n\n","window.INSPECT_MODE = false;\n\n$(document).ready(function() {\n  var clipboard = new ClipboardJS('.copy-to-clipboard');\n\n  function removeHandlers() {\n    var _inspectable = this\n\n    $(_inspectable)\n      .off('mouseenter')\n      .off('mouseleave')\n      .off('click')\n  }\n\n  $('.inspect-mode').on('click', function() {\n    window.INSPECT_MODE = !window.INSPECT_MODE;\n    var inspectables = $('.inspectable');\n\n    if(window.INSPECT_MODE) {\n      $(this).addClass('on')\n\n      inspectables.each(function () {\n        var $inspectable = this;\n\n        $($inspectable).on('mouseenter', function () {\n          $(this).addClass('inspect-target')\n        })\n\n        $($inspectable).on('mouseleave', function () {\n          $(this).removeClass('inspect-target')\n        })\n\n        $($inspectable).on('click', function () {\n          var rawHtml = $($inspectable)[0].outerHTML\n\n          $('.inspect-mode-bg').removeClass('d-none').addClass('d-flex')\n\n          componentNameRe = /<!-- component-title: ([\\w\\s]*) -->/g\n          componentName = componentNameRe.exec(rawHtml)\n\n          componentName = componentName ? componentName[1] : \"Component Markup\"\n\n          $('.inspector-component-name').text(componentName)\n\n          rawHtml = rawHtml.trim().replace(/<!--[\\s\\S]*?-->/g, '')\n          rawHtml = rawHtml.replace(/inspectable/, '')\n          rawHtml = rawHtml.replace(/inspect-target/, '')\n\n          code = style_html(rawHtml, {\n            'indent_size': 2,\n            'indent_char': ' ',\n            'unformatted': []\n          })\n\n\n          $('.inspector-modal code').html(\n            Prism.highlight(code, Prism.languages.markup)\n          )\n\n          $('#raw-markup').text(code)\n        })\n      })\n    } else {\n      $(this).removeClass('on')\n      inspectables.each(removeHandlers)\n    }\n  })\n\n  $('.close-inspector').on('click', function () {\n    window.INSPECT_MODE = false\n\n    $('.inspect-mode').removeClass('on')\n    $('.inspect-mode-bg').removeClass('d-flex').addClass('d-none')\n\n    var inspectables = $('.inspectable');\n\n    inspectables.each( function() {\n     var $inspectable = this;\n\n     $($inspectable).off('mouseenter')\n     $($inspectable).off('mouseleave')\n     $($inspectable).off('click')\n    })\n  })\n})\n\nfunction style_html(html_source, options) {\n//Wrapper function to invoke all the necessary constructors and deal with the output.\n\n  var multi_parser,\n      indent_size,\n      indent_character,\n      max_char,\n      brace_style,\n      unformatted;\n\n  options = options || {};\n  indent_size = options.indent_size || 4;\n  indent_character = options.indent_char || ' ';\n  brace_style = options.brace_style || 'collapse';\n  max_char = options.max_char == 0 ? Infinity : options.max_char || 70;\n  unformatted = options.unformatted || ['a', 'span', 'bdo', 'em', 'strong', 'dfn', 'code', 'samp', 'kbd', 'var', 'cite', 'abbr', 'acronym', 'q', 'sub', 'sup', 'tt', 'i', 'b', 'big', 'small', 'u', 's', 'strike', 'font', 'ins', 'del', 'pre', 'address', 'dt', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'];\n\n  function Parser() {\n\n    this.pos = 0; //Parser position\n    this.token = '';\n    this.current_mode = 'CONTENT'; //reflects the current Parser mode: TAG/CONTENT\n    this.tags = { //An object to hold tags, their position, and their parent-tags, initiated with default values\n      parent: 'parent1',\n      parentcount: 1,\n      parent1: ''\n    };\n    this.tag_type = '';\n    this.token_text = this.last_token = this.last_text = this.token_type = '';\n\n    this.Utils = { //Uilities made available to the various functions\n      whitespace: \"\\n\\r\\t \".split(''),\n      single_token: 'br,input,link,meta,!doctype,basefont,base,area,hr,wbr,param,img,isindex,?xml,embed,?php,?,?='.split(','), //all the single tags for HTML\n      extra_liners: 'head,body,/html'.split(','), //for tags that need a line of whitespace before them\n      in_array: function (what, arr) {\n        for (var i=0; i<arr.length; i++) {\n          if (what === arr[i]) {\n            return true;\n          }\n        }\n        return false;\n      }\n    }\n\n    this.get_content = function () { //function to capture regular content between tags\n\n      var input_char = '',\n          content = [],\n          space = false; //if a space is needed\n\n      while (this.input.charAt(this.pos) !== '<') {\n        if (this.pos >= this.input.length) {\n          return content.length?content.join(''):['', 'TK_EOF'];\n        }\n\n        input_char = this.input.charAt(this.pos);\n        this.pos++;\n        this.line_char_count++;\n\n        if (this.Utils.in_array(input_char, this.Utils.whitespace)) {\n          if (content.length) {\n            space = true;\n          }\n          this.line_char_count--;\n          continue; //don't want to insert unnecessary space\n        }\n        else if (space) {\n          if (this.line_char_count >= this.max_char) { //insert a line when the max_char is reached\n            content.push('\\n');\n            for (var i=0; i<this.indent_level; i++) {\n              content.push(this.indent_string);\n            }\n            this.line_char_count = 0;\n          }\n          else{\n            content.push(' ');\n            this.line_char_count++;\n          }\n          space = false;\n        }\n        content.push(input_char); //letter at-a-time (or string) inserted to an array\n      }\n      return content.length?content.join(''):'';\n    }\n\n    this.get_contents_to = function (name) { //get the full content of a script or style to pass to js_beautify\n      if (this.pos == this.input.length) {\n        return ['', 'TK_EOF'];\n      }\n      var input_char = '';\n      var content = '';\n      var reg_match = new RegExp('\\<\\/' + name + '\\\\s*\\>', 'igm');\n      reg_match.lastIndex = this.pos;\n      var reg_array = reg_match.exec(this.input);\n      var end_script = reg_array?reg_array.index:this.input.length; //absolute end of script\n      if(this.pos < end_script) { //get everything in between the script tags\n        content = this.input.substring(this.pos, end_script);\n        this.pos = end_script;\n      }\n      return content;\n    }\n\n    this.record_tag = function (tag){ //function to record a tag and its parent in this.tags Object\n      if (this.tags[tag + 'count']) { //check for the existence of this tag type\n        this.tags[tag + 'count']++;\n        this.tags[tag + this.tags[tag + 'count']] = this.indent_level; //and record the present indent level\n      }\n      else { //otherwise initialize this tag type\n        this.tags[tag + 'count'] = 1;\n        this.tags[tag + this.tags[tag + 'count']] = this.indent_level; //and record the present indent level\n      }\n      this.tags[tag + this.tags[tag + 'count'] + 'parent'] = this.tags.parent; //set the parent (i.e. in the case of a div this.tags.div1parent)\n      this.tags.parent = tag + this.tags[tag + 'count']; //and make this the current parent (i.e. in the case of a div 'div1')\n    }\n\n    this.retrieve_tag = function (tag) { //function to retrieve the opening tag to the corresponding closer\n      if (this.tags[tag + 'count']) { //if the openener is not in the Object we ignore it\n        var temp_parent = this.tags.parent; //check to see if it's a closable tag.\n        while (temp_parent) { //till we reach '' (the initial value);\n          if (tag + this.tags[tag + 'count'] === temp_parent) { //if this is it use it\n            break;\n          }\n          temp_parent = this.tags[temp_parent + 'parent']; //otherwise keep on climbing up the DOM Tree\n        }\n        if (temp_parent) { //if we caught something\n          this.indent_level = this.tags[tag + this.tags[tag + 'count']]; //set the indent_level accordingly\n          this.tags.parent = this.tags[temp_parent + 'parent']; //and set the current parent\n        }\n        delete this.tags[tag + this.tags[tag + 'count'] + 'parent']; //delete the closed tags parent reference...\n        delete this.tags[tag + this.tags[tag + 'count']]; //...and the tag itself\n        if (this.tags[tag + 'count'] == 1) {\n          delete this.tags[tag + 'count'];\n        }\n        else {\n          this.tags[tag + 'count']--;\n        }\n      }\n    }\n\n    this.get_tag = function () { //function to get a full tag and parse its type\n      var input_char = '',\n          content = [],\n          space = false,\n          tag_start, tag_end;\n\n      do {\n        if (this.pos >= this.input.length) {\n          return content.length?content.join(''):['', 'TK_EOF'];\n        }\n\n        input_char = this.input.charAt(this.pos);\n        this.pos++;\n        this.line_char_count++;\n\n        if (this.Utils.in_array(input_char, this.Utils.whitespace)) { //don't want to insert unnecessary space\n          space = true;\n          this.line_char_count--;\n          continue;\n        }\n\n        if (input_char === \"'\" || input_char === '\"') {\n          if (!content[1] || content[1] !== '!') { //if we're in a comment strings don't get treated specially\n            input_char += this.get_unformatted(input_char);\n            space = true;\n          }\n        }\n\n        if (input_char === '=') { //no space before =\n          space = false;\n        }\n\n        if (content.length && content[content.length-1] !== '=' && input_char !== '>'\n            && space) { //no space after = or before >\n          if (this.line_char_count >= this.max_char) {\n            this.print_newline(false, content);\n            this.line_char_count = 0;\n          }\n          else {\n            content.push(' ');\n            this.line_char_count++;\n          }\n          space = false;\n        }\n        if (input_char === '<') {\n            tag_start = this.pos - 1;\n        }\n        content.push(input_char); //inserts character at-a-time (or string)\n      } while (input_char !== '>');\n\n      var tag_complete = content.join('');\n      var tag_index;\n      if (tag_complete.indexOf(' ') != -1) { //if there's whitespace, thats where the tag name ends\n        tag_index = tag_complete.indexOf(' ');\n      }\n      else { //otherwise go with the tag ending\n        tag_index = tag_complete.indexOf('>');\n      }\n      var tag_check = tag_complete.substring(1, tag_index).toLowerCase();\n      if (tag_complete.charAt(tag_complete.length-2) === '/' ||\n          this.Utils.in_array(tag_check, this.Utils.single_token)) { //if this tag name is a single tag type (either in the list or has a closing /)\n        this.tag_type = 'SINGLE';\n      }\n      else if (tag_check === 'script') { //for later script handling\n        this.record_tag(tag_check);\n        this.tag_type = 'SCRIPT';\n      }\n      else if (tag_check === 'style') { //for future style handling (for now it justs uses get_content)\n        this.record_tag(tag_check);\n        this.tag_type = 'STYLE';\n      }\n      else if (this.Utils.in_array(tag_check, unformatted)) { // do not reformat the \"unformatted\" tags\n        var comment = this.get_unformatted('</'+tag_check+'>', tag_complete); //...delegate to get_unformatted function\n        content.push(comment);\n        // Preserve collapsed whitespace either before or after this tag.\n        if (tag_start > 0 && this.Utils.in_array(this.input.charAt(tag_start - 1), this.Utils.whitespace)){\n            content.splice(0, 0, this.input.charAt(tag_start - 1));\n        }\n        tag_end = this.pos - 1;\n        if (this.Utils.in_array(this.input.charAt(tag_end + 1), this.Utils.whitespace)){\n            content.push(this.input.charAt(tag_end + 1));\n        }\n        this.tag_type = 'SINGLE';\n      }\n      else if (tag_check.charAt(0) === '!') { //peek for <!-- comment\n        if (tag_check.indexOf('[if') != -1) { //peek for <!--[if conditional comment\n          if (tag_complete.indexOf('!IE') != -1) { //this type needs a closing --> so...\n            var comment = this.get_unformatted('-->', tag_complete); //...delegate to get_unformatted\n            content.push(comment);\n          }\n          this.tag_type = 'START';\n        }\n        else if (tag_check.indexOf('[endif') != -1) {//peek for <!--[endif end conditional comment\n          this.tag_type = 'END';\n          this.unindent();\n        }\n        else if (tag_check.indexOf('[cdata[') != -1) { //if it's a <[cdata[ comment...\n          var comment = this.get_unformatted(']]>', tag_complete); //...delegate to get_unformatted function\n          content.push(comment);\n          this.tag_type = 'SINGLE'; //<![CDATA[ comments are treated like single tags\n        }\n        else {\n          var comment = this.get_unformatted('-->', tag_complete);\n          content.push(comment);\n          this.tag_type = 'SINGLE';\n        }\n      }\n      else {\n        if (tag_check.charAt(0) === '/') { //this tag is a double tag so check for tag-ending\n          this.retrieve_tag(tag_check.substring(1)); //remove it and all ancestors\n          this.tag_type = 'END';\n        }\n        else { //otherwise it's a start-tag\n          this.record_tag(tag_check); //push it on the tag stack\n          this.tag_type = 'START';\n        }\n        if (this.Utils.in_array(tag_check, this.Utils.extra_liners)) { //check if this double needs an extra line\n          this.print_newline(true, this.output);\n        }\n      }\n      return content.join(''); //returns fully formatted tag\n    }\n\n    this.get_unformatted = function (delimiter, orig_tag) { //function to return unformatted content in its entirety\n\n      if (orig_tag && orig_tag.toLowerCase().indexOf(delimiter) != -1) {\n        return '';\n      }\n      var input_char = '';\n      var content = '';\n      var space = true;\n      do {\n\n        if (this.pos >= this.input.length) {\n          return content;\n        }\n\n        input_char = this.input.charAt(this.pos);\n        this.pos++\n\n        if (this.Utils.in_array(input_char, this.Utils.whitespace)) {\n          if (!space) {\n            this.line_char_count--;\n            continue;\n          }\n          if (input_char === '\\n' || input_char === '\\r') {\n            content += '\\n';\n            /*  Don't change tab indention for unformatted blocks.  If using code for html editing, this will greatly affect <pre> tags if they are specified in the 'unformatted array'\n            for (var i=0; i<this.indent_level; i++) {\n              content += this.indent_string;\n            }\n            space = false; //...and make sure other indentation is erased\n            */\n            this.line_char_count = 0;\n            continue;\n          }\n        }\n        content += input_char;\n        this.line_char_count++;\n        space = true;\n\n\n      } while (content.toLowerCase().indexOf(delimiter) == -1);\n      return content;\n    }\n\n    this.get_token = function () { //initial handler for token-retrieval\n      var token;\n\n      if (this.last_token === 'TK_TAG_SCRIPT' || this.last_token === 'TK_TAG_STYLE') { //check if we need to format javascript\n       var type = this.last_token.substr(7)\n       token = this.get_contents_to(type);\n        if (typeof token !== 'string') {\n          return token;\n        }\n        return [token, 'TK_' + type];\n      }\n      if (this.current_mode === 'CONTENT') {\n        token = this.get_content();\n        if (typeof token !== 'string') {\n          return token;\n        }\n        else {\n          return [token, 'TK_CONTENT'];\n        }\n      }\n\n      if (this.current_mode === 'TAG') {\n        token = this.get_tag();\n        if (typeof token !== 'string') {\n          return token;\n        }\n        else {\n          var tag_name_type = 'TK_TAG_' + this.tag_type;\n          return [token, tag_name_type];\n        }\n      }\n    }\n\n    this.get_full_indent = function (level) {\n      level = this.indent_level + level || 0;\n      if (level < 1)\n        return '';\n\n      return Array(level + 1).join(this.indent_string);\n    }\n\n\n    this.printer = function (js_source, indent_character, indent_size, max_char, brace_style) { //handles input/output and some other printing functions\n\n      this.input = js_source || ''; //gets the input for the Parser\n      this.output = [];\n      this.indent_character = indent_character;\n      this.indent_string = '';\n      this.indent_size = indent_size;\n      this.brace_style = brace_style;\n      this.indent_level = 0;\n      this.max_char = max_char;\n      this.line_char_count = 0; //count to see if max_char was exceeded\n\n      for (var i=0; i<this.indent_size; i++) {\n        this.indent_string += this.indent_character;\n      }\n\n      this.print_newline = function (ignore, arr) {\n        this.line_char_count = 0;\n        if (!arr || !arr.length) {\n          return;\n        }\n        if (!ignore) { //we might want the extra line\n          while (this.Utils.in_array(arr[arr.length-1], this.Utils.whitespace)) {\n            arr.pop();\n          }\n        }\n        arr.push('\\n');\n        for (var i=0; i<this.indent_level; i++) {\n          arr.push(this.indent_string);\n        }\n      }\n\n      this.print_token = function (text) {\n        this.output.push(text);\n      }\n\n      this.indent = function () {\n        this.indent_level++;\n      }\n\n      this.unindent = function () {\n        if (this.indent_level > 0) {\n          this.indent_level--;\n        }\n      }\n    }\n    return this;\n  }\n\n  /*_____________________--------------------_____________________*/\n\n  multi_parser = new Parser(); //wrapping functions Parser\n  multi_parser.printer(html_source, indent_character, indent_size, max_char, brace_style); //initialize starting values\n\n  while (true) {\n      var t = multi_parser.get_token();\n      multi_parser.token_text = t[0];\n      multi_parser.token_type = t[1];\n\n    if (multi_parser.token_type === 'TK_EOF') {\n      break;\n    }\n\n    switch (multi_parser.token_type) {\n      case 'TK_TAG_START':\n        multi_parser.print_newline(false, multi_parser.output);\n        multi_parser.print_token(multi_parser.token_text);\n        multi_parser.indent();\n        multi_parser.current_mode = 'CONTENT';\n        break;\n      case 'TK_TAG_STYLE':\n      case 'TK_TAG_SCRIPT':\n        multi_parser.print_newline(false, multi_parser.output);\n        multi_parser.print_token(multi_parser.token_text);\n        multi_parser.current_mode = 'CONTENT';\n        break;\n      case 'TK_TAG_END':\n        //Print new line only if the tag has no content and has child\n        if (multi_parser.last_token === 'TK_CONTENT' && multi_parser.last_text === '') {\n            var tag_name = multi_parser.token_text.match(/\\w+/)[0];\n            var tag_extracted_from_last_output = multi_parser.output[multi_parser.output.length -1].match(/<\\s*(\\w+)/);\n            if (tag_extracted_from_last_output === null || tag_extracted_from_last_output[1] !== tag_name)\n                multi_parser.print_newline(true, multi_parser.output);\n        }\n        multi_parser.print_token(multi_parser.token_text);\n        multi_parser.current_mode = 'CONTENT';\n        break;\n      case 'TK_TAG_SINGLE':\n        // Don't add a newline before elements that should remain unformatted.\n        var tag_check = multi_parser.token_text.match(/^\\s*<([a-z]+)/i);\n        if (!tag_check || !multi_parser.Utils.in_array(tag_check[1], unformatted)){\n            multi_parser.print_newline(false, multi_parser.output);\n        }\n        multi_parser.print_token(multi_parser.token_text);\n        multi_parser.current_mode = 'CONTENT';\n        break;\n      case 'TK_CONTENT':\n        if (multi_parser.token_text !== '') {\n          multi_parser.print_token(multi_parser.token_text);\n        }\n        multi_parser.current_mode = 'TAG';\n        break;\n      case 'TK_STYLE':\n      case 'TK_SCRIPT':\n        if (multi_parser.token_text !== '') {\n          multi_parser.output.push('\\n');\n          var text = multi_parser.token_text;\n          if (multi_parser.token_type == 'TK_SCRIPT') {\n            var _beautifier = typeof js_beautify == 'function' && js_beautify;\n          } else if (multi_parser.token_type == 'TK_STYLE') {\n            var _beautifier = typeof css_beautify == 'function' && css_beautify;\n          }\n\n          if (options.indent_scripts == \"keep\") {\n            var script_indent_level = 0;\n          } else if (options.indent_scripts == \"separate\") {\n            var script_indent_level = -multi_parser.indent_level;\n          } else {\n            var script_indent_level = 1;\n          }\n\n          var indentation = multi_parser.get_full_indent(script_indent_level);\n          if (_beautifier) {\n            // call the Beautifier if avaliable\n            text = _beautifier(text.replace(/^\\s*/, indentation), options);\n          } else {\n            // simply indent the string otherwise\n            var white = text.match(/^\\s*/)[0];\n            var _level = white.match(/[^\\n\\r]*$/)[0].split(multi_parser.indent_string).length - 1;\n            var reindent = multi_parser.get_full_indent(script_indent_level -_level);\n            text = text.replace(/^\\s*/, indentation)\n                   .replace(/\\r\\n|\\r|\\n/g, '\\n' + reindent)\n                   .replace(/\\s*$/, '');\n          }\n          if (text) {\n            multi_parser.print_token(text);\n            multi_parser.print_newline(true, multi_parser.output);\n          }\n        }\n        multi_parser.current_mode = 'TAG';\n        break;\n    }\n    multi_parser.last_token = multi_parser.token_type;\n    multi_parser.last_text = multi_parser.token_text;\n  }\n  return multi_parser.output.join('');\n}\n","function _typeof2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\n/*!\n * clipboard.js v2.0.6\n * https://clipboardjs.com/\n * \n * Licensed MIT © Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n  if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof2(exports)) === 'object' && (typeof module === \"undefined\" ? \"undefined\" : _typeof2(module)) === 'object') module.exports = factory();else if (typeof define === 'function' && define.amd) define([], factory);else if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof2(exports)) === 'object') exports[\"ClipboardJS\"] = factory();else root[\"ClipboardJS\"] = factory();\n})(this, function () {\n  return (\n    /******/\n    function (modules) {\n      // webpackBootstrap\n\n      /******/\n      // The module cache\n\n      /******/\n      var installedModules = {};\n      /******/\n\n      /******/\n      // The require function\n\n      /******/\n\n      function __webpack_require__(moduleId) {\n        /******/\n\n        /******/\n        // Check if module is in cache\n\n        /******/\n        if (installedModules[moduleId]) {\n          /******/\n          return installedModules[moduleId].exports;\n          /******/\n        }\n        /******/\n        // Create a new module (and put it into the cache)\n\n        /******/\n\n\n        var module = installedModules[moduleId] = {\n          /******/\n          i: moduleId,\n\n          /******/\n          l: false,\n\n          /******/\n          exports: {}\n          /******/\n\n        };\n        /******/\n\n        /******/\n        // Execute the module function\n\n        /******/\n\n        modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n        /******/\n\n        /******/\n        // Flag the module as loaded\n\n        /******/\n\n        module.l = true;\n        /******/\n\n        /******/\n        // Return the exports of the module\n\n        /******/\n\n        return module.exports;\n        /******/\n      }\n      /******/\n\n      /******/\n\n      /******/\n      // expose the modules object (__webpack_modules__)\n\n      /******/\n\n\n      __webpack_require__.m = modules;\n      /******/\n\n      /******/\n      // expose the module cache\n\n      /******/\n\n      __webpack_require__.c = installedModules;\n      /******/\n\n      /******/\n      // define getter function for harmony exports\n\n      /******/\n\n      __webpack_require__.d = function (exports, name, getter) {\n        /******/\n        if (!__webpack_require__.o(exports, name)) {\n          /******/\n          Object.defineProperty(exports, name, {\n            enumerable: true,\n            get: getter\n          });\n          /******/\n        }\n        /******/\n\n      };\n      /******/\n\n      /******/\n      // define __esModule on exports\n\n      /******/\n\n\n      __webpack_require__.r = function (exports) {\n        /******/\n        if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n          /******/\n          Object.defineProperty(exports, Symbol.toStringTag, {\n            value: 'Module'\n          });\n          /******/\n        }\n        /******/\n\n\n        Object.defineProperty(exports, '__esModule', {\n          value: true\n        });\n        /******/\n      };\n      /******/\n\n      /******/\n      // create a fake namespace object\n\n      /******/\n      // mode & 1: value is a module id, require it\n\n      /******/\n      // mode & 2: merge all properties of value into the ns\n\n      /******/\n      // mode & 4: return value when already ns object\n\n      /******/\n      // mode & 8|1: behave like require\n\n      /******/\n\n\n      __webpack_require__.t = function (value, mode) {\n        /******/\n        if (mode & 1) value = __webpack_require__(value);\n        /******/\n\n        if (mode & 8) return value;\n        /******/\n\n        if (mode & 4 && _typeof2(value) === 'object' && value && value.__esModule) return value;\n        /******/\n\n        var ns = Object.create(null);\n        /******/\n\n        __webpack_require__.r(ns);\n        /******/\n\n\n        Object.defineProperty(ns, 'default', {\n          enumerable: true,\n          value: value\n        });\n        /******/\n\n        if (mode & 2 && typeof value != 'string') for (var key in value) {\n          __webpack_require__.d(ns, key, function (key) {\n            return value[key];\n          }.bind(null, key));\n        }\n        /******/\n\n        return ns;\n        /******/\n      };\n      /******/\n\n      /******/\n      // getDefaultExport function for compatibility with non-harmony modules\n\n      /******/\n\n\n      __webpack_require__.n = function (module) {\n        /******/\n        var getter = module && module.__esModule ?\n        /******/\n        function getDefault() {\n          return module['default'];\n        } :\n        /******/\n        function getModuleExports() {\n          return module;\n        };\n        /******/\n\n        __webpack_require__.d(getter, 'a', getter);\n        /******/\n\n\n        return getter;\n        /******/\n      };\n      /******/\n\n      /******/\n      // Object.prototype.hasOwnProperty.call\n\n      /******/\n\n\n      __webpack_require__.o = function (object, property) {\n        return Object.prototype.hasOwnProperty.call(object, property);\n      };\n      /******/\n\n      /******/\n      // __webpack_public_path__\n\n      /******/\n\n\n      __webpack_require__.p = \"\";\n      /******/\n\n      /******/\n\n      /******/\n      // Load entry module and return exports\n\n      /******/\n\n      return __webpack_require__(__webpack_require__.s = 6);\n      /******/\n    }(\n    /************************************************************************/\n\n    /******/\n    [\n    /* 0 */\n\n    /***/\n    function (module, exports) {\n      function select(element) {\n        var selectedText;\n\n        if (element.nodeName === 'SELECT') {\n          element.focus();\n          selectedText = element.value;\n        } else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n          var isReadOnly = element.hasAttribute('readonly');\n\n          if (!isReadOnly) {\n            element.setAttribute('readonly', '');\n          }\n\n          element.select();\n          element.setSelectionRange(0, element.value.length);\n\n          if (!isReadOnly) {\n            element.removeAttribute('readonly');\n          }\n\n          selectedText = element.value;\n        } else {\n          if (element.hasAttribute('contenteditable')) {\n            element.focus();\n          }\n\n          var selection = window.getSelection();\n          var range = document.createRange();\n          range.selectNodeContents(element);\n          selection.removeAllRanges();\n          selection.addRange(range);\n          selectedText = selection.toString();\n        }\n\n        return selectedText;\n      }\n\n      module.exports = select;\n      /***/\n    },\n    /* 1 */\n\n    /***/\n    function (module, exports) {\n      function E() {// Keep this empty so it's easier to inherit from\n        // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n      }\n\n      E.prototype = {\n        on: function on(name, callback, ctx) {\n          var e = this.e || (this.e = {});\n          (e[name] || (e[name] = [])).push({\n            fn: callback,\n            ctx: ctx\n          });\n          return this;\n        },\n        once: function once(name, callback, ctx) {\n          var self = this;\n\n          function listener() {\n            self.off(name, listener);\n            callback.apply(ctx, arguments);\n          }\n\n          ;\n          listener._ = callback;\n          return this.on(name, listener, ctx);\n        },\n        emit: function emit(name) {\n          var data = [].slice.call(arguments, 1);\n          var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n          var i = 0;\n          var len = evtArr.length;\n\n          for (i; i < len; i++) {\n            evtArr[i].fn.apply(evtArr[i].ctx, data);\n          }\n\n          return this;\n        },\n        off: function off(name, callback) {\n          var e = this.e || (this.e = {});\n          var evts = e[name];\n          var liveEvents = [];\n\n          if (evts && callback) {\n            for (var i = 0, len = evts.length; i < len; i++) {\n              if (evts[i].fn !== callback && evts[i].fn._ !== callback) liveEvents.push(evts[i]);\n            }\n          } // Remove event from queue to prevent memory leak\n          // Suggested by https://github.com/lazd\n          // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n\n          liveEvents.length ? e[name] = liveEvents : delete e[name];\n          return this;\n        }\n      };\n      module.exports = E;\n      module.exports.TinyEmitter = E;\n      /***/\n    },\n    /* 2 */\n\n    /***/\n    function (module, exports, __webpack_require__) {\n      var is = __webpack_require__(3);\n\n      var delegate = __webpack_require__(4);\n      /**\n       * Validates all params and calls the right\n       * listener function based on its target type.\n       *\n       * @param {String|HTMLElement|HTMLCollection|NodeList} target\n       * @param {String} type\n       * @param {Function} callback\n       * @return {Object}\n       */\n\n\n      function listen(target, type, callback) {\n        if (!target && !type && !callback) {\n          throw new Error('Missing required arguments');\n        }\n\n        if (!is.string(type)) {\n          throw new TypeError('Second argument must be a String');\n        }\n\n        if (!is.fn(callback)) {\n          throw new TypeError('Third argument must be a Function');\n        }\n\n        if (is.node(target)) {\n          return listenNode(target, type, callback);\n        } else if (is.nodeList(target)) {\n          return listenNodeList(target, type, callback);\n        } else if (is.string(target)) {\n          return listenSelector(target, type, callback);\n        } else {\n          throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n        }\n      }\n      /**\n       * Adds an event listener to a HTML element\n       * and returns a remove listener function.\n       *\n       * @param {HTMLElement} node\n       * @param {String} type\n       * @param {Function} callback\n       * @return {Object}\n       */\n\n\n      function listenNode(node, type, callback) {\n        node.addEventListener(type, callback);\n        return {\n          destroy: function destroy() {\n            node.removeEventListener(type, callback);\n          }\n        };\n      }\n      /**\n       * Add an event listener to a list of HTML elements\n       * and returns a remove listener function.\n       *\n       * @param {NodeList|HTMLCollection} nodeList\n       * @param {String} type\n       * @param {Function} callback\n       * @return {Object}\n       */\n\n\n      function listenNodeList(nodeList, type, callback) {\n        Array.prototype.forEach.call(nodeList, function (node) {\n          node.addEventListener(type, callback);\n        });\n        return {\n          destroy: function destroy() {\n            Array.prototype.forEach.call(nodeList, function (node) {\n              node.removeEventListener(type, callback);\n            });\n          }\n        };\n      }\n      /**\n       * Add an event listener to a selector\n       * and returns a remove listener function.\n       *\n       * @param {String} selector\n       * @param {String} type\n       * @param {Function} callback\n       * @return {Object}\n       */\n\n\n      function listenSelector(selector, type, callback) {\n        return delegate(document.body, selector, type, callback);\n      }\n\n      module.exports = listen;\n      /***/\n    },\n    /* 3 */\n\n    /***/\n    function (module, exports) {\n      /**\n       * Check if argument is a HTML element.\n       *\n       * @param {Object} value\n       * @return {Boolean}\n       */\n      exports.node = function (value) {\n        return value !== undefined && value instanceof HTMLElement && value.nodeType === 1;\n      };\n      /**\n       * Check if argument is a list of HTML elements.\n       *\n       * @param {Object} value\n       * @return {Boolean}\n       */\n\n\n      exports.nodeList = function (value) {\n        var type = Object.prototype.toString.call(value);\n        return value !== undefined && (type === '[object NodeList]' || type === '[object HTMLCollection]') && 'length' in value && (value.length === 0 || exports.node(value[0]));\n      };\n      /**\n       * Check if argument is a string.\n       *\n       * @param {Object} value\n       * @return {Boolean}\n       */\n\n\n      exports.string = function (value) {\n        return typeof value === 'string' || value instanceof String;\n      };\n      /**\n       * Check if argument is a function.\n       *\n       * @param {Object} value\n       * @return {Boolean}\n       */\n\n\n      exports.fn = function (value) {\n        var type = Object.prototype.toString.call(value);\n        return type === '[object Function]';\n      };\n      /***/\n\n    },\n    /* 4 */\n\n    /***/\n    function (module, exports, __webpack_require__) {\n      var closest = __webpack_require__(5);\n      /**\n       * Delegates event to a selector.\n       *\n       * @param {Element} element\n       * @param {String} selector\n       * @param {String} type\n       * @param {Function} callback\n       * @param {Boolean} useCapture\n       * @return {Object}\n       */\n\n\n      function _delegate(element, selector, type, callback, useCapture) {\n        var listenerFn = listener.apply(this, arguments);\n        element.addEventListener(type, listenerFn, useCapture);\n        return {\n          destroy: function destroy() {\n            element.removeEventListener(type, listenerFn, useCapture);\n          }\n        };\n      }\n      /**\n       * Delegates event to a selector.\n       *\n       * @param {Element|String|Array} [elements]\n       * @param {String} selector\n       * @param {String} type\n       * @param {Function} callback\n       * @param {Boolean} useCapture\n       * @return {Object}\n       */\n\n\n      function delegate(elements, selector, type, callback, useCapture) {\n        // Handle the regular Element usage\n        if (typeof elements.addEventListener === 'function') {\n          return _delegate.apply(null, arguments);\n        } // Handle Element-less usage, it defaults to global delegation\n\n\n        if (typeof type === 'function') {\n          // Use `document` as the first parameter, then apply arguments\n          // This is a short way to .unshift `arguments` without running into deoptimizations\n          return _delegate.bind(null, document).apply(null, arguments);\n        } // Handle Selector-based usage\n\n\n        if (typeof elements === 'string') {\n          elements = document.querySelectorAll(elements);\n        } // Handle Array-like based usage\n\n\n        return Array.prototype.map.call(elements, function (element) {\n          return _delegate(element, selector, type, callback, useCapture);\n        });\n      }\n      /**\n       * Finds closest match and invokes callback.\n       *\n       * @param {Element} element\n       * @param {String} selector\n       * @param {String} type\n       * @param {Function} callback\n       * @return {Function}\n       */\n\n\n      function listener(element, selector, type, callback) {\n        return function (e) {\n          e.delegateTarget = closest(e.target, selector);\n\n          if (e.delegateTarget) {\n            callback.call(element, e);\n          }\n        };\n      }\n\n      module.exports = delegate;\n      /***/\n    },\n    /* 5 */\n\n    /***/\n    function (module, exports) {\n      var DOCUMENT_NODE_TYPE = 9;\n      /**\n       * A polyfill for Element.matches()\n       */\n\n      if (typeof Element !== 'undefined' && !Element.prototype.matches) {\n        var proto = Element.prototype;\n        proto.matches = proto.matchesSelector || proto.mozMatchesSelector || proto.msMatchesSelector || proto.oMatchesSelector || proto.webkitMatchesSelector;\n      }\n      /**\n       * Finds the closest parent that matches a selector.\n       *\n       * @param {Element} element\n       * @param {String} selector\n       * @return {Function}\n       */\n\n\n      function closest(element, selector) {\n        while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n          if (typeof element.matches === 'function' && element.matches(selector)) {\n            return element;\n          }\n\n          element = element.parentNode;\n        }\n      }\n\n      module.exports = closest;\n      /***/\n    },\n    /* 6 */\n\n    /***/\n    function (module, __webpack_exports__, __webpack_require__) {\n      \"use strict\";\n\n      __webpack_require__.r(__webpack_exports__); // EXTERNAL MODULE: ./node_modules/select/src/select.js\n\n\n      var src_select = __webpack_require__(0);\n\n      var select_default = /*#__PURE__*/__webpack_require__.n(src_select); // CONCATENATED MODULE: ./src/clipboard-action.js\n\n\n      var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n        return _typeof2(obj);\n      } : function (obj) {\n        return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n      };\n\n      var _createClass = function () {\n        function defineProperties(target, props) {\n          for (var i = 0; i < props.length; i++) {\n            var descriptor = props[i];\n            descriptor.enumerable = descriptor.enumerable || false;\n            descriptor.configurable = true;\n            if (\"value\" in descriptor) descriptor.writable = true;\n            Object.defineProperty(target, descriptor.key, descriptor);\n          }\n        }\n\n        return function (Constructor, protoProps, staticProps) {\n          if (protoProps) defineProperties(Constructor.prototype, protoProps);\n          if (staticProps) defineProperties(Constructor, staticProps);\n          return Constructor;\n        };\n      }();\n\n      function _classCallCheck(instance, Constructor) {\n        if (!(instance instanceof Constructor)) {\n          throw new TypeError(\"Cannot call a class as a function\");\n        }\n      }\n      /**\n       * Inner class which performs selection from either `text` or `target`\n       * properties and then executes copy or cut operations.\n       */\n\n\n      var clipboard_action_ClipboardAction = function () {\n        /**\n         * @param {Object} options\n         */\n        function ClipboardAction(options) {\n          _classCallCheck(this, ClipboardAction);\n\n          this.resolveOptions(options);\n          this.initSelection();\n        }\n        /**\n         * Defines base properties passed from constructor.\n         * @param {Object} options\n         */\n\n\n        _createClass(ClipboardAction, [{\n          key: 'resolveOptions',\n          value: function resolveOptions() {\n            var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n            this.action = options.action;\n            this.container = options.container;\n            this.emitter = options.emitter;\n            this.target = options.target;\n            this.text = options.text;\n            this.trigger = options.trigger;\n            this.selectedText = '';\n          }\n          /**\n           * Decides which selection strategy is going to be applied based\n           * on the existence of `text` and `target` properties.\n           */\n\n        }, {\n          key: 'initSelection',\n          value: function initSelection() {\n            if (this.text) {\n              this.selectFake();\n            } else if (this.target) {\n              this.selectTarget();\n            }\n          }\n          /**\n           * Creates a fake textarea element, sets its value from `text` property,\n           * and makes a selection on it.\n           */\n\n        }, {\n          key: 'selectFake',\n          value: function selectFake() {\n            var _this = this;\n\n            var isRTL = document.documentElement.getAttribute('dir') == 'rtl';\n            this.removeFake();\n\n            this.fakeHandlerCallback = function () {\n              return _this.removeFake();\n            };\n\n            this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true;\n            this.fakeElem = document.createElement('textarea'); // Prevent zooming on iOS\n\n            this.fakeElem.style.fontSize = '12pt'; // Reset box model\n\n            this.fakeElem.style.border = '0';\n            this.fakeElem.style.padding = '0';\n            this.fakeElem.style.margin = '0'; // Move element out of screen horizontally\n\n            this.fakeElem.style.position = 'absolute';\n            this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically\n\n            var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n            this.fakeElem.style.top = yPosition + 'px';\n            this.fakeElem.setAttribute('readonly', '');\n            this.fakeElem.value = this.text;\n            this.container.appendChild(this.fakeElem);\n            this.selectedText = select_default()(this.fakeElem);\n            this.copyText();\n          }\n          /**\n           * Only removes the fake element after another click event, that way\n           * a user can hit `Ctrl+C` to copy because selection still exists.\n           */\n\n        }, {\n          key: 'removeFake',\n          value: function removeFake() {\n            if (this.fakeHandler) {\n              this.container.removeEventListener('click', this.fakeHandlerCallback);\n              this.fakeHandler = null;\n              this.fakeHandlerCallback = null;\n            }\n\n            if (this.fakeElem) {\n              this.container.removeChild(this.fakeElem);\n              this.fakeElem = null;\n            }\n          }\n          /**\n           * Selects the content from element passed on `target` property.\n           */\n\n        }, {\n          key: 'selectTarget',\n          value: function selectTarget() {\n            this.selectedText = select_default()(this.target);\n            this.copyText();\n          }\n          /**\n           * Executes the copy operation based on the current selection.\n           */\n\n        }, {\n          key: 'copyText',\n          value: function copyText() {\n            var succeeded = void 0;\n\n            try {\n              succeeded = document.execCommand(this.action);\n            } catch (err) {\n              succeeded = false;\n            }\n\n            this.handleResult(succeeded);\n          }\n          /**\n           * Fires an event based on the copy operation result.\n           * @param {Boolean} succeeded\n           */\n\n        }, {\n          key: 'handleResult',\n          value: function handleResult(succeeded) {\n            this.emitter.emit(succeeded ? 'success' : 'error', {\n              action: this.action,\n              text: this.selectedText,\n              trigger: this.trigger,\n              clearSelection: this.clearSelection.bind(this)\n            });\n          }\n          /**\n           * Moves focus away from `target` and back to the trigger, removes current selection.\n           */\n\n        }, {\n          key: 'clearSelection',\n          value: function clearSelection() {\n            if (this.trigger) {\n              this.trigger.focus();\n            }\n\n            document.activeElement.blur();\n            window.getSelection().removeAllRanges();\n          }\n          /**\n           * Sets the `action` to be performed which can be either 'copy' or 'cut'.\n           * @param {String} action\n           */\n\n        }, {\n          key: 'destroy',\n\n          /**\n           * Destroy lifecycle.\n           */\n          value: function destroy() {\n            this.removeFake();\n          }\n        }, {\n          key: 'action',\n          set: function set() {\n            var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy';\n            this._action = action;\n\n            if (this._action !== 'copy' && this._action !== 'cut') {\n              throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n            }\n          }\n          /**\n           * Gets the `action` property.\n           * @return {String}\n           */\n          ,\n          get: function get() {\n            return this._action;\n          }\n          /**\n           * Sets the `target` property using an element\n           * that will be have its content copied.\n           * @param {Element} target\n           */\n\n        }, {\n          key: 'target',\n          set: function set(target) {\n            if (target !== undefined) {\n              if (target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && target.nodeType === 1) {\n                if (this.action === 'copy' && target.hasAttribute('disabled')) {\n                  throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n                }\n\n                if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n                  throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n                }\n\n                this._target = target;\n              } else {\n                throw new Error('Invalid \"target\" value, use a valid Element');\n              }\n            }\n          }\n          /**\n           * Gets the `target` property.\n           * @return {String|HTMLElement}\n           */\n          ,\n          get: function get() {\n            return this._target;\n          }\n        }]);\n\n        return ClipboardAction;\n      }();\n      /* harmony default export */\n\n\n      var clipboard_action = clipboard_action_ClipboardAction; // EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\n\n      var tiny_emitter = __webpack_require__(1);\n\n      var tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter); // EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\n\n\n      var listen = __webpack_require__(2);\n\n      var listen_default = /*#__PURE__*/__webpack_require__.n(listen); // CONCATENATED MODULE: ./src/clipboard.js\n\n\n      var clipboard_typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n        return _typeof2(obj);\n      } : function (obj) {\n        return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n      };\n\n      var clipboard_createClass = function () {\n        function defineProperties(target, props) {\n          for (var i = 0; i < props.length; i++) {\n            var descriptor = props[i];\n            descriptor.enumerable = descriptor.enumerable || false;\n            descriptor.configurable = true;\n            if (\"value\" in descriptor) descriptor.writable = true;\n            Object.defineProperty(target, descriptor.key, descriptor);\n          }\n        }\n\n        return function (Constructor, protoProps, staticProps) {\n          if (protoProps) defineProperties(Constructor.prototype, protoProps);\n          if (staticProps) defineProperties(Constructor, staticProps);\n          return Constructor;\n        };\n      }();\n\n      function clipboard_classCallCheck(instance, Constructor) {\n        if (!(instance instanceof Constructor)) {\n          throw new TypeError(\"Cannot call a class as a function\");\n        }\n      }\n\n      function _possibleConstructorReturn(self, call) {\n        if (!self) {\n          throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n        }\n\n        return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n      }\n\n      function _inherits(subClass, superClass) {\n        if (typeof superClass !== \"function\" && superClass !== null) {\n          throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n        }\n\n        subClass.prototype = Object.create(superClass && superClass.prototype, {\n          constructor: {\n            value: subClass,\n            enumerable: false,\n            writable: true,\n            configurable: true\n          }\n        });\n        if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n      }\n      /**\n       * Base class which takes one or more elements, adds event listeners to them,\n       * and instantiates a new `ClipboardAction` on each click.\n       */\n\n\n      var clipboard_Clipboard = function (_Emitter) {\n        _inherits(Clipboard, _Emitter);\n        /**\n         * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n         * @param {Object} options\n         */\n\n\n        function Clipboard(trigger, options) {\n          clipboard_classCallCheck(this, Clipboard);\n\n          var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this));\n\n          _this.resolveOptions(options);\n\n          _this.listenClick(trigger);\n\n          return _this;\n        }\n        /**\n         * Defines if attributes would be resolved using internal setter functions\n         * or custom functions that were passed in the constructor.\n         * @param {Object} options\n         */\n\n\n        clipboard_createClass(Clipboard, [{\n          key: 'resolveOptions',\n          value: function resolveOptions() {\n            var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n            this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n            this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n            this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n            this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n          }\n          /**\n           * Adds a click event listener to the passed trigger.\n           * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n           */\n\n        }, {\n          key: 'listenClick',\n          value: function listenClick(trigger) {\n            var _this2 = this;\n\n            this.listener = listen_default()(trigger, 'click', function (e) {\n              return _this2.onClick(e);\n            });\n          }\n          /**\n           * Defines a new `ClipboardAction` on each click event.\n           * @param {Event} e\n           */\n\n        }, {\n          key: 'onClick',\n          value: function onClick(e) {\n            var trigger = e.delegateTarget || e.currentTarget;\n\n            if (this.clipboardAction) {\n              this.clipboardAction = null;\n            }\n\n            this.clipboardAction = new clipboard_action({\n              action: this.action(trigger),\n              target: this.target(trigger),\n              text: this.text(trigger),\n              container: this.container,\n              trigger: trigger,\n              emitter: this\n            });\n          }\n          /**\n           * Default `action` lookup function.\n           * @param {Element} trigger\n           */\n\n        }, {\n          key: 'defaultAction',\n          value: function defaultAction(trigger) {\n            return getAttributeValue('action', trigger);\n          }\n          /**\n           * Default `target` lookup function.\n           * @param {Element} trigger\n           */\n\n        }, {\n          key: 'defaultTarget',\n          value: function defaultTarget(trigger) {\n            var selector = getAttributeValue('target', trigger);\n\n            if (selector) {\n              return document.querySelector(selector);\n            }\n          }\n          /**\n           * Returns the support of the given action, or all actions if no action is\n           * given.\n           * @param {String} [action]\n           */\n\n        }, {\n          key: 'defaultText',\n\n          /**\n           * Default `text` lookup function.\n           * @param {Element} trigger\n           */\n          value: function defaultText(trigger) {\n            return getAttributeValue('text', trigger);\n          }\n          /**\n           * Destroy lifecycle.\n           */\n\n        }, {\n          key: 'destroy',\n          value: function destroy() {\n            this.listener.destroy();\n\n            if (this.clipboardAction) {\n              this.clipboardAction.destroy();\n              this.clipboardAction = null;\n            }\n          }\n        }], [{\n          key: 'isSupported',\n          value: function isSupported() {\n            var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n            var actions = typeof action === 'string' ? [action] : action;\n            var support = !!document.queryCommandSupported;\n            actions.forEach(function (action) {\n              support = support && !!document.queryCommandSupported(action);\n            });\n            return support;\n          }\n        }]);\n        return Clipboard;\n      }(tiny_emitter_default.a);\n      /**\n       * Helper function to retrieve attribute value.\n       * @param {String} suffix\n       * @param {Element} element\n       */\n\n\n      function getAttributeValue(suffix, element) {\n        var attribute = 'data-clipboard-' + suffix;\n\n        if (!element.hasAttribute(attribute)) {\n          return;\n        }\n\n        return element.getAttribute(attribute);\n      }\n      /* harmony default export */\n\n\n      var clipboard = __webpack_exports__[\"default\"] = clipboard_Clipboard;\n      /***/\n    }\n    /******/\n    ])[\"default\"]\n  );\n});","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport { DirectUpload } from \"@rails/activestorage\";\nexport var AttachmentUpload = /*#__PURE__*/function () {\n  function AttachmentUpload(attachment, element) {\n    _classCallCheck(this, AttachmentUpload);\n\n    this.attachment = attachment;\n    this.element = element;\n    this.directUpload = new DirectUpload(attachment.file, this.directUploadUrl, this);\n  }\n\n  _createClass(AttachmentUpload, [{\n    key: \"start\",\n    value: function start() {\n      this.directUpload.create(this.directUploadDidComplete.bind(this));\n    }\n  }, {\n    key: \"directUploadWillStoreFileWithXHR\",\n    value: function directUploadWillStoreFileWithXHR(xhr) {\n      var _this = this;\n\n      xhr.upload.addEventListener(\"progress\", function (event) {\n        var progress = event.loaded / event.total * 100;\n\n        _this.attachment.setUploadProgress(progress);\n      });\n    }\n  }, {\n    key: \"directUploadDidComplete\",\n    value: function directUploadDidComplete(error, attributes) {\n      if (error) {\n        throw new Error(\"Direct upload failed: \".concat(error));\n      }\n\n      this.attachment.setAttributes({\n        sgid: attributes.attachable_sgid,\n        url: this.createBlobUrl(attributes.signed_id, attributes.filename)\n      });\n    }\n  }, {\n    key: \"createBlobUrl\",\n    value: function createBlobUrl(signedId, filename) {\n      return this.blobUrlTemplate.replace(\":signed_id\", signedId).replace(\":filename\", encodeURIComponent(filename));\n    }\n  }, {\n    key: \"directUploadUrl\",\n    get: function get() {\n      return this.element.dataset.directUploadUrl;\n    }\n  }, {\n    key: \"blobUrlTemplate\",\n    get: function get() {\n      return this.element.dataset.blobUrlTemplate;\n    }\n  }]);\n\n  return AttachmentUpload;\n}();","import { AttachmentUpload } from \"./attachment_upload\";\naddEventListener(\"trix-attachment-add\", function (event) {\n  var attachment = event.attachment,\n      target = event.target;\n\n  if (attachment.file) {\n    var upload = new AttachmentUpload(attachment, target);\n    upload.start();\n  }\n});"],"sourceRoot":""}