{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./app/javascript/packs/nav.js","webpack:///./node_modules/jquery-ui-dist/external/jquery/jquery.js","webpack:///(webpack)/buildin/module.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","$","jQuery","on","$navMenuCont","this","data","animate","global","factory","_typeof","iterator","obj","constructor","window","noGlobal","deletedIds","document","_slice","slice","concat","push","indexOf","class2type","toString","hasOwn","support","version","selector","context","fn","init","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","toUpperCase","isArrayLike","length","type","isWindow","jquery","toArray","num","pushStack","elems","ret","merge","prevObject","each","callback","map","elem","apply","arguments","first","eq","last","len","j","end","sort","splice","extend","src","copyIsArray","copy","options","clone","target","deep","isFunction","isPlainObject","isArray","undefined","expando","Math","random","replace","isReady","error","msg","Error","noop","Array","isNumeric","realStringObj","parseFloat","isEmptyObject","nodeType","e","ownFirst","globalEval","trim","execScript","camelCase","string","nodeName","toLowerCase","text","makeArray","arr","results","inArray","max","second","grep","invert","matches","callbackExpect","arg","guid","proxy","args","tmp","now","Date","split","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","sortOrder","a","b","MAX_NEGATIVE","pop","push_native","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","rinputs","rheader","rnative","rquickExpr","rsibling","rescape","runescape","funescape","_","escaped","escapedWhitespace","high","String","fromCharCode","unloadHandler","childNodes","els","seed","nid","nidselect","match","groups","newSelector","newContext","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","getAttribute","setAttribute","toSelector","join","testContext","parentNode","querySelectorAll","qsaError","removeAttribute","keys","cache","cacheLength","shift","markFunction","assert","div","createElement","removeChild","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","documentElement","node","hasCompare","parent","doc","defaultView","top","addEventListener","attachEvent","className","appendChild","createComment","getById","getElementsByName","find","filter","attrId","getAttributeNode","tag","innerHTML","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","val","specified","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative","dir","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","simple","forward","ofType","xml","uniqueCache","outerCache","nodeIndex","start","useCache","lastChild","uniqueID","pseudo","setFilters","idx","matched","matcher","unmatched","innerText","lang","elemLang","hash","location","activeElement","hasFocus","href","tabIndex","disabled","checked","selected","selectedIndex","radio","checkbox","file","password","image","submit","reset","tokens","addCombinator","combinator","base","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","cached","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","token","compiled","div1","defaultValue","unique","isXMLDoc","_dir","until","truncate","is","_siblings","rneedsContext","needsContext","rsingleTag","risSimple","winnow","qualifier","not","self","rootjQuery","root","charAt","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","next","prev","sibling","has","targets","closest","pos","index","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","contentDocument","contentWindow","reverse","readyList","rnotwhite","detach","removeEventListener","completed","detachEvent","event","readyState","Callbacks","flag","createOptions","firing","memory","_fired","_locked","queue","firingIndex","fire","once","stopOnFalse","remove","empty","disable","lock","locked","fireWith","fired","Deferred","func","tuples","_state","_promise","state","always","deferred","fail","then","fns","newDefer","tuple","returned","promise","progress","notify","resolve","reject","pipe","stateString","when","subordinate","progressValues","progressContexts","resolveContexts","resolveValues","remaining","updateFunc","values","notifyWith","resolveWith","readyWait","holdReady","hold","wait","triggerHandler","off","doScroll","setTimeout","frameElement","doScrollCheck","inlineBlockNeedsLayout","body","container","style","cssText","zoom","offsetWidth","deleteExpando","shrinkWrapBlocksVal","acceptData","noData","rbrace","rmultiDash","dataAttr","parseJSON","isEmptyDataObject","internalData","pvt","thisCache","internalKey","isNode","toJSON","internalRemoveData","cleanData","hasData","_data","removeData","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","shrinkWrapBlocks","width","pnum","source","rcssNum","cssExpand","isHidden","el","css","adjustCSS","prop","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","fragment","access","chainable","emptyGet","raw","bulk","rcheckableType","rtagName","rscriptType","rleadingWhitespace","nodeNames","createSafeFragment","safeFrag","createDocumentFragment","leadingWhitespace","tbody","htmlSerialize","html5Clone","cloneNode","outerHTML","appendChecked","noCloneChecked","checkClone","noCloneEvent","wrapMap","option","legend","area","param","thead","tr","col","td","_default","getAll","found","setGlobalEval","refElements","optgroup","tfoot","colgroup","caption","th","rhtml","rtbody","fixDefaultChecked","defaultChecked","buildFragment","scripts","selection","ignored","wrap","safe","nodes","htmlPrefilter","createTextNode","eventName","change","focusin","rformElems","rkeyEvent","rmouseEvent","rfocusMorph","rtypenamespace","returnTrue","returnFalse","safeActiveElement","err","_on","types","one","origFn","events","handleObjIn","special","eventHandle","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","trigger","onlyHandlers","ontype","bubbleType","eventPath","Event","isTrigger","rnamespace","noBubble","parentWindow","isPropagationStopped","preventDefault","isDefaultPrevented","fix","handlerQueue","delegateTarget","preDispatch","currentTarget","isImmediatePropagationStopped","stopPropagation","postDispatch","_handlers","sel","isNaN","button","originalEvent","fixHook","fixHooks","mouseHooks","keyHooks","props","srcElement","metaKey","original","which","charCode","keyCode","eventDoc","fromElement","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","relatedTarget","toElement","load","focus","blur","click","beforeunload","returnValue","simulate","isSimulated","defaultPrevented","timeStamp","cancelBubble","stopImmediatePropagation","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","form","_submitBubble","propertyName","_justChanged","attaches","rinlinejQuery","rnoshimcache","rxhtmlTag","rnoInnerhtml","rchecked","rscriptTypeMasked","rcleanScript","fragmentDiv","manipulationTarget","content","disableScript","restoreScript","cloneCopyEvent","dest","oldData","curData","fixCloneNodeIssues","defaultSelected","domManip","collection","hasScripts","iNoClone","html","_evalUrl","_remove","keepData","dataAndEvents","deepDataAndEvents","destElements","srcElements","inPage","forceAcceptData","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","insert","iframe","elemdisplay","HTML","BODY","actualDisplay","display","defaultDisplay","write","close","rmargin","rnumnonpx","swap","old","pixelPositionVal","pixelMarginRightVal","boxSizingReliableVal","reliableHiddenOffsetsVal","reliableMarginRightVal","reliableMarginLeftVal","computeStyleTests","divStyle","getComputedStyle","marginLeft","marginRight","getClientRects","borderCollapse","offsetHeight","opacity","cssFloat","backgroundClip","clearCloneStyle","boxSizing","MozBoxSizing","WebkitBoxSizing","reliableHiddenOffsets","boxSizingReliable","pixelMarginRight","pixelPosition","reliableMarginRight","reliableMarginLeft","getStyles","curCSS","rposition","addGetHookIf","conditionFn","hookFn","view","opener","computed","minWidth","maxWidth","getPropertyValue","currentStyle","left","rs","rsLeft","runtimeStyle","pixelLeft","ralpha","ropacity","rdisplayswap","rnumsplit","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","cssPrefixes","emptyStyle","vendorPropName","capName","showHide","show","hidden","setPositiveNumber","subtract","augmentWidthOrHeight","extra","isBorderBox","styles","getWidthOrHeight","valueIsBorderBox","Tween","easing","cssHooks","cssProps","origName","set","isFinite","$1","getBoundingClientRect","margin","padding","border","prefix","suffix","expand","expanded","parts","hide","toggle","propHooks","run","percent","eased","duration","step","fx","linear","swing","cos","PI","fxNow","timerId","rfxtypes","rrun","createFxNow","genFx","includeWidth","height","createTween","animation","Animation","tweeners","properties","stopped","prefilters","tick","currentTime","startTime","tweens","opts","specialEasing","originalProperties","originalOptions","gotoEnd","rejectWith","propFilter","timer","anim","complete","tweener","oldfire","dataShow","unqueued","overflow","overflowX","overflowY","prefilter","speed","opt","speeds","fadeTo","to","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","interval","setInterval","clearInterval","slow","fast","delay","time","timeout","clearTimeout","getSetAttribute","hrefNormalized","checkOn","optSelected","enctype","optDisabled","radioValue","rreturn","rspaces","valHooks","optionSet","scrollHeight","nodeHook","boolHook","ruseDefault","getSetInput","removeAttr","nType","attrHooks","bool","propName","attrNames","propFix","setAttributeNode","createAttribute","coords","contenteditable","rfocusable","rclickable","removeProp","tabindex","parseInt","rclass","getClass","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","classNames","hasClass","hover","fnOver","fnOut","nonce","rquery","rvalidtokens","JSON","parse","requireNonComma","depth","str","comma","open","Function","parseXML","DOMParser","parseFromString","ActiveXObject","async","loadXML","rhash","rts","rheaders","rnoContent","rprotocol","rurl","transports","allTypes","ajaxLocation","ajaxLocParts","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","getDisplay","active","lastModified","etag","url","isLocal","processData","contentType","accepts","json","responseFields","converters","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","cacheURL","responseHeadersString","timeoutTimer","fireGlobals","transport","responseHeaders","callbackContext","globalEventContext","completeDeferred","_statusCode","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","lname","overrideMimeType","mimeType","code","status","abort","statusText","finalText","success","method","crossDomain","traditional","hasContent","ifModified","headers","beforeSend","send","nativeStatusText","responses","isSuccess","response","modified","firstDataType","ct","finalDataType","ajaxHandleResponses","conv2","current","conv","dataFilter","ajaxConvert","getJSON","getScript","wrapAll","wrapInner","unwrap","filterHidden","visible","r20","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","v","encodeURIComponent","serialize","serializeArray","xhr","createActiveXHR","documentMode","createStandardXHR","xhrId","xhrCallbacks","xhrSupported","XMLHttpRequest","cors","_callback","username","xhrFields","isAbort","onreadystatechange","responseText","script","head","scriptCharset","charset","onload","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","keepScripts","parsed","_load","getWindow","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","win","box","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","unbind","delegate","undelegate","size","andSelf","_jQuery","_$","noConflict","w","webpackPolyfill","deprecate","paths"],"mappings":"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","file":"js/nav-1c83e5ef75b5e15a2a0a.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 = 222);\n","(function($) {\n $('[data-toggle=\"slide-collapse\"]').on('click', function() {\n $navMenuCont = $($(this).data('target'));\n $navMenuCont.animate({'width':'toggle'}, 350);\n });\n})(jQuery);\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*!\n * jQuery JavaScript Library v1.12.4\n * http://jquery.com/\n *\n * Includes Sizzle.js\n * http://sizzlejs.com/\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2016-05-20T17:17Z\n */\n(function (global, factory) {\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && _typeof(module.exports) === \"object\") {\n // For CommonJS and CommonJS-like environments where a proper `window`\n // is present, execute the factory and get jQuery.\n // For environments that do not have a `window` with a `document`\n // (such as Node.js), expose a factory as module.exports.\n // This accentuates the need for the creation of a real `window`.\n // e.g. var jQuery = require(\"jquery\")(window);\n // See ticket #14549 for more info.\n module.exports = global.document ? factory(global, true) : function (w) {\n if (!w.document) {\n throw new Error(\"jQuery requires a window with a document\");\n }\n\n return factory(w);\n };\n } else {\n factory(global);\n } // Pass this if window is not defined yet\n\n})(typeof window !== \"undefined\" ? window : this, function (window, noGlobal) {\n // Support: Firefox 18+\n // Can't be in strict mode, several libs including ASP.NET trace\n // the stack via arguments.caller.callee and Firefox dies if\n // you try to trace through \"use strict\" call chains. (#13335)\n //\"use strict\";\n var deletedIds = [];\n var document = window.document;\n var _slice = deletedIds.slice;\n var concat = deletedIds.concat;\n var push = deletedIds.push;\n var indexOf = deletedIds.indexOf;\n var class2type = {};\n var toString = class2type.toString;\n var hasOwn = class2type.hasOwnProperty;\n var support = {};\n\n var version = \"1.12.4\",\n // Define a local copy of jQuery\n jQuery = function jQuery(selector, context) {\n // The jQuery object is actually just the init constructor 'enhanced'\n // Need init if jQuery is called (just allow error to be thrown if not included)\n return new jQuery.fn.init(selector, context);\n },\n // Support: Android<4.1, IE<9\n // Make sure we trim BOM and NBSP\n rtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\n // Matches dashed string for camelizing\n rmsPrefix = /^-ms-/,\n rdashAlpha = /-([\\da-z])/gi,\n // Used by jQuery.camelCase as callback to replace()\n fcamelCase = function fcamelCase(all, letter) {\n return letter.toUpperCase();\n };\n\n jQuery.fn = jQuery.prototype = {\n // The current version of jQuery being used\n jquery: version,\n constructor: jQuery,\n // Start with an empty selector\n selector: \"\",\n // The default length of a jQuery object is 0\n length: 0,\n toArray: function toArray() {\n return _slice.call(this);\n },\n // Get the Nth element in the matched element set OR\n // Get the whole matched element set as a clean array\n get: function get(num) {\n return num != null ? // Return just the one element from the set\n num < 0 ? this[num + this.length] : this[num] : // Return all the elements in a clean array\n _slice.call(this);\n },\n // Take an array of elements and push it onto the stack\n // (returning the new matched element set)\n pushStack: function pushStack(elems) {\n // Build a new jQuery matched element set\n var ret = jQuery.merge(this.constructor(), elems); // Add the old object onto the stack (as a reference)\n\n ret.prevObject = this;\n ret.context = this.context; // Return the newly-formed element set\n\n return ret;\n },\n // Execute a callback for every element in the matched set.\n each: function each(callback) {\n return jQuery.each(this, callback);\n },\n map: function map(callback) {\n return this.pushStack(jQuery.map(this, function (elem, i) {\n return callback.call(elem, i, elem);\n }));\n },\n slice: function slice() {\n return this.pushStack(_slice.apply(this, arguments));\n },\n first: function first() {\n return this.eq(0);\n },\n last: function last() {\n return this.eq(-1);\n },\n eq: function eq(i) {\n var len = this.length,\n j = +i + (i < 0 ? len : 0);\n return this.pushStack(j >= 0 && j < len ? [this[j]] : []);\n },\n end: function end() {\n return this.prevObject || this.constructor();\n },\n // For internal use only.\n // Behaves like an Array's method, not like a jQuery method.\n push: push,\n sort: deletedIds.sort,\n splice: deletedIds.splice\n };\n\n jQuery.extend = jQuery.fn.extend = function () {\n var src,\n copyIsArray,\n copy,\n name,\n options,\n clone,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length,\n deep = false; // Handle a deep copy situation\n\n if (typeof target === \"boolean\") {\n deep = target; // skip the boolean and the target\n\n target = arguments[i] || {};\n i++;\n } // Handle case when target is a string or something (possible in deep copy)\n\n\n if (_typeof(target) !== \"object\" && !jQuery.isFunction(target)) {\n target = {};\n } // extend jQuery itself if only one argument is passed\n\n\n if (i === length) {\n target = this;\n i--;\n }\n\n for (; i < length; i++) {\n // Only deal with non-null/undefined values\n if ((options = arguments[i]) != null) {\n // Extend the base object\n for (name in options) {\n src = target[name];\n copy = options[name]; // Prevent never-ending loop\n\n if (target === copy) {\n continue;\n } // Recurse if we're merging plain objects or arrays\n\n\n if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)))) {\n if (copyIsArray) {\n copyIsArray = false;\n clone = src && jQuery.isArray(src) ? src : [];\n } else {\n clone = src && jQuery.isPlainObject(src) ? src : {};\n } // Never move original objects, clone them\n\n\n target[name] = jQuery.extend(deep, clone, copy); // Don't bring in undefined values\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n } // Return the modified object\n\n\n return target;\n };\n\n jQuery.extend({\n // Unique for each copy of jQuery on the page\n expando: \"jQuery\" + (version + Math.random()).replace(/\\D/g, \"\"),\n // Assume jQuery is ready without the ready module\n isReady: true,\n error: function error(msg) {\n throw new Error(msg);\n },\n noop: function noop() {},\n // See test/unit/core.js for details concerning isFunction.\n // Since version 1.3, DOM methods and functions like alert\n // aren't supported. They return false on IE (#2968).\n isFunction: function isFunction(obj) {\n return jQuery.type(obj) === \"function\";\n },\n isArray: Array.isArray || function (obj) {\n return jQuery.type(obj) === \"array\";\n },\n isWindow: function isWindow(obj) {\n /* jshint eqeqeq: false */\n return obj != null && obj == obj.window;\n },\n isNumeric: function isNumeric(obj) {\n // parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\n // ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n // subtraction forces infinities to NaN\n // adding 1 corrects loss of precision from parseFloat (#15100)\n var realStringObj = obj && obj.toString();\n return !jQuery.isArray(obj) && realStringObj - parseFloat(realStringObj) + 1 >= 0;\n },\n isEmptyObject: function isEmptyObject(obj) {\n var name;\n\n for (name in obj) {\n return false;\n }\n\n return true;\n },\n isPlainObject: function isPlainObject(obj) {\n var key; // Must be an Object.\n // Because of IE, we also have to check the presence of the constructor property.\n // Make sure that DOM nodes and window objects don't pass through, as well\n\n if (!obj || jQuery.type(obj) !== \"object\" || obj.nodeType || jQuery.isWindow(obj)) {\n return false;\n }\n\n try {\n // Not own constructor property must be Object\n if (obj.constructor && !hasOwn.call(obj, \"constructor\") && !hasOwn.call(obj.constructor.prototype, \"isPrototypeOf\")) {\n return false;\n }\n } catch (e) {\n // IE8,9 Will throw exceptions on certain host objects #9897\n return false;\n } // Support: IE<9\n // Handle iteration over inherited properties before own properties.\n\n\n if (!support.ownFirst) {\n for (key in obj) {\n return hasOwn.call(obj, key);\n }\n } // Own properties are enumerated firstly, so to speed up,\n // if last one is own, then all properties are own.\n\n\n for (key in obj) {}\n\n return key === undefined || hasOwn.call(obj, key);\n },\n type: function type(obj) {\n if (obj == null) {\n return obj + \"\";\n }\n\n return _typeof(obj) === \"object\" || typeof obj === \"function\" ? class2type[toString.call(obj)] || \"object\" : _typeof(obj);\n },\n // Workarounds based on findings by Jim Driscoll\n // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context\n globalEval: function globalEval(data) {\n if (data && jQuery.trim(data)) {\n // We use execScript on Internet Explorer\n // We use an anonymous function so that context is window\n // rather than jQuery in Firefox\n (window.execScript || function (data) {\n window[\"eval\"].call(window, data); // jscs:ignore requireDotNotation\n })(data);\n }\n },\n // Convert dashed to camelCase; used by the css and data modules\n // Microsoft forgot to hump their vendor prefix (#9572)\n camelCase: function camelCase(string) {\n return string.replace(rmsPrefix, \"ms-\").replace(rdashAlpha, fcamelCase);\n },\n nodeName: function nodeName(elem, name) {\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n },\n each: function each(obj, callback) {\n var length,\n i = 0;\n\n if (isArrayLike(obj)) {\n length = obj.length;\n\n for (; i < length; i++) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n } else {\n for (i in obj) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n }\n\n return obj;\n },\n // Support: Android<4.1, IE<9\n trim: function trim(text) {\n return text == null ? \"\" : (text + \"\").replace(rtrim, \"\");\n },\n // results is for internal usage only\n makeArray: function makeArray(arr, results) {\n var ret = results || [];\n\n if (arr != null) {\n if (isArrayLike(Object(arr))) {\n jQuery.merge(ret, typeof arr === \"string\" ? [arr] : arr);\n } else {\n push.call(ret, arr);\n }\n }\n\n return ret;\n },\n inArray: function inArray(elem, arr, i) {\n var len;\n\n if (arr) {\n if (indexOf) {\n return indexOf.call(arr, elem, i);\n }\n\n len = arr.length;\n i = i ? i < 0 ? Math.max(0, len + i) : i : 0;\n\n for (; i < len; i++) {\n // Skip accessing in sparse arrays\n if (i in arr && arr[i] === elem) {\n return i;\n }\n }\n }\n\n return -1;\n },\n merge: function merge(first, second) {\n var len = +second.length,\n j = 0,\n i = first.length;\n\n while (j < len) {\n first[i++] = second[j++];\n } // Support: IE<9\n // Workaround casting of .length to NaN on otherwise arraylike objects (e.g., NodeLists)\n\n\n if (len !== len) {\n while (second[j] !== undefined) {\n first[i++] = second[j++];\n }\n }\n\n first.length = i;\n return first;\n },\n grep: function grep(elems, callback, invert) {\n var callbackInverse,\n matches = [],\n i = 0,\n length = elems.length,\n callbackExpect = !invert; // Go through the array, only saving the items\n // that pass the validator function\n\n for (; i < length; i++) {\n callbackInverse = !callback(elems[i], i);\n\n if (callbackInverse !== callbackExpect) {\n matches.push(elems[i]);\n }\n }\n\n return matches;\n },\n // arg is for internal usage only\n map: function map(elems, callback, arg) {\n var length,\n value,\n i = 0,\n ret = []; // Go through the array, translating each of the items to their new values\n\n if (isArrayLike(elems)) {\n length = elems.length;\n\n for (; i < length; i++) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n } // Go through every key on the object,\n\n } else {\n for (i in elems) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n }\n } // Flatten any nested arrays\n\n\n return concat.apply([], ret);\n },\n // A global GUID counter for objects\n guid: 1,\n // Bind a function to a context, optionally partially applying any\n // arguments.\n proxy: function proxy(fn, context) {\n var args, proxy, tmp;\n\n if (typeof context === \"string\") {\n tmp = fn[context];\n context = fn;\n fn = tmp;\n } // Quick check to determine if target is callable, in the spec\n // this throws a TypeError, but we will just return undefined.\n\n\n if (!jQuery.isFunction(fn)) {\n return undefined;\n } // Simulated bind\n\n\n args = _slice.call(arguments, 2);\n\n proxy = function proxy() {\n return fn.apply(context || this, args.concat(_slice.call(arguments)));\n }; // Set the guid of unique handler to the same of original handler, so it can be removed\n\n\n proxy.guid = fn.guid = fn.guid || jQuery.guid++;\n return proxy;\n },\n now: function now() {\n return +new Date();\n },\n // jQuery.support is not used in Core but other projects attach their\n // properties to it so it needs to exist.\n support: support\n }); // JSHint would error on this code due to the Symbol not being defined in ES5.\n // Defining this global in .jshintrc would create a danger of using the global\n // unguarded in another place, it seems safer to just disable JSHint for these\n // three lines.\n\n /* jshint ignore: start */\n\n if (typeof Symbol === \"function\") {\n jQuery.fn[Symbol.iterator] = deletedIds[Symbol.iterator];\n }\n /* jshint ignore: end */\n // Populate the class2type map\n\n\n jQuery.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"), function (i, name) {\n class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n });\n\n function isArrayLike(obj) {\n // Support: iOS 8.2 (not reproducible in simulator)\n // `in` check used to prevent JIT error (gh-2145)\n // hasOwn isn't used here due to false negatives\n // regarding Nodelist length in IE\n var length = !!obj && \"length\" in obj && obj.length,\n type = jQuery.type(obj);\n\n if (type === \"function\" || jQuery.isWindow(obj)) {\n return false;\n }\n\n return type === \"array\" || length === 0 || typeof length === \"number\" && length > 0 && length - 1 in obj;\n }\n\n var Sizzle =\n /*!\n * Sizzle CSS Selector Engine v2.2.1\n * http://sizzlejs.com/\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2015-10-17\n */\n function (window) {\n var i,\n support,\n Expr,\n getText,\n isXML,\n tokenize,\n compile,\n select,\n outermostContext,\n sortInput,\n hasDuplicate,\n // Local document vars\n setDocument,\n document,\n docElem,\n documentIsHTML,\n rbuggyQSA,\n rbuggyMatches,\n matches,\n contains,\n // Instance-specific data\n expando = \"sizzle\" + 1 * new Date(),\n preferredDoc = window.document,\n dirruns = 0,\n done = 0,\n classCache = createCache(),\n tokenCache = createCache(),\n compilerCache = createCache(),\n sortOrder = function sortOrder(a, b) {\n if (a === b) {\n hasDuplicate = true;\n }\n\n return 0;\n },\n // General-purpose constants\n MAX_NEGATIVE = 1 << 31,\n // Instance methods\n hasOwn = {}.hasOwnProperty,\n arr = [],\n pop = arr.pop,\n push_native = arr.push,\n push = arr.push,\n slice = arr.slice,\n // Use a stripped-down indexOf as it's faster than native\n // http://jsperf.com/thor-indexof-vs-for/5\n indexOf = function indexOf(list, elem) {\n var i = 0,\n len = list.length;\n\n for (; i < len; i++) {\n if (list[i] === elem) {\n return i;\n }\n }\n\n return -1;\n },\n booleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n // Regular expressions\n // http://www.w3.org/TR/css3-selectors/#whitespace\n whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n identifier = \"(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+\",\n // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n attributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace + // Operator (capture 2)\n \"*([*^$|!~]?=)\" + whitespace + // \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n \"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace + \"*\\\\]\",\n pseudos = \":(\" + identifier + \")(?:\\\\((\" + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n // 1. quoted (capture 3; capture 4 or capture 5)\n \"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" + // 2. simple (capture 6)\n \"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" + // 3. anything else (capture 2)\n \".*\" + \")\\\\)|)\",\n // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n rwhitespace = new RegExp(whitespace + \"+\", \"g\"),\n rtrim = new RegExp(\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\"),\n rcomma = new RegExp(\"^\" + whitespace + \"*,\" + whitespace + \"*\"),\n rcombinators = new RegExp(\"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\"),\n rattributeQuotes = new RegExp(\"=\" + whitespace + \"*([^\\\\]'\\\"]*?)\" + whitespace + \"*\\\\]\", \"g\"),\n rpseudo = new RegExp(pseudos),\n ridentifier = new RegExp(\"^\" + identifier + \"$\"),\n matchExpr = {\n \"ID\": new RegExp(\"^#(\" + identifier + \")\"),\n \"CLASS\": new RegExp(\"^\\\\.(\" + identifier + \")\"),\n \"TAG\": new RegExp(\"^(\" + identifier + \"|[*])\"),\n \"ATTR\": new RegExp(\"^\" + attributes),\n \"PSEUDO\": new RegExp(\"^\" + pseudos),\n \"CHILD\": new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\"),\n \"bool\": new RegExp(\"^(?:\" + booleans + \")$\", \"i\"),\n // For use in libraries implementing .is()\n // We use this for POS matching in `select`\n \"needsContext\": new RegExp(\"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\")\n },\n rinputs = /^(?:input|select|textarea|button)$/i,\n rheader = /^h\\d$/i,\n rnative = /^[^{]+\\{\\s*\\[native \\w/,\n // Easily-parseable/retrievable ID or TAG or CLASS selectors\n rquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n rsibling = /[+~]/,\n rescape = /'|\\\\/g,\n // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n runescape = new RegExp(\"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\"),\n funescape = function funescape(_, escaped, escapedWhitespace) {\n var high = \"0x\" + escaped - 0x10000; // NaN means non-codepoint\n // Support: Firefox<24\n // Workaround erroneous numeric interpretation of +\"0x\"\n\n return high !== high || escapedWhitespace ? escaped : high < 0 ? // BMP codepoint\n String.fromCharCode(high + 0x10000) : // Supplemental Plane codepoint (surrogate pair)\n String.fromCharCode(high >> 10 | 0xD800, high & 0x3FF | 0xDC00);\n },\n // Used for iframes\n // See setDocument()\n // Removing the function wrapper causes a \"Permission Denied\"\n // error in IE\n unloadHandler = function unloadHandler() {\n setDocument();\n }; // Optimize for push.apply( _, NodeList )\n\n\n try {\n push.apply(arr = slice.call(preferredDoc.childNodes), preferredDoc.childNodes); // Support: Android<4.0\n // Detect silently failing push.apply\n\n arr[preferredDoc.childNodes.length].nodeType;\n } catch (e) {\n push = {\n apply: arr.length ? // Leverage slice if possible\n function (target, els) {\n push_native.apply(target, slice.call(els));\n } : // Support: IE<9\n // Otherwise append directly\n function (target, els) {\n var j = target.length,\n i = 0; // Can't trust NodeList.length\n\n while (target[j++] = els[i++]) {}\n\n target.length = j - 1;\n }\n };\n }\n\n function Sizzle(selector, context, results, seed) {\n var m,\n i,\n elem,\n nid,\n nidselect,\n match,\n groups,\n newSelector,\n newContext = context && context.ownerDocument,\n // nodeType defaults to 9, since context defaults to document\n nodeType = context ? context.nodeType : 9;\n results = results || []; // Return early from calls with invalid selector or context\n\n if (typeof selector !== \"string\" || !selector || nodeType !== 1 && nodeType !== 9 && nodeType !== 11) {\n return results;\n } // Try to shortcut find operations (as opposed to filters) in HTML documents\n\n\n if (!seed) {\n if ((context ? context.ownerDocument || context : preferredDoc) !== document) {\n setDocument(context);\n }\n\n context = context || document;\n\n if (documentIsHTML) {\n // If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n // (excepting DocumentFragment context, where the methods don't exist)\n if (nodeType !== 11 && (match = rquickExpr.exec(selector))) {\n // ID selector\n if (m = match[1]) {\n // Document context\n if (nodeType === 9) {\n if (elem = context.getElementById(m)) {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (elem.id === m) {\n results.push(elem);\n return results;\n }\n } else {\n return results;\n } // Element context\n\n } else {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (newContext && (elem = newContext.getElementById(m)) && contains(context, elem) && elem.id === m) {\n results.push(elem);\n return results;\n }\n } // Type selector\n\n } else if (match[2]) {\n push.apply(results, context.getElementsByTagName(selector));\n return results; // Class selector\n } else if ((m = match[3]) && support.getElementsByClassName && context.getElementsByClassName) {\n push.apply(results, context.getElementsByClassName(m));\n return results;\n }\n } // Take advantage of querySelectorAll\n\n\n if (support.qsa && !compilerCache[selector + \" \"] && (!rbuggyQSA || !rbuggyQSA.test(selector))) {\n if (nodeType !== 1) {\n newContext = context;\n newSelector = selector; // qSA looks outside Element context, which is not what we want\n // Thanks to Andrew Dupont for this workaround technique\n // Support: IE <=8\n // Exclude object elements\n } else if (context.nodeName.toLowerCase() !== \"object\") {\n // Capture the context ID, setting it first if necessary\n if (nid = context.getAttribute(\"id\")) {\n nid = nid.replace(rescape, \"\\\\$&\");\n } else {\n context.setAttribute(\"id\", nid = expando);\n } // Prefix every selector in the list\n\n\n groups = tokenize(selector);\n i = groups.length;\n nidselect = ridentifier.test(nid) ? \"#\" + nid : \"[id='\" + nid + \"']\";\n\n while (i--) {\n groups[i] = nidselect + \" \" + toSelector(groups[i]);\n }\n\n newSelector = groups.join(\",\"); // Expand context for sibling selectors\n\n newContext = rsibling.test(selector) && testContext(context.parentNode) || context;\n }\n\n if (newSelector) {\n try {\n push.apply(results, newContext.querySelectorAll(newSelector));\n return results;\n } catch (qsaError) {} finally {\n if (nid === expando) {\n context.removeAttribute(\"id\");\n }\n }\n }\n }\n }\n } // All others\n\n\n return select(selector.replace(rtrim, \"$1\"), context, results, seed);\n }\n /**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\n\n\n function createCache() {\n var keys = [];\n\n function cache(key, value) {\n // Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n if (keys.push(key + \" \") > Expr.cacheLength) {\n // Only keep the most recent entries\n delete cache[keys.shift()];\n }\n\n return cache[key + \" \"] = value;\n }\n\n return cache;\n }\n /**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\n\n\n function markFunction(fn) {\n fn[expando] = true;\n return fn;\n }\n /**\n * Support testing using an element\n * @param {Function} fn Passed the created div and expects a boolean result\n */\n\n\n function assert(fn) {\n var div = document.createElement(\"div\");\n\n try {\n return !!fn(div);\n } catch (e) {\n return false;\n } finally {\n // Remove from its parent by default\n if (div.parentNode) {\n div.parentNode.removeChild(div);\n } // release memory in IE\n\n\n div = null;\n }\n }\n /**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\n\n\n function addHandle(attrs, handler) {\n var arr = attrs.split(\"|\"),\n i = arr.length;\n\n while (i--) {\n Expr.attrHandle[arr[i]] = handler;\n }\n }\n /**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\n\n\n function siblingCheck(a, b) {\n var cur = b && a,\n diff = cur && a.nodeType === 1 && b.nodeType === 1 && (~b.sourceIndex || MAX_NEGATIVE) - (~a.sourceIndex || MAX_NEGATIVE); // Use IE sourceIndex if available on both nodes\n\n if (diff) {\n return diff;\n } // Check if b follows a\n\n\n if (cur) {\n while (cur = cur.nextSibling) {\n if (cur === b) {\n return -1;\n }\n }\n }\n\n return a ? 1 : -1;\n }\n /**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\n\n\n function createInputPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === type;\n };\n }\n /**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\n\n\n function createButtonPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return (name === \"input\" || name === \"button\") && elem.type === type;\n };\n }\n /**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\n\n\n function createPositionalPseudo(fn) {\n return markFunction(function (argument) {\n argument = +argument;\n return markFunction(function (seed, matches) {\n var j,\n matchIndexes = fn([], seed.length, argument),\n i = matchIndexes.length; // Match elements found at the specified indexes\n\n while (i--) {\n if (seed[j = matchIndexes[i]]) {\n seed[j] = !(matches[j] = seed[j]);\n }\n }\n });\n });\n }\n /**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\n\n\n function testContext(context) {\n return context && typeof context.getElementsByTagName !== \"undefined\" && context;\n } // Expose support vars for convenience\n\n\n support = Sizzle.support = {};\n /**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\n\n isXML = Sizzle.isXML = function (elem) {\n // documentElement is verified for cases where it doesn't yet exist\n // (such as loading iframes in IE - #4833)\n var documentElement = elem && (elem.ownerDocument || elem).documentElement;\n return documentElement ? documentElement.nodeName !== \"HTML\" : false;\n };\n /**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\n\n\n setDocument = Sizzle.setDocument = function (node) {\n var hasCompare,\n parent,\n doc = node ? node.ownerDocument || node : preferredDoc; // Return early if doc is invalid or already selected\n\n if (doc === document || doc.nodeType !== 9 || !doc.documentElement) {\n return document;\n } // Update global variables\n\n\n document = doc;\n docElem = document.documentElement;\n documentIsHTML = !isXML(document); // Support: IE 9-11, Edge\n // Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\n if ((parent = document.defaultView) && parent.top !== parent) {\n // Support: IE 11\n if (parent.addEventListener) {\n parent.addEventListener(\"unload\", unloadHandler, false); // Support: IE 9 - 10 only\n } else if (parent.attachEvent) {\n parent.attachEvent(\"onunload\", unloadHandler);\n }\n }\n /* Attributes\n ---------------------------------------------------------------------- */\n // Support: IE<8\n // Verify that getAttribute really returns attributes and not properties\n // (excepting IE8 booleans)\n\n\n support.attributes = assert(function (div) {\n div.className = \"i\";\n return !div.getAttribute(\"className\");\n });\n /* getElement(s)By*\n ---------------------------------------------------------------------- */\n // Check if getElementsByTagName(\"*\") returns only elements\n\n support.getElementsByTagName = assert(function (div) {\n div.appendChild(document.createComment(\"\"));\n return !div.getElementsByTagName(\"*\").length;\n }); // Support: IE<9\n\n support.getElementsByClassName = rnative.test(document.getElementsByClassName); // Support: IE<10\n // Check if getElementById returns elements by name\n // The broken getElementById methods don't pick up programatically-set names,\n // so use a roundabout getElementsByName test\n\n support.getById = assert(function (div) {\n docElem.appendChild(div).id = expando;\n return !document.getElementsByName || !document.getElementsByName(expando).length;\n }); // ID find and filter\n\n if (support.getById) {\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var m = context.getElementById(id);\n return m ? [m] : [];\n }\n };\n\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n return elem.getAttribute(\"id\") === attrId;\n };\n };\n } else {\n // Support: IE6/7\n // getElementById is not reliable as a find shortcut\n delete Expr.find[\"ID\"];\n\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n var node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n return node && node.value === attrId;\n };\n };\n } // Tag\n\n\n Expr.find[\"TAG\"] = support.getElementsByTagName ? function (tag, context) {\n if (typeof context.getElementsByTagName !== \"undefined\") {\n return context.getElementsByTagName(tag); // DocumentFragment nodes don't have gEBTN\n } else if (support.qsa) {\n return context.querySelectorAll(tag);\n }\n } : function (tag, context) {\n var elem,\n tmp = [],\n i = 0,\n // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n results = context.getElementsByTagName(tag); // Filter out possible comments\n\n if (tag === \"*\") {\n while (elem = results[i++]) {\n if (elem.nodeType === 1) {\n tmp.push(elem);\n }\n }\n\n return tmp;\n }\n\n return results;\n }; // Class\n\n Expr.find[\"CLASS\"] = support.getElementsByClassName && function (className, context) {\n if (typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML) {\n return context.getElementsByClassName(className);\n }\n };\n /* QSA/matchesSelector\n ---------------------------------------------------------------------- */\n // QSA and matchesSelector support\n // matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\n\n rbuggyMatches = []; // qSa(:focus) reports false when true (Chrome 21)\n // We allow this because of a bug in IE8/9 that throws an error\n // whenever `document.activeElement` is accessed on an iframe\n // So, we allow :focus to pass through QSA all the time to avoid the IE error\n // See http://bugs.jquery.com/ticket/13378\n\n rbuggyQSA = [];\n\n if (support.qsa = rnative.test(document.querySelectorAll)) {\n // Build QSA regex\n // Regex strategy adopted from Diego Perini\n assert(function (div) {\n // Select is set to empty string on purpose\n // This is to test IE's treatment of not explicitly\n // setting a boolean content attribute,\n // since its presence should be enough\n // http://bugs.jquery.com/ticket/12359\n docElem.appendChild(div).innerHTML = \"\" + \"\"; // Support: IE8, Opera 11-12.16\n // Nothing should be selected when empty strings follow ^= or $= or *=\n // The test attribute must be unknown in Opera but \"safe\" for WinRT\n // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\n if (div.querySelectorAll(\"[msallowcapture^='']\").length) {\n rbuggyQSA.push(\"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\");\n } // Support: IE8\n // Boolean attributes and \"value\" are not treated correctly\n\n\n if (!div.querySelectorAll(\"[selected]\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\");\n } // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\n\n if (!div.querySelectorAll(\"[id~=\" + expando + \"-]\").length) {\n rbuggyQSA.push(\"~=\");\n } // Webkit/Opera - :checked should return selected option elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n // IE8 throws error here and will not see later tests\n\n\n if (!div.querySelectorAll(\":checked\").length) {\n rbuggyQSA.push(\":checked\");\n } // Support: Safari 8+, iOS 8+\n // https://bugs.webkit.org/show_bug.cgi?id=136851\n // In-page `selector#id sibing-combinator selector` fails\n\n\n if (!div.querySelectorAll(\"a#\" + expando + \"+*\").length) {\n rbuggyQSA.push(\".#.+[+~]\");\n }\n });\n assert(function (div) {\n // Support: Windows 8 Native Apps\n // The type and name attributes are restricted during .innerHTML assignment\n var input = document.createElement(\"input\");\n input.setAttribute(\"type\", \"hidden\");\n div.appendChild(input).setAttribute(\"name\", \"D\"); // Support: IE8\n // Enforce case-sensitivity of name attribute\n\n if (div.querySelectorAll(\"[name=d]\").length) {\n rbuggyQSA.push(\"name\" + whitespace + \"*[*^$|!~]?=\");\n } // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n // IE8 throws error here and will not see later tests\n\n\n if (!div.querySelectorAll(\":enabled\").length) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n } // Opera 10-11 does not throw on post-comma invalid pseudos\n\n\n div.querySelectorAll(\"*,:x\");\n rbuggyQSA.push(\",.*:\");\n });\n }\n\n if (support.matchesSelector = rnative.test(matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || docElem.msMatchesSelector)) {\n assert(function (div) {\n // Check to see if it's possible to do matchesSelector\n // on a disconnected node (IE 9)\n support.disconnectedMatch = matches.call(div, \"div\"); // This should fail with an exception\n // Gecko does not error, returns false instead\n\n matches.call(div, \"[s!='']:x\");\n rbuggyMatches.push(\"!=\", pseudos);\n });\n }\n\n rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join(\"|\"));\n rbuggyMatches = rbuggyMatches.length && new RegExp(rbuggyMatches.join(\"|\"));\n /* Contains\n ---------------------------------------------------------------------- */\n\n hasCompare = rnative.test(docElem.compareDocumentPosition); // Element contains another\n // Purposefully self-exclusive\n // As in, an element does not contain itself\n\n contains = hasCompare || rnative.test(docElem.contains) ? function (a, b) {\n var adown = a.nodeType === 9 ? a.documentElement : a,\n bup = b && b.parentNode;\n return a === bup || !!(bup && bup.nodeType === 1 && (adown.contains ? adown.contains(bup) : a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16));\n } : function (a, b) {\n if (b) {\n while (b = b.parentNode) {\n if (b === a) {\n return true;\n }\n }\n }\n\n return false;\n };\n /* Sorting\n ---------------------------------------------------------------------- */\n // Document order sorting\n\n sortOrder = hasCompare ? function (a, b) {\n // Flag for duplicate removal\n if (a === b) {\n hasDuplicate = true;\n return 0;\n } // Sort on method existence if only one input has compareDocumentPosition\n\n\n var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\n if (compare) {\n return compare;\n } // Calculate position if both inputs belong to the same document\n\n\n compare = (a.ownerDocument || a) === (b.ownerDocument || b) ? a.compareDocumentPosition(b) : // Otherwise we know they are disconnected\n 1; // Disconnected nodes\n\n if (compare & 1 || !support.sortDetached && b.compareDocumentPosition(a) === compare) {\n // Choose the first element that is related to our preferred document\n if (a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a)) {\n return -1;\n }\n\n if (b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b)) {\n return 1;\n } // Maintain original order\n\n\n return sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0;\n }\n\n return compare & 4 ? -1 : 1;\n } : function (a, b) {\n // Exit early if the nodes are identical\n if (a === b) {\n hasDuplicate = true;\n return 0;\n }\n\n var cur,\n i = 0,\n aup = a.parentNode,\n bup = b.parentNode,\n ap = [a],\n bp = [b]; // Parentless nodes are either documents or disconnected\n\n if (!aup || !bup) {\n return a === document ? -1 : b === document ? 1 : aup ? -1 : bup ? 1 : sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0; // If the nodes are siblings, we can do a quick check\n } else if (aup === bup) {\n return siblingCheck(a, b);\n } // Otherwise we need full lists of their ancestors for comparison\n\n\n cur = a;\n\n while (cur = cur.parentNode) {\n ap.unshift(cur);\n }\n\n cur = b;\n\n while (cur = cur.parentNode) {\n bp.unshift(cur);\n } // Walk down the tree looking for a discrepancy\n\n\n while (ap[i] === bp[i]) {\n i++;\n }\n\n return i ? // Do a sibling check if the nodes have a common ancestor\n siblingCheck(ap[i], bp[i]) : // Otherwise nodes in our document sort first\n ap[i] === preferredDoc ? -1 : bp[i] === preferredDoc ? 1 : 0;\n };\n return document;\n };\n\n Sizzle.matches = function (expr, elements) {\n return Sizzle(expr, null, null, elements);\n };\n\n Sizzle.matchesSelector = function (elem, expr) {\n // Set document vars if needed\n if ((elem.ownerDocument || elem) !== document) {\n setDocument(elem);\n } // Make sure that attribute selectors are quoted\n\n\n expr = expr.replace(rattributeQuotes, \"='$1']\");\n\n if (support.matchesSelector && documentIsHTML && !compilerCache[expr + \" \"] && (!rbuggyMatches || !rbuggyMatches.test(expr)) && (!rbuggyQSA || !rbuggyQSA.test(expr))) {\n try {\n var ret = matches.call(elem, expr); // IE 9's matchesSelector returns false on disconnected nodes\n\n if (ret || support.disconnectedMatch || // As well, disconnected nodes are said to be in a document\n // fragment in IE 9\n elem.document && elem.document.nodeType !== 11) {\n return ret;\n }\n } catch (e) {}\n }\n\n return Sizzle(expr, document, null, [elem]).length > 0;\n };\n\n Sizzle.contains = function (context, elem) {\n // Set document vars if needed\n if ((context.ownerDocument || context) !== document) {\n setDocument(context);\n }\n\n return contains(context, elem);\n };\n\n Sizzle.attr = function (elem, name) {\n // Set document vars if needed\n if ((elem.ownerDocument || elem) !== document) {\n setDocument(elem);\n }\n\n var fn = Expr.attrHandle[name.toLowerCase()],\n // Don't get fooled by Object.prototype properties (jQuery #13807)\n val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? fn(elem, name, !documentIsHTML) : undefined;\n return val !== undefined ? val : support.attributes || !documentIsHTML ? elem.getAttribute(name) : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n };\n\n Sizzle.error = function (msg) {\n throw new Error(\"Syntax error, unrecognized expression: \" + msg);\n };\n /**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\n\n\n Sizzle.uniqueSort = function (results) {\n var elem,\n duplicates = [],\n j = 0,\n i = 0; // Unless we *know* we can detect duplicates, assume their presence\n\n hasDuplicate = !support.detectDuplicates;\n sortInput = !support.sortStable && results.slice(0);\n results.sort(sortOrder);\n\n if (hasDuplicate) {\n while (elem = results[i++]) {\n if (elem === results[i]) {\n j = duplicates.push(i);\n }\n }\n\n while (j--) {\n results.splice(duplicates[j], 1);\n }\n } // Clear input after sorting to release objects\n // See https://github.com/jquery/sizzle/pull/225\n\n\n sortInput = null;\n return results;\n };\n /**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\n\n\n getText = Sizzle.getText = function (elem) {\n var node,\n ret = \"\",\n i = 0,\n nodeType = elem.nodeType;\n\n if (!nodeType) {\n // If no nodeType, this is expected to be an array\n while (node = elem[i++]) {\n // Do not traverse comment nodes\n ret += getText(node);\n }\n } else if (nodeType === 1 || nodeType === 9 || nodeType === 11) {\n // Use textContent for elements\n // innerText usage removed for consistency of new lines (jQuery #11153)\n if (typeof elem.textContent === \"string\") {\n return elem.textContent;\n } else {\n // Traverse its children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n ret += getText(elem);\n }\n }\n } else if (nodeType === 3 || nodeType === 4) {\n return elem.nodeValue;\n } // Do not include comment or processing instruction nodes\n\n\n return ret;\n };\n\n Expr = Sizzle.selectors = {\n // Can be adjusted by the user\n cacheLength: 50,\n createPseudo: markFunction,\n match: matchExpr,\n attrHandle: {},\n find: {},\n relative: {\n \">\": {\n dir: \"parentNode\",\n first: true\n },\n \" \": {\n dir: \"parentNode\"\n },\n \"+\": {\n dir: \"previousSibling\",\n first: true\n },\n \"~\": {\n dir: \"previousSibling\"\n }\n },\n preFilter: {\n \"ATTR\": function ATTR(match) {\n match[1] = match[1].replace(runescape, funescape); // Move the given value to match[3] whether quoted or unquoted\n\n match[3] = (match[3] || match[4] || match[5] || \"\").replace(runescape, funescape);\n\n if (match[2] === \"~=\") {\n match[3] = \" \" + match[3] + \" \";\n }\n\n return match.slice(0, 4);\n },\n \"CHILD\": function CHILD(match) {\n /* matches from matchExpr[\"CHILD\"]\n \t1 type (only|nth|...)\n \t2 what (child|of-type)\n \t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n \t4 xn-component of xn+y argument ([+-]?\\d*n|)\n \t5 sign of xn-component\n \t6 x of xn-component\n \t7 sign of y-component\n \t8 y of y-component\n */\n match[1] = match[1].toLowerCase();\n\n if (match[1].slice(0, 3) === \"nth\") {\n // nth-* requires argument\n if (!match[3]) {\n Sizzle.error(match[0]);\n } // numeric x and y parameters for Expr.filter.CHILD\n // remember that false/true cast respectively to 0/1\n\n\n match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === \"even\" || match[3] === \"odd\"));\n match[5] = +(match[7] + match[8] || match[3] === \"odd\"); // other types prohibit arguments\n } else if (match[3]) {\n Sizzle.error(match[0]);\n }\n\n return match;\n },\n \"PSEUDO\": function PSEUDO(match) {\n var excess,\n unquoted = !match[6] && match[2];\n\n if (matchExpr[\"CHILD\"].test(match[0])) {\n return null;\n } // Accept quoted arguments as-is\n\n\n if (match[3]) {\n match[2] = match[4] || match[5] || \"\"; // Strip excess characters from unquoted arguments\n } else if (unquoted && rpseudo.test(unquoted) && ( // Get excess from tokenize (recursively)\n excess = tokenize(unquoted, true)) && ( // advance to the next closing parenthesis\n excess = unquoted.indexOf(\")\", unquoted.length - excess) - unquoted.length)) {\n // excess is a negative index\n match[0] = match[0].slice(0, excess);\n match[2] = unquoted.slice(0, excess);\n } // Return only captures needed by the pseudo filter method (type and argument)\n\n\n return match.slice(0, 3);\n }\n },\n filter: {\n \"TAG\": function TAG(nodeNameSelector) {\n var nodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase();\n return nodeNameSelector === \"*\" ? function () {\n return true;\n } : function (elem) {\n return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n };\n },\n \"CLASS\": function CLASS(className) {\n var pattern = classCache[className + \" \"];\n return pattern || (pattern = new RegExp(\"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\")) && classCache(className, function (elem) {\n return pattern.test(typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\");\n });\n },\n \"ATTR\": function ATTR(name, operator, check) {\n return function (elem) {\n var result = Sizzle.attr(elem, name);\n\n if (result == null) {\n return operator === \"!=\";\n }\n\n if (!operator) {\n return true;\n }\n\n result += \"\";\n return operator === \"=\" ? result === check : operator === \"!=\" ? result !== check : operator === \"^=\" ? check && result.indexOf(check) === 0 : operator === \"*=\" ? check && result.indexOf(check) > -1 : operator === \"$=\" ? check && result.slice(-check.length) === check : operator === \"~=\" ? (\" \" + result.replace(rwhitespace, \" \") + \" \").indexOf(check) > -1 : operator === \"|=\" ? result === check || result.slice(0, check.length + 1) === check + \"-\" : false;\n };\n },\n \"CHILD\": function CHILD(type, what, argument, first, last) {\n var simple = type.slice(0, 3) !== \"nth\",\n forward = type.slice(-4) !== \"last\",\n ofType = what === \"of-type\";\n return first === 1 && last === 0 ? // Shortcut for :nth-*(n)\n function (elem) {\n return !!elem.parentNode;\n } : function (elem, context, xml) {\n var cache,\n uniqueCache,\n outerCache,\n node,\n nodeIndex,\n start,\n dir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n parent = elem.parentNode,\n name = ofType && elem.nodeName.toLowerCase(),\n useCache = !xml && !ofType,\n diff = false;\n\n if (parent) {\n // :(first|last|only)-(child|of-type)\n if (simple) {\n while (dir) {\n node = elem;\n\n while (node = node[dir]) {\n if (ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) {\n return false;\n }\n } // Reverse direction for :only-* (if we haven't yet done so)\n\n\n start = dir = type === \"only\" && !start && \"nextSibling\";\n }\n\n return true;\n }\n\n start = [forward ? parent.firstChild : parent.lastChild]; // non-xml :nth-child(...) stores cache data on `parent`\n\n if (forward && useCache) {\n // Seek `elem` from a previously-cached index\n // ...in a gzip-friendly way\n node = parent;\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex && cache[2];\n node = nodeIndex && parent.childNodes[nodeIndex];\n\n while (node = ++nodeIndex && node && node[dir] || ( // Fallback to seeking `elem` from the start\n diff = nodeIndex = 0) || start.pop()) {\n // When found, cache indexes on `parent` and break\n if (node.nodeType === 1 && ++diff && node === elem) {\n uniqueCache[type] = [dirruns, nodeIndex, diff];\n break;\n }\n }\n } else {\n // Use previously-cached element index if available\n if (useCache) {\n // ...in a gzip-friendly way\n node = elem;\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex;\n } // xml :nth-child(...)\n // or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\n\n if (diff === false) {\n // Use the same loop as above to seek `elem` from the start\n while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) {\n if ((ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) && ++diff) {\n // Cache the index of each encountered element\n if (useCache) {\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n uniqueCache[type] = [dirruns, diff];\n }\n\n if (node === elem) {\n break;\n }\n }\n }\n }\n } // Incorporate the offset, then check against cycle size\n\n\n diff -= last;\n return diff === first || diff % first === 0 && diff / first >= 0;\n }\n };\n },\n \"PSEUDO\": function PSEUDO(pseudo, argument) {\n // pseudo-class names are case-insensitive\n // http://www.w3.org/TR/selectors/#pseudo-classes\n // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n // Remember that setFilters inherits from pseudos\n var args,\n fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || Sizzle.error(\"unsupported pseudo: \" + pseudo); // The user may use createPseudo to indicate that\n // arguments are needed to create the filter function\n // just as Sizzle does\n\n if (fn[expando]) {\n return fn(argument);\n } // But maintain support for old signatures\n\n\n if (fn.length > 1) {\n args = [pseudo, pseudo, \"\", argument];\n return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function (seed, matches) {\n var idx,\n matched = fn(seed, argument),\n i = matched.length;\n\n while (i--) {\n idx = indexOf(seed, matched[i]);\n seed[idx] = !(matches[idx] = matched[i]);\n }\n }) : function (elem) {\n return fn(elem, 0, args);\n };\n }\n\n return fn;\n }\n },\n pseudos: {\n // Potentially complex pseudos\n \"not\": markFunction(function (selector) {\n // Trim the selector passed to compile\n // to avoid treating leading and trailing\n // spaces as combinators\n var input = [],\n results = [],\n matcher = compile(selector.replace(rtrim, \"$1\"));\n return matcher[expando] ? markFunction(function (seed, matches, context, xml) {\n var elem,\n unmatched = matcher(seed, null, xml, []),\n i = seed.length; // Match elements unmatched by `matcher`\n\n while (i--) {\n if (elem = unmatched[i]) {\n seed[i] = !(matches[i] = elem);\n }\n }\n }) : function (elem, context, xml) {\n input[0] = elem;\n matcher(input, null, xml, results); // Don't keep the element (issue #299)\n\n input[0] = null;\n return !results.pop();\n };\n }),\n \"has\": markFunction(function (selector) {\n return function (elem) {\n return Sizzle(selector, elem).length > 0;\n };\n }),\n \"contains\": markFunction(function (text) {\n text = text.replace(runescape, funescape);\n return function (elem) {\n return (elem.textContent || elem.innerText || getText(elem)).indexOf(text) > -1;\n };\n }),\n // \"Whether an element is represented by a :lang() selector\n // is based solely on the element's language value\n // being equal to the identifier C,\n // or beginning with the identifier C immediately followed by \"-\".\n // The matching of C against the element's language value is performed case-insensitively.\n // The identifier C does not have to be a valid language name.\"\n // http://www.w3.org/TR/selectors/#lang-pseudo\n \"lang\": markFunction(function (lang) {\n // lang value must be a valid identifier\n if (!ridentifier.test(lang || \"\")) {\n Sizzle.error(\"unsupported lang: \" + lang);\n }\n\n lang = lang.replace(runescape, funescape).toLowerCase();\n return function (elem) {\n var elemLang;\n\n do {\n if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) {\n elemLang = elemLang.toLowerCase();\n return elemLang === lang || elemLang.indexOf(lang + \"-\") === 0;\n }\n } while ((elem = elem.parentNode) && elem.nodeType === 1);\n\n return false;\n };\n }),\n // Miscellaneous\n \"target\": function target(elem) {\n var hash = window.location && window.location.hash;\n return hash && hash.slice(1) === elem.id;\n },\n \"root\": function root(elem) {\n return elem === docElem;\n },\n \"focus\": function focus(elem) {\n return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n },\n // Boolean properties\n \"enabled\": function enabled(elem) {\n return elem.disabled === false;\n },\n \"disabled\": function disabled(elem) {\n return elem.disabled === true;\n },\n \"checked\": function checked(elem) {\n // In CSS3, :checked should return both checked and selected elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n var nodeName = elem.nodeName.toLowerCase();\n return nodeName === \"input\" && !!elem.checked || nodeName === \"option\" && !!elem.selected;\n },\n \"selected\": function selected(elem) {\n // Accessing this property makes selected-by-default\n // options in Safari work properly\n if (elem.parentNode) {\n elem.parentNode.selectedIndex;\n }\n\n return elem.selected === true;\n },\n // Contents\n \"empty\": function empty(elem) {\n // http://www.w3.org/TR/selectors/#empty-pseudo\n // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n // but not by others (comment: 8; processing instruction: 7; etc.)\n // nodeType < 6 works because attributes (2) do not appear as children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n if (elem.nodeType < 6) {\n return false;\n }\n }\n\n return true;\n },\n \"parent\": function parent(elem) {\n return !Expr.pseudos[\"empty\"](elem);\n },\n // Element/input types\n \"header\": function header(elem) {\n return rheader.test(elem.nodeName);\n },\n \"input\": function input(elem) {\n return rinputs.test(elem.nodeName);\n },\n \"button\": function button(elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === \"button\" || name === \"button\";\n },\n \"text\": function text(elem) {\n var attr;\n return elem.nodeName.toLowerCase() === \"input\" && elem.type === \"text\" && ( // Support: IE<8\n // New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\");\n },\n // Position-in-collection\n \"first\": createPositionalPseudo(function () {\n return [0];\n }),\n \"last\": createPositionalPseudo(function (matchIndexes, length) {\n return [length - 1];\n }),\n \"eq\": createPositionalPseudo(function (matchIndexes, length, argument) {\n return [argument < 0 ? argument + length : argument];\n }),\n \"even\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 0;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"odd\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 1;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"lt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument;\n\n for (; --i >= 0;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"gt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument;\n\n for (; ++i < length;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n })\n }\n };\n Expr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"]; // Add button/input type pseudos\n\n for (i in {\n radio: true,\n checkbox: true,\n file: true,\n password: true,\n image: true\n }) {\n Expr.pseudos[i] = createInputPseudo(i);\n }\n\n for (i in {\n submit: true,\n reset: true\n }) {\n Expr.pseudos[i] = createButtonPseudo(i);\n } // Easy API for creating new setFilters\n\n\n function setFilters() {}\n\n setFilters.prototype = Expr.filters = Expr.pseudos;\n Expr.setFilters = new setFilters();\n\n tokenize = Sizzle.tokenize = function (selector, parseOnly) {\n var matched,\n match,\n tokens,\n type,\n soFar,\n groups,\n preFilters,\n cached = tokenCache[selector + \" \"];\n\n if (cached) {\n return parseOnly ? 0 : cached.slice(0);\n }\n\n soFar = selector;\n groups = [];\n preFilters = Expr.preFilter;\n\n while (soFar) {\n // Comma and first run\n if (!matched || (match = rcomma.exec(soFar))) {\n if (match) {\n // Don't consume trailing commas as valid\n soFar = soFar.slice(match[0].length) || soFar;\n }\n\n groups.push(tokens = []);\n }\n\n matched = false; // Combinators\n\n if (match = rcombinators.exec(soFar)) {\n matched = match.shift();\n tokens.push({\n value: matched,\n // Cast descendant combinators to space\n type: match[0].replace(rtrim, \" \")\n });\n soFar = soFar.slice(matched.length);\n } // Filters\n\n\n for (type in Expr.filter) {\n if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match)))) {\n matched = match.shift();\n tokens.push({\n value: matched,\n type: type,\n matches: match\n });\n soFar = soFar.slice(matched.length);\n }\n }\n\n if (!matched) {\n break;\n }\n } // Return the length of the invalid excess\n // if we're just parsing\n // Otherwise, throw an error or return tokens\n\n\n return parseOnly ? soFar.length : soFar ? Sizzle.error(selector) : // Cache the tokens\n tokenCache(selector, groups).slice(0);\n };\n\n function toSelector(tokens) {\n var i = 0,\n len = tokens.length,\n selector = \"\";\n\n for (; i < len; i++) {\n selector += tokens[i].value;\n }\n\n return selector;\n }\n\n function addCombinator(matcher, combinator, base) {\n var dir = combinator.dir,\n checkNonElements = base && dir === \"parentNode\",\n doneName = done++;\n return combinator.first ? // Check against closest ancestor/preceding element\n function (elem, context, xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n return matcher(elem, context, xml);\n }\n }\n } : // Check against all ancestor/preceding elements\n function (elem, context, xml) {\n var oldCache,\n uniqueCache,\n outerCache,\n newCache = [dirruns, doneName]; // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\n if (xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n if (matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n } else {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n outerCache = elem[expando] || (elem[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[elem.uniqueID] || (outerCache[elem.uniqueID] = {});\n\n if ((oldCache = uniqueCache[dir]) && oldCache[0] === dirruns && oldCache[1] === doneName) {\n // Assign to newCache so results back-propagate to previous elements\n return newCache[2] = oldCache[2];\n } else {\n // Reuse newcache so results back-propagate to previous elements\n uniqueCache[dir] = newCache; // A match means we're done; a fail means we have to keep checking\n\n if (newCache[2] = matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n }\n }\n };\n }\n\n function elementMatcher(matchers) {\n return matchers.length > 1 ? function (elem, context, xml) {\n var i = matchers.length;\n\n while (i--) {\n if (!matchers[i](elem, context, xml)) {\n return false;\n }\n }\n\n return true;\n } : matchers[0];\n }\n\n function multipleContexts(selector, contexts, results) {\n var i = 0,\n len = contexts.length;\n\n for (; i < len; i++) {\n Sizzle(selector, contexts[i], results);\n }\n\n return results;\n }\n\n function condense(unmatched, map, filter, context, xml) {\n var elem,\n newUnmatched = [],\n i = 0,\n len = unmatched.length,\n mapped = map != null;\n\n for (; i < len; i++) {\n if (elem = unmatched[i]) {\n if (!filter || filter(elem, context, xml)) {\n newUnmatched.push(elem);\n\n if (mapped) {\n map.push(i);\n }\n }\n }\n }\n\n return newUnmatched;\n }\n\n function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) {\n if (postFilter && !postFilter[expando]) {\n postFilter = setMatcher(postFilter);\n }\n\n if (postFinder && !postFinder[expando]) {\n postFinder = setMatcher(postFinder, postSelector);\n }\n\n return markFunction(function (seed, results, context, xml) {\n var temp,\n i,\n elem,\n preMap = [],\n postMap = [],\n preexisting = results.length,\n // Get initial elements from seed or context\n elems = seed || multipleContexts(selector || \"*\", context.nodeType ? [context] : context, []),\n // Prefilter to get matcher input, preserving a map for seed-results synchronization\n matcherIn = preFilter && (seed || !selector) ? condense(elems, preMap, preFilter, context, xml) : elems,\n matcherOut = matcher ? // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n postFinder || (seed ? preFilter : preexisting || postFilter) ? // ...intermediate processing is necessary\n [] : // ...otherwise use results directly\n results : matcherIn; // Find primary matches\n\n if (matcher) {\n matcher(matcherIn, matcherOut, context, xml);\n } // Apply postFilter\n\n\n if (postFilter) {\n temp = condense(matcherOut, postMap);\n postFilter(temp, [], context, xml); // Un-match failing elements by moving them back to matcherIn\n\n i = temp.length;\n\n while (i--) {\n if (elem = temp[i]) {\n matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem);\n }\n }\n }\n\n if (seed) {\n if (postFinder || preFilter) {\n if (postFinder) {\n // Get the final matcherOut by condensing this intermediate into postFinder contexts\n temp = [];\n i = matcherOut.length;\n\n while (i--) {\n if (elem = matcherOut[i]) {\n // Restore matcherIn since elem is not yet a final match\n temp.push(matcherIn[i] = elem);\n }\n }\n\n postFinder(null, matcherOut = [], temp, xml);\n } // Move matched elements from seed to results to keep them synchronized\n\n\n i = matcherOut.length;\n\n while (i--) {\n if ((elem = matcherOut[i]) && (temp = postFinder ? indexOf(seed, elem) : preMap[i]) > -1) {\n seed[temp] = !(results[temp] = elem);\n }\n }\n } // Add elements to results, through postFinder if defined\n\n } else {\n matcherOut = condense(matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut);\n\n if (postFinder) {\n postFinder(null, results, matcherOut, xml);\n } else {\n push.apply(results, matcherOut);\n }\n }\n });\n }\n\n function matcherFromTokens(tokens) {\n var checkContext,\n matcher,\n j,\n len = tokens.length,\n leadingRelative = Expr.relative[tokens[0].type],\n implicitRelative = leadingRelative || Expr.relative[\" \"],\n i = leadingRelative ? 1 : 0,\n // The foundational matcher ensures that elements are reachable from top-level context(s)\n matchContext = addCombinator(function (elem) {\n return elem === checkContext;\n }, implicitRelative, true),\n matchAnyContext = addCombinator(function (elem) {\n return indexOf(checkContext, elem) > -1;\n }, implicitRelative, true),\n matchers = [function (elem, context, xml) {\n var ret = !leadingRelative && (xml || context !== outermostContext) || ((checkContext = context).nodeType ? matchContext(elem, context, xml) : matchAnyContext(elem, context, xml)); // Avoid hanging onto element (issue #299)\n\n checkContext = null;\n return ret;\n }];\n\n for (; i < len; i++) {\n if (matcher = Expr.relative[tokens[i].type]) {\n matchers = [addCombinator(elementMatcher(matchers), matcher)];\n } else {\n matcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches); // Return special upon seeing a positional matcher\n\n if (matcher[expando]) {\n // Find the next relative operator (if any) for proper handling\n j = ++i;\n\n for (; j < len; j++) {\n if (Expr.relative[tokens[j].type]) {\n break;\n }\n }\n\n return setMatcher(i > 1 && elementMatcher(matchers), i > 1 && toSelector( // If the preceding token was a descendant combinator, insert an implicit any-element `*`\n tokens.slice(0, i - 1).concat({\n value: tokens[i - 2].type === \" \" ? \"*\" : \"\"\n })).replace(rtrim, \"$1\"), matcher, i < j && matcherFromTokens(tokens.slice(i, j)), j < len && matcherFromTokens(tokens = tokens.slice(j)), j < len && toSelector(tokens));\n }\n\n matchers.push(matcher);\n }\n }\n\n return elementMatcher(matchers);\n }\n\n function matcherFromGroupMatchers(elementMatchers, setMatchers) {\n var bySet = setMatchers.length > 0,\n byElement = elementMatchers.length > 0,\n superMatcher = function superMatcher(seed, context, xml, results, outermost) {\n var elem,\n j,\n matcher,\n matchedCount = 0,\n i = \"0\",\n unmatched = seed && [],\n setMatched = [],\n contextBackup = outermostContext,\n // We must always have either seed elements or outermost context\n elems = seed || byElement && Expr.find[\"TAG\"](\"*\", outermost),\n // Use integer dirruns iff this is the outermost matcher\n dirrunsUnique = dirruns += contextBackup == null ? 1 : Math.random() || 0.1,\n len = elems.length;\n\n if (outermost) {\n outermostContext = context === document || context || outermost;\n } // Add elements passing elementMatchers directly to results\n // Support: IE<9, Safari\n // Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\n\n for (; i !== len && (elem = elems[i]) != null; i++) {\n if (byElement && elem) {\n j = 0;\n\n if (!context && elem.ownerDocument !== document) {\n setDocument(elem);\n xml = !documentIsHTML;\n }\n\n while (matcher = elementMatchers[j++]) {\n if (matcher(elem, context || document, xml)) {\n results.push(elem);\n break;\n }\n }\n\n if (outermost) {\n dirruns = dirrunsUnique;\n }\n } // Track unmatched elements for set filters\n\n\n if (bySet) {\n // They will have gone through all possible matchers\n if (elem = !matcher && elem) {\n matchedCount--;\n } // Lengthen the array for every element, matched or not\n\n\n if (seed) {\n unmatched.push(elem);\n }\n }\n } // `i` is now the count of elements visited above, and adding it to `matchedCount`\n // makes the latter nonnegative.\n\n\n matchedCount += i; // Apply set filters to unmatched elements\n // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n // equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n // no element matchers and no seed.\n // Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n // case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n // numerically zero.\n\n if (bySet && i !== matchedCount) {\n j = 0;\n\n while (matcher = setMatchers[j++]) {\n matcher(unmatched, setMatched, context, xml);\n }\n\n if (seed) {\n // Reintegrate element matches to eliminate the need for sorting\n if (matchedCount > 0) {\n while (i--) {\n if (!(unmatched[i] || setMatched[i])) {\n setMatched[i] = pop.call(results);\n }\n }\n } // Discard index placeholder values to get only actual matches\n\n\n setMatched = condense(setMatched);\n } // Add matches to results\n\n\n push.apply(results, setMatched); // Seedless set matches succeeding multiple successful matchers stipulate sorting\n\n if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) {\n Sizzle.uniqueSort(results);\n }\n } // Override manipulation of globals by nested matchers\n\n\n if (outermost) {\n dirruns = dirrunsUnique;\n outermostContext = contextBackup;\n }\n\n return unmatched;\n };\n\n return bySet ? markFunction(superMatcher) : superMatcher;\n }\n\n compile = Sizzle.compile = function (selector, match\n /* Internal Use Only */\n ) {\n var i,\n setMatchers = [],\n elementMatchers = [],\n cached = compilerCache[selector + \" \"];\n\n if (!cached) {\n // Generate a function of recursive functions that can be used to check each element\n if (!match) {\n match = tokenize(selector);\n }\n\n i = match.length;\n\n while (i--) {\n cached = matcherFromTokens(match[i]);\n\n if (cached[expando]) {\n setMatchers.push(cached);\n } else {\n elementMatchers.push(cached);\n }\n } // Cache the compiled function\n\n\n cached = compilerCache(selector, matcherFromGroupMatchers(elementMatchers, setMatchers)); // Save selector and tokenization\n\n cached.selector = selector;\n }\n\n return cached;\n };\n /**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\n\n\n select = Sizzle.select = function (selector, context, results, seed) {\n var i,\n tokens,\n token,\n type,\n find,\n compiled = typeof selector === \"function\" && selector,\n match = !seed && tokenize(selector = compiled.selector || selector);\n results = results || []; // Try to minimize operations if there is only one selector in the list and no seed\n // (the latter of which guarantees us context)\n\n if (match.length === 1) {\n // Reduce context if the leading compound selector is an ID\n tokens = match[0] = match[0].slice(0);\n\n if (tokens.length > 2 && (token = tokens[0]).type === \"ID\" && support.getById && context.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) {\n context = (Expr.find[\"ID\"](token.matches[0].replace(runescape, funescape), context) || [])[0];\n\n if (!context) {\n return results; // Precompiled matchers will still verify ancestry, so step up a level\n } else if (compiled) {\n context = context.parentNode;\n }\n\n selector = selector.slice(tokens.shift().value.length);\n } // Fetch a seed set for right-to-left matching\n\n\n i = matchExpr[\"needsContext\"].test(selector) ? 0 : tokens.length;\n\n while (i--) {\n token = tokens[i]; // Abort if we hit a combinator\n\n if (Expr.relative[type = token.type]) {\n break;\n }\n\n if (find = Expr.find[type]) {\n // Search, expanding context for leading sibling combinators\n if (seed = find(token.matches[0].replace(runescape, funescape), rsibling.test(tokens[0].type) && testContext(context.parentNode) || context)) {\n // If seed is empty or no tokens remain, we can return early\n tokens.splice(i, 1);\n selector = seed.length && toSelector(tokens);\n\n if (!selector) {\n push.apply(results, seed);\n return results;\n }\n\n break;\n }\n }\n }\n } // Compile and execute a filtering function if one is not provided\n // Provide `match` to avoid retokenization if we modified the selector above\n\n\n (compiled || compile(selector, match))(seed, context, !documentIsHTML, results, !context || rsibling.test(selector) && testContext(context.parentNode) || context);\n return results;\n }; // One-time assignments\n // Sort stability\n\n\n support.sortStable = expando.split(\"\").sort(sortOrder).join(\"\") === expando; // Support: Chrome 14-35+\n // Always assume duplicates if they aren't passed to the comparison function\n\n support.detectDuplicates = !!hasDuplicate; // Initialize against the default document\n\n setDocument(); // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n // Detached nodes confoundingly follow *each other*\n\n support.sortDetached = assert(function (div1) {\n // Should return 1, but returns 4 (following)\n return div1.compareDocumentPosition(document.createElement(\"div\")) & 1;\n }); // Support: IE<8\n // Prevent attribute/property \"interpolation\"\n // http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\n\n if (!assert(function (div) {\n div.innerHTML = \"\";\n return div.firstChild.getAttribute(\"href\") === \"#\";\n })) {\n addHandle(\"type|href|height|width\", function (elem, name, isXML) {\n if (!isXML) {\n return elem.getAttribute(name, name.toLowerCase() === \"type\" ? 1 : 2);\n }\n });\n } // Support: IE<9\n // Use defaultValue in place of getAttribute(\"value\")\n\n\n if (!support.attributes || !assert(function (div) {\n div.innerHTML = \"\";\n div.firstChild.setAttribute(\"value\", \"\");\n return div.firstChild.getAttribute(\"value\") === \"\";\n })) {\n addHandle(\"value\", function (elem, name, isXML) {\n if (!isXML && elem.nodeName.toLowerCase() === \"input\") {\n return elem.defaultValue;\n }\n });\n } // Support: IE<9\n // Use getAttributeNode to fetch booleans when getAttribute lies\n\n\n if (!assert(function (div) {\n return div.getAttribute(\"disabled\") == null;\n })) {\n addHandle(booleans, function (elem, name, isXML) {\n var val;\n\n if (!isXML) {\n return elem[name] === true ? name.toLowerCase() : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n }\n });\n }\n\n return Sizzle;\n }(window);\n\n jQuery.find = Sizzle;\n jQuery.expr = Sizzle.selectors;\n jQuery.expr[\":\"] = jQuery.expr.pseudos;\n jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\n jQuery.text = Sizzle.getText;\n jQuery.isXMLDoc = Sizzle.isXML;\n jQuery.contains = Sizzle.contains;\n\n var dir = function dir(elem, _dir, until) {\n var matched = [],\n truncate = until !== undefined;\n\n while ((elem = elem[_dir]) && elem.nodeType !== 9) {\n if (elem.nodeType === 1) {\n if (truncate && jQuery(elem).is(until)) {\n break;\n }\n\n matched.push(elem);\n }\n }\n\n return matched;\n };\n\n var _siblings = function siblings(n, elem) {\n var matched = [];\n\n for (; n; n = n.nextSibling) {\n if (n.nodeType === 1 && n !== elem) {\n matched.push(n);\n }\n }\n\n return matched;\n };\n\n var rneedsContext = jQuery.expr.match.needsContext;\n var rsingleTag = /^<([\\w-]+)\\s*\\/?>(?:<\\/\\1>|)$/;\n var risSimple = /^.[^:#\\[\\.,]*$/; // Implement the identical functionality for filter and not\n\n function winnow(elements, qualifier, not) {\n if (jQuery.isFunction(qualifier)) {\n return jQuery.grep(elements, function (elem, i) {\n /* jshint -W018 */\n return !!qualifier.call(elem, i, elem) !== not;\n });\n }\n\n if (qualifier.nodeType) {\n return jQuery.grep(elements, function (elem) {\n return elem === qualifier !== not;\n });\n }\n\n if (typeof qualifier === \"string\") {\n if (risSimple.test(qualifier)) {\n return jQuery.filter(qualifier, elements, not);\n }\n\n qualifier = jQuery.filter(qualifier, elements);\n }\n\n return jQuery.grep(elements, function (elem) {\n return jQuery.inArray(elem, qualifier) > -1 !== not;\n });\n }\n\n jQuery.filter = function (expr, elems, not) {\n var elem = elems[0];\n\n if (not) {\n expr = \":not(\" + expr + \")\";\n }\n\n return elems.length === 1 && elem.nodeType === 1 ? jQuery.find.matchesSelector(elem, expr) ? [elem] : [] : jQuery.find.matches(expr, jQuery.grep(elems, function (elem) {\n return elem.nodeType === 1;\n }));\n };\n\n jQuery.fn.extend({\n find: function find(selector) {\n var i,\n ret = [],\n self = this,\n len = self.length;\n\n if (typeof selector !== \"string\") {\n return this.pushStack(jQuery(selector).filter(function () {\n for (i = 0; i < len; i++) {\n if (jQuery.contains(self[i], this)) {\n return true;\n }\n }\n }));\n }\n\n for (i = 0; i < len; i++) {\n jQuery.find(selector, self[i], ret);\n } // Needed because $( selector, context ) becomes $( context ).find( selector )\n\n\n ret = this.pushStack(len > 1 ? jQuery.unique(ret) : ret);\n ret.selector = this.selector ? this.selector + \" \" + selector : selector;\n return ret;\n },\n filter: function filter(selector) {\n return this.pushStack(winnow(this, selector || [], false));\n },\n not: function not(selector) {\n return this.pushStack(winnow(this, selector || [], true));\n },\n is: function is(selector) {\n return !!winnow(this, // If this is a positional/relative selector, check membership in the returned set\n // so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n typeof selector === \"string\" && rneedsContext.test(selector) ? jQuery(selector) : selector || [], false).length;\n }\n }); // Initialize a jQuery object\n // A central reference to the root jQuery(document)\n\n var rootjQuery,\n // A simple way to check for HTML strings\n // Prioritize #id over to avoid XSS via location.hash (#9521)\n // Strict HTML recognition (#11290: must start with <)\n rquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/,\n init = jQuery.fn.init = function (selector, context, root) {\n var match, elem; // HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\n if (!selector) {\n return this;\n } // init accepts an alternate rootjQuery\n // so migrate can support jQuery.sub (gh-2101)\n\n\n root = root || rootjQuery; // Handle HTML strings\n\n if (typeof selector === \"string\") {\n if (selector.charAt(0) === \"<\" && selector.charAt(selector.length - 1) === \">\" && selector.length >= 3) {\n // Assume that strings that start and end with <> are HTML and skip the regex check\n match = [null, selector, null];\n } else {\n match = rquickExpr.exec(selector);\n } // Match html or make sure no context is specified for #id\n\n\n if (match && (match[1] || !context)) {\n // HANDLE: $(html) -> $(array)\n if (match[1]) {\n context = context instanceof jQuery ? context[0] : context; // scripts is true for back-compat\n // Intentionally let the error be thrown if parseHTML is not present\n\n jQuery.merge(this, jQuery.parseHTML(match[1], context && context.nodeType ? context.ownerDocument || context : document, true)); // HANDLE: $(html, props)\n\n if (rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) {\n for (match in context) {\n // Properties of context are called as methods if possible\n if (jQuery.isFunction(this[match])) {\n this[match](context[match]); // ...and otherwise set as attributes\n } else {\n this.attr(match, context[match]);\n }\n }\n }\n\n return this; // HANDLE: $(#id)\n } else {\n elem = document.getElementById(match[2]); // Check parentNode to catch when Blackberry 4.6 returns\n // nodes that are no longer in the document #6963\n\n if (elem && elem.parentNode) {\n // Handle the case where IE and Opera return items\n // by name instead of ID\n if (elem.id !== match[2]) {\n return rootjQuery.find(selector);\n } // Otherwise, we inject the element directly into the jQuery object\n\n\n this.length = 1;\n this[0] = elem;\n }\n\n this.context = document;\n this.selector = selector;\n return this;\n } // HANDLE: $(expr, $(...))\n\n } else if (!context || context.jquery) {\n return (context || root).find(selector); // HANDLE: $(expr, context)\n // (which is just equivalent to: $(context).find(expr)\n } else {\n return this.constructor(context).find(selector);\n } // HANDLE: $(DOMElement)\n\n } else if (selector.nodeType) {\n this.context = this[0] = selector;\n this.length = 1;\n return this; // HANDLE: $(function)\n // Shortcut for document ready\n } else if (jQuery.isFunction(selector)) {\n return typeof root.ready !== \"undefined\" ? root.ready(selector) : // Execute immediately if ready is not present\n selector(jQuery);\n }\n\n if (selector.selector !== undefined) {\n this.selector = selector.selector;\n this.context = selector.context;\n }\n\n return jQuery.makeArray(selector, this);\n }; // Give the init function the jQuery prototype for later instantiation\n\n\n init.prototype = jQuery.fn; // Initialize central reference\n\n rootjQuery = jQuery(document);\n var rparentsprev = /^(?:parents|prev(?:Until|All))/,\n // methods guaranteed to produce a unique set when starting from a unique set\n guaranteedUnique = {\n children: true,\n contents: true,\n next: true,\n prev: true\n };\n jQuery.fn.extend({\n has: function has(target) {\n var i,\n targets = jQuery(target, this),\n len = targets.length;\n return this.filter(function () {\n for (i = 0; i < len; i++) {\n if (jQuery.contains(this, targets[i])) {\n return true;\n }\n }\n });\n },\n closest: function closest(selectors, context) {\n var cur,\n i = 0,\n l = this.length,\n matched = [],\n pos = rneedsContext.test(selectors) || typeof selectors !== \"string\" ? jQuery(selectors, context || this.context) : 0;\n\n for (; i < l; i++) {\n for (cur = this[i]; cur && cur !== context; cur = cur.parentNode) {\n // Always skip document fragments\n if (cur.nodeType < 11 && (pos ? pos.index(cur) > -1 : // Don't pass non-elements to Sizzle\n cur.nodeType === 1 && jQuery.find.matchesSelector(cur, selectors))) {\n matched.push(cur);\n break;\n }\n }\n }\n\n return this.pushStack(matched.length > 1 ? jQuery.uniqueSort(matched) : matched);\n },\n // Determine the position of an element within\n // the matched set of elements\n index: function index(elem) {\n // No argument, return index in parent\n if (!elem) {\n return this[0] && this[0].parentNode ? this.first().prevAll().length : -1;\n } // index in selector\n\n\n if (typeof elem === \"string\") {\n return jQuery.inArray(this[0], jQuery(elem));\n } // Locate the position of the desired element\n\n\n return jQuery.inArray( // If it receives a jQuery object, the first element is used\n elem.jquery ? elem[0] : elem, this);\n },\n add: function add(selector, context) {\n return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(), jQuery(selector, context))));\n },\n addBack: function addBack(selector) {\n return this.add(selector == null ? this.prevObject : this.prevObject.filter(selector));\n }\n });\n\n function sibling(cur, dir) {\n do {\n cur = cur[dir];\n } while (cur && cur.nodeType !== 1);\n\n return cur;\n }\n\n jQuery.each({\n parent: function parent(elem) {\n var parent = elem.parentNode;\n return parent && parent.nodeType !== 11 ? parent : null;\n },\n parents: function parents(elem) {\n return dir(elem, \"parentNode\");\n },\n parentsUntil: function parentsUntil(elem, i, until) {\n return dir(elem, \"parentNode\", until);\n },\n next: function next(elem) {\n return sibling(elem, \"nextSibling\");\n },\n prev: function prev(elem) {\n return sibling(elem, \"previousSibling\");\n },\n nextAll: function nextAll(elem) {\n return dir(elem, \"nextSibling\");\n },\n prevAll: function prevAll(elem) {\n return dir(elem, \"previousSibling\");\n },\n nextUntil: function nextUntil(elem, i, until) {\n return dir(elem, \"nextSibling\", until);\n },\n prevUntil: function prevUntil(elem, i, until) {\n return dir(elem, \"previousSibling\", until);\n },\n siblings: function siblings(elem) {\n return _siblings((elem.parentNode || {}).firstChild, elem);\n },\n children: function children(elem) {\n return _siblings(elem.firstChild);\n },\n contents: function contents(elem) {\n return jQuery.nodeName(elem, \"iframe\") ? elem.contentDocument || elem.contentWindow.document : jQuery.merge([], elem.childNodes);\n }\n }, function (name, fn) {\n jQuery.fn[name] = function (until, selector) {\n var ret = jQuery.map(this, fn, until);\n\n if (name.slice(-5) !== \"Until\") {\n selector = until;\n }\n\n if (selector && typeof selector === \"string\") {\n ret = jQuery.filter(selector, ret);\n }\n\n if (this.length > 1) {\n // Remove duplicates\n if (!guaranteedUnique[name]) {\n ret = jQuery.uniqueSort(ret);\n } // Reverse order for parents* and prev-derivatives\n\n\n if (rparentsprev.test(name)) {\n ret = ret.reverse();\n }\n }\n\n return this.pushStack(ret);\n };\n });\n var rnotwhite = /\\S+/g; // Convert String-formatted options into Object-formatted ones\n\n function createOptions(options) {\n var object = {};\n jQuery.each(options.match(rnotwhite) || [], function (_, flag) {\n object[flag] = true;\n });\n return object;\n }\n /*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\n\n\n jQuery.Callbacks = function (options) {\n // Convert options from String-formatted to Object-formatted if needed\n // (we check in cache first)\n options = typeof options === \"string\" ? createOptions(options) : jQuery.extend({}, options);\n\n var // Flag to know if list is currently firing\n firing,\n // Last fire value for non-forgettable lists\n memory,\n // Flag to know if list was already fired\n _fired,\n // Flag to prevent firing\n _locked,\n // Actual callback list\n list = [],\n // Queue of execution data for repeatable lists\n queue = [],\n // Index of currently firing callback (modified by add/remove as needed)\n firingIndex = -1,\n // Fire callbacks\n fire = function fire() {\n // Enforce single-firing\n _locked = options.once; // Execute callbacks for all pending executions,\n // respecting firingIndex overrides and runtime changes\n\n _fired = firing = true;\n\n for (; queue.length; firingIndex = -1) {\n memory = queue.shift();\n\n while (++firingIndex < list.length) {\n // Run callback and check for early termination\n if (list[firingIndex].apply(memory[0], memory[1]) === false && options.stopOnFalse) {\n // Jump to end and forget the data so .add doesn't re-fire\n firingIndex = list.length;\n memory = false;\n }\n }\n } // Forget the data if we're done with it\n\n\n if (!options.memory) {\n memory = false;\n }\n\n firing = false; // Clean up if we're done firing for good\n\n if (_locked) {\n // Keep an empty list if we have data for future add calls\n if (memory) {\n list = []; // Otherwise, this object is spent\n } else {\n list = \"\";\n }\n }\n },\n // Actual Callbacks object\n self = {\n // Add a callback or a collection of callbacks to the list\n add: function add() {\n if (list) {\n // If we have memory from a past run, we should fire after adding\n if (memory && !firing) {\n firingIndex = list.length - 1;\n queue.push(memory);\n }\n\n (function add(args) {\n jQuery.each(args, function (_, arg) {\n if (jQuery.isFunction(arg)) {\n if (!options.unique || !self.has(arg)) {\n list.push(arg);\n }\n } else if (arg && arg.length && jQuery.type(arg) !== \"string\") {\n // Inspect recursively\n add(arg);\n }\n });\n })(arguments);\n\n if (memory && !firing) {\n fire();\n }\n }\n\n return this;\n },\n // Remove a callback from the list\n remove: function remove() {\n jQuery.each(arguments, function (_, arg) {\n var index;\n\n while ((index = jQuery.inArray(arg, list, index)) > -1) {\n list.splice(index, 1); // Handle firing indexes\n\n if (index <= firingIndex) {\n firingIndex--;\n }\n }\n });\n return this;\n },\n // Check if a given callback is in the list.\n // If no argument is given, return whether or not list has callbacks attached.\n has: function has(fn) {\n return fn ? jQuery.inArray(fn, list) > -1 : list.length > 0;\n },\n // Remove all callbacks from the list\n empty: function empty() {\n if (list) {\n list = [];\n }\n\n return this;\n },\n // Disable .fire and .add\n // Abort any current/pending executions\n // Clear all callbacks and values\n disable: function disable() {\n _locked = queue = [];\n list = memory = \"\";\n return this;\n },\n disabled: function disabled() {\n return !list;\n },\n // Disable .fire\n // Also disable .add unless we have memory (since it would have no effect)\n // Abort any pending executions\n lock: function lock() {\n _locked = true;\n\n if (!memory) {\n self.disable();\n }\n\n return this;\n },\n locked: function locked() {\n return !!_locked;\n },\n // Call all callbacks with the given context and arguments\n fireWith: function fireWith(context, args) {\n if (!_locked) {\n args = args || [];\n args = [context, args.slice ? args.slice() : args];\n queue.push(args);\n\n if (!firing) {\n fire();\n }\n }\n\n return this;\n },\n // Call all the callbacks with the given arguments\n fire: function fire() {\n self.fireWith(this, arguments);\n return this;\n },\n // To know if the callbacks have already been called at least once\n fired: function fired() {\n return !!_fired;\n }\n };\n\n return self;\n };\n\n jQuery.extend({\n Deferred: function Deferred(func) {\n var tuples = [// action, add listener, listener list, final state\n [\"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), \"resolved\"], [\"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), \"rejected\"], [\"notify\", \"progress\", jQuery.Callbacks(\"memory\")]],\n _state = \"pending\",\n _promise = {\n state: function state() {\n return _state;\n },\n always: function always() {\n deferred.done(arguments).fail(arguments);\n return this;\n },\n then: function then()\n /* fnDone, fnFail, fnProgress */\n {\n var fns = arguments;\n return jQuery.Deferred(function (newDefer) {\n jQuery.each(tuples, function (i, tuple) {\n var fn = jQuery.isFunction(fns[i]) && fns[i]; // deferred[ done | fail | progress ] for forwarding actions to newDefer\n\n deferred[tuple[1]](function () {\n var returned = fn && fn.apply(this, arguments);\n\n if (returned && jQuery.isFunction(returned.promise)) {\n returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject);\n } else {\n newDefer[tuple[0] + \"With\"](this === _promise ? newDefer.promise() : this, fn ? [returned] : arguments);\n }\n });\n });\n fns = null;\n }).promise();\n },\n // Get a promise for this deferred\n // If obj is provided, the promise aspect is added to the object\n promise: function promise(obj) {\n return obj != null ? jQuery.extend(obj, _promise) : _promise;\n }\n },\n deferred = {}; // Keep pipe for back-compat\n\n _promise.pipe = _promise.then; // Add list-specific methods\n\n jQuery.each(tuples, function (i, tuple) {\n var list = tuple[2],\n stateString = tuple[3]; // promise[ done | fail | progress ] = list.add\n\n _promise[tuple[1]] = list.add; // Handle state\n\n if (stateString) {\n list.add(function () {\n // state = [ resolved | rejected ]\n _state = stateString; // [ reject_list | resolve_list ].disable; progress_list.lock\n }, tuples[i ^ 1][2].disable, tuples[2][2].lock);\n } // deferred[ resolve | reject | notify ]\n\n\n deferred[tuple[0]] = function () {\n deferred[tuple[0] + \"With\"](this === deferred ? _promise : this, arguments);\n return this;\n };\n\n deferred[tuple[0] + \"With\"] = list.fireWith;\n }); // Make the deferred a promise\n\n _promise.promise(deferred); // Call given func if any\n\n\n if (func) {\n func.call(deferred, deferred);\n } // All done!\n\n\n return deferred;\n },\n // Deferred helper\n when: function when(subordinate\n /* , ..., subordinateN */\n ) {\n var i = 0,\n resolveValues = _slice.call(arguments),\n length = resolveValues.length,\n // the count of uncompleted subordinates\n remaining = length !== 1 || subordinate && jQuery.isFunction(subordinate.promise) ? length : 0,\n // the master Deferred.\n // If resolveValues consist of only a single Deferred, just use that.\n deferred = remaining === 1 ? subordinate : jQuery.Deferred(),\n // Update function for both resolve and progress values\n updateFunc = function updateFunc(i, contexts, values) {\n return function (value) {\n contexts[i] = this;\n values[i] = arguments.length > 1 ? _slice.call(arguments) : value;\n\n if (values === progressValues) {\n deferred.notifyWith(contexts, values);\n } else if (! --remaining) {\n deferred.resolveWith(contexts, values);\n }\n };\n },\n progressValues,\n progressContexts,\n resolveContexts; // add listeners to Deferred subordinates; treat others as resolved\n\n\n if (length > 1) {\n progressValues = new Array(length);\n progressContexts = new Array(length);\n resolveContexts = new Array(length);\n\n for (; i < length; i++) {\n if (resolveValues[i] && jQuery.isFunction(resolveValues[i].promise)) {\n resolveValues[i].promise().progress(updateFunc(i, progressContexts, progressValues)).done(updateFunc(i, resolveContexts, resolveValues)).fail(deferred.reject);\n } else {\n --remaining;\n }\n }\n } // if we're not waiting on anything, resolve the master\n\n\n if (!remaining) {\n deferred.resolveWith(resolveContexts, resolveValues);\n }\n\n return deferred.promise();\n }\n }); // The deferred used on DOM ready\n\n var readyList;\n\n jQuery.fn.ready = function (fn) {\n // Add the callback\n jQuery.ready.promise().done(fn);\n return this;\n };\n\n jQuery.extend({\n // Is the DOM ready to be used? Set to true once it occurs.\n isReady: false,\n // A counter to track how many items to wait for before\n // the ready event fires. See #6781\n readyWait: 1,\n // Hold (or release) the ready event\n holdReady: function holdReady(hold) {\n if (hold) {\n jQuery.readyWait++;\n } else {\n jQuery.ready(true);\n }\n },\n // Handle when the DOM is ready\n ready: function ready(wait) {\n // Abort if there are pending holds or we're already ready\n if (wait === true ? --jQuery.readyWait : jQuery.isReady) {\n return;\n } // Remember that the DOM is ready\n\n\n jQuery.isReady = true; // If a normal DOM Ready event fired, decrement, and wait if need be\n\n if (wait !== true && --jQuery.readyWait > 0) {\n return;\n } // If there are functions bound, to execute\n\n\n readyList.resolveWith(document, [jQuery]); // Trigger any bound ready events\n\n if (jQuery.fn.triggerHandler) {\n jQuery(document).triggerHandler(\"ready\");\n jQuery(document).off(\"ready\");\n }\n }\n });\n /**\n * Clean-up method for dom ready events\n */\n\n function detach() {\n if (document.addEventListener) {\n document.removeEventListener(\"DOMContentLoaded\", completed);\n window.removeEventListener(\"load\", completed);\n } else {\n document.detachEvent(\"onreadystatechange\", completed);\n window.detachEvent(\"onload\", completed);\n }\n }\n /**\n * The ready event handler and self cleanup method\n */\n\n\n function completed() {\n // readyState === \"complete\" is good enough for us to call the dom ready in oldIE\n if (document.addEventListener || window.event.type === \"load\" || document.readyState === \"complete\") {\n detach();\n jQuery.ready();\n }\n }\n\n jQuery.ready.promise = function (obj) {\n if (!readyList) {\n readyList = jQuery.Deferred(); // Catch cases where $(document).ready() is called\n // after the browser event has already occurred.\n // Support: IE6-10\n // Older IE sometimes signals \"interactive\" too soon\n\n if (document.readyState === \"complete\" || document.readyState !== \"loading\" && !document.documentElement.doScroll) {\n // Handle it asynchronously to allow scripts the opportunity to delay ready\n window.setTimeout(jQuery.ready); // Standards-based browsers support DOMContentLoaded\n } else if (document.addEventListener) {\n // Use the handy event callback\n document.addEventListener(\"DOMContentLoaded\", completed); // A fallback to window.onload, that will always work\n\n window.addEventListener(\"load\", completed); // If IE event model is used\n } else {\n // Ensure firing before onload, maybe late but safe also for iframes\n document.attachEvent(\"onreadystatechange\", completed); // A fallback to window.onload, that will always work\n\n window.attachEvent(\"onload\", completed); // If IE and not a frame\n // continually check to see if the document is ready\n\n var top = false;\n\n try {\n top = window.frameElement == null && document.documentElement;\n } catch (e) {}\n\n if (top && top.doScroll) {\n (function doScrollCheck() {\n if (!jQuery.isReady) {\n try {\n // Use the trick by Diego Perini\n // http://javascript.nwbox.com/IEContentLoaded/\n top.doScroll(\"left\");\n } catch (e) {\n return window.setTimeout(doScrollCheck, 50);\n } // detach all dom ready events\n\n\n detach(); // and execute any waiting functions\n\n jQuery.ready();\n }\n })();\n }\n }\n }\n\n return readyList.promise(obj);\n }; // Kick off the DOM ready check even if the user does not\n\n\n jQuery.ready.promise(); // Support: IE<9\n // Iteration over object's inherited properties before its own\n\n var i;\n\n for (i in jQuery(support)) {\n break;\n }\n\n support.ownFirst = i === \"0\"; // Note: most support tests are defined in their respective modules.\n // false until the test is run\n\n support.inlineBlockNeedsLayout = false; // Execute ASAP in case we need to set body.style.zoom\n\n jQuery(function () {\n // Minified: var a,b,c,d\n var val, div, body, container;\n body = document.getElementsByTagName(\"body\")[0];\n\n if (!body || !body.style) {\n // Return for frameset docs that don't have a body\n return;\n } // Setup\n\n\n div = document.createElement(\"div\");\n container = document.createElement(\"div\");\n container.style.cssText = \"position:absolute;border:0;width:0;height:0;top:0;left:-9999px\";\n body.appendChild(container).appendChild(div);\n\n if (typeof div.style.zoom !== \"undefined\") {\n // Support: IE<8\n // Check if natively block-level elements act like inline-block\n // elements when setting their display to 'inline' and giving\n // them layout\n div.style.cssText = \"display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1\";\n support.inlineBlockNeedsLayout = val = div.offsetWidth === 3;\n\n if (val) {\n // Prevent IE 6 from affecting layout for positioned elements #11048\n // Prevent IE from shrinking the body in IE 7 mode #12869\n // Support: IE<8\n body.style.zoom = 1;\n }\n }\n\n body.removeChild(container);\n });\n\n (function () {\n var div = document.createElement(\"div\"); // Support: IE<9\n\n support.deleteExpando = true;\n\n try {\n delete div.test;\n } catch (e) {\n support.deleteExpando = false;\n } // Null elements to avoid leaks in IE.\n\n\n div = null;\n })();\n\n var acceptData = function acceptData(elem) {\n var noData = jQuery.noData[(elem.nodeName + \" \").toLowerCase()],\n nodeType = +elem.nodeType || 1; // Do not set data on non-element DOM nodes because it will not be cleared (#8335).\n\n return nodeType !== 1 && nodeType !== 9 ? false : // Nodes accept data unless otherwise specified; rejection can be conditional\n !noData || noData !== true && elem.getAttribute(\"classid\") === noData;\n };\n\n var rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n rmultiDash = /([A-Z])/g;\n\n function dataAttr(elem, key, data) {\n // If nothing was found internally, try to fetch any\n // data from the HTML5 data-* attribute\n if (data === undefined && elem.nodeType === 1) {\n var name = \"data-\" + key.replace(rmultiDash, \"-$1\").toLowerCase();\n data = elem.getAttribute(name);\n\n if (typeof data === \"string\") {\n try {\n data = data === \"true\" ? true : data === \"false\" ? false : data === \"null\" ? null : // Only convert to a number if it doesn't change the string\n +data + \"\" === data ? +data : rbrace.test(data) ? jQuery.parseJSON(data) : data;\n } catch (e) {} // Make sure we set the data so it isn't changed later\n\n\n jQuery.data(elem, key, data);\n } else {\n data = undefined;\n }\n }\n\n return data;\n } // checks a cache object for emptiness\n\n\n function isEmptyDataObject(obj) {\n var name;\n\n for (name in obj) {\n // if the public data object is empty, the private is still empty\n if (name === \"data\" && jQuery.isEmptyObject(obj[name])) {\n continue;\n }\n\n if (name !== \"toJSON\") {\n return false;\n }\n }\n\n return true;\n }\n\n function internalData(elem, name, data, pvt\n /* Internal Use Only */\n ) {\n if (!acceptData(elem)) {\n return;\n }\n\n var ret,\n thisCache,\n internalKey = jQuery.expando,\n // We have to handle DOM nodes and JS objects differently because IE6-7\n // can't GC object references properly across the DOM-JS boundary\n isNode = elem.nodeType,\n // Only DOM nodes need the global jQuery cache; JS object data is\n // attached directly to the object so GC can occur automatically\n cache = isNode ? jQuery.cache : elem,\n // Only defining an ID for JS objects if its cache already exists allows\n // the code to shortcut on the same path as a DOM node with no cache\n id = isNode ? elem[internalKey] : elem[internalKey] && internalKey; // Avoid doing any more work than we need to when trying to get data on an\n // object that has no data at all\n\n if ((!id || !cache[id] || !pvt && !cache[id].data) && data === undefined && typeof name === \"string\") {\n return;\n }\n\n if (!id) {\n // Only DOM nodes need a new unique ID for each element since their data\n // ends up in the global cache\n if (isNode) {\n id = elem[internalKey] = deletedIds.pop() || jQuery.guid++;\n } else {\n id = internalKey;\n }\n }\n\n if (!cache[id]) {\n // Avoid exposing jQuery metadata on plain JS objects when the object\n // is serialized using JSON.stringify\n cache[id] = isNode ? {} : {\n toJSON: jQuery.noop\n };\n } // An object can be passed to jQuery.data instead of a key/value pair; this gets\n // shallow copied over onto the existing cache\n\n\n if (_typeof(name) === \"object\" || typeof name === \"function\") {\n if (pvt) {\n cache[id] = jQuery.extend(cache[id], name);\n } else {\n cache[id].data = jQuery.extend(cache[id].data, name);\n }\n }\n\n thisCache = cache[id]; // jQuery data() is stored in a separate object inside the object's internal data\n // cache in order to avoid key collisions between internal data and user-defined\n // data.\n\n if (!pvt) {\n if (!thisCache.data) {\n thisCache.data = {};\n }\n\n thisCache = thisCache.data;\n }\n\n if (data !== undefined) {\n thisCache[jQuery.camelCase(name)] = data;\n } // Check for both converted-to-camel and non-converted data property names\n // If a data property was specified\n\n\n if (typeof name === \"string\") {\n // First Try to find as-is property data\n ret = thisCache[name]; // Test for null|undefined property data\n\n if (ret == null) {\n // Try to find the camelCased property\n ret = thisCache[jQuery.camelCase(name)];\n }\n } else {\n ret = thisCache;\n }\n\n return ret;\n }\n\n function internalRemoveData(elem, name, pvt) {\n if (!acceptData(elem)) {\n return;\n }\n\n var thisCache,\n i,\n isNode = elem.nodeType,\n // See jQuery.data for more information\n cache = isNode ? jQuery.cache : elem,\n id = isNode ? elem[jQuery.expando] : jQuery.expando; // If there is already no cache entry for this object, there is no\n // purpose in continuing\n\n if (!cache[id]) {\n return;\n }\n\n if (name) {\n thisCache = pvt ? cache[id] : cache[id].data;\n\n if (thisCache) {\n // Support array or space separated string names for data keys\n if (!jQuery.isArray(name)) {\n // try the string as a key before any manipulation\n if (name in thisCache) {\n name = [name];\n } else {\n // split the camel cased version by spaces unless a key with the spaces exists\n name = jQuery.camelCase(name);\n\n if (name in thisCache) {\n name = [name];\n } else {\n name = name.split(\" \");\n }\n }\n } else {\n // If \"name\" is an array of keys...\n // When data is initially created, via (\"key\", \"val\") signature,\n // keys will be converted to camelCase.\n // Since there is no way to tell _how_ a key was added, remove\n // both plain key and camelCase key. #12786\n // This will only penalize the array argument path.\n name = name.concat(jQuery.map(name, jQuery.camelCase));\n }\n\n i = name.length;\n\n while (i--) {\n delete thisCache[name[i]];\n } // If there is no data left in the cache, we want to continue\n // and let the cache object itself get destroyed\n\n\n if (pvt ? !isEmptyDataObject(thisCache) : !jQuery.isEmptyObject(thisCache)) {\n return;\n }\n }\n } // See jQuery.data for more information\n\n\n if (!pvt) {\n delete cache[id].data; // Don't destroy the parent cache unless the internal data object\n // had been the only thing left in it\n\n if (!isEmptyDataObject(cache[id])) {\n return;\n }\n } // Destroy the cache\n\n\n if (isNode) {\n jQuery.cleanData([elem], true); // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080)\n\n /* jshint eqeqeq: false */\n } else if (support.deleteExpando || cache != cache.window) {\n /* jshint eqeqeq: true */\n delete cache[id]; // When all else fails, undefined\n } else {\n cache[id] = undefined;\n }\n }\n\n jQuery.extend({\n cache: {},\n // The following elements (space-suffixed to avoid Object.prototype collisions)\n // throw uncatchable exceptions if you attempt to set expando properties\n noData: {\n \"applet \": true,\n \"embed \": true,\n // ...but Flash objects (which have this classid) *can* handle expandos\n \"object \": \"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"\n },\n hasData: function hasData(elem) {\n elem = elem.nodeType ? jQuery.cache[elem[jQuery.expando]] : elem[jQuery.expando];\n return !!elem && !isEmptyDataObject(elem);\n },\n data: function data(elem, name, _data) {\n return internalData(elem, name, _data);\n },\n removeData: function removeData(elem, name) {\n return internalRemoveData(elem, name);\n },\n // For internal use only.\n _data: function _data(elem, name, data) {\n return internalData(elem, name, data, true);\n },\n _removeData: function _removeData(elem, name) {\n return internalRemoveData(elem, name, true);\n }\n });\n jQuery.fn.extend({\n data: function data(key, value) {\n var i,\n name,\n data,\n elem = this[0],\n attrs = elem && elem.attributes; // Special expections of .data basically thwart jQuery.access,\n // so implement the relevant behavior ourselves\n // Gets all values\n\n if (key === undefined) {\n if (this.length) {\n data = jQuery.data(elem);\n\n if (elem.nodeType === 1 && !jQuery._data(elem, \"parsedAttrs\")) {\n i = attrs.length;\n\n while (i--) {\n // Support: IE11+\n // The attrs elements can be null (#14894)\n if (attrs[i]) {\n name = attrs[i].name;\n\n if (name.indexOf(\"data-\") === 0) {\n name = jQuery.camelCase(name.slice(5));\n dataAttr(elem, name, data[name]);\n }\n }\n }\n\n jQuery._data(elem, \"parsedAttrs\", true);\n }\n }\n\n return data;\n } // Sets multiple values\n\n\n if (_typeof(key) === \"object\") {\n return this.each(function () {\n jQuery.data(this, key);\n });\n }\n\n return arguments.length > 1 ? // Sets one value\n this.each(function () {\n jQuery.data(this, key, value);\n }) : // Gets one value\n // Try to fetch any internally stored data first\n elem ? dataAttr(elem, key, jQuery.data(elem, key)) : undefined;\n },\n removeData: function removeData(key) {\n return this.each(function () {\n jQuery.removeData(this, key);\n });\n }\n });\n jQuery.extend({\n queue: function queue(elem, type, data) {\n var queue;\n\n if (elem) {\n type = (type || \"fx\") + \"queue\";\n queue = jQuery._data(elem, type); // Speed up dequeue by getting out quickly if this is just a lookup\n\n if (data) {\n if (!queue || jQuery.isArray(data)) {\n queue = jQuery._data(elem, type, jQuery.makeArray(data));\n } else {\n queue.push(data);\n }\n }\n\n return queue || [];\n }\n },\n dequeue: function dequeue(elem, type) {\n type = type || \"fx\";\n\n var queue = jQuery.queue(elem, type),\n startLength = queue.length,\n fn = queue.shift(),\n hooks = jQuery._queueHooks(elem, type),\n next = function next() {\n jQuery.dequeue(elem, type);\n }; // If the fx queue is dequeued, always remove the progress sentinel\n\n\n if (fn === \"inprogress\") {\n fn = queue.shift();\n startLength--;\n }\n\n if (fn) {\n // Add a progress sentinel to prevent the fx queue from being\n // automatically dequeued\n if (type === \"fx\") {\n queue.unshift(\"inprogress\");\n } // clear up the last queue stop function\n\n\n delete hooks.stop;\n fn.call(elem, next, hooks);\n }\n\n if (!startLength && hooks) {\n hooks.empty.fire();\n }\n },\n // not intended for public consumption - generates a queueHooks object,\n // or returns the current one\n _queueHooks: function _queueHooks(elem, type) {\n var key = type + \"queueHooks\";\n return jQuery._data(elem, key) || jQuery._data(elem, key, {\n empty: jQuery.Callbacks(\"once memory\").add(function () {\n jQuery._removeData(elem, type + \"queue\");\n\n jQuery._removeData(elem, key);\n })\n });\n }\n });\n jQuery.fn.extend({\n queue: function queue(type, data) {\n var setter = 2;\n\n if (typeof type !== \"string\") {\n data = type;\n type = \"fx\";\n setter--;\n }\n\n if (arguments.length < setter) {\n return jQuery.queue(this[0], type);\n }\n\n return data === undefined ? this : this.each(function () {\n var queue = jQuery.queue(this, type, data); // ensure a hooks for this queue\n\n jQuery._queueHooks(this, type);\n\n if (type === \"fx\" && queue[0] !== \"inprogress\") {\n jQuery.dequeue(this, type);\n }\n });\n },\n dequeue: function dequeue(type) {\n return this.each(function () {\n jQuery.dequeue(this, type);\n });\n },\n clearQueue: function clearQueue(type) {\n return this.queue(type || \"fx\", []);\n },\n // Get a promise resolved when queues of a certain type\n // are emptied (fx is the type by default)\n promise: function promise(type, obj) {\n var tmp,\n count = 1,\n defer = jQuery.Deferred(),\n elements = this,\n i = this.length,\n resolve = function resolve() {\n if (! --count) {\n defer.resolveWith(elements, [elements]);\n }\n };\n\n if (typeof type !== \"string\") {\n obj = type;\n type = undefined;\n }\n\n type = type || \"fx\";\n\n while (i--) {\n tmp = jQuery._data(elements[i], type + \"queueHooks\");\n\n if (tmp && tmp.empty) {\n count++;\n tmp.empty.add(resolve);\n }\n }\n\n resolve();\n return defer.promise(obj);\n }\n });\n\n (function () {\n var shrinkWrapBlocksVal;\n\n support.shrinkWrapBlocks = function () {\n if (shrinkWrapBlocksVal != null) {\n return shrinkWrapBlocksVal;\n } // Will be changed later if needed.\n\n\n shrinkWrapBlocksVal = false; // Minified: var b,c,d\n\n var div, body, container;\n body = document.getElementsByTagName(\"body\")[0];\n\n if (!body || !body.style) {\n // Test fired too early or in an unsupported environment, exit.\n return;\n } // Setup\n\n\n div = document.createElement(\"div\");\n container = document.createElement(\"div\");\n container.style.cssText = \"position:absolute;border:0;width:0;height:0;top:0;left:-9999px\";\n body.appendChild(container).appendChild(div); // Support: IE6\n // Check if elements with layout shrink-wrap their children\n\n if (typeof div.style.zoom !== \"undefined\") {\n // Reset CSS: box-sizing; display; margin; border\n div.style.cssText = // Support: Firefox<29, Android 2.3\n // Vendor-prefix box-sizing\n \"-webkit-box-sizing:content-box;-moz-box-sizing:content-box;\" + \"box-sizing:content-box;display:block;margin:0;border:0;\" + \"padding:1px;width:1px;zoom:1\";\n div.appendChild(document.createElement(\"div\")).style.width = \"5px\";\n shrinkWrapBlocksVal = div.offsetWidth !== 3;\n }\n\n body.removeChild(container);\n return shrinkWrapBlocksVal;\n };\n })();\n\n var pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\n var rcssNum = new RegExp(\"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\");\n var cssExpand = [\"Top\", \"Right\", \"Bottom\", \"Left\"];\n\n var isHidden = function isHidden(elem, el) {\n // isHidden might be called from jQuery#filter function;\n // in that case, element will be second argument\n elem = el || elem;\n return jQuery.css(elem, \"display\") === \"none\" || !jQuery.contains(elem.ownerDocument, elem);\n };\n\n function adjustCSS(elem, prop, valueParts, tween) {\n var adjusted,\n scale = 1,\n maxIterations = 20,\n currentValue = tween ? function () {\n return tween.cur();\n } : function () {\n return jQuery.css(elem, prop, \"\");\n },\n initial = currentValue(),\n unit = valueParts && valueParts[3] || (jQuery.cssNumber[prop] ? \"\" : \"px\"),\n // Starting value computation is required for potential unit mismatches\n initialInUnit = (jQuery.cssNumber[prop] || unit !== \"px\" && +initial) && rcssNum.exec(jQuery.css(elem, prop));\n\n if (initialInUnit && initialInUnit[3] !== unit) {\n // Trust units reported by jQuery.css\n unit = unit || initialInUnit[3]; // Make sure we update the tween properties later on\n\n valueParts = valueParts || []; // Iteratively approximate from a nonzero starting point\n\n initialInUnit = +initial || 1;\n\n do {\n // If previous iteration zeroed out, double until we get *something*.\n // Use string for doubling so we don't accidentally see scale as unchanged below\n scale = scale || \".5\"; // Adjust and apply\n\n initialInUnit = initialInUnit / scale;\n jQuery.style(elem, prop, initialInUnit + unit); // Update scale, tolerating zero or NaN from tween.cur()\n // Break the loop if scale is unchanged or perfect, or if we've just had enough.\n } while (scale !== (scale = currentValue() / initial) && scale !== 1 && --maxIterations);\n }\n\n if (valueParts) {\n initialInUnit = +initialInUnit || +initial || 0; // Apply relative offset (+=/-=) if specified\n\n adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2];\n\n if (tween) {\n tween.unit = unit;\n tween.start = initialInUnit;\n tween.end = adjusted;\n }\n }\n\n return adjusted;\n } // Multifunctional method to get and set values of a collection\n // The value/s can optionally be executed if it's a function\n\n\n var access = function access(elems, fn, key, value, chainable, emptyGet, raw) {\n var i = 0,\n length = elems.length,\n bulk = key == null; // Sets many values\n\n if (jQuery.type(key) === \"object\") {\n chainable = true;\n\n for (i in key) {\n access(elems, fn, i, key[i], true, emptyGet, raw);\n } // Sets one value\n\n } else if (value !== undefined) {\n chainable = true;\n\n if (!jQuery.isFunction(value)) {\n raw = true;\n }\n\n if (bulk) {\n // Bulk operations run against the entire set\n if (raw) {\n fn.call(elems, value);\n fn = null; // ...except when executing function values\n } else {\n bulk = fn;\n\n fn = function fn(elem, key, value) {\n return bulk.call(jQuery(elem), value);\n };\n }\n }\n\n if (fn) {\n for (; i < length; i++) {\n fn(elems[i], key, raw ? value : value.call(elems[i], i, fn(elems[i], key)));\n }\n }\n }\n\n return chainable ? elems : // Gets\n bulk ? fn.call(elems) : length ? fn(elems[0], key) : emptyGet;\n };\n\n var rcheckableType = /^(?:checkbox|radio)$/i;\n var rtagName = /<([\\w:-]+)/;\n var rscriptType = /^$|\\/(?:java|ecma)script/i;\n var rleadingWhitespace = /^\\s+/;\n var nodeNames = \"abbr|article|aside|audio|bdi|canvas|data|datalist|\" + \"details|dialog|figcaption|figure|footer|header|hgroup|main|\" + \"mark|meter|nav|output|picture|progress|section|summary|template|time|video\";\n\n function createSafeFragment(document) {\n var list = nodeNames.split(\"|\"),\n safeFrag = document.createDocumentFragment();\n\n if (safeFrag.createElement) {\n while (list.length) {\n safeFrag.createElement(list.pop());\n }\n }\n\n return safeFrag;\n }\n\n (function () {\n var div = document.createElement(\"div\"),\n fragment = document.createDocumentFragment(),\n input = document.createElement(\"input\"); // Setup\n\n div.innerHTML = \"
a\"; // IE strips leading whitespace when .innerHTML is used\n\n support.leadingWhitespace = div.firstChild.nodeType === 3; // Make sure that tbody elements aren't automatically inserted\n // IE will insert them into empty tables\n\n support.tbody = !div.getElementsByTagName(\"tbody\").length; // Make sure that link elements get serialized correctly by innerHTML\n // This requires a wrapper element in IE\n\n support.htmlSerialize = !!div.getElementsByTagName(\"link\").length; // Makes sure cloning an html5 element does not cause problems\n // Where outerHTML is undefined, this still works\n\n support.html5Clone = document.createElement(\"nav\").cloneNode(true).outerHTML !== \"<:nav>\"; // Check if a disconnected checkbox will retain its checked\n // value of true after appended to the DOM (IE6/7)\n\n input.type = \"checkbox\";\n input.checked = true;\n fragment.appendChild(input);\n support.appendChecked = input.checked; // Make sure textarea (and checkbox) defaultValue is properly cloned\n // Support: IE6-IE11+\n\n div.innerHTML = \"\";\n support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue; // #11217 - WebKit loses check when the name is after the checked attribute\n\n fragment.appendChild(div); // Support: Windows Web Apps (WWA)\n // `name` and `type` must use .setAttribute for WWA (#14901)\n\n input = document.createElement(\"input\");\n input.setAttribute(\"type\", \"radio\");\n input.setAttribute(\"checked\", \"checked\");\n input.setAttribute(\"name\", \"t\");\n div.appendChild(input); // Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3\n // old WebKit doesn't clone checked state correctly in fragments\n\n support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked; // Support: IE<9\n // Cloned elements keep attachEvent handlers, we use addEventListener on IE9+\n\n support.noCloneEvent = !!div.addEventListener; // Support: IE<9\n // Since attributes and properties are the same in IE,\n // cleanData must set properties to undefined rather than use removeAttribute\n\n div[jQuery.expando] = 1;\n support.attributes = !div.getAttribute(jQuery.expando);\n })(); // We have to close these tags to support XHTML (#13200)\n\n\n var wrapMap = {\n option: [1, \"\"],\n legend: [1, \"\"],\n area: [1, \"\"],\n // Support: IE8\n param: [1, \"\"],\n thead: [1, \"
\", \"
\"],\n tr: [2, \"
\", \"
\"],\n col: [2, \"
\", \"
\"],\n td: [3, \"
\", \"
\"],\n // IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags,\n // unless wrapped in a div with non-breaking characters in front of it.\n _default: support.htmlSerialize ? [0, \"\", \"\"] : [1, \"X
\", \"
\"]\n }; // Support: IE8-IE9\n\n wrapMap.optgroup = wrapMap.option;\n wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\n wrapMap.th = wrapMap.td;\n\n function getAll(context, tag) {\n var elems,\n elem,\n i = 0,\n found = typeof context.getElementsByTagName !== \"undefined\" ? context.getElementsByTagName(tag || \"*\") : typeof context.querySelectorAll !== \"undefined\" ? context.querySelectorAll(tag || \"*\") : undefined;\n\n if (!found) {\n for (found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++) {\n if (!tag || jQuery.nodeName(elem, tag)) {\n found.push(elem);\n } else {\n jQuery.merge(found, getAll(elem, tag));\n }\n }\n }\n\n return tag === undefined || tag && jQuery.nodeName(context, tag) ? jQuery.merge([context], found) : found;\n } // Mark scripts as having already been evaluated\n\n\n function setGlobalEval(elems, refElements) {\n var elem,\n i = 0;\n\n for (; (elem = elems[i]) != null; i++) {\n jQuery._data(elem, \"globalEval\", !refElements || jQuery._data(refElements[i], \"globalEval\"));\n }\n }\n\n var rhtml = /<|?\\w+;/,\n rtbody = / from table fragments\n\n\n if (!support.tbody) {\n // String was a
, *may* have spurious \n elem = tag === \"table\" && !rtbody.test(elem) ? tmp.firstChild : // String was a bare or \n wrap[1] === \"
\" && !rtbody.test(elem) ? tmp : 0;\n j = elem && elem.childNodes.length;\n\n while (j--) {\n if (jQuery.nodeName(tbody = elem.childNodes[j], \"tbody\") && !tbody.childNodes.length) {\n elem.removeChild(tbody);\n }\n }\n }\n\n jQuery.merge(nodes, tmp.childNodes); // Fix #12392 for WebKit and IE > 9\n\n tmp.textContent = \"\"; // Fix #12392 for oldIE\n\n while (tmp.firstChild) {\n tmp.removeChild(tmp.firstChild);\n } // Remember the top-level container for proper cleanup\n\n\n tmp = safe.lastChild;\n }\n }\n } // Fix #11356: Clear elements from fragment\n\n\n if (tmp) {\n safe.removeChild(tmp);\n } // Reset defaultChecked for any radios and checkboxes\n // about to be appended to the DOM in IE 6/7 (#8060)\n\n\n if (!support.appendChecked) {\n jQuery.grep(getAll(nodes, \"input\"), fixDefaultChecked);\n }\n\n i = 0;\n\n while (elem = nodes[i++]) {\n // Skip elements already in the context collection (trac-4087)\n if (selection && jQuery.inArray(elem, selection) > -1) {\n if (ignored) {\n ignored.push(elem);\n }\n\n continue;\n }\n\n contains = jQuery.contains(elem.ownerDocument, elem); // Append to fragment\n\n tmp = getAll(safe.appendChild(elem), \"script\"); // Preserve script evaluation history\n\n if (contains) {\n setGlobalEval(tmp);\n } // Capture executables\n\n\n if (scripts) {\n j = 0;\n\n while (elem = tmp[j++]) {\n if (rscriptType.test(elem.type || \"\")) {\n scripts.push(elem);\n }\n }\n }\n }\n\n tmp = null;\n return safe;\n }\n\n (function () {\n var i,\n eventName,\n div = document.createElement(\"div\"); // Support: IE<9 (lack submit/change bubble), Firefox (lack focus(in | out) events)\n\n for (i in {\n submit: true,\n change: true,\n focusin: true\n }) {\n eventName = \"on\" + i;\n\n if (!(support[i] = eventName in window)) {\n // Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP)\n div.setAttribute(eventName, \"t\");\n support[i] = div.attributes[eventName].expando === false;\n }\n } // Null elements to avoid leaks in IE.\n\n\n div = null;\n })();\n\n var rformElems = /^(?:input|select|textarea)$/i,\n rkeyEvent = /^key/,\n rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\n function returnTrue() {\n return true;\n }\n\n function returnFalse() {\n return false;\n } // Support: IE9\n // See #13393 for more info\n\n\n function safeActiveElement() {\n try {\n return document.activeElement;\n } catch (err) {}\n }\n\n function _on(elem, types, selector, data, fn, one) {\n var origFn, type; // Types can be a map of types/handlers\n\n if (_typeof(types) === \"object\") {\n // ( types-Object, selector, data )\n if (typeof selector !== \"string\") {\n // ( types-Object, data )\n data = data || selector;\n selector = undefined;\n }\n\n for (type in types) {\n _on(elem, type, selector, data, types[type], one);\n }\n\n return elem;\n }\n\n if (data == null && fn == null) {\n // ( types, fn )\n fn = selector;\n data = selector = undefined;\n } else if (fn == null) {\n if (typeof selector === \"string\") {\n // ( types, selector, fn )\n fn = data;\n data = undefined;\n } else {\n // ( types, data, fn )\n fn = data;\n data = selector;\n selector = undefined;\n }\n }\n\n if (fn === false) {\n fn = returnFalse;\n } else if (!fn) {\n return elem;\n }\n\n if (one === 1) {\n origFn = fn;\n\n fn = function fn(event) {\n // Can use an empty set, since event contains the info\n jQuery().off(event);\n return origFn.apply(this, arguments);\n }; // Use same guid so caller can remove using origFn\n\n\n fn.guid = origFn.guid || (origFn.guid = jQuery.guid++);\n }\n\n return elem.each(function () {\n jQuery.event.add(this, types, fn, data, selector);\n });\n }\n /*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\n\n\n jQuery.event = {\n global: {},\n add: function add(elem, types, handler, data, selector) {\n var tmp,\n events,\n t,\n handleObjIn,\n special,\n eventHandle,\n handleObj,\n handlers,\n type,\n namespaces,\n origType,\n elemData = jQuery._data(elem); // Don't attach events to noData or text/comment nodes (but allow plain objects)\n\n\n if (!elemData) {\n return;\n } // Caller can pass in an object of custom data in lieu of the handler\n\n\n if (handler.handler) {\n handleObjIn = handler;\n handler = handleObjIn.handler;\n selector = handleObjIn.selector;\n } // Make sure that the handler has a unique ID, used to find/remove it later\n\n\n if (!handler.guid) {\n handler.guid = jQuery.guid++;\n } // Init the element's event structure and main handler, if this is the first\n\n\n if (!(events = elemData.events)) {\n events = elemData.events = {};\n }\n\n if (!(eventHandle = elemData.handle)) {\n eventHandle = elemData.handle = function (e) {\n // Discard the second event of a jQuery.event.trigger() and\n // when an event is called after a page has unloaded\n return typeof jQuery !== \"undefined\" && (!e || jQuery.event.triggered !== e.type) ? jQuery.event.dispatch.apply(eventHandle.elem, arguments) : undefined;\n }; // Add elem as a property of the handle fn to prevent a memory leak\n // with IE non-native events\n\n\n eventHandle.elem = elem;\n } // Handle multiple events separated by a space\n\n\n types = (types || \"\").match(rnotwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // There *must* be a type, no attaching namespace-only handlers\n\n if (!type) {\n continue;\n } // If event changes its type, use the special event handlers for the changed type\n\n\n special = jQuery.event.special[type] || {}; // If selector defined, determine special event api type, otherwise given type\n\n type = (selector ? special.delegateType : special.bindType) || type; // Update special based on newly reset type\n\n special = jQuery.event.special[type] || {}; // handleObj is passed to all event handlers\n\n handleObj = jQuery.extend({\n type: type,\n origType: origType,\n data: data,\n handler: handler,\n guid: handler.guid,\n selector: selector,\n needsContext: selector && jQuery.expr.match.needsContext.test(selector),\n namespace: namespaces.join(\".\")\n }, handleObjIn); // Init the event handler queue if we're the first\n\n if (!(handlers = events[type])) {\n handlers = events[type] = [];\n handlers.delegateCount = 0; // Only use addEventListener/attachEvent if the special events handler returns false\n\n if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) {\n // Bind the global event handler to the element\n if (elem.addEventListener) {\n elem.addEventListener(type, eventHandle, false);\n } else if (elem.attachEvent) {\n elem.attachEvent(\"on\" + type, eventHandle);\n }\n }\n }\n\n if (special.add) {\n special.add.call(elem, handleObj);\n\n if (!handleObj.handler.guid) {\n handleObj.handler.guid = handler.guid;\n }\n } // Add to the element's handler list, delegates in front\n\n\n if (selector) {\n handlers.splice(handlers.delegateCount++, 0, handleObj);\n } else {\n handlers.push(handleObj);\n } // Keep track of which events have ever been used, for event optimization\n\n\n jQuery.event.global[type] = true;\n } // Nullify elem to prevent memory leaks in IE\n\n\n elem = null;\n },\n // Detach an event or set of events from an element\n remove: function remove(elem, types, handler, selector, mappedTypes) {\n var j,\n handleObj,\n tmp,\n origCount,\n t,\n events,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = jQuery.hasData(elem) && jQuery._data(elem);\n\n if (!elemData || !(events = elemData.events)) {\n return;\n } // Once for each type.namespace in types; type may be omitted\n\n\n types = (types || \"\").match(rnotwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // Unbind all events (on this namespace, if provided) for the element\n\n if (!type) {\n for (type in events) {\n jQuery.event.remove(elem, type + types[t], handler, selector, true);\n }\n\n continue;\n }\n\n special = jQuery.event.special[type] || {};\n type = (selector ? special.delegateType : special.bindType) || type;\n handlers = events[type] || [];\n tmp = tmp[2] && new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\"); // Remove matching events\n\n origCount = j = handlers.length;\n\n while (j--) {\n handleObj = handlers[j];\n\n if ((mappedTypes || origType === handleObj.origType) && (!handler || handler.guid === handleObj.guid) && (!tmp || tmp.test(handleObj.namespace)) && (!selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector)) {\n handlers.splice(j, 1);\n\n if (handleObj.selector) {\n handlers.delegateCount--;\n }\n\n if (special.remove) {\n special.remove.call(elem, handleObj);\n }\n }\n } // Remove generic event handler if we removed something and no more handlers exist\n // (avoids potential for endless recursion during removal of special event handlers)\n\n\n if (origCount && !handlers.length) {\n if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) {\n jQuery.removeEvent(elem, type, elemData.handle);\n }\n\n delete events[type];\n }\n } // Remove the expando if it's no longer used\n\n\n if (jQuery.isEmptyObject(events)) {\n delete elemData.handle; // removeData also checks for emptiness and clears the expando if empty\n // so use it instead of delete\n\n jQuery._removeData(elem, \"events\");\n }\n },\n trigger: function trigger(event, data, elem, onlyHandlers) {\n var handle,\n ontype,\n cur,\n bubbleType,\n special,\n tmp,\n i,\n eventPath = [elem || document],\n type = hasOwn.call(event, \"type\") ? event.type : event,\n namespaces = hasOwn.call(event, \"namespace\") ? event.namespace.split(\".\") : [];\n cur = tmp = elem = elem || document; // Don't do events on text and comment nodes\n\n if (elem.nodeType === 3 || elem.nodeType === 8) {\n return;\n } // focus/blur morphs to focusin/out; ensure we're not firing them right now\n\n\n if (rfocusMorph.test(type + jQuery.event.triggered)) {\n return;\n }\n\n if (type.indexOf(\".\") > -1) {\n // Namespaced trigger; create a regexp to match event type in handle()\n namespaces = type.split(\".\");\n type = namespaces.shift();\n namespaces.sort();\n }\n\n ontype = type.indexOf(\":\") < 0 && \"on\" + type; // Caller can pass in a jQuery.Event object, Object, or just an event type string\n\n event = event[jQuery.expando] ? event : new jQuery.Event(type, _typeof(event) === \"object\" && event); // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\n event.isTrigger = onlyHandlers ? 2 : 3;\n event.namespace = namespaces.join(\".\");\n event.rnamespace = event.namespace ? new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") : null; // Clean up the event in case it is being reused\n\n event.result = undefined;\n\n if (!event.target) {\n event.target = elem;\n } // Clone any incoming data and prepend the event, creating the handler arg list\n\n\n data = data == null ? [event] : jQuery.makeArray(data, [event]); // Allow special events to draw outside the lines\n\n special = jQuery.event.special[type] || {};\n\n if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) {\n return;\n } // Determine event propagation path in advance, per W3C events spec (#9951)\n // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\n\n if (!onlyHandlers && !special.noBubble && !jQuery.isWindow(elem)) {\n bubbleType = special.delegateType || type;\n\n if (!rfocusMorph.test(bubbleType + type)) {\n cur = cur.parentNode;\n }\n\n for (; cur; cur = cur.parentNode) {\n eventPath.push(cur);\n tmp = cur;\n } // Only add window if we got to document (e.g., not plain obj or detached DOM)\n\n\n if (tmp === (elem.ownerDocument || document)) {\n eventPath.push(tmp.defaultView || tmp.parentWindow || window);\n }\n } // Fire handlers on the event path\n\n\n i = 0;\n\n while ((cur = eventPath[i++]) && !event.isPropagationStopped()) {\n event.type = i > 1 ? bubbleType : special.bindType || type; // jQuery handler\n\n handle = (jQuery._data(cur, \"events\") || {})[event.type] && jQuery._data(cur, \"handle\");\n\n if (handle) {\n handle.apply(cur, data);\n } // Native handler\n\n\n handle = ontype && cur[ontype];\n\n if (handle && handle.apply && acceptData(cur)) {\n event.result = handle.apply(cur, data);\n\n if (event.result === false) {\n event.preventDefault();\n }\n }\n }\n\n event.type = type; // If nobody prevented the default action, do it now\n\n if (!onlyHandlers && !event.isDefaultPrevented()) {\n if ((!special._default || special._default.apply(eventPath.pop(), data) === false) && acceptData(elem)) {\n // Call a native DOM method on the target with the same name name as the event.\n // Can't use an .isFunction() check here because IE6/7 fails that test.\n // Don't do default actions on window, that's where global variables be (#6170)\n if (ontype && elem[type] && !jQuery.isWindow(elem)) {\n // Don't re-trigger an onFOO event when we call its FOO() method\n tmp = elem[ontype];\n\n if (tmp) {\n elem[ontype] = null;\n } // Prevent re-triggering of the same event, since we already bubbled it above\n\n\n jQuery.event.triggered = type;\n\n try {\n elem[type]();\n } catch (e) {// IE<9 dies on focus/blur to hidden element (#1486,#12518)\n // only reproducible on winXP IE8 native, not IE9 in IE8 mode\n }\n\n jQuery.event.triggered = undefined;\n\n if (tmp) {\n elem[ontype] = tmp;\n }\n }\n }\n }\n\n return event.result;\n },\n dispatch: function dispatch(event) {\n // Make a writable jQuery.Event from the native event object\n event = jQuery.event.fix(event);\n\n var i,\n j,\n ret,\n matched,\n handleObj,\n handlerQueue = [],\n args = _slice.call(arguments),\n handlers = (jQuery._data(this, \"events\") || {})[event.type] || [],\n special = jQuery.event.special[event.type] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event\n\n\n args[0] = event;\n event.delegateTarget = this; // Call the preDispatch hook for the mapped type, and let it bail if desired\n\n if (special.preDispatch && special.preDispatch.call(this, event) === false) {\n return;\n } // Determine handlers\n\n\n handlerQueue = jQuery.event.handlers.call(this, event, handlers); // Run delegates first; they may want to stop propagation beneath us\n\n i = 0;\n\n while ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) {\n event.currentTarget = matched.elem;\n j = 0;\n\n while ((handleObj = matched.handlers[j++]) && !event.isImmediatePropagationStopped()) {\n // Triggered event must either 1) have no namespace, or 2) have namespace(s)\n // a subset or equal to those in the bound event (both can have no namespace).\n if (!event.rnamespace || event.rnamespace.test(handleObj.namespace)) {\n event.handleObj = handleObj;\n event.data = handleObj.data;\n ret = ((jQuery.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply(matched.elem, args);\n\n if (ret !== undefined) {\n if ((event.result = ret) === false) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n } // Call the postDispatch hook for the mapped type\n\n\n if (special.postDispatch) {\n special.postDispatch.call(this, event);\n }\n\n return event.result;\n },\n handlers: function handlers(event, _handlers) {\n var i,\n matches,\n sel,\n handleObj,\n handlerQueue = [],\n delegateCount = _handlers.delegateCount,\n cur = event.target; // Support (at least): Chrome, IE9\n // Find delegate handlers\n // Black-hole SVG