{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///node_modules/popper.js/dist/esm/popper.js","webpack:///node_modules/jquery/dist/jquery.js","webpack:///node_modules/bootstrap/dist/js/bootstrap.js","webpack:///wp/wp-content/themes/wodka-kamil-chisel/src/scripts/modules/greeting.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","default","object","property","prototype","hasOwnProperty","p","s","isBrowser","window","document","navigator","timeoutDuration","longerTimeoutBrowsers","length","userAgent","indexOf","debounce","Promise","fn","called","resolve","then","scheduled","setTimeout","isFunction","functionToCheck","toString","getStyleComputedProperty","element","nodeType","css","ownerDocument","defaultView","getComputedStyle","getParentNode","nodeName","parentNode","host","getScrollParent","body","_getStyleComputedProp","overflow","overflowX","overflowY","test","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","documentElement","noOffsetParent","offsetParent","nextElementSibling","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","firstElementChild","element1root","getScroll","upperSide","arguments","html","scrollingElement","getBordersSize","styles","axis","sideA","sideB","parseFloat","getSize","computedStyle","Math","max","parseInt","getWindowSizes","height","width","classCallCheck","instance","Constructor","TypeError","createClass","defineProperties","target","props","descriptor","configurable","writable","protoProps","staticProps","obj","_extends","assign","source","getClientRect","offsets","right","left","bottom","top","getBoundingClientRect","rect","scrollTop","scrollLeft","e","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","children","parent","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","subtract","modifier","includeScroll","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","padding","boundariesElement","boundaries","excludeScroll","relativeOffset","innerWidth","innerHeight","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","_ref","computeAutoPlacement","placement","refRect","rects","sortedAreas","keys","map","area","sort","a","b","filteredAreas","filter","_ref2","computedPlacement","variation","split","getReferenceOffsets","state","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","replace","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","Array","runModifiers","modifiers","data","ends","slice","prop","findIndex","cur","match","forEach","function","console","warn","enabled","isModifierEnabled","modifierName","some","getSupportedPropertyName","prefixes","upperProp","charAt","toUpperCase","prefix","toCheck","style","getWindow","enableEventListeners","this","eventsEnabled","options","updateBound","addEventListener","passive","scrollElement","attachToScrollParents","event","callback","scrollParents","isBody","push","setupEventListeners","scheduleUpdate","isNumeric","isNaN","isFinite","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","index","concat","reverse","Defaults","positionFixed","removeOnDestroy","onCreate","onUpdate","shift","basePlacement","shiftvariation","_data$offsets","isVertical","side","shiftOffsets","offset","useHeight","fragments","frag","trim","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","str","index2","parseOffset","preventOverflow","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","min","keepTogether","floor","opSide","arrow","_data$offsets$arrow","arrowElement","querySelector","len","sideCapitalized","toLowerCase","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","round","flip","flipped","originalPlacement","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","inner","subtractLength","hide","bound","attributes","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","position","shouldRound","noRound","v","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","devicePixelRatio","prefixedProperty","willChange","invertTop","invertLeft","x-placement","arrowStyles","applyStyle","setAttribute","removeAttribute","onLoad","modifierOptions","Popper","_this","requestAnimationFrame","update","isDestroyed","isCreated","jquery","disableEventListeners","removeChild","cancelAnimationFrame","removeEventListener","Utils","global","PopperUtils","ae","factory","w","Error","noGlobal","getProto","getPrototypeOf","flat","array","apply","class2type","hasOwn","fnToString","ObjectFunctionString","support","isWindow","preservedScriptAttributes","type","src","nonce","noModule","DOMEval","code","doc","val","script","createElement","text","getAttribute","head","appendChild","toType","jQuery","selector","context","init","isArrayLike","constructor","toArray","num","pushStack","elems","ret","merge","prevObject","each","elem","first","eq","last","even","grep","_elem","odd","j","splice","extend","copy","copyIsArray","clone","deep","isPlainObject","isArray","expando","random","isReady","error","msg","noop","proto","Ctor","isEmptyObject","globalEval","makeArray","results","inArray","second","invert","matches","callbackExpect","arg","guid","iterator","_i","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","Date","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","pop","pushNative","list","booleans","whitespace","identifier","pseudos","rwhitespace","RegExp","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","String","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","inDisabledFieldset","addCombinator","disabled","dir","next","childNodes","els","seed","nid","groups","newSelector","newContext","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","testContext","scope","toSelector","join","querySelectorAll","qsaError","cache","cacheLength","markFunction","assert","addHandle","attrs","handler","attrHandle","siblingCheck","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","namespace","namespaceURI","hasCompare","subWindow","attachEvent","className","createComment","getById","getElementsByName","attrId","getAttributeNode","tag","tmp","input","innerHTML","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","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","what","_argument","simple","forward","ofType","_context","xml","uniqueCache","outerCache","nodeIndex","useCache","lastChild","uniqueID","pseudo","args","setFilters","idx","not","matcher","unmatched","has","lang","elemLang","location","root","focus","activeElement","hasFocus","href","tabIndex","checked","selected","selectedIndex","empty","header","button","_matchIndexes","lt","gt","nth","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","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","cached","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","token","compiled","_name","defaultValue","unique","isXMLDoc","escapeSelector","until","truncate","is","siblings","rneedsContext","rsingleTag","winnow","qualifier","self","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","contents","prev","sibling","targets","closest","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","content","rnothtmlwhite","Identity","Thrower","ex","adoptValue","reject","noValue","method","promise","fail","Callbacks","_","flag","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","remove","disable","lock","fireWith","Deferred","func","tuples","always","deferred","catch","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","that","mightThrow","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","stateString","when","singleValue","remaining","resolveContexts","resolveValues","master","updateFunc","rerrorNames","stack","message","readyException","readyList","completed","readyWait","wait","readyState","doScroll","access","chainable","emptyGet","raw","bulk","_key","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","camelCase","string","acceptData","owner","Data","uid","set","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","JSON","parse","removeData","_data","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","display","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","showHide","show","values","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","on","types","one","origFn","undefined","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","matchedHandlers","matchedSelectors","addProp","hook","originalEvent","load","noBubble","click","beforeunload","returnValue","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","now","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","char","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rnumnonpx","getStyles","opener","swap","old","rboxStyle","curCSS","computed","minWidth","maxWidth","getPropertyValue","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","container","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","measure","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","table","trChild","trStyle","cssPrefixes","emptyStyle","vendorProps","finalPropName","cssProps","capName","rdisplayswap","rcustomProp","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","boxModelAdjustment","dimension","box","isBorderBox","computedVal","extra","delta","ceil","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","Tween","easing","cssHooks","opacity","animationIterationCount","columnCount","fillOpacity","flexGrow","flexShrink","gridArea","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","lineHeight","orphans","widows","zIndex","zoom","origName","isCustomProp","setProperty","scrollboxSizeBuggy","margin","border","suffix","expand","expanded","parts","propHooks","run","percent","eased","duration","pos","fx","linear","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","interval","tick","createFxNow","genFx","includeWidth","createTween","animation","Animation","tweeners","properties","stopped","prefilters","currentTime","startTime","tweens","opts","specialEasing","originalProperties","originalOptions","gotoEnd","complete","timer","anim","*","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","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","attrNames","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","for","class","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","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","status","abort","statusText","finalText","crossDomain","hasContent","ifModified","headers","beforeSend","success","send","nativeStatusText","responses","isSuccess","response","modified","ct","finalDataType","firstDataType","conv2","current","conv","dataFilter","throws","getJSON","getScript","text script","wrapAll","wrapInner","htmlIsFunction","unwrap","visible","xhr","XMLHttpRequest","xhrSuccessStatus","0","1223","xhrSupported","cors","errorCallback","open","username","xhrFields","onload","onerror","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","scriptAttrs","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","params","animated","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","win","pageYOffset","pageXOffset","parentOffset","scrollTo","Height","Width","","defaultExtra","funcName","unbind","delegate","undelegate","hover","fnOver","fnOut","proxy","holdReady","hold","parseJSON","_jQuery","_$","$","noConflict","_defineProperties","_createClass","_defineProperty","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_objectSpread2","getOwnPropertyDescriptors","Util","TRANSITION_END","getUID","getSelectorFromElement","hrefAttr","getTransitionDurationFromElement","transitionDuration","transitionDelay","floatTransitionDuration","floatTransitionDelay","reflow","triggerTransitionEnd","supportsTransitionEnd","Boolean","isElement","typeCheckConfig","componentName","config","configTypes","expectedTypes","valueType","findShadowRoot","attachShadow","ShadowRoot","jQueryDetection","emulateTransitionEnd","NAME","JQUERY_NO_CONFLICT","Alert","_element","_proto","close","rootElement","_getRootElement","_triggerCloseEvent","_removeElement","dispose","closeEvent","_destroyElement","_jQueryInterface","$element","_handleDismiss","alertInstance","JQUERY_NO_CONFLICT$1","Button","triggerChangeEvent","addAriaPressed","classList","hasAttribute","initialButton","inputBtn","tagName","_len","_button","NAME$2","JQUERY_NO_CONFLICT$2","Default","keyboard","slide","pause","touch","DefaultType","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","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","eventDirectionName","targetIndex","fromIndex","slideEvent","from","_setActiveIndicatorElement","indicators","nextIndicator","directionalClassName","orderClassName","_this4","activeElementIndex","nextElement","nextElementIndex","isCycling","slidEvent","nextElementInterval","defaultInterval","CLASS_NAME_ACTIVE$1","action","ride","_dataApiClickHandler","slideIndex","carousels","$carousel","NAME$3","JQUERY_NO_CONFLICT$3","Default$1","DefaultType$1","Collapse","_isTransitioning","_triggerArray","toggleList","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","actives","activesData","startEvent","_getDimension","setTransitioning","scrollSize","CLASS_NAME_COLLAPSE","triggerArrayLength","isTransitioning","_getTargetFromElement","triggerArray","isOpen","$this","$trigger","$target","NAME$4","JQUERY_NO_CONFLICT$4","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","Default$2","boundary","popperConfig","DefaultType$2","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","isActive","_clearMenus","usePopper","showEvent","_getParentFromElement","referenceElement","_getPopperConfig","hideEvent","destroy","_getPlacement","$parentDropdown","_getOffset","toggles","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","item","EVENT_CLICK_DATA_API$4","JQUERY_NO_CONFLICT$5","modal","Default$3","backdrop","DefaultType$3","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","_triggerBackdropTransition","hideEventPrevented","modalTransitionDuration","modalBody","ELEMENT_NODE","_enforceFocus","shownEvent","transitionComplete","_this5","_this6","_this7","_this8","_resetAdjustments","_resetScrollbar","_removeBackdrop","_this9","backdropTransitionDuration","callbackRemove","_backdropTransitionDuration","isModalOverflowing","scrollHeight","paddingLeft","paddingRight","_getScrollbarWidth","_this10","fixedContent","stickyContent","actualPadding","calculatedPadding","actualMargin","calculatedMargin","scrollDiv","scrollbarWidth","_this11","uriAttrs","SAFE_URL_PATTERN","DATA_URL_PATTERN","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","whitelistKeys","_loop","elName","attributeList","whitelistedAttributes","allowedAttributeList","attrName","regExp","attrRegex","NAME$6","JQUERY_NO_CONFLICT$6","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","DefaultType$4","template","title","fallbackPlacement","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","Default$4","br","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","pre","small","span","sub","sup","strong","u","ul","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","toggleEnabled","dataKey","DATA_KEY","_getDelegateConfig","_isWithActiveTrigger","_enter","_leave","getTipElement","EVENT_KEY","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","_fixTransition","prevHoverState","_cleanTipClass","getTitle","CLASS_PREFIX","setElementContent","CLASS_NAME_FADE$2","_handlePopperPlacementChange","eventIn","eventOut","_fixTitle","titleType","dataAttributes","$tip","tabClass","popperData","initConfigAnimation","NAME$7","JQUERY_NO_CONFLICT$7","BSCLS_PREFIX_REGEX$1","Default$5","DefaultType$5","Event$1","Popover","_Tooltip","subClass","superClass","__proto__","_getContent","CLASS_PREFIX$1","CLASS_NAME_FADE$3","NAME$8","JQUERY_NO_CONFLICT$8","Default$6","DefaultType$6","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","_getOffsetHeight","maxScroll","_activate","_clear","queries","$link","SELECTOR_NAV_LINKS","scrollSpys","$spy","JQUERY_NO_CONFLICT$9","tab","Tab","previous","listElement","itemSelector","hiddenEvent","_transitionComplete","dropdownChild","dropdownElement","dropdownToggleList","JQUERY_NO_CONFLICT$a","toast","DefaultType$7","autohide","Default$7","Toast","_close","Scrollspy","scroll","$nav","$navImage","$toContainer","$container","$toggle","$button","$collapse","offsetTop","parentId","tooltip","$activeSidebar","topic","collapse","bg","basePath","sectionConfig","$topSection","webpProcess","psBackgroundValue","Modernizr","path","Image","imagesPath","webp","jpg","localStorage","setItem","getItem"],"mappings":"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","file":"app.bundle.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 = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"multi \\\\wp\\\\wp-content\\\\themes\\\\wodka-kamil-chisel\\\\src\\\\scripts\\\\app.js\");\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar 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\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overridden using the `options` argument of Popper.js.
\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\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\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\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\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\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\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof 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\nvar\n\tversion = \"3.5.1\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\nfunction( _i, name ) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar 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 ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\n\t\t// or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\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 */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\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 */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\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 */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\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 */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\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 */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\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 */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem.namespaceURI,\n\t\tdocElem = ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\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 */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t) );\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\treturn a == document ? -1 :\n\t\t\t\tb == document ? 1 :\n\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[ i ] === bp[ i ] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\tap[ i ] == preferredDoc ? -1 :\n\t\t\tbp[ i ] == preferredDoc ? 1 :\n\t\t\t/* eslint-enable eqeqeq */\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t// fragment in IE 9\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\n\t\t\t\t\t\tclassName, function( elem ) {\n\t\t\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\t/* eslint-disable max-len */\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t\t/* eslint-enable max-len */\n\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\t\"has\": markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\t\"contains\": markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rcombinators.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts(\n\t\t\t\tselector || \"*\",\n\t\t\t\tcontext.nodeType ? [ context ] : context,\n\t\t\t\t[]\n\t\t\t),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\ttokens\n\t\t\t\t\t\t.slice( 0, i - 1 )\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache(\n\t\t\tselector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\n\t\t);\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\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 */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert( function( el ) {\n\tel.innerHTML = \"\";\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\n} ) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert( function( el ) {\n\tel.innerHTML = \"\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n} ) ) {\n\taddHandle( \"value\", function( elem, _name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert( function( el ) {\n\treturn el.getAttribute( \"disabled\" ) == null;\n} ) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t}\n\t} );\n}\n\nreturn Sizzle;\n\n} )( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n};\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\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 */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the master Deferred\n\t\t\tmaster = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tmaster.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( master.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn master.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), master.reject );\n\t\t}\n\n\t\treturn master.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\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\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\tvalue :\n\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\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)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\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\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces \";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting or other required elements.\n\tthead: [ 1, \"\", \"
\" ],\n\tcol: [ 2, \"\", \"
\" ],\n\ttr: [ 2, \"\", \"
\" ],\n\ttd: [ 3, \"\", \"
\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\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).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\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 */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\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.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\treturn result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (#504, #13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\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\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\n\twhich: function( event ) {\n\t\tvar button = event.button;\n\n\t\t// Add which for key events\n\t\tif ( event.which == null && rkeyEvent.test( event.type ) ) {\n\t\t\treturn event.charCode != null ? event.charCode : event.keyCode;\n\t\t}\n\n\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\tif ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {\n\t\t\tif ( button & 1 ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\tif ( button & 2 ) {\n\t\t\t\treturn 3;\n\t\t\t}\n\n\t\t\tif ( button & 4 ) {\n\t\t\t\treturn 2;\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn event.which;\n\t}\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\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).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px\";\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = parseInt( trStyle.height ) > 3;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, #12537)\n\t// .css('--customProperty) (#3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trcustomProp = /^--/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t\t} ) :\n\t\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\t\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\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/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\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\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = classesToArray( value );\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = (\n\t\t\t\t\tdataPriv.get( cur, \"events\" ) || Object.create( null )\n\t\t\t\t)[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\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\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\n\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {\n\t\txml = undefined;\n\t}\n\n\tif ( !xml || xml.getElementsByTagName( \"parsererror\" ).length ) {\n\t\tjQuery.error( \"Invalid XML: \" + data );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} )\n\t\t.filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} )\n\t\t.map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\toriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\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 */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script\n\t\t\tif ( !isSuccess && jQuery.inArray( \"script\", s.dataTypes ) > -1 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"