{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./app/javascript/packs/setup_amplitude.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/isarray/index.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./node_modules/amplitude-js/amplitude.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","$","document","on","amplitude","getInstance","init","BASA_ENV","AMPLITUDE_API_KEY","window","ampEvent","data","logEvent","pageviewElement","querySelector","page_path","location","pathname","dataset","base64","ieee754","isArray","kMaxLength","Buffer","TYPED_ARRAY_SUPPORT","createBuffer","that","length","RangeError","Uint8Array","__proto__","arg","encodingOrOffset","this","Error","allocUnsafe","from","TypeError","ArrayBuffer","array","byteOffset","byteLength","undefined","fromArrayLike","fromArrayBuffer","string","encoding","isEncoding","actual","write","slice","fromString","obj","isBuffer","len","checked","copy","buffer","val","type","fromObject","assertSize","size","toString","isView","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","start","end","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","b","bidirectionalIndexOf","dir","isNaN","arrayIndexOf","indexOf","lastIndexOf","arr","indexSize","arrLength","valLength","String","read","buf","readUInt16BE","foundIndex","found","j","hexWrite","offset","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","str","byteArray","push","charCodeAt","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","fromByteArray","Math","min","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","apply","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","global","foo","subarray","e","typedArraySupport","poolSize","_augment","species","configurable","fill","allocUnsafeSlow","_isBuffer","compare","a","x","y","concat","list","pos","swap16","swap32","swap64","arguments","equals","inspect","max","match","join","target","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","Array","_arr","ret","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","floor","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","set","code","INVALID_BASE64_RE","Infinity","leadSurrogate","toByteArray","trim","replace","stringtrim","base64clean","src","dst","b64","lens","getLens","validLen","placeHoldersLen","tmp","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","parts","maxChunkLength","len2","encodeChunk","lookup","num","output","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","abs","log","LN2","g","Function","factory","w","noGlobal","getProto","getPrototypeOf","flat","class2type","hasOwn","fnToString","ObjectFunctionString","support","isFunction","nodeType","item","isWindow","preservedScriptAttributes","nonce","noModule","DOMEval","node","doc","script","createElement","text","getAttribute","setAttribute","head","appendChild","parentNode","removeChild","toType","version","rhtmlSuffix","jQuery","selector","context","fn","isArrayLike","nodeName","elem","jquery","constructor","toArray","pushStack","elems","merge","prevObject","each","callback","map","first","eq","last","even","grep","_elem","odd","sort","splice","extend","options","copyIsArray","clone","deep","isPlainObject","expando","random","isReady","error","msg","noop","proto","Ctor","isEmptyObject","globalEval","textContent","nodeValue","makeArray","results","inArray","isXMLDoc","namespace","namespaceURI","docElem","ownerDocument","documentElement","test","second","invert","matches","callbackExpect","guid","iterator","split","_i","pop","whitespace","rtrimCSS","RegExp","contains","bup","compareDocumentPosition","rcssescape","fcssescape","ch","asCodePoint","escapeSelector","sel","preferredDoc","pushNative","Expr","outermostContext","sortInput","hasDuplicate","documentIsHTML","rbuggyQSA","dirruns","done","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","booleans","identifier","attributes","pseudos","rwhitespace","rcomma","rleadingCombinator","rdescend","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","unloadHandler","setDocument","inDisabledFieldset","addCombinator","disabled","next","childNodes","els","find","seed","nid","groups","newSelector","newContext","exec","getElementById","id","getElementsByTagName","getElementsByClassName","testContext","scope","tokenize","toSelector","querySelectorAll","qsaError","removeAttribute","select","keys","cache","cacheLength","shift","markFunction","assert","el","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","subWindow","webkitMatchesSelector","msMatchesSelector","defaultView","top","addEventListener","getById","getElementsByName","disconnectedMatch","cssHas","filter","attrId","getAttributeNode","tag","className","input","innerHTML","sortDetached","expr","elements","matchesSelector","attr","attrHandle","uniqueSort","duplicates","sortStable","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","expectedNodeName","pattern","operator","check","result","what","_argument","simple","forward","ofType","_context","xml","outerCache","nodeIndex","parent","useCache","diff","firstChild","lastChild","pseudo","args","setFilters","idx","matched","not","matcher","compile","unmatched","has","lang","elemLang","hash","root","focus","activeElement","err","safeActiveElement","hasFocus","href","tabIndex","enabled","selected","selectedIndex","empty","nextSibling","header","button","_matchIndexes","lt","gt","nth","radio","checkbox","file","password","image","submit","reset","parseOnly","tokens","soFar","preFilters","cached","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","matcherOut","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","token","compiled","filters","unique","getText","isXML","selectors","until","truncate","is","siblings","rneedsContext","rsingleTag","winnow","qualifier","self","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","prev","sibling","cur","targets","closest","index","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","content","reverse","rnothtmlwhite","Identity","v","Thrower","ex","adoptValue","resolve","reject","noValue","method","promise","fail","then","Callbacks","_","flag","createOptions","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","remove","disable","lock","fireWith","Deferred","func","tuples","state","always","deferred","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","handler","special","mightThrow","notifyWith","resolveWith","process","exceptionHook","rejectWith","getErrorHook","getStackHook","setTimeout","stateString","when","singleValue","resolveContexts","resolveValues","primary","updateFunc","rerrorNames","asyncError","console","warn","message","stack","readyException","readyList","completed","removeEventListener","catch","readyWait","wait","readyState","doScroll","access","chainable","emptyGet","raw","bulk","_key","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","toUpperCase","camelCase","acceptData","owner","Data","uid","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","JSON","parse","getData","removeData","_data","_removeData","attrs","dequeue","startLength","hooks","_queueHooks","unshift","stop","setter","clearQueue","count","defer","pnum","source","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","style","display","css","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","body","showHide","show","values","hide","toggle","div","rcheckableType","rtagName","rscriptType","createDocumentFragment","checkClone","cloneNode","noCloneChecked","defaultValue","option","wrapMap","thead","col","tr","td","_default","getAll","setGlobalEval","refElements","tbody","tfoot","colgroup","caption","th","optgroup","rhtml","buildFragment","scripts","selection","ignored","wrap","attached","fragment","nodes","htmlPrefilter","createTextNode","rtypenamespace","returnTrue","returnFalse","types","one","origFn","event","off","leverageNative","isSetup","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","trigger","isImmediatePropagationStopped","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","rnamespace","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","Event","originalEvent","writable","load","noBubble","click","beforeunload","returnValue","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","Date","now","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","blur","focusMappedHandler","documentMode","simulate","attaches","dataHolder","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","html","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rnumnonpx","rcustomProp","getStyles","opener","getComputedStyle","old","rboxStyle","curCSS","computed","width","minWidth","maxWidth","isCustomProp","getPropertyValue","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","container","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","right","pixelBoxStylesVal","boxSizingReliableVal","position","scrollboxSizeVal","offsetWidth","measure","round","parseFloat","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","table","trChild","trStyle","height","borderTopWidth","borderBottomWidth","offsetHeight","cssPrefixes","emptyStyle","vendorProps","finalPropName","final","cssProps","capName","vendorPropName","rdisplayswap","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","marginDelta","ceil","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","Tween","easing","cssHooks","opacity","animationIterationCount","aspectRatio","borderImageSlice","columnCount","flexGrow","flexShrink","gridArea","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","lineHeight","order","orphans","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeMiterlimit","strokeOpacity","origName","setProperty","getBoundingClientRect","scrollboxSizeBuggy","left","margin","padding","border","prefix","suffix","expand","expanded","propHooks","run","percent","eased","duration","step","fx","scrollTop","scrollLeft","linear","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","interval","tick","createFxNow","genFx","includeWidth","createTween","animation","Animation","tweeners","properties","stopped","prefilters","currentTime","startTime","tweens","opts","specialEasing","originalProperties","originalOptions","gotoEnd","propFilter","complete","timer","anim","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflow","overflowX","overflowY","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","delay","time","timeout","clearTimeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","attrNames","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","addClass","classNames","curValue","finalValue","removeClass","toggleClass","stateVal","isValidValue","hasClass","rreturn","valHooks","optionSet","rquery","parseXML","parserErrorElem","DOMParser","parseFromString","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","triggerHandler","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","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","active","lastModified","etag","url","isLocal","protocol","processData","async","contentType","accepts","json","responseFields","converters","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","status","abort","statusText","finalText","crossDomain","host","hasContent","ifModified","headers","beforeSend","success","send","nativeStatusText","responses","isSuccess","response","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","current","conv","dataFilter","throws","ajaxConvert","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","xhr","XMLHttpRequest","xhrSuccessStatus","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","params","animated","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","rect","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","unbind","delegate","undelegate","hover","fnOver","fnOut","rtrim","proxy","holdReady","hold","parseJSON","isNumeric","_jQuery","_$","noConflict","_typeof","_defineProperty","_objectSpread","ownKeys","getOwnPropertySymbols","sym","getOwnPropertyDescriptor","forEach","Constants","UTF8","utftext","c1","c2","Base64","_keyStr","encode","btoa","atob","unescape","_encode","chr1","chr2","chr3","enc1","enc2","enc3","enc4","charAt","decode","decodeURIComponent","_decode","valueOf","localStorage","logLevels","DISABLE","ERROR","WARN","INFO","logLevel","_log","info","_truncateValue","substring","validateProperties","propsType","keyType","validatePropertyValue","invalidValueTypes","valueType","arrayCopy","element","elemType","validateGroupName","groupName","groupNameType","utils","logLevelName","query","groupsType","group","expectedType","baseCookie","expires","expirationDays","date","setTime","getTime","toUTCString","domain","secure","sameSite","cookie","ca","_options","topDomain","hostname","getHost","levels","cname","_domainSpecific","get$1","nameEq","set$1","stringify","Cookie","stored","setItem","getItem","removeItem","windowLocalStorageAvailable","globalStorage","attrKey","addBehavior","k","save","clear","XMLDocument","localStorage$1","cookieStorage","storage","_cookiesEnabled","getStorage","keyPrefix","AMP_OP_CLEAR_ALL","Identify","userPropertiesOperations","_addOperation","clearAll","setOnce","unset","operation","commonjsGlobal","createCommonjsModule","md5","safeAdd","lsw","md5cmn","q","cnt","md5ff","md5gg","md5hh","md5ii","binlMD5","olda","oldb","oldc","oldd","binl2rstr","length32","rstr2binl","length8","rstr2hex","hexTab","str2rstrUTF8","rawMD5","rstrMD5","rawHMACMD5","bkey","ipad","opad","rstrHMACMD5","strictUriEncode","propIsEnumerable","propertyIsEnumerable","objectAssign","assign","test1","getOwnPropertyNames","test2","test3","shouldUseNative","symbols","toObject","strict","queryString","arrayFormat","formatter","encoderForArrayFormat","val2","Request","XDomainRequest","xdr","onprogress","Revenue","_price","_productId","_quantity","_revenueType","_properties","setProductId","productId","setQuantity","quantity","setPrice","price","setRevenueType","revenueType","setEventProperties","eventProperties","_isValidRevenue","_toJSONObject","AsyncStorage","uaParser","undefined$1","FUNC_TYPE","OBJ_TYPE","MODEL","NAME","TYPE","VENDOR","VERSION","ARCHITECTURE","CONSOLE","MOBILE","TABLET","SMARTTV","WEARABLE","util","regexes","extensions","margedRegexes","str1","str2","lowerize","major","mapper","rgx","ua","arrays","regex","maps","browser","oldsafari","device","amazon","model","sprint","vendor","os","windows","cpu","engine","UAParser","uastring","getResult","navigator","userAgent","rgxmap","getBrowser","getCPU","architecture","getDevice","getEngine","getOS","getUA","setUA","BROWSER","MAJOR","CPU","DEVICE","EMBEDDED","ENGINE","OS","Zepto","parser","uuid","DEFAULT_OPTIONS","apiEndpoint","batchEvents","cookieExpiration","cookieName","sameSiteCookie","deviceIdFromUrlParam","eventUploadPeriodMillis","eventUploadThreshold","forceHttps","includeGclid","includeReferrer","includeUtm","language","languages","userLanguage","optOut","onError","platform","savedMaxCount","saveEvents","saveParamsReferrerOncePerSession","secureCookie","sessionTimeout","trackingOptions","city","country","carrier","device_manufacturer","device_model","dma","ip_address","os_name","os_version","region","version_name","unsetParamsReferrerOnNewSession","unsentKey","unsentIdentifyKey","uploadBatchSize","AmplitudeClient","instanceName","_instanceName","_legacyStorageSuffix","_unsentEvents","_unsentIdentifys","_ua","_q","_sending","_updateScheduled","_onInit","_eventId","_identifyId","_lastEventTime","_newSession","_sequenceNumber","_sessionId","_isInitialized","_userAgent","apiKey","opt_userId","opt_config","opt_callback","_this","_storageSuffix","hasExistingCookie","deferInitialization","_deferInitialization","_parseConfig","_generateApiPropertiesTrackingConfig","_apiPropertiesTrackingOptions","tracking_options","_upgradeCookieData","_loadCookieData","_pendingReadStorage","initFromStorage","deviceId","_getDeviceIdFromUrlParam","_getUrlParams","userId","_unsetUTMParams","_trackParamsAndReferrer","event_properties","userProperties","user_properties","identifyGroups","_saveCookieData","_sendEventsIfReady","_loadSavedUnsentEvents","runQueuedFunctions","_migrateUnsentEvents","cb","_this2","Promise","all","unsentEventsString","itemsToSet","itemsToRemove","_initUtmData","_saveReferrer","_getReferrer","_saveGclid","config","parseValidateAndLoad","inputValue","_apiKeySet","methodName","savedUnsentEventsString","_getFromStorage","unsentEvents","_parseSavedUnsentEventsString","_setInStorage","isNewSession","onInit","getSessionId","nextEventId","nextIdentifyId","nextSequenceNumber","_unsentCount","sendEvents","cookieData","sessionId","lastEventTime","_getAndRemoveFromLocalStorage","apiKeySuffix","localStorageDeviceId","localStorageUserId","localStorageOptOut","localStorageSessionId","localStorageLastEventTime","localStorageEventId","localStorageIdentifyId","localStorageSequenceNumber","_getFromCookie","_loadCookieDataProps","legacyCookieData","eventId","identifyId","sequenceNumber","queryParams","cookieParams","rawCookie","fetchParam","utmSource","utmMedium","utmCampaign","utmTerm","utmContent","utmData","addIfNotNull","utmProperties","queryName","_sendParamsReferrerUserProperties","identify","referrer","search","urlParams","gclid","_getReferringDomain","referrerInfo","setDomain","_shouldDeferCall","setUserId","setGroup","groupType","_logEvent","setOptOut","enable","setSessionId","resetSessionId","regenerateDeviceId","setDeviceId","setUserProperties","sanitized","clearUserProperties","_convertProxyObjectToRealObject","instance","identify_obj","reason","groupIdentify","group_type","group_name","setVersionName","versionName","eventType","apiProperties","groupProperties","timestamp","eventTime","osName","osVersion","deviceModel","deviceManufacturer","device_id","user_id","event_id","session_id","event_type","_shouldTrackField","api_properties","library","sequence_number","group_properties","user_agent","_limitEventsQueued","field","fields","logEventWithTimestamp","logEventWithGroups","_isNumber","logRevenueV2","revenue_obj","logRevenue","product","removeEvents","maxEventId","maxIdentifyId","_removeEvents","eventQueue","maxId","filteredEvents","numEvents","mergedEvents","_mergeEventsAndIdentifys","eventsToSend","uploadTime","client","upload_time","checksum","eventIndex","identifyIndex","noIdentifys","noEvents","setGlobalUserProperties","__VERSION__","_initializationDeferred","enableTracking","Amplitude","_instances","newInstance","_iq"],"mappings":"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","file":"js/setup_amplitude-a4020a00ac996aa3a73f.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 1360);\n","import amplitude from 'amplitude-js';\n\n$(document).on('turbolinks:load', () => {\n amplitude.getInstance().init(BASA_ENV.AMPLITUDE_API_KEY);\n window.amplitude = amplitude;\n\n window.ampEvent = (name, data) => {\n window.amplitude.getInstance().logEvent(name, data);\n };\n\n const pageviewElement = document.querySelector('#amplitude-pageview');\n if (pageviewElement !== null) {\n window.ampEvent(\n 'page_view',\n {\n page_path: document.location.pathname,\n ...pageviewElement.dataset,\n },\n );\n }\n});\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/*!\n * jQuery JavaScript Library v3.7.0\n * https://jquery.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2023-05-11T18:29Z\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 trac-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\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\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 version = \"3.7.0\",\n\n\trhtmlSuffix = /HTML$/i,\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\n\t// Retrieve the text value of an array of DOM nodes\n\ttext: function( elem ) {\n\t\tvar node,\n\t\t\tret = \"\",\n\t\t\ti = 0,\n\t\t\tnodeType = elem.nodeType;\n\n\t\tif ( !nodeType ) {\n\n\t\t\t// If no nodeType, this is expected to be an array\n\t\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t\t// Do not traverse comment nodes\n\t\t\t\tret += jQuery.text( node );\n\t\t\t}\n\t\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t\treturn elem.textContent;\n\t\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\t\treturn elem.nodeValue;\n\t\t}\n\n\t\t// Do not include comment or processing instruction nodes\n\n\t\treturn ret;\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\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\tisXMLDoc: function( elem ) {\n\t\tvar namespace = elem && elem.namespaceURI,\n\t\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t\t// Assume HTML when documentElement doesn't yet exist, such as inside\n\t\t// document fragments.\n\t\treturn !rhtmlSuffix.test( namespace || docElem && docElem.nodeName || \"HTML\" );\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( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\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}\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar pop = arr.pop;\n\n\nvar sort = arr.sort;\n\n\nvar splice = arr.splice;\n\n\nvar whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\";\n\n\nvar rtrimCSS = new RegExp(\n\t\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\",\n\t\"g\"\n);\n\n\n\n\n// Note: an element does not contain itself\njQuery.contains = function( a, b ) {\n\tvar bup = b && b.parentNode;\n\n\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\n\t\t// Support: IE 9 - 11+\n\t\t// IE doesn't have `contains` on SVG.\n\t\ta.contains ?\n\t\t\ta.contains( bup ) :\n\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t) );\n};\n\n\n\n\n// CSS string/identifier serialization\n// https://drafts.csswg.org/cssom/#common-serializing-idioms\nvar rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g;\n\nfunction fcssescape( ch, asCodePoint ) {\n\tif ( asCodePoint ) {\n\n\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\tif ( ch === \"\\0\" ) {\n\t\t\treturn \"\\uFFFD\";\n\t\t}\n\n\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\treturn ch.slice( 0, -1 ) + \"\\\\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t}\n\n\t// Other potentially-special ASCII characters get backslash-escaped\n\treturn \"\\\\\" + ch;\n}\n\njQuery.escapeSelector = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\n\n\n\nvar preferredDoc = document,\n\tpushNative = push;\n\n( function() {\n\nvar i,\n\tExpr,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\tpush = pushNative,\n\n\t// Local document vars\n\tdocument,\n\tdocumentElement,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\tmatches,\n\n\t// Instance-specific data\n\texpando = jQuery.expando,\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\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|\" +\n\t\t\"loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\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: https://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] 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\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trleadingCombinator = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" +\n\t\twhitespace + \"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\tID: new RegExp( \"^#(\" + identifier + \")\" ),\n\t\tCLASS: new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\tTAG: new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\tATTR: new RegExp( \"^\" + attributes ),\n\t\tPSEUDO: new RegExp( \"^\" + pseudos ),\n\t\tCHILD: new RegExp(\n\t\t\t\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\tbool: 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\tneedsContext: 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\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\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// https://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\tif ( nonHex ) {\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\treturn nonHex;\n\t\t}\n\n\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t// Support: IE <=11+\n\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t// surrogate pair\n\t\treturn high < 0 ?\n\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// Used for iframes; see `setDocument`.\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE/Edge.\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && nodeName( elem, \"fieldset\" );\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\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\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 = {\n\t\tapply: function( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t},\n\t\tcall: function( target ) {\n\t\t\tpushNative.apply( target, slice.call( arguments, 1 ) );\n\t\t}\n\t};\n}\n\nfunction find( 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 9 only\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\tpush.call( results, 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 9 only\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\tfind.contains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tpush.call( results, 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 ] ) && context.getElementsByClassName ) {\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 ( !nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) ) {\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 ) || rleadingCombinator.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\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when\n\t\t\t\t\t// strict-comparing two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\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 = jQuery.escapeSelector( nid );\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( rtrimCSS, \"$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\n\t\t// (see https://github.com/jquery/sizzle/issues/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 jQuery selector module\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 * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\treturn nodeName( elem, \"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\treturn ( nodeName( elem, \"input\" ) || nodeName( elem, \"button\" ) ) &&\n\t\t\telem.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\telem.isDisabled !== !disabled &&\n\t\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 jQuery selector 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/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [node] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nfunction setDocument( node ) {\n\tvar 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\tdocumentElement = document.documentElement;\n\tdocumentIsHTML = !jQuery.isXMLDoc( document );\n\n\t// Support: iOS 7 only, IE 9 - 11+\n\t// Older browsers didn't support unprefixed `matches`.\n\tmatches = documentElement.matches ||\n\t\tdocumentElement.webkitMatchesSelector ||\n\t\tdocumentElement.msMatchesSelector;\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (see trac-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 9 - 11+, Edge 12 - 18+\n\t\tsubWindow.addEventListener( \"unload\", unloadHandler );\n\t}\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\tdocumentElement.appendChild( el ).id = jQuery.expando;\n\t\treturn !document.getElementsByName ||\n\t\t\t!document.getElementsByName( jQuery.expando ).length;\n\t} );\n\n\t// Support: IE 9 only\n\t// Check to see if it's possible to do matchesSelector\n\t// on a disconnected node.\n\tsupport.disconnectedMatch = assert( function( el ) {\n\t\treturn matches.call( el, \"*\" );\n\t} );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// IE/Edge don't support the :scope pseudo-class.\n\tsupport.scope = assert( function() {\n\t\treturn document.querySelectorAll( \":scope\" );\n\t} );\n\n\t// Support: Chrome 105 - 111 only, Safari 15.4 - 16.3 only\n\t// Make sure the `:has()` argument is parsed unforgivingly.\n\t// We include `*` in the test to detect buggy implementations that are\n\t// _selectively_ forgiving (specifically when the list includes at least\n\t// one valid selector).\n\t// Note that we treat complete lack of support for `:has()` as if it were\n\t// spec-compliant support, which is fine because use of `:has()` in such\n\t// environments will fail in the qSA path and fall back to jQuery traversal\n\t// anyway.\n\tsupport.cssHas = assert( function() {\n\t\ttry {\n\t\t\tdocument.querySelector( \":has(*,:jqfake)\" );\n\t\t\treturn false;\n\t\t} catch ( e ) {\n\t\t\treturn true;\n\t\t}\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 = function( tag, context ) {\n\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t// DocumentFragment nodes don't have gEBTN\n\t\t} else {\n\t\t\treturn context.querySelectorAll( tag );\n\t\t}\n\t};\n\n\t// Class\n\tExpr.find.CLASS = 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\trbuggyQSA = [];\n\n\t// Build QSA regex\n\t// Regex strategy adopted from Diego Perini\n\tassert( function( el ) {\n\n\t\tvar input;\n\n\t\tdocumentElement.appendChild( el ).innerHTML =\n\t\t\t\"\" +\n\t\t\t\"\";\n\n\t\t// Support: iOS <=7 - 8 only\n\t\t// Boolean attributes and \"value\" are not treated correctly in some XML documents\n\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t}\n\n\t\t// Support: iOS <=7 - 8 only\n\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\trbuggyQSA.push( \"~=\" );\n\t\t}\n\n\t\t// Support: iOS 8 only\n\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t}\n\n\t\t// Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n\t\t// In some of the document kinds, these selectors wouldn't work natively.\n\t\t// This is probably OK but for backwards compatibility we want to maintain\n\t\t// handling them through jQuery traversal in jQuery 3.x.\n\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\trbuggyQSA.push( \":checked\" );\n\t\t}\n\n\t\t// Support: Windows 8 Native Apps\n\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\tinput = document.createElement( \"input\" );\n\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t// Support: IE 9 - 11+\n\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t// Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n\t\t// In some of the document kinds, these selectors wouldn't work natively.\n\t\t// This is probably OK but for backwards compatibility we want to maintain\n\t\t// handling them through jQuery traversal in jQuery 3.x.\n\t\tdocumentElement.appendChild( el ).disabled = true;\n\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t}\n\n\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t// Adding a temporary attribute to the document before the selection works\n\t\t// around the issue.\n\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\tinput = document.createElement( \"input\" );\n\t\tinput.setAttribute( \"name\", \"\" );\n\t\tel.appendChild( input );\n\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t}\n\t} );\n\n\tif ( !support.cssHas ) {\n\n\t\t// Support: Chrome 105 - 110+, Safari 15.4 - 16.3+\n\t\t// Our regular `try-catch` mechanism fails to detect natively-unsupported\n\t\t// pseudo-classes inside `:has()` (such as `:has(:contains(\"Foo\"))`)\n\t\t// in browsers that parse the `:has()` argument as a forgiving selector list.\n\t\t// https://drafts.csswg.org/selectors/#relational now requires the argument\n\t\t// to be parsed unforgivingly, but browsers have not yet fully adjusted.\n\t\trbuggyQSA.push( \":has\" );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = function( 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\tfind.contains( 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\tfind.contains( 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.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t};\n\n\treturn document;\n}\n\nfind.matches = function( expr, elements ) {\n\treturn find( expr, null, null, elements );\n};\n\nfind.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( documentIsHTML &&\n\t\t!nonnativeSelectorCache[ 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\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\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 find( expr, document, null, [ elem ] ).length > 0;\n};\n\nfind.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 jQuery.contains( context, elem );\n};\n\n\nfind.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 (see trac-13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\tif ( val !== undefined ) {\n\t\treturn val;\n\t}\n\n\treturn elem.getAttribute( name );\n};\n\nfind.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 */\njQuery.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\t//\n\t// Support: Android <=4.0+\n\t// Testing for detecting duplicates is unpredictable so instead assume we can't\n\t// depend on duplicate detection in all browsers without a stable sort.\n\thasDuplicate = !support.sortStable;\n\tsortInput = !support.sortStable && slice.call( results, 0 );\n\tsort.call( results, 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\tsplice.call( results, 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\njQuery.fn.uniqueSort = function() {\n\treturn this.pushStack( jQuery.uniqueSort( slice.apply( this ) ) );\n};\n\nExpr = jQuery.expr = {\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\tATTR: 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 ] || match[ 5 ] || \"\" )\n\t\t\t\t.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\tCHILD: 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\tfind.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\t);\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tfind.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\tPSEUDO: 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\tTAG: function( nodeNameSelector ) {\n\t\t\tvar expectedNodeName = 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 nodeName( elem, expectedNodeName );\n\t\t\t\t};\n\t\t},\n\n\t\tCLASS: function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace + \")\" + className +\n\t\t\t\t\t\"(\" + whitespace + \"|$)\" ) ) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\tATTR: function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = find.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\tif ( operator === \"=\" ) {\n\t\t\t\t\treturn result === check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"!=\" ) {\n\t\t\t\t\treturn result !== check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"^=\" ) {\n\t\t\t\t\treturn check && result.indexOf( check ) === 0;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"*=\" ) {\n\t\t\t\t\treturn check && result.indexOf( check ) > -1;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"$=\" ) {\n\t\t\t\t\treturn check && result.slice( -check.length ) === check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"~=\" ) {\n\t\t\t\t\treturn ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" )\n\t\t\t\t\t\t.indexOf( check ) > -1;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"|=\" ) {\n\t\t\t\t\treturn result === check || result.slice( 0, check.length + 1 ) === check + \"-\";\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t};\n\t\t},\n\n\t\tCHILD: 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, 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\tnodeName( node, 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\t\t\t\t\t\t\touterCache = parent[ expando ] || ( parent[ expando ] = {} );\n\t\t\t\t\t\t\tcache = outerCache[ 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\touterCache[ 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\t\t\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\t\t\t\t\t\t\t\tcache = outerCache[ 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\tnodeName( node, 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\t\t\t\t\t\t\t\t\t\t\touterCache[ 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\tPSEUDO: function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// https://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\tfind.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 jQuery 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.call( 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\tnot: 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( rtrimCSS, \"$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\n\t\t\t\t\t// (see https://github.com/jquery/sizzle/issues/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\thas: markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn find( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\tcontains: markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || jQuery.text( 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// https://www.w3.org/TR/selectors/#lang-pseudo\n\t\tlang: 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\tfind.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\ttarget: 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\troot: function( elem ) {\n\t\t\treturn elem === documentElement;\n\t\t},\n\n\t\tfocus: function( elem ) {\n\t\t\treturn elem === safeActiveElement() &&\n\t\t\t\tdocument.hasFocus() &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\tenabled: createDisabledPseudo( false ),\n\t\tdisabled: createDisabledPseudo( true ),\n\n\t\tchecked: function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\treturn ( nodeName( elem, \"input\" ) && !!elem.checked ) ||\n\t\t\t\t( nodeName( elem, \"option\" ) && !!elem.selected );\n\t\t},\n\n\t\tselected: function( elem ) {\n\n\t\t\t// Support: IE <=11+\n\t\t\t// Accessing the selectedIndex property\n\t\t\t// forces the browser to treat the default option as\n\t\t\t// selected when in an optgroup.\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\tempty: function( elem ) {\n\n\t\t\t// https://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\tparent: function( elem ) {\n\t\t\treturn !Expr.pseudos.empty( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\theader: function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\tinput: function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\tbutton: function( elem ) {\n\t\t\treturn nodeName( elem, \"input\" ) && elem.type === \"button\" ||\n\t\t\t\tnodeName( elem, \"button\" );\n\t\t},\n\n\t\ttext: function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn nodeName( elem, \"input\" ) && elem.type === \"text\" &&\n\n\t\t\t\t// Support: IE <10 only\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear\n\t\t\t\t// 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\tfirst: createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\tlast: createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\teq: createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\teven: 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\todd: 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\tlt: createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i;\n\n\t\t\tif ( argument < 0 ) {\n\t\t\t\ti = argument + length;\n\t\t\t} else if ( argument > length ) {\n\t\t\t\ti = length;\n\t\t\t} else {\n\t\t\t\ti = argument;\n\t\t\t}\n\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\tgt: 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\nfunction tokenize( 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 = rleadingCombinator.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( rtrimCSS, \" \" )\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\tif ( parseOnly ) {\n\t\treturn soFar.length;\n\t}\n\n\treturn soFar ?\n\t\tfind.error( selector ) :\n\n\t\t// Cache the tokens\n\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, 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\tif ( skip && nodeName( elem, skip ) ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = outerCache[ 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\touterCache[ 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\tfind( 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, matcherOut,\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 ||\n\t\t\t\tmultipleContexts( selector || \"*\",\n\t\t\t\t\tcontext.nodeType ? [ context ] : context, [] ),\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\tif ( matcher ) {\n\n\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter\n\t\t\t// or preexisting results,\n\t\t\tmatcherOut = postFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t[] :\n\n\t\t\t\t// ...otherwise use results directly\n\t\t\t\tresults;\n\n\t\t\t// Find primary matches\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t} else {\n\t\t\tmatcherOut = matcherIn;\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.call( 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.call( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\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\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\n\t\t\t// (see https://github.com/jquery/sizzle/issues/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\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 )\n\t\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrimCSS, \"$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: iOS <=7 - 9 only\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching\n\t\t\t// elements by id. (see trac-14142)\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\tpush.call( results, 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\tjQuery.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\nfunction compile( 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( selector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers ) );\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 jQuery's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with jQuery selector compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nfunction select( 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\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find.ID(\n\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\tcontext\n\t\t\t) || [] )[ 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 ) &&\n\t\t\t\t\t\ttestContext( context.parentNode ) || context\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// Support: Android <=4.0 - 4.1+\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Android <=4.0 - 4.1+\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\njQuery.find = find;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.unique = jQuery.uniqueSort;\n\n// These have always been private, but they used to be documented\n// as part of Sizzle so let's maintain them in the 3.x line\n// for backwards compatibility purposes.\nfind.compile = compile;\nfind.select = select;\nfind.setDocument = setDocument;\n\nfind.escape = jQuery.escapeSelector;\nfind.getText = jQuery.text;\nfind.isXML = jQuery.isXMLDoc;\nfind.selectors = jQuery.expr;\nfind.support = jQuery.support;\nfind.uniqueSort = jQuery.uniqueSort;\n\n\t/* eslint-enable */\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\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 (trac-9521)\n\t// Strict HTML recognition (trac-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 jQuery#find\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.error );\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 error, 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.getErrorHook ) {\n\t\t\t\t\t\t\t\t\tprocess.error = jQuery.Deferred.getErrorHook();\n\n\t\t\t\t\t\t\t\t// The deprecated alias of the above. While the name suggests\n\t\t\t\t\t\t\t\t// returning the stack, not an error instance, jQuery just passes\n\t\t\t\t\t\t\t\t// it directly to `console.warn` so both will work; an instance\n\t\t\t\t\t\t\t\t// just better cooperates with source maps.\n\t\t\t\t\t\t\t\t} else if ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.error = 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 primary Deferred\n\t\t\tprimary = 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\tprimary.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, primary.done( updateFunc( i ) ).resolve, primary.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 ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.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 ), primary.reject );\n\t\t}\n\n\t\treturn primary.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\n// If `jQuery.Deferred.getErrorHook` is defined, `asyncError` is an error\n// captured before the async barrier to get the original error cause\n// which may otherwise be hidden.\njQuery.Deferred.exceptionHook = function( error, asyncError ) {\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,\n\t\t\terror.stack, asyncError );\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 trac-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\t\tvalue :\n\t\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 (trac-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 trac-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 (trac-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 (trac-11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (trac-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 (trac-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 (trac-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 (trac-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 rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\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\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\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 (trac-13208)\n\t\t\t\t// Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-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 (trac-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\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\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\", true );\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, isSetup ) {\n\n\t// Missing `isSetup` indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !isSetup ) {\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 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\tif ( !saved ) {\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\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tdataPriv.set( this, type, false );\n\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\n\t\t\t\t\t\treturn result;\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\n\t\t\t\t// the 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 ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, jQuery.event.trigger(\n\t\t\t\t\tsaved[ 0 ],\n\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\tthis\n\t\t\t\t) );\n\n\t\t\t\t// Abort handling of the native event by all jQuery handlers while allowing\n\t\t\t\t// native handlers on the same element to run. On target, this is achieved\n\t\t\t\t// by stopping immediate propagation just on the jQuery event. However,\n\t\t\t\t// the native event is re-wrapped by a jQuery one on each level of the\n\t\t\t\t// propagation so the only way to stop it for jQuery is to stop it for\n\t\t\t\t// everyone via native `stopPropagation()`. This is not a problem for\n\t\t\t\t// focus/blur which don't bubble, but it does also stop click on checkboxes\n\t\t\t\t// and radios. We accept this limitation.\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tevent.isImmediatePropagationStopped = returnTrue;\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 (trac-504, trac-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\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\n\tfunction focusMappedHandler( nativeEvent ) {\n\t\tif ( document.documentMode ) {\n\n\t\t\t// Support: IE 11+\n\t\t\t// Attach a single focusin/focusout handler on the document while someone wants\n\t\t\t// focus/blur. This is because the former are synchronous in IE while the latter\n\t\t\t// are async. In other browsers, all those handlers are invoked synchronously.\n\n\t\t\t// `handle` from private data would already wrap the event, but we need\n\t\t\t// to change the `type` here.\n\t\t\tvar handle = dataPriv.get( this, \"handle\" ),\n\t\t\t\tevent = jQuery.event.fix( nativeEvent );\n\t\t\tevent.type = nativeEvent.type === \"focusin\" ? \"focus\" : \"blur\";\n\t\t\tevent.isSimulated = true;\n\n\t\t\t// First, handle focusin/focusout\n\t\t\thandle( nativeEvent );\n\n\t\t\t// ...then, handle focus/blur\n\t\t\t//\n\t\t\t// focus/blur don't bubble while focusin/focusout do; simulate the former by only\n\t\t\t// invoking the handler at the lower level.\n\t\t\tif ( event.target === event.currentTarget ) {\n\n\t\t\t\t// The setup part calls `leverageNative`, which, in turn, calls\n\t\t\t\t// `jQuery.event.add`, so event handle will already have been set\n\t\t\t\t// by this point.\n\t\t\t\thandle( event );\n\t\t\t}\n\t\t} else {\n\n\t\t\t// For non-IE browsers, attach a single capturing handler on the document\n\t\t\t// while someone wants focusin/focusout.\n\t\t\tjQuery.event.simulate( delegateType, nativeEvent.target,\n\t\t\t\tjQuery.event.fix( nativeEvent ) );\n\t\t}\n\t}\n\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\tvar attaches;\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, true );\n\n\t\t\tif ( document.documentMode ) {\n\n\t\t\t\t// Support: IE 9 - 11+\n\t\t\t\t// We use the same native handler for focusin & focus (and focusout & blur)\n\t\t\t\t// so we need to coordinate setup & teardown parts between those events.\n\t\t\t\t// Use `delegateType` as the key as `type` is already used by `leverageNative`.\n\t\t\t\tattaches = dataPriv.get( this, delegateType );\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tthis.addEventListener( delegateType, focusMappedHandler );\n\t\t\t\t}\n\t\t\t\tdataPriv.set( this, delegateType, ( attaches || 0 ) + 1 );\n\t\t\t} else {\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},\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\tteardown: function() {\n\t\t\tvar attaches;\n\n\t\t\tif ( document.documentMode ) {\n\t\t\t\tattaches = dataPriv.get( this, delegateType ) - 1;\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tthis.removeEventListener( delegateType, focusMappedHandler );\n\t\t\t\t\tdataPriv.remove( this, delegateType );\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.set( this, delegateType, attaches );\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Return false to indicate standard teardown should be applied\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\n\t\t// Suppress native focus or blur if we're currently inside\n\t\t// a leveraged native-event stack\n\t\t_default: function( event ) {\n\t\t\treturn dataPriv.get( event.target, type );\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n\n\t// Support: Firefox <=44\n\t// Firefox doesn't have focus(in | out) events\n\t// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n\t//\n\t// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n\t// focus(in | out) events fire after focus & blur events,\n\t// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n\t// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\n\t//\n\t// Support: IE 9 - 11+\n\t// To preserve relative focusin/focus & focusout/blur event order guaranteed on the 3.x branch,\n\t// attach a single handler for both events in IE.\n\tjQuery.event.special[ delegateType ] = {\n\t\tsetup: function() {\n\n\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\tdataHolder = document.documentMode ? this : doc,\n\t\t\t\tattaches = dataPriv.get( dataHolder, delegateType );\n\n\t\t\t// Support: IE 9 - 11+\n\t\t\t// We use the same native handler for focusin & focus (and focusout & blur)\n\t\t\t// so we need to coordinate setup & teardown parts between those events.\n\t\t\t// Use `delegateType` as the key as `type` is already used by `leverageNative`.\n\t\t\tif ( !attaches ) {\n\t\t\t\tif ( document.documentMode ) {\n\t\t\t\t\tthis.addEventListener( delegateType, focusMappedHandler );\n\t\t\t\t} else {\n\t\t\t\t\tdoc.addEventListener( type, focusMappedHandler, true );\n\t\t\t\t}\n\t\t\t}\n\t\t\tdataPriv.set( dataHolder, delegateType, ( attaches || 0 ) + 1 );\n\t\t},\n\t\tteardown: function() {\n\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\tdataHolder = document.documentMode ? this : doc,\n\t\t\t\tattaches = dataPriv.get( dataHolder, delegateType ) - 1;\n\n\t\t\tif ( !attaches ) {\n\t\t\t\tif ( document.documentMode ) {\n\t\t\t\t\tthis.removeEventListener( delegateType, focusMappedHandler );\n\t\t\t\t} else {\n\t\t\t\t\tdoc.removeEventListener( type, focusMappedHandler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( dataHolder, delegateType );\n\t\t\t} else {\n\t\t\t\tdataPriv.set( dataHolder, delegateType, attaches );\n\t\t\t}\n\t\t}\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 (trac-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\n\t\t\t\t\t\t\t// Unwrap a CDATA section containing script contents. This shouldn't be\n\t\t\t\t\t\t\t// needed as in XML documents they're already not visible when\n\t\t\t\t\t\t\t// inspecting element contents and in HTML documents they have no\n\t\t\t\t\t\t\t// meaning but we're preserving that logic for backwards compatibility.\n\t\t\t\t\t\t\t// This will be removed completely in 4.0. See gh-4904.\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 jQuery#find here for performance reasons:\n\t\t\t// 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 rcustomProp = /^--/;\n\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (trac-15098, trac-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 (trac-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\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\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;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is display: block\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\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, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\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\t\tisCustomProp = rcustomProp.test( name ),\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, trac-12537)\n\t// .css('--customProperty) (gh-3144)\n\tif ( computed ) {\n\n\t\t// Support: IE <=9 - 11+\n\t\t// IE only supports `\"float\"` in `getPropertyValue`; in computed styles\n\t\t// it's only available as `\"cssFloat\"`. We no longer modify properties\n\t\t// sent to `.css()` apart from camelCasing, so we need to check both.\n\t\t// Normally, this would create difference in behavior: if\n\t\t// `getPropertyValue` returns an empty string, the value returned\n\t\t// by `.css()` would be `undefined`. This is usually the case for\n\t\t// disconnected elements. However, in IE even disconnected elements\n\t\t// with no styles return `\"none\"` for `getPropertyValue( \"float\" )`\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( isCustomProp && ret ) {\n\n\t\t\t// Support: Firefox 105+, Chrome <=105+\n\t\t\t// Spec requires trimming whitespace for custom properties (gh-4926).\n\t\t\t// Firefox only trims leading whitespace. Chrome just collapses\n\t\t\t// both leading & trailing whitespace to a single space.\n\t\t\t//\n\t\t\t// Fall back to `undefined` if empty string returned.\n\t\t\t// This collapses a missing definition with property defined\n\t\t\t// and set to an empty string but there's no standard API\n\t\t\t// allowing us to differentiate them without a performance penalty\n\t\t\t// and returning `undefined` aligns with older jQuery.\n\t\t\t//\n\t\t\t// rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED\n\t\t\t// as whitespace while CSS does not, but this is not a problem\n\t\t\t// because CSS preprocessing replaces them with U+000A LINE FEED\n\t\t\t// (which *is* CSS whitespace)\n\t\t\t// https://www.w3.org/TR/css-syntax-3/#input-preprocessing\n\t\t\tret = ret.replace( rtrimCSS, \"$1\" ) || undefined;\n\t\t}\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\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\t\tmarginDelta = 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\t// Count margin delta separately to only add it after scroll gutter adjustment.\n\t\t// This is needed to make negative margins work with `outerHeight( true )` (gh-3982).\n\t\tif ( box === \"margin\" ) {\n\t\t\tmarginDelta += 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 + marginDelta;\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\tanimationIterationCount: true,\n\t\taspectRatio: true,\n\t\tborderImageSlice: true,\n\t\tcolumnCount: true,\n\t\tflexGrow: true,\n\t\tflexShrink: true,\n\t\tfontWeight: true,\n\t\tgridArea: true,\n\t\tgridColumn: true,\n\t\tgridColumnEnd: true,\n\t\tgridColumnStart: true,\n\t\tgridRow: true,\n\t\tgridRowEnd: true,\n\t\tgridRowStart: true,\n\t\tlineHeight: true,\n\t\topacity: true,\n\t\torder: true,\n\t\torphans: true,\n\t\tscale: true,\n\t\twidows: true,\n\t\tzIndex: true,\n\t\tzoom: true,\n\n\t\t// SVG-related\n\t\tfillOpacity: true,\n\t\tfloodOpacity: true,\n\t\tstopOpacity: true,\n\t\tstrokeMiterlimit: true,\n\t\tstrokeOpacity: 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 (trac-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 trac-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 (trac-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\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\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) + \"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\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\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 )` (trac-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\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\n\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.\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// Use proper attribute retrieval (trac-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 classNames, cur, curValue, className, i, finalValue;\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\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + className + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += className + \" \";\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\tthis.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 classNames, cur, curValue, className, i, finalValue;\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\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + className + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + className + \" \", \" \" );\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\tthis.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 classNames, className, i, self,\n\t\t\ttype = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\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\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\treturn this.each( function() {\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\tself = jQuery( this );\n\n\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\tclassName = 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\t\"\" :\n\t\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\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 (trac-14686, trac-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 (trac-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\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, parserErrorElem;\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\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\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 (trac-9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (trac-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 = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ 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 (trac-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\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} ).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} ).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// trac-7653, trac-8125, trac-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 (trac-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\noriginAnchor.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 trac-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\tjQuery( callbackContext ) :\n\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 (trac-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 trac-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 (trac-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// trac-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 but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\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 (trac-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// trac-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 trac-8605, trac-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// trac-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( \"