{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/sizzle/dist/sizzle.js","webpack:///./node_modules/lazysizes/lazysizes.js","webpack:///./app/lazysizes-custom.js","webpack:///./app/parallax.js","webpack:///./node_modules/picturefill/dist/picturefill.js","webpack:///./app/data-scroll.js","webpack:///./app/faq.js","webpack:///./app/navbar.js","webpack:///./app/tooltip.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","__WEBPACK_AMD_DEFINE_RESULT__","window","support","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","document","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","matches","contains","expando","Date","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","sortOrder","a","b","hasOwn","arr","pop","push_native","push","slice","indexOf","list","elem","len","length","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","RegExp","rtrim","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","_","escaped","escapedWhitespace","high","String","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","toString","unloadHandler","disabledAncestor","addCombinator","disabled","dir","next","apply","childNodes","nodeType","e","target","els","j","Sizzle","selector","context","results","seed","nid","match","groups","newSelector","newContext","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","nodeName","toLowerCase","getAttribute","replace","setAttribute","toSelector","join","testContext","parentNode","querySelectorAll","qsaError","removeAttribute","keys","cache","cacheLength","shift","markFunction","fn","assert","el","createElement","removeChild","addHandle","attrs","handler","split","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","type","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","documentElement","node","hasCompare","subWindow","doc","defaultView","top","addEventListener","attachEvent","className","appendChild","createComment","getById","getElementsByName","filter","attrId","find","getAttributeNode","elems","tag","tmp","innerHTML","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","ret","attr","val","undefined","specified","escape","sel","error","msg","Error","uniqueSort","duplicates","detectDuplicates","sortStable","sort","splice","textContent","firstChild","nodeValue","selectors","createPseudo","relative",">","first"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","last","simple","forward","ofType","xml","uniqueCache","outerCache","nodeIndex","start","parent","useCache","lastChild","uniqueID","pseudo","args","setFilters","idx","matched","not","matcher","unmatched","has","text","innerText","lang","elemLang","hash","location","root","focus","activeElement","hasFocus","href","tabIndex","enabled","checked","selected","selectedIndex","empty","header","button","eq","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","tokens","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","map","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","concat","filters","parseOnly","soFar","preFilters","cached","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","Math","random","matcherFromGroupMatchers","token","compiled","defaultValue","_sizzle","noConflict","factory","lazySizes","lazysizes","lazySizesConfig","supportPicture","HTMLPictureElement","setTimeout","requestAnimationFrame","requestIdleCallback","regPicture","loadEvents","regClassCache","forEach","Array","hasClass","ele","cls","addClass","trim","removeClass","reg","addRemoveLoadEvents","dom","add","action","evt","triggerEvent","detail","noBubbles","noCancelable","event","createEvent","instance","initEvent","dispatchEvent","updatePolyfill","full","polyfill","picturefill","pf","src","reevaluate","getCSS","style","getComputedStyle","getWidth","width","offsetWidth","minSize","_lazysizesWidth","rAF","running","waiting","firstFns","secondFns","fns","run","runFns","rafBatch","queue","this","arguments","hidden","_lsFlush","rAFIt","that","debounce","func","timeout","timestamp","later","now","prop","lazySizesDefaults","lazyClass","loadedClass","loadingClass","preloadClass","errorClass","autosizesClass","srcAttr","srcsetAttr","sizesAttr","customMedia","init","expFactor","hFac","loadMode","loadHidden","ricTimeout","throttleDelay","lazysizesConfig","loader","preloadElems","isCompleted","resetPreloadingTimer","started","eLvW","elvH","eLtop","eLleft","eLright","eLbottom","isBodyHidden","regImg","regIframe","supportScroll","navigator","userAgent","currentExpand","isLoading","lowRuns","resetPreloading","isVisible","body","isNestedVisible","elemExpand","outerRect","visible","offsetParent","getBoundingClientRect","left","right","bottom","checkElements","eLlen","rect","autoLoadElem","loadedSomething","elemNegativeExpand","elemExpandVal","beforeExpandVal","defaultExpand","preloadExpand","lazyloadElems","expand","clientHeight","clientWidth","_defEx","_lazyRace","innerWidth","innerHeight","unveilElement","preloadAfterLoad","throttledCheckElements","lastTime","gDelay","rICTimeout","idleCallback","isPriority","delay","throttle","switchLoadingClass","_lazyCache","rafSwitchLoadingClass","rafedSwitchLoadingClass","handleSources","source","sourceSrcset","lazyUnveil","isAuto","sizes","isImg","srcset","isPicture","firesLoad","defaultPrevented","clearTimeout","contentWindow","changeIframeSrc","complete","naturalWidth","autoSizer","updateElem","onload","afterScroll","MutationObserver","observe","childList","subtree","setInterval","readyState","checkElems","unveil","autosizesElems","sizeElement","sources","dataAttr","getSizeElement","debouncedUpdateElementsSizes","cfg","uP","aC","rC","hC","fire","gW","scrolledHeight","pageYOffset","$$","index","array","limit","offsetTop","offsetHeight","ratio","calculationRatio","parseInt","backgroundPositionY","ua","$1","timer","dummySrc","fixRespimg","img","picture","toUpperCase","cloneNode","insertBefore","firstElementChild","_pfLastSize","findPictureImgs","imgs","onResize","mq","matchMedia","addListener","eminpx","alwaysCheckWDescriptor","evalId","isSupportTestReady","noop","getImgAttr","setImgAttr","removeImgAttr","types","algorithm","supportAbort","curSrcProp","regWDesc","regSize","setOptions","picturefillCFG","fsCss","isVwDirty","cssCache","sizeLengthCache","DPR","devicePixelRatio","units","px","in","anchor","alreadyRun","regexLeadingSpaces","regexLeadingCommasOrSpaces","regexLeadingNotSpaces","regexTrailingCommas","regexNonNegativeInteger","regexFloatingPoint","on","obj","capture","memoize","isSpace","evalCSS","regLength","buildStr","css","string","parsedLength","Function","setResolution","candidate","sizesattr","w","cWidth","calcListLength","res","opt","plen","options","reselect","selShort","setupRun","fillImg","teardownRun","chooseLowRes","lowerValue","higherValue","dprValue","isCached","bonusFactor","bonus","meanDensity","pow","sqrt","ascendingSort","getCandidateForSrc","set","candidates","parseSet","makeUrl","url","console","warn","implementation","hasFeature","getTime","substr","supSrcset","supSizes","supPicture","image2","width1","onerror","u","setSize","matchesMedia","media","mMQ","calcLength","sourceSizeValue","supportsType","parseSize","sourceSizeStr","cands","collectCharacters","regEx","chars","substring","pos","descriptors","currentDescriptor","state","inputLength","parseDescriptors","h","desc","lastChar","intVal","floatVal","pError","parseFloat","has1x","charAt","parseSrcset","getEmValue","div","originalHTMLCSS","cssText","originalBodyCSS","sourceSizeListStr","uT","winningLength","strValue","unparsedSizesList","unparsedSizesListLength","unparsedSize","lastComponentValue","size","regexCssLengthWithUnits","regexCssCalc","isValidNonNegativeSourceSizeValue","str","chrctr","component","componentArray","listArray","parenDepth","inComment","pushComponent","pushComponentArray","parseComponentValues","parseSizes","setRes","applySetCandidate","bestCandidate","curSrc","curCan","candidateSrc","abortCurSrc","imageData","dpr","sets","setSrcToCur","setSrc","origWidth","getSet","parseSets","element","srcsetAttribute","imageSet","isWDescripor","srcsetParsed","hasPicture","pic","getAllSourceElements","supported","parsed","extreme","evaled","srcSetCandidates","matchingSet","evaluated","applyBestCandidate","max","height","vw","vh","em","rem","isDomReady","regReady","timerId","fillImgs","lastClientWidth","wait","typeUri","Image","detectTypeSupport","dataScrollElement","defaultDuration","defaultOffset","scrollToY","elementY","speed","easing","scrollTargetY","scrollY","currentTime","time","min","abs","easingEquations","PI","easeOutSine","sin","easeInOutSine","cos","easeInOutQuint","tick","requestAnimFrame","scrollTo","webkitRequestAnimationFrame","mozRequestAnimationFrame","callback","scrollToElement","preventDefault","scrollTarget","firstTargetTopPosition","duration","offset","elementHref","link","click","createFakeAnchorAndClickIt","URLSearchParams","urlParameters","search","urlScrollTarget","getAll","isArray","firstScrollTarget","delete","urlParametersString","history","replaceState","title","pathname","removeDataScrollFromUrl","faqQuestions","setAnswerHeight","question","shouldSetHeightToNull","answer","nextElementSibling","children","firstChildrenHeight","maxHeight","classList","remove","setAnswerInactive","setAnswerActive","navbar","navbarToggle","navbarLogo","navbarMobileContent","navbarMobileLink","content","activePageIndicatorLinks","lastYOffset","toggleMenu","toggle","handleNavbarRevelation","navbarOffset","getNavbarOffset","currentUrl","linkHref","tooltipElement","tooltip"],"mappings":"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","file":"bundle.769992e575ec6e9bb431.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 7);\n","/*!\n * Sizzle CSS Selector Engine v2.3.3\n * https://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-08-08\n */\n(function( window ) {\n\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ({}).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpush_native = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[i] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n\tidentifier = \"(?:\\\\\\\\.|[\\\\w-]|[^\\0-\\\\xa0])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace +\n\t\t\"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\" ),\n\n\trattributeQuotes = new RegExp( \"=\" + whitespace + \"*([^\\\\]'\\\"]*?)\" + whitespace + \"*\\\\]\", \"g\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace +\n\t\t\t\"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace +\n\t\t\t\"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" +\n\t\t\twhitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\" ),\n\tfunescape = function( _, escaped, escapedWhitespace ) {\n\t\tvar high = \"0x\" + escaped - 0x10000;\n\t\t// NaN means non-codepoint\n\t\t// Support: Firefox<24\n\t\t// Workaround erroneous numeric interpretation of +\"0x\"\n\t\treturn high !== high || escapedWhitespace ?\n\t\t\tescaped :\n\t\t\thigh < 0 ?\n\t\t\t\t// BMP codepoint\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\t// Supplemental Plane codepoint (surrogate pair)\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tdisabledAncestor = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && (\"form\" in elem || \"label\" in elem);\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t(arr = slice.call( preferredDoc.childNodes )),\n\t\tpreferredDoc.childNodes\n\t);\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpush_native.apply( target, slice.call(els) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( (target[j++] = els[i++]) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\n\t\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\n\t\t\tsetDocument( context );\n\t\t}\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( (m = match[1]) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( (elem = context.getElementById( m )) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && (elem = newContext.getElementById( m )) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[2] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( (m = match[3]) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!compilerCache[ selector + \" \" ] &&\n\t\t\t\t(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {\n\n\t\t\t\tif ( nodeType !== 1 ) {\n\t\t\t\t\tnewContext = context;\n\t\t\t\t\tnewSelector = selector;\n\n\t\t\t\t// qSA looks outside Element context, which is not what we want\n\t\t\t\t// Thanks to Andrew Dupont for this workaround technique\n\t\t\t\t// Support: IE <=8\n\t\t\t\t// Exclude object elements\n\t\t\t\t} else if ( context.nodeName.toLowerCase() !== \"object\" ) {\n\n\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\tif ( (nid = context.getAttribute( \"id\" )) ) {\n\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontext.setAttribute( \"id\", (nid = expando) );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[i] = \"#\" + nid + \" \" + toSelector( groups[i] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\t\t\t\t}\n\n\t\t\t\tif ( newSelector ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn (cache[ key + \" \" ] = value);\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement(\"fieldset\");\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split(\"|\"),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[i] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( (cur = cur.nextSibling) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn (name === \"input\" || name === \"button\") && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\t\tdisabledAncestor( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction(function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction(function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ (j = matchIndexes[i]) ] ) {\n\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\t// documentElement is verified for cases where it doesn't yet exist\n\t// (such as loading iframes in IE - #4833)\n\tvar documentElement = elem && (elem.ownerDocument || elem).documentElement;\n\treturn documentElement ? documentElement.nodeName !== \"HTML\" : false;\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9-11, Edge\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\tif ( preferredDoc !== document &&\n\t\t(subWindow = document.defaultView) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert(function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute(\"className\");\n\t});\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert(function( el ) {\n\t\tel.appendChild( document.createComment(\"\") );\n\t\treturn !el.getElementsByTagName(\"*\").length;\n\t});\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert(function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t});\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute(\"id\") === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode(\"id\");\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode(\"id\");\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( (elem = elems[i++]) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode(\"id\");\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[\"TAG\"] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( (elem = results[i++]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[\"CLASS\"] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( (support.qsa = rnative.test( document.querySelectorAll )) ) {\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert(function( el ) {\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll(\"[msallowcapture^='']\").length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll(\"[selected]\").length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push(\"~=\");\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll(\":checked\").length ) {\n\t\t\t\trbuggyQSA.push(\":checked\");\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push(\".#.+[+~]\");\n\t\t\t}\n\t\t});\n\n\t\tassert(function( el ) {\n\t\t\tel.innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement(\"input\");\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll(\"[name=d]\").length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll(\":enabled\").length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll(\":disabled\").length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll(\"*,:x\");\n\t\t\trbuggyQSA.push(\",.*:\");\n\t\t});\n\t}\n\n\tif ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector) )) ) {\n\n\t\tassert(function( el ) {\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t});\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join(\"|\") );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join(\"|\") );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t));\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( (b = b.parentNode) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\tcompare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\tif ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\t\t\treturn a === document ? -1 :\n\t\t\t\tb === document ? 1 :\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[i] === bp[i] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[i], bp[i] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\tap[i] === preferredDoc ? -1 :\n\t\t\tbp[i] === preferredDoc ? 1 :\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\t// Make sure that attribute selectors are quoted\n\texpr = expr.replace( rattributeQuotes, \"='$1']\" );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!compilerCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch (e) {}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\t// Set document vars if needed\n\tif ( ( context.ownerDocument || context ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn (sel + \"\").replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( (elem = results[i++]) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( (node = elem[i++]) ) {\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[1] = match[1].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[3] = ( match[3] || match[4] || match[5] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[2] === \"~=\" ) {\n\t\t\t\tmatch[3] = \" \" + match[3] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[1] = match[1].toLowerCase();\n\n\t\t\tif ( match[1].slice( 0, 3 ) === \"nth\" ) {\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[3] ) {\n\t\t\t\t\tSizzle.error( match[0] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === \"even\" || match[3] === \"odd\" ) );\n\t\t\t\tmatch[5] = +( ( match[7] + match[8] ) || match[3] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[3] ) {\n\t\t\t\tSizzle.error( match[0] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[6] && match[2];\n\n\t\t\tif ( matchExpr[\"CHILD\"].test( match[0] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[3] ) {\n\t\t\t\tmatch[2] = match[4] || match[5] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t(excess = tokenize( unquoted, true )) &&\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t(excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[0] = match[0].slice( 0, excess );\n\t\t\t\tmatch[2] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() { return true; } :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t(pattern = new RegExp( \"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\" )) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test( typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\" );\n\t\t\t\t});\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( (node = node[ dir ]) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction(function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[i] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[i] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction(function( selector ) {\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction(function( seed, matches, context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = unmatched[i]) ) {\n\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}) :\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tinput[0] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[0] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t}),\n\n\t\t\"has\": markFunction(function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t}),\n\n\t\t\"contains\": markFunction(function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t}),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test(lang || \"\") ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( (elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( (elem = elem.parentNode) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t}),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn (nodeName === \"input\" && !!elem.checked) || (nodeName === \"option\" && !!elem.selected);\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[\"empty\"]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo(function() {\n\t\t\treturn [ 0 ];\n\t\t}),\n\n\t\t\"last\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t}),\n\n\t\t\"eq\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t}),\n\n\t\t\"even\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"odd\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"lt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"gt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t})\n\t}\n};\n\nExpr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || (match = rcomma.exec( soFar )) ) {\n\t\t\tif ( match ) {\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[0].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( (tokens = []) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( (match = rcombinators.exec( soFar )) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push({\n\t\t\t\tvalue: matched,\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[0].replace( rtrim, \" \" )\n\t\t\t});\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\n\t\t\t\t(match = preFilters[ type ]( match ))) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push({\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t});\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[i].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || (elem[ expando ] = {});\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( (oldCache = uniqueCache[ key ]) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn (newCache[ 2 ] = oldCache[ 2 ]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[i]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[0];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[i], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (elem = unmatched[i]) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction(function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts( selector || \"*\", context.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( (elem = temp[i]) ) {\n\t\t\t\t\tmatcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = matcherOut[i]) ) {\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( (matcherIn[i] = elem) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, (matcherOut = []), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( (elem = matcherOut[i]) &&\n\t\t\t\t\t\t(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {\n\n\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[0].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[\" \"],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t(checkContext = context).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (matcher = Expr.relative[ tokens[i].type ]) ) {\n\t\t\tmatchers = [ addCombinator(elementMatcher( matchers ), matcher) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[j].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" })\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"]( \"*\", outermost ),\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\t\t\t\toutermostContext = context === document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\t\t\tfor ( ; i !== len && (elem = elems[i]) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\tif ( !context && elem.ownerDocument !== document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( (matcher = elementMatchers[j++]) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( (elem = !matcher && elem) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (matcher = setMatchers[j++]) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !(unmatched[i] || setMatched[i]) ) {\n\t\t\t\t\t\t\t\tsetMatched[i] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[i] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( (selector = compiled.selector || selector) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[0] = match[0].slice( 0 );\n\t\tif ( tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\n\t\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {\n\n\t\t\tcontext = ( Expr.find[\"ID\"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[\"needsContext\"].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[i];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ (type = token.type) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( (find = Expr.find[ type ]) ) {\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( (seed = find(\n\t\t\t\t\ttoken.matches[0].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context\n\t\t\t\t)) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split(\"\").sort( sortOrder ).join(\"\") === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert(function( el ) {\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement(\"fieldset\") ) & 1;\n});\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert(function( el ) {\n\tel.innerHTML = \"\";\n\treturn el.firstChild.getAttribute(\"href\") === \"#\" ;\n}) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert(function( el ) {\n\tel.innerHTML = \"\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n}) ) {\n\taddHandle( \"value\", function( elem, name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert(function( el ) {\n\treturn el.getAttribute(\"disabled\") == null;\n}) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t\t(val = elem.getAttributeNode( name )) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\tnull;\n\t\t}\n\t});\n}\n\n// EXPOSE\nvar _sizzle = window.Sizzle;\n\nSizzle.noConflict = function() {\n\tif ( window.Sizzle === Sizzle ) {\n\t\twindow.Sizzle = _sizzle;\n\t}\n\n\treturn Sizzle;\n};\n\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine(function() { return Sizzle; });\n// Sizzle requires that there be a global window in Common-JS like environments\n} else if ( typeof module !== \"undefined\" && module.exports ) {\n\tmodule.exports = Sizzle;\n} else {\n\twindow.Sizzle = Sizzle;\n}\n// EXPOSE\n\n})( window );\n","(function(window, factory) {\n\tvar lazySizes = factory(window, window.document);\n\twindow.lazySizes = lazySizes;\n\tif(typeof module == 'object' && module.exports){\n\t\tmodule.exports = lazySizes;\n\t}\n}(window, function l(window, document) {\n\t'use strict';\n\t/*jshint eqnull:true */\n\tif(!document.getElementsByClassName){return;}\n\n\tvar lazysizes, lazySizesConfig;\n\n\tvar docElem = document.documentElement;\n\n\tvar Date = window.Date;\n\n\tvar supportPicture = window.HTMLPictureElement;\n\n\tvar _addEventListener = 'addEventListener';\n\n\tvar _getAttribute = 'getAttribute';\n\n\tvar addEventListener = window[_addEventListener];\n\n\tvar setTimeout = window.setTimeout;\n\n\tvar requestAnimationFrame = window.requestAnimationFrame || setTimeout;\n\n\tvar requestIdleCallback = window.requestIdleCallback;\n\n\tvar regPicture = /^picture$/i;\n\n\tvar loadEvents = ['load', 'error', 'lazyincluded', '_lazyloaded'];\n\n\tvar regClassCache = {};\n\n\tvar forEach = Array.prototype.forEach;\n\n\tvar hasClass = function(ele, cls) {\n\t\tif(!regClassCache[cls]){\n\t\t\tregClassCache[cls] = new RegExp('(\\\\s|^)'+cls+'(\\\\s|$)');\n\t\t}\n\t\treturn regClassCache[cls].test(ele[_getAttribute]('class') || '') && regClassCache[cls];\n\t};\n\n\tvar addClass = function(ele, cls) {\n\t\tif (!hasClass(ele, cls)){\n\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').trim() + ' ' + cls);\n\t\t}\n\t};\n\n\tvar removeClass = function(ele, cls) {\n\t\tvar reg;\n\t\tif ((reg = hasClass(ele,cls))) {\n\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').replace(reg, ' '));\n\t\t}\n\t};\n\n\tvar addRemoveLoadEvents = function(dom, fn, add){\n\t\tvar action = add ? _addEventListener : 'removeEventListener';\n\t\tif(add){\n\t\t\taddRemoveLoadEvents(dom, fn);\n\t\t}\n\t\tloadEvents.forEach(function(evt){\n\t\t\tdom[action](evt, fn);\n\t\t});\n\t};\n\n\tvar triggerEvent = function(elem, name, detail, noBubbles, noCancelable){\n\t\tvar event = document.createEvent('Event');\n\n\t\tif(!detail){\n\t\t\tdetail = {};\n\t\t}\n\n\t\tdetail.instance = lazysizes;\n\n\t\tevent.initEvent(name, !noBubbles, !noCancelable);\n\n\t\tevent.detail = detail;\n\n\t\telem.dispatchEvent(event);\n\t\treturn event;\n\t};\n\n\tvar updatePolyfill = function (el, full){\n\t\tvar polyfill;\n\t\tif( !supportPicture && ( polyfill = (window.picturefill || lazySizesConfig.pf) ) ){\n\t\t\tif(full && full.src && !el[_getAttribute]('srcset')){\n\t\t\t\tel.setAttribute('srcset', full.src);\n\t\t\t}\n\t\t\tpolyfill({reevaluate: true, elements: [el]});\n\t\t} else if(full && full.src){\n\t\t\tel.src = full.src;\n\t\t}\n\t};\n\n\tvar getCSS = function (elem, style){\n\t\treturn (getComputedStyle(elem, null) || {})[style];\n\t};\n\n\tvar getWidth = function(elem, parent, width){\n\t\twidth = width || elem.offsetWidth;\n\n\t\twhile(width < lazySizesConfig.minSize && parent && !elem._lazysizesWidth){\n\t\t\twidth = parent.offsetWidth;\n\t\t\tparent = parent.parentNode;\n\t\t}\n\n\t\treturn width;\n\t};\n\n\tvar rAF = (function(){\n\t\tvar running, waiting;\n\t\tvar firstFns = [];\n\t\tvar secondFns = [];\n\t\tvar fns = firstFns;\n\n\t\tvar run = function(){\n\t\t\tvar runFns = fns;\n\n\t\t\tfns = firstFns.length ? secondFns : firstFns;\n\n\t\t\trunning = true;\n\t\t\twaiting = false;\n\n\t\t\twhile(runFns.length){\n\t\t\t\trunFns.shift()();\n\t\t\t}\n\n\t\t\trunning = false;\n\t\t};\n\n\t\tvar rafBatch = function(fn, queue){\n\t\t\tif(running && !queue){\n\t\t\t\tfn.apply(this, arguments);\n\t\t\t} else {\n\t\t\t\tfns.push(fn);\n\n\t\t\t\tif(!waiting){\n\t\t\t\t\twaiting = true;\n\t\t\t\t\t(document.hidden ? setTimeout : requestAnimationFrame)(run);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\trafBatch._lsFlush = run;\n\n\t\treturn rafBatch;\n\t})();\n\n\tvar rAFIt = function(fn, simple){\n\t\treturn simple ?\n\t\t\tfunction() {\n\t\t\t\trAF(fn);\n\t\t\t} :\n\t\t\tfunction(){\n\t\t\t\tvar that = this;\n\t\t\t\tvar args = arguments;\n\t\t\t\trAF(function(){\n\t\t\t\t\tfn.apply(that, args);\n\t\t\t\t});\n\t\t\t}\n\t\t;\n\t};\n\n\tvar throttle = function(fn){\n\t\tvar running;\n\t\tvar lastTime = 0;\n\t\tvar gDelay = lazySizesConfig.throttleDelay;\n\t\tvar rICTimeout = lazySizesConfig.ricTimeout;\n\t\tvar run = function(){\n\t\t\trunning = false;\n\t\t\tlastTime = Date.now();\n\t\t\tfn();\n\t\t};\n\t\tvar idleCallback = requestIdleCallback && rICTimeout > 49 ?\n\t\t\tfunction(){\n\t\t\t\trequestIdleCallback(run, {timeout: rICTimeout});\n\n\t\t\t\tif(rICTimeout !== lazySizesConfig.ricTimeout){\n\t\t\t\t\trICTimeout = lazySizesConfig.ricTimeout;\n\t\t\t\t}\n\t\t\t} :\n\t\t\trAFIt(function(){\n\t\t\t\tsetTimeout(run);\n\t\t\t}, true)\n\t\t;\n\n\t\treturn function(isPriority){\n\t\t\tvar delay;\n\n\t\t\tif((isPriority = isPriority === true)){\n\t\t\t\trICTimeout = 33;\n\t\t\t}\n\n\t\t\tif(running){\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\trunning = true;\n\n\t\t\tdelay = gDelay - (Date.now() - lastTime);\n\n\t\t\tif(delay < 0){\n\t\t\t\tdelay = 0;\n\t\t\t}\n\n\t\t\tif(isPriority || delay < 9){\n\t\t\t\tidleCallback();\n\t\t\t} else {\n\t\t\t\tsetTimeout(idleCallback, delay);\n\t\t\t}\n\t\t};\n\t};\n\n\t//based on http://modernjavascript.blogspot.de/2013/08/building-better-debounce.html\n\tvar debounce = function(func) {\n\t\tvar timeout, timestamp;\n\t\tvar wait = 99;\n\t\tvar run = function(){\n\t\t\ttimeout = null;\n\t\t\tfunc();\n\t\t};\n\t\tvar later = function() {\n\t\t\tvar last = Date.now() - timestamp;\n\n\t\t\tif (last < wait) {\n\t\t\t\tsetTimeout(later, wait - last);\n\t\t\t} else {\n\t\t\t\t(requestIdleCallback || run)(run);\n\t\t\t}\n\t\t};\n\n\t\treturn function() {\n\t\t\ttimestamp = Date.now();\n\n\t\t\tif (!timeout) {\n\t\t\t\ttimeout = setTimeout(later, wait);\n\t\t\t}\n\t\t};\n\t};\n\n\t(function(){\n\t\tvar prop;\n\n\t\tvar lazySizesDefaults = {\n\t\t\tlazyClass: 'lazyload',\n\t\t\tloadedClass: 'lazyloaded',\n\t\t\tloadingClass: 'lazyloading',\n\t\t\tpreloadClass: 'lazypreload',\n\t\t\terrorClass: 'lazyerror',\n\t\t\t//strictClass: 'lazystrict',\n\t\t\tautosizesClass: 'lazyautosizes',\n\t\t\tsrcAttr: 'data-src',\n\t\t\tsrcsetAttr: 'data-srcset',\n\t\t\tsizesAttr: 'data-sizes',\n\t\t\t//preloadAfterLoad: false,\n\t\t\tminSize: 40,\n\t\t\tcustomMedia: {},\n\t\t\tinit: true,\n\t\t\texpFactor: 1.5,\n\t\t\thFac: 0.8,\n\t\t\tloadMode: 2,\n\t\t\tloadHidden: true,\n\t\t\tricTimeout: 0,\n\t\t\tthrottleDelay: 125,\n\t\t};\n\n\t\tlazySizesConfig = window.lazySizesConfig || window.lazysizesConfig || {};\n\n\t\tfor(prop in lazySizesDefaults){\n\t\t\tif(!(prop in lazySizesConfig)){\n\t\t\t\tlazySizesConfig[prop] = lazySizesDefaults[prop];\n\t\t\t}\n\t\t}\n\n\t\twindow.lazySizesConfig = lazySizesConfig;\n\n\t\tsetTimeout(function(){\n\t\t\tif(lazySizesConfig.init){\n\t\t\t\tinit();\n\t\t\t}\n\t\t});\n\t})();\n\n\tvar loader = (function(){\n\t\tvar preloadElems, isCompleted, resetPreloadingTimer, loadMode, started;\n\n\t\tvar eLvW, elvH, eLtop, eLleft, eLright, eLbottom, isBodyHidden;\n\n\t\tvar regImg = /^img$/i;\n\t\tvar regIframe = /^iframe$/i;\n\n\t\tvar supportScroll = ('onscroll' in window) && !(/(gle|ing)bot/.test(navigator.userAgent));\n\n\t\tvar shrinkExpand = 0;\n\t\tvar currentExpand = 0;\n\n\t\tvar isLoading = 0;\n\t\tvar lowRuns = -1;\n\n\t\tvar resetPreloading = function(e){\n\t\t\tisLoading--;\n\t\t\tif(!e || isLoading < 0 || !e.target){\n\t\t\t\tisLoading = 0;\n\t\t\t}\n\t\t};\n\n\t\tvar isVisible = function (elem) {\n\t\t\tif (isBodyHidden == null) {\n\t\t\t\tisBodyHidden = getCSS(document.body, 'visibility') == 'hidden';\n\t\t\t}\n\n\t\t\treturn isBodyHidden || (getCSS(elem.parentNode, 'visibility') != 'hidden' && getCSS(elem, 'visibility') != 'hidden');\n\t\t};\n\n\t\tvar isNestedVisible = function(elem, elemExpand){\n\t\t\tvar outerRect;\n\t\t\tvar parent = elem;\n\t\t\tvar visible = isVisible(elem);\n\n\t\t\teLtop -= elemExpand;\n\t\t\teLbottom += elemExpand;\n\t\t\teLleft -= elemExpand;\n\t\t\teLright += elemExpand;\n\n\t\t\twhile(visible && (parent = parent.offsetParent) && parent != document.body && parent != docElem){\n\t\t\t\tvisible = ((getCSS(parent, 'opacity') || 1) > 0);\n\n\t\t\t\tif(visible && getCSS(parent, 'overflow') != 'visible'){\n\t\t\t\t\touterRect = parent.getBoundingClientRect();\n\t\t\t\t\tvisible = eLright > outerRect.left &&\n\t\t\t\t\t\teLleft < outerRect.right &&\n\t\t\t\t\t\teLbottom > outerRect.top - 1 &&\n\t\t\t\t\t\teLtop < outerRect.bottom + 1\n\t\t\t\t\t;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn visible;\n\t\t};\n\n\t\tvar checkElements = function() {\n\t\t\tvar eLlen, i, rect, autoLoadElem, loadedSomething, elemExpand, elemNegativeExpand, elemExpandVal,\n\t\t\t\tbeforeExpandVal, defaultExpand, preloadExpand, hFac;\n\t\t\tvar lazyloadElems = lazysizes.elements;\n\n\t\t\tif((loadMode = lazySizesConfig.loadMode) && isLoading < 8 && (eLlen = lazyloadElems.length)){\n\n\t\t\t\ti = 0;\n\n\t\t\t\tlowRuns++;\n\n\t\t\t\tdefaultExpand = (!lazySizesConfig.expand || lazySizesConfig.expand < 1) ?\n\t\t\t\t\tdocElem.clientHeight > 500 && docElem.clientWidth > 500 ? 500 : 370 :\n\t\t\t\t\tlazySizesConfig.expand;\n\n\t\t\t\tlazysizes._defEx = defaultExpand;\n\n\t\t\t\tpreloadExpand = defaultExpand * lazySizesConfig.expFactor;\n\t\t\t\thFac = lazySizesConfig.hFac;\n\t\t\t\tisBodyHidden = null;\n\n\t\t\t\tif(currentExpand < preloadExpand && isLoading < 1 && lowRuns > 2 && loadMode > 2 && !document.hidden){\n\t\t\t\t\tcurrentExpand = preloadExpand;\n\t\t\t\t\tlowRuns = 0;\n\t\t\t\t} else if(loadMode > 1 && lowRuns > 1 && isLoading < 6){\n\t\t\t\t\tcurrentExpand = defaultExpand;\n\t\t\t\t} else {\n\t\t\t\t\tcurrentExpand = shrinkExpand;\n\t\t\t\t}\n\n\t\t\t\tfor(; i < eLlen; i++){\n\n\t\t\t\t\tif(!lazyloadElems[i] || lazyloadElems[i]._lazyRace){continue;}\n\n\t\t\t\t\tif(!supportScroll){unveilElement(lazyloadElems[i]);continue;}\n\n\t\t\t\t\tif(!(elemExpandVal = lazyloadElems[i][_getAttribute]('data-expand')) || !(elemExpand = elemExpandVal * 1)){\n\t\t\t\t\t\telemExpand = currentExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\tif(beforeExpandVal !== elemExpand){\n\t\t\t\t\t\teLvW = innerWidth + (elemExpand * hFac);\n\t\t\t\t\t\telvH = innerHeight + elemExpand;\n\t\t\t\t\t\telemNegativeExpand = elemExpand * -1;\n\t\t\t\t\t\tbeforeExpandVal = elemExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\trect = lazyloadElems[i].getBoundingClientRect();\n\n\t\t\t\t\tif ((eLbottom = rect.bottom) >= elemNegativeExpand &&\n\t\t\t\t\t\t(eLtop = rect.top) <= elvH &&\n\t\t\t\t\t\t(eLright = rect.right) >= elemNegativeExpand * hFac &&\n\t\t\t\t\t\t(eLleft = rect.left) <= eLvW &&\n\t\t\t\t\t\t(eLbottom || eLright || eLleft || eLtop) &&\n\t\t\t\t\t\t(lazySizesConfig.loadHidden || isVisible(lazyloadElems[i])) &&\n\t\t\t\t\t\t((isCompleted && isLoading < 3 && !elemExpandVal && (loadMode < 3 || lowRuns < 4)) || isNestedVisible(lazyloadElems[i], elemExpand))){\n\t\t\t\t\t\tunveilElement(lazyloadElems[i]);\n\t\t\t\t\t\tloadedSomething = true;\n\t\t\t\t\t\tif(isLoading > 9){break;}\n\t\t\t\t\t} else if(!loadedSomething && isCompleted && !autoLoadElem &&\n\t\t\t\t\t\tisLoading < 4 && lowRuns < 4 && loadMode > 2 &&\n\t\t\t\t\t\t(preloadElems[0] || lazySizesConfig.preloadAfterLoad) &&\n\t\t\t\t\t\t(preloadElems[0] || (!elemExpandVal && ((eLbottom || eLright || eLleft || eLtop) || lazyloadElems[i][_getAttribute](lazySizesConfig.sizesAttr) != 'auto')))){\n\t\t\t\t\t\tautoLoadElem = preloadElems[0] || lazyloadElems[i];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(autoLoadElem && !loadedSomething){\n\t\t\t\t\tunveilElement(autoLoadElem);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar throttledCheckElements = throttle(checkElements);\n\n\t\tvar switchLoadingClass = function(e){\n\t\t\tvar elem = e.target;\n\n\t\t\tif (elem._lazyCache) {\n\t\t\t\tdelete elem._lazyCache;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresetPreloading(e);\n\t\t\taddClass(elem, lazySizesConfig.loadedClass);\n\t\t\tremoveClass(elem, lazySizesConfig.loadingClass);\n\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass);\n\t\t\ttriggerEvent(elem, 'lazyloaded');\n\t\t};\n\t\tvar rafedSwitchLoadingClass = rAFIt(switchLoadingClass);\n\t\tvar rafSwitchLoadingClass = function(e){\n\t\t\trafedSwitchLoadingClass({target: e.target});\n\t\t};\n\n\t\tvar changeIframeSrc = function(elem, src){\n\t\t\ttry {\n\t\t\t\telem.contentWindow.location.replace(src);\n\t\t\t} catch(e){\n\t\t\t\telem.src = src;\n\t\t\t}\n\t\t};\n\n\t\tvar handleSources = function(source){\n\t\t\tvar customMedia;\n\n\t\t\tvar sourceSrcset = source[_getAttribute](lazySizesConfig.srcsetAttr);\n\n\t\t\tif( (customMedia = lazySizesConfig.customMedia[source[_getAttribute]('data-media') || source[_getAttribute]('media')]) ){\n\t\t\t\tsource.setAttribute('media', customMedia);\n\t\t\t}\n\n\t\t\tif(sourceSrcset){\n\t\t\t\tsource.setAttribute('srcset', sourceSrcset);\n\t\t\t}\n\t\t};\n\n\t\tvar lazyUnveil = rAFIt(function (elem, detail, isAuto, sizes, isImg){\n\t\t\tvar src, srcset, parent, isPicture, event, firesLoad;\n\n\t\t\tif(!(event = triggerEvent(elem, 'lazybeforeunveil', detail)).defaultPrevented){\n\n\t\t\t\tif(sizes){\n\t\t\t\t\tif(isAuto){\n\t\t\t\t\t\taddClass(elem, lazySizesConfig.autosizesClass);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.setAttribute('sizes', sizes);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tsrcset = elem[_getAttribute](lazySizesConfig.srcsetAttr);\n\t\t\t\tsrc = elem[_getAttribute](lazySizesConfig.srcAttr);\n\n\t\t\t\tif(isImg) {\n\t\t\t\t\tparent = elem.parentNode;\n\t\t\t\t\tisPicture = parent && regPicture.test(parent.nodeName || '');\n\t\t\t\t}\n\n\t\t\t\tfiresLoad = detail.firesLoad || (('src' in elem) && (srcset || src || isPicture));\n\n\t\t\t\tevent = {target: elem};\n\n\t\t\t\taddClass(elem, lazySizesConfig.loadingClass);\n\n\t\t\t\tif(firesLoad){\n\t\t\t\t\tclearTimeout(resetPreloadingTimer);\n\t\t\t\t\tresetPreloadingTimer = setTimeout(resetPreloading, 2500);\n\t\t\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass, true);\n\t\t\t\t}\n\n\t\t\t\tif(isPicture){\n\t\t\t\t\tforEach.call(parent.getElementsByTagName('source'), handleSources);\n\t\t\t\t}\n\n\t\t\t\tif(srcset){\n\t\t\t\t\telem.setAttribute('srcset', srcset);\n\t\t\t\t} else if(src && !isPicture){\n\t\t\t\t\tif(regIframe.test(elem.nodeName)){\n\t\t\t\t\t\tchangeIframeSrc(elem, src);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.src = src;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(isImg && (srcset || isPicture)){\n\t\t\t\t\tupdatePolyfill(elem, {src: src});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(elem._lazyRace){\n\t\t\t\tdelete elem._lazyRace;\n\t\t\t}\n\t\t\tremoveClass(elem, lazySizesConfig.lazyClass);\n\n\t\t\trAF(function(){\n\t\t\t\t// Part of this can be removed as soon as this fix is older: https://bugs.chromium.org/p/chromium/issues/detail?id=7731 (2015)\n\t\t\t\tif( !firesLoad || (elem.complete && elem.naturalWidth > 1)){\n\t\t\t\t\tswitchLoadingClass(event);\n\t\t\t\t\telem._lazyCache = true;\n\t\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t\tif ('_lazyCache' in elem) {\n\t\t\t\t\t\t\tdelete elem._lazyCache;\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 9);\n\t\t\t\t}\n\t\t\t}, true);\n\t\t});\n\n\t\tvar unveilElement = function (elem){\n\t\t\tvar detail;\n\n\t\t\tvar isImg = regImg.test(elem.nodeName);\n\n\t\t\t//allow using sizes=\"auto\", but don't use. it's invalid. Use data-sizes=\"auto\" or a valid value for sizes instead (i.e.: sizes=\"80vw\")\n\t\t\tvar sizes = isImg && (elem[_getAttribute](lazySizesConfig.sizesAttr) || elem[_getAttribute]('sizes'));\n\t\t\tvar isAuto = sizes == 'auto';\n\n\t\t\tif( (isAuto || !isCompleted) && isImg && (elem[_getAttribute]('src') || elem.srcset) && !elem.complete && !hasClass(elem, lazySizesConfig.errorClass) && hasClass(elem, lazySizesConfig.lazyClass)){return;}\n\n\t\t\tdetail = triggerEvent(elem, 'lazyunveilread').detail;\n\n\t\t\tif(isAuto){\n\t\t\t\t autoSizer.updateElem(elem, true, elem.offsetWidth);\n\t\t\t}\n\n\t\t\telem._lazyRace = true;\n\t\t\tisLoading++;\n\n\t\t\tlazyUnveil(elem, detail, isAuto, sizes, isImg);\n\t\t};\n\n\t\tvar onload = function(){\n\t\t\tif(isCompleted){return;}\n\t\t\tif(Date.now() - started < 999){\n\t\t\t\tsetTimeout(onload, 999);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar afterScroll = debounce(function(){\n\t\t\t\tlazySizesConfig.loadMode = 3;\n\t\t\t\tthrottledCheckElements();\n\t\t\t});\n\n\t\t\tisCompleted = true;\n\n\t\t\tlazySizesConfig.loadMode = 3;\n\n\t\t\tthrottledCheckElements();\n\n\t\t\taddEventListener('scroll', function(){\n\t\t\t\tif(lazySizesConfig.loadMode == 3){\n\t\t\t\t\tlazySizesConfig.loadMode = 2;\n\t\t\t\t}\n\t\t\t\tafterScroll();\n\t\t\t}, true);\n\t\t};\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tstarted = Date.now();\n\n\t\t\t\tlazysizes.elements = document.getElementsByClassName(lazySizesConfig.lazyClass);\n\t\t\t\tpreloadElems = document.getElementsByClassName(lazySizesConfig.lazyClass + ' ' + lazySizesConfig.preloadClass);\n\n\t\t\t\taddEventListener('scroll', throttledCheckElements, true);\n\n\t\t\t\taddEventListener('resize', throttledCheckElements, true);\n\n\t\t\t\tif(window.MutationObserver){\n\t\t\t\t\tnew MutationObserver( throttledCheckElements ).observe( docElem, {childList: true, subtree: true, attributes: true} );\n\t\t\t\t} else {\n\t\t\t\t\tdocElem[_addEventListener]('DOMNodeInserted', throttledCheckElements, true);\n\t\t\t\t\tdocElem[_addEventListener]('DOMAttrModified', throttledCheckElements, true);\n\t\t\t\t\tsetInterval(throttledCheckElements, 999);\n\t\t\t\t}\n\n\t\t\t\taddEventListener('hashchange', throttledCheckElements, true);\n\n\t\t\t\t//, 'fullscreenchange'\n\t\t\t\t['focus', 'mouseover', 'click', 'load', 'transitionend', 'animationend', 'webkitAnimationEnd'].forEach(function(name){\n\t\t\t\t\tdocument[_addEventListener](name, throttledCheckElements, true);\n\t\t\t\t});\n\n\t\t\t\tif((/d$|^c/.test(document.readyState))){\n\t\t\t\t\tonload();\n\t\t\t\t} else {\n\t\t\t\t\taddEventListener('load', onload);\n\t\t\t\t\tdocument[_addEventListener]('DOMContentLoaded', throttledCheckElements);\n\t\t\t\t\tsetTimeout(onload, 20000);\n\t\t\t\t}\n\n\t\t\t\tif(lazysizes.elements.length){\n\t\t\t\t\tcheckElements();\n\t\t\t\t\trAF._lsFlush();\n\t\t\t\t} else {\n\t\t\t\t\tthrottledCheckElements();\n\t\t\t\t}\n\t\t\t},\n\t\t\tcheckElems: throttledCheckElements,\n\t\t\tunveil: unveilElement\n\t\t};\n\t})();\n\n\n\tvar autoSizer = (function(){\n\t\tvar autosizesElems;\n\n\t\tvar sizeElement = rAFIt(function(elem, parent, event, width){\n\t\t\tvar sources, i, len;\n\t\t\telem._lazysizesWidth = width;\n\t\t\twidth += 'px';\n\n\t\t\telem.setAttribute('sizes', width);\n\n\t\t\tif(regPicture.test(parent.nodeName || '')){\n\t\t\t\tsources = parent.getElementsByTagName('source');\n\t\t\t\tfor(i = 0, len = sources.length; i < len; i++){\n\t\t\t\t\tsources[i].setAttribute('sizes', width);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(!event.detail.dataAttr){\n\t\t\t\tupdatePolyfill(elem, event.detail);\n\t\t\t}\n\t\t});\n\t\tvar getSizeElement = function (elem, dataAttr, width){\n\t\t\tvar event;\n\t\t\tvar parent = elem.parentNode;\n\n\t\t\tif(parent){\n\t\t\t\twidth = getWidth(elem, parent, width);\n\t\t\t\tevent = triggerEvent(elem, 'lazybeforesizes', {width: width, dataAttr: !!dataAttr});\n\n\t\t\t\tif(!event.defaultPrevented){\n\t\t\t\t\twidth = event.detail.width;\n\n\t\t\t\t\tif(width && width !== elem._lazysizesWidth){\n\t\t\t\t\t\tsizeElement(elem, parent, event, width);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar updateElementsSizes = function(){\n\t\t\tvar i;\n\t\t\tvar len = autosizesElems.length;\n\t\t\tif(len){\n\t\t\t\ti = 0;\n\n\t\t\t\tfor(; i < len; i++){\n\t\t\t\t\tgetSizeElement(autosizesElems[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar debouncedUpdateElementsSizes = debounce(updateElementsSizes);\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tautosizesElems = document.getElementsByClassName(lazySizesConfig.autosizesClass);\n\t\t\t\taddEventListener('resize', debouncedUpdateElementsSizes);\n\t\t\t},\n\t\t\tcheckElems: debouncedUpdateElementsSizes,\n\t\t\tupdateElem: getSizeElement\n\t\t};\n\t})();\n\n\tvar init = function(){\n\t\tif(!init.i){\n\t\t\tinit.i = true;\n\t\t\tautoSizer._();\n\t\t\tloader._();\n\t\t}\n\t};\n\n\tlazysizes = {\n\t\tcfg: lazySizesConfig,\n\t\tautoSizer: autoSizer,\n\t\tloader: loader,\n\t\tinit: init,\n\t\tuP: updatePolyfill,\n\t\taC: addClass,\n\t\trC: removeClass,\n\t\thC: hasClass,\n\t\tfire: triggerEvent,\n\t\tgW: getWidth,\n\t\trAF: rAF,\n\t};\n\n\treturn lazysizes;\n}\n));\n","(function () {\n\twindow.lazySizesConfig = window.lazySizesConfig || {};\n\twindow.lazySizesConfig.loadMode = 1;\n\twindow.lazySizesConfig.lazyClass = 'js-lazyload';\n\twindow.lazySizesConfig.loadedClass = 'js-lazyloaded';\n})();\n","//helper function\nfunction $$(selector, context) {\n context = context || document;\n const elements = context.querySelectorAll(selector);\n return Array.prototype.slice.call(elements);\n}\n\nwindow.addEventListener('scroll', function() {\n const scrolledHeight= window.pageYOffset;\n $$('.parallax').forEach(function(el,index,array) {\n const limit = el.offsetTop + el.offsetHeight;\n const ratio = el.getAttribute('data-parallax-ratio');\n const defaultRatio = 5;\n const calculationRatio = ratio !== null ? parseInt(ratio) : defaultRatio;\n if(scrolledHeight > el.offsetTop && scrolledHeight <= limit) {\n el.style.backgroundPositionY = (scrolledHeight - el.offsetTop) / calculationRatio + 'px';\n }\n else {\n el.style.backgroundPositionY = '0';\n }\n });\n});\n","/*! picturefill - v3.0.2 - 2016-02-12\n * https://scottjehl.github.io/picturefill/\n * Copyright (c) 2016 https://github.com/scottjehl/picturefill/blob/master/Authors.txt; Licensed MIT\n */\n/*! Gecko-Picture - v1.0\n * https://github.com/scottjehl/picturefill/tree/3.0/src/plugins/gecko-picture\n * Firefox's early picture implementation (prior to FF41) is static and does\n * not react to viewport changes. This tiny module fixes this.\n */\n(function(window) {\n\t/*jshint eqnull:true */\n\tvar ua = navigator.userAgent;\n\n\tif ( window.HTMLPictureElement && ((/ecko/).test(ua) && ua.match(/rv\\:(\\d+)/) && RegExp.$1 < 45) ) {\n\t\taddEventListener(\"resize\", (function() {\n\t\t\tvar timer;\n\n\t\t\tvar dummySrc = document.createElement(\"source\");\n\n\t\t\tvar fixRespimg = function(img) {\n\t\t\t\tvar source, sizes;\n\t\t\t\tvar picture = img.parentNode;\n\n\t\t\t\tif (picture.nodeName.toUpperCase() === \"PICTURE\") {\n\t\t\t\t\tsource = dummySrc.cloneNode();\n\n\t\t\t\t\tpicture.insertBefore(source, picture.firstElementChild);\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\tpicture.removeChild(source);\n\t\t\t\t\t});\n\t\t\t\t} else if (!img._pfLastSize || img.offsetWidth > img._pfLastSize) {\n\t\t\t\t\timg._pfLastSize = img.offsetWidth;\n\t\t\t\t\tsizes = img.sizes;\n\t\t\t\t\timg.sizes += \",100vw\";\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\timg.sizes = sizes;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tvar findPictureImgs = function() {\n\t\t\t\tvar i;\n\t\t\t\tvar imgs = document.querySelectorAll(\"picture > img, img[srcset][sizes]\");\n\t\t\t\tfor (i = 0; i < imgs.length; i++) {\n\t\t\t\t\tfixRespimg(imgs[i]);\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar onResize = function() {\n\t\t\t\tclearTimeout(timer);\n\t\t\t\ttimer = setTimeout(findPictureImgs, 99);\n\t\t\t};\n\t\t\tvar mq = window.matchMedia && matchMedia(\"(orientation: landscape)\");\n\t\t\tvar init = function() {\n\t\t\t\tonResize();\n\n\t\t\t\tif (mq && mq.addListener) {\n\t\t\t\t\tmq.addListener(onResize);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tdummySrc.srcset = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n\n\t\t\tif (/^[c|i]|d$/.test(document.readyState || \"\")) {\n\t\t\t\tinit();\n\t\t\t} else {\n\t\t\t\tdocument.addEventListener(\"DOMContentLoaded\", init);\n\t\t\t}\n\n\t\t\treturn onResize;\n\t\t})());\n\t}\n})(window);\n\n/*! Picturefill - v3.0.2\n * http://scottjehl.github.io/picturefill\n * Copyright (c) 2015 https://github.com/scottjehl/picturefill/blob/master/Authors.txt;\n * License: MIT\n */\n\n(function( window, document, undefined ) {\n\t// Enable strict mode\n\t\"use strict\";\n\n\t// HTML shim|v it for old IE (IE9 will still need the HTML video tag workaround)\n\tdocument.createElement( \"picture\" );\n\n\tvar warn, eminpx, alwaysCheckWDescriptor, evalId;\n\t// local object for method references and testing exposure\n\tvar pf = {};\n\tvar isSupportTestReady = false;\n\tvar noop = function() {};\n\tvar image = document.createElement( \"img\" );\n\tvar getImgAttr = image.getAttribute;\n\tvar setImgAttr = image.setAttribute;\n\tvar removeImgAttr = image.removeAttribute;\n\tvar docElem = document.documentElement;\n\tvar types = {};\n\tvar cfg = {\n\t\t//resource selection:\n\t\talgorithm: \"\"\n\t};\n\tvar srcAttr = \"data-pfsrc\";\n\tvar srcsetAttr = srcAttr + \"set\";\n\t// ua sniffing is done for undetectable img loading features,\n\t// to do some non crucial perf optimizations\n\tvar ua = navigator.userAgent;\n\tvar supportAbort = (/rident/).test(ua) || ((/ecko/).test(ua) && ua.match(/rv\\:(\\d+)/) && RegExp.$1 > 35 );\n\tvar curSrcProp = \"currentSrc\";\n\tvar regWDesc = /\\s+\\+?\\d+(e\\d+)?w/;\n\tvar regSize = /(\\([^)]+\\))?\\s*(.+)/;\n\tvar setOptions = window.picturefillCFG;\n\t/**\n\t * Shortcut property for https://w3c.github.io/webappsec/specs/mixedcontent/#restricts-mixed-content ( for easy overriding in tests )\n\t */\n\t// baseStyle also used by getEmValue (i.e.: width: 1em is important)\n\tvar baseStyle = \"position:absolute;left:0;visibility:hidden;display:block;padding:0;border:none;font-size:1em;width:1em;overflow:hidden;clip:rect(0px, 0px, 0px, 0px)\";\n\tvar fsCss = \"font-size:100%!important;\";\n\tvar isVwDirty = true;\n\n\tvar cssCache = {};\n\tvar sizeLengthCache = {};\n\tvar DPR = window.devicePixelRatio;\n\tvar units = {\n\t\tpx: 1,\n\t\t\"in\": 96\n\t};\n\tvar anchor = document.createElement( \"a\" );\n\t/**\n\t * alreadyRun flag used for setOptions. is it true setOptions will reevaluate\n\t * @type {boolean}\n\t */\n\tvar alreadyRun = false;\n\n\t// Reusable, non-\"g\" Regexes\n\n\t// (Don't use \\s, to avoid matching non-breaking space.)\n\tvar regexLeadingSpaces = /^[ \\t\\n\\r\\u000c]+/,\n\t regexLeadingCommasOrSpaces = /^[, \\t\\n\\r\\u000c]+/,\n\t regexLeadingNotSpaces = /^[^ \\t\\n\\r\\u000c]+/,\n\t regexTrailingCommas = /[,]+$/,\n\t regexNonNegativeInteger = /^\\d+$/,\n\n\t // ( Positive or negative or unsigned integers or decimals, without or without exponents.\n\t // Must include at least one digit.\n\t // According to spec tests any decimal point must be followed by a digit.\n\t // No leading plus sign is allowed.)\n\t // https://html.spec.whatwg.org/multipage/infrastructure.html#valid-floating-point-number\n\t regexFloatingPoint = /^-?(?:[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/;\n\n\tvar on = function(obj, evt, fn, capture) {\n\t\tif ( obj.addEventListener ) {\n\t\t\tobj.addEventListener(evt, fn, capture || false);\n\t\t} else if ( obj.attachEvent ) {\n\t\t\tobj.attachEvent( \"on\" + evt, fn);\n\t\t}\n\t};\n\n\t/**\n\t * simple memoize function:\n\t */\n\n\tvar memoize = function(fn) {\n\t\tvar cache = {};\n\t\treturn function(input) {\n\t\t\tif ( !(input in cache) ) {\n\t\t\t\tcache[ input ] = fn(input);\n\t\t\t}\n\t\t\treturn cache[ input ];\n\t\t};\n\t};\n\n\t// UTILITY FUNCTIONS\n\n\t// Manual is faster than RegEx\n\t// http://jsperf.com/whitespace-character/5\n\tfunction isSpace(c) {\n\t\treturn (c === \"\\u0020\" || // space\n\t\t c === \"\\u0009\" || // horizontal tab\n\t\t c === \"\\u000A\" || // new line\n\t\t c === \"\\u000C\" || // form feed\n\t\t c === \"\\u000D\"); // carriage return\n\t}\n\n\t/**\n\t * gets a mediaquery and returns a boolean or gets a css length and returns a number\n\t * @param css mediaqueries or css length\n\t * @returns {boolean|number}\n\t *\n\t * based on: https://gist.github.com/jonathantneal/db4f77009b155f083738\n\t */\n\tvar evalCSS = (function() {\n\n\t\tvar regLength = /^([\\d\\.]+)(em|vw|px)$/;\n\t\tvar replace = function() {\n\t\t\tvar args = arguments, index = 0, string = args[0];\n\t\t\twhile (++index in args) {\n\t\t\t\tstring = string.replace(args[index], args[++index]);\n\t\t\t}\n\t\t\treturn string;\n\t\t};\n\n\t\tvar buildStr = memoize(function(css) {\n\n\t\t\treturn \"return \" + replace((css || \"\").toLowerCase(),\n\t\t\t\t// interpret `and`\n\t\t\t\t/\\band\\b/g, \"&&\",\n\n\t\t\t\t// interpret `,`\n\t\t\t\t/,/g, \"||\",\n\n\t\t\t\t// interpret `min-` as >=\n\t\t\t\t/min-([a-z-\\s]+):/g, \"e.$1>=\",\n\n\t\t\t\t// interpret `max-` as <=\n\t\t\t\t/max-([a-z-\\s]+):/g, \"e.$1<=\",\n\n\t\t\t\t//calc value\n\t\t\t\t/calc([^)]+)/g, \"($1)\",\n\n\t\t\t\t// interpret css values\n\t\t\t\t/(\\d+[\\.]*[\\d]*)([a-z]+)/g, \"($1 * e.$2)\",\n\t\t\t\t//make eval less evil\n\t\t\t\t/^(?!(e.[a-z]|[0-9\\.&=|><\\+\\-\\*\\(\\)\\/])).*/ig, \"\"\n\t\t\t) + \";\";\n\t\t});\n\n\t\treturn function(css, length) {\n\t\t\tvar parsedLength;\n\t\t\tif (!(css in cssCache)) {\n\t\t\t\tcssCache[css] = false;\n\t\t\t\tif (length && (parsedLength = css.match( regLength ))) {\n\t\t\t\t\tcssCache[css] = parsedLength[ 1 ] * units[parsedLength[ 2 ]];\n\t\t\t\t} else {\n\t\t\t\t\t/*jshint evil:true */\n\t\t\t\t\ttry{\n\t\t\t\t\t\tcssCache[css] = new Function(\"e\", buildStr(css))(units);\n\t\t\t\t\t} catch(e) {}\n\t\t\t\t\t/*jshint evil:false */\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn cssCache[css];\n\t\t};\n\t})();\n\n\tvar setResolution = function( candidate, sizesattr ) {\n\t\tif ( candidate.w ) { // h = means height: || descriptor.type === 'h' do not handle yet...\n\t\t\tcandidate.cWidth = pf.calcListLength( sizesattr || \"100vw\" );\n\t\t\tcandidate.res = candidate.w / candidate.cWidth ;\n\t\t} else {\n\t\t\tcandidate.res = candidate.d;\n\t\t}\n\t\treturn candidate;\n\t};\n\n\t/**\n\t *\n\t * @param opt\n\t */\n\tvar picturefill = function( opt ) {\n\n\t\tif (!isSupportTestReady) {return;}\n\n\t\tvar elements, i, plen;\n\n\t\tvar options = opt || {};\n\n\t\tif ( options.elements && options.elements.nodeType === 1 ) {\n\t\t\tif ( options.elements.nodeName.toUpperCase() === \"IMG\" ) {\n\t\t\t\toptions.elements = [ options.elements ];\n\t\t\t} else {\n\t\t\t\toptions.context = options.elements;\n\t\t\t\toptions.elements = null;\n\t\t\t}\n\t\t}\n\n\t\telements = options.elements || pf.qsa( (options.context || document), ( options.reevaluate || options.reselect ) ? pf.sel : pf.selShort );\n\n\t\tif ( (plen = elements.length) ) {\n\n\t\t\tpf.setupRun( options );\n\t\t\talreadyRun = true;\n\n\t\t\t// Loop through all elements\n\t\t\tfor ( i = 0; i < plen; i++ ) {\n\t\t\t\tpf.fillImg(elements[ i ], options);\n\t\t\t}\n\n\t\t\tpf.teardownRun( options );\n\t\t}\n\t};\n\n\t/**\n\t * outputs a warning for the developer\n\t * @param {message}\n\t * @type {Function}\n\t */\n\twarn = ( window.console && console.warn ) ?\n\t\tfunction( message ) {\n\t\t\tconsole.warn( message );\n\t\t} :\n\t\tnoop\n\t;\n\n\tif ( !(curSrcProp in image) ) {\n\t\tcurSrcProp = \"src\";\n\t}\n\n\t// Add support for standard mime types.\n\ttypes[ \"image/jpeg\" ] = true;\n\ttypes[ \"image/gif\" ] = true;\n\ttypes[ \"image/png\" ] = true;\n\n\tfunction detectTypeSupport( type, typeUri ) {\n\t\t// based on Modernizr's lossless img-webp test\n\t\t// note: asynchronous\n\t\tvar image = new window.Image();\n\t\timage.onerror = function() {\n\t\t\ttypes[ type ] = false;\n\t\t\tpicturefill();\n\t\t};\n\t\timage.onload = function() {\n\t\t\ttypes[ type ] = image.width === 1;\n\t\t\tpicturefill();\n\t\t};\n\t\timage.src = typeUri;\n\t\treturn \"pending\";\n\t}\n\n\t// test svg support\n\ttypes[ \"image/svg+xml\" ] = document.implementation.hasFeature( \"http://www.w3.org/TR/SVG11/feature#Image\", \"1.1\" );\n\n\t/**\n\t * updates the internal vW property with the current viewport width in px\n\t */\n\tfunction updateMetrics() {\n\n\t\tisVwDirty = false;\n\t\tDPR = window.devicePixelRatio;\n\t\tcssCache = {};\n\t\tsizeLengthCache = {};\n\n\t\tpf.DPR = DPR || 1;\n\n\t\tunits.width = Math.max(window.innerWidth || 0, docElem.clientWidth);\n\t\tunits.height = Math.max(window.innerHeight || 0, docElem.clientHeight);\n\n\t\tunits.vw = units.width / 100;\n\t\tunits.vh = units.height / 100;\n\n\t\tevalId = [ units.height, units.width, DPR ].join(\"-\");\n\n\t\tunits.em = pf.getEmValue();\n\t\tunits.rem = units.em;\n\t}\n\n\tfunction chooseLowRes( lowerValue, higherValue, dprValue, isCached ) {\n\t\tvar bonusFactor, tooMuch, bonus, meanDensity;\n\n\t\t//experimental\n\t\tif (cfg.algorithm === \"saveData\" ){\n\t\t\tif ( lowerValue > 2.7 ) {\n\t\t\t\tmeanDensity = dprValue + 1;\n\t\t\t} else {\n\t\t\t\ttooMuch = higherValue - dprValue;\n\t\t\t\tbonusFactor = Math.pow(lowerValue - 0.6, 1.5);\n\n\t\t\t\tbonus = tooMuch * bonusFactor;\n\n\t\t\t\tif (isCached) {\n\t\t\t\t\tbonus += 0.1 * bonusFactor;\n\t\t\t\t}\n\n\t\t\t\tmeanDensity = lowerValue + bonus;\n\t\t\t}\n\t\t} else {\n\t\t\tmeanDensity = (dprValue > 1) ?\n\t\t\t\tMath.sqrt(lowerValue * higherValue) :\n\t\t\t\tlowerValue;\n\t\t}\n\n\t\treturn meanDensity > dprValue;\n\t}\n\n\tfunction applyBestCandidate( img ) {\n\t\tvar srcSetCandidates;\n\t\tvar matchingSet = pf.getSet( img );\n\t\tvar evaluated = false;\n\t\tif ( matchingSet !== \"pending\" ) {\n\t\t\tevaluated = evalId;\n\t\t\tif ( matchingSet ) {\n\t\t\t\tsrcSetCandidates = pf.setRes( matchingSet );\n\t\t\t\tpf.applySetCandidate( srcSetCandidates, img );\n\t\t\t}\n\t\t}\n\t\timg[ pf.ns ].evaled = evaluated;\n\t}\n\n\tfunction ascendingSort( a, b ) {\n\t\treturn a.res - b.res;\n\t}\n\n\tfunction setSrcToCur( img, src, set ) {\n\t\tvar candidate;\n\t\tif ( !set && src ) {\n\t\t\tset = img[ pf.ns ].sets;\n\t\t\tset = set && set[set.length - 1];\n\t\t}\n\n\t\tcandidate = getCandidateForSrc(src, set);\n\n\t\tif ( candidate ) {\n\t\t\tsrc = pf.makeUrl(src);\n\t\t\timg[ pf.ns ].curSrc = src;\n\t\t\timg[ pf.ns ].curCan = candidate;\n\n\t\t\tif ( !candidate.res ) {\n\t\t\t\tsetResolution( candidate, candidate.set.sizes );\n\t\t\t}\n\t\t}\n\t\treturn candidate;\n\t}\n\n\tfunction getCandidateForSrc( src, set ) {\n\t\tvar i, candidate, candidates;\n\t\tif ( src && set ) {\n\t\t\tcandidates = pf.parseSet( set );\n\t\t\tsrc = pf.makeUrl(src);\n\t\t\tfor ( i = 0; i < candidates.length; i++ ) {\n\t\t\t\tif ( src === pf.makeUrl(candidates[ i ].url) ) {\n\t\t\t\t\tcandidate = candidates[ i ];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn candidate;\n\t}\n\n\tfunction getAllSourceElements( picture, candidates ) {\n\t\tvar i, len, source, srcset;\n\n\t\t// SPEC mismatch intended for size and perf:\n\t\t// actually only source elements preceding the img should be used\n\t\t// also note: don't use qsa here, because IE8 sometimes doesn't like source as the key part in a selector\n\t\tvar sources = picture.getElementsByTagName( \"source\" );\n\n\t\tfor ( i = 0, len = sources.length; i < len; i++ ) {\n\t\t\tsource = sources[ i ];\n\t\t\tsource[ pf.ns ] = true;\n\t\t\tsrcset = source.getAttribute( \"srcset\" );\n\n\t\t\t// if source does not have a srcset attribute, skip\n\t\t\tif ( srcset ) {\n\t\t\t\tcandidates.push( {\n\t\t\t\t\tsrcset: srcset,\n\t\t\t\t\tmedia: source.getAttribute( \"media\" ),\n\t\t\t\t\ttype: source.getAttribute( \"type\" ),\n\t\t\t\t\tsizes: source.getAttribute( \"sizes\" )\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Srcset Parser\n\t * By Alex Bell | MIT License\n\t *\n\t * @returns Array [{url: _, d: _, w: _, h:_, set:_(????)}, ...]\n\t *\n\t * Based super duper closely on the reference algorithm at:\n\t * https://html.spec.whatwg.org/multipage/embedded-content.html#parse-a-srcset-attribute\n\t */\n\n\t// 1. Let input be the value passed to this algorithm.\n\t// (TO-DO : Explain what \"set\" argument is here. Maybe choose a more\n\t// descriptive & more searchable name. Since passing the \"set\" in really has\n\t// nothing to do with parsing proper, I would prefer this assignment eventually\n\t// go in an external fn.)\n\tfunction parseSrcset(input, set) {\n\n\t\tfunction collectCharacters(regEx) {\n\t\t\tvar chars,\n\t\t\t match = regEx.exec(input.substring(pos));\n\t\t\tif (match) {\n\t\t\t\tchars = match[ 0 ];\n\t\t\t\tpos += chars.length;\n\t\t\t\treturn chars;\n\t\t\t}\n\t\t}\n\n\t\tvar inputLength = input.length,\n\t\t url,\n\t\t descriptors,\n\t\t currentDescriptor,\n\t\t state,\n\t\t c,\n\n\t\t // 2. Let position be a pointer into input, initially pointing at the start\n\t\t // of the string.\n\t\t pos = 0,\n\n\t\t // 3. Let candidates be an initially empty source set.\n\t\t candidates = [];\n\n\t\t/**\n\t\t* Adds descriptor properties to a candidate, pushes to the candidates array\n\t\t* @return undefined\n\t\t*/\n\t\t// (Declared outside of the while loop so that it's only created once.\n\t\t// (This fn is defined before it is used, in order to pass JSHINT.\n\t\t// Unfortunately this breaks the sequencing of the spec comments. :/ )\n\t\tfunction parseDescriptors() {\n\n\t\t\t// 9. Descriptor parser: Let error be no.\n\t\t\tvar pError = false,\n\n\t\t\t// 10. Let width be absent.\n\t\t\t// 11. Let density be absent.\n\t\t\t// 12. Let future-compat-h be absent. (We're implementing it now as h)\n\t\t\t w, d, h, i,\n\t\t\t candidate = {},\n\t\t\t desc, lastChar, value, intVal, floatVal;\n\n\t\t\t// 13. For each descriptor in descriptors, run the appropriate set of steps\n\t\t\t// from the following list:\n\t\t\tfor (i = 0 ; i < descriptors.length; i++) {\n\t\t\t\tdesc = descriptors[ i ];\n\n\t\t\t\tlastChar = desc[ desc.length - 1 ];\n\t\t\t\tvalue = desc.substring(0, desc.length - 1);\n\t\t\t\tintVal = parseInt(value, 10);\n\t\t\t\tfloatVal = parseFloat(value);\n\n\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t// a U+0077 LATIN SMALL LETTER W character\n\t\t\t\tif (regexNonNegativeInteger.test(value) && (lastChar === \"w\")) {\n\n\t\t\t\t\t// If width and density are not both absent, then let error be yes.\n\t\t\t\t\tif (w || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes.\n\t\t\t\t\t// Otherwise, let width be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {w = intVal;}\n\n\t\t\t\t// If the descriptor consists of a valid floating-point number followed by\n\t\t\t\t// a U+0078 LATIN SMALL LETTER X character\n\t\t\t\t} else if (regexFloatingPoint.test(value) && (lastChar === \"x\")) {\n\n\t\t\t\t\t// If width, density and future-compat-h are not all absent, then let error\n\t\t\t\t\t// be yes.\n\t\t\t\t\tif (w || d || h) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing floating-point number values to the descriptor.\n\t\t\t\t\t// If the result is less than zero, let error be yes. Otherwise, let density\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (floatVal < 0) {pError = true;} else {d = floatVal;}\n\n\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t// a U+0068 LATIN SMALL LETTER H character\n\t\t\t\t} else if (regexNonNegativeInteger.test(value) && (lastChar === \"h\")) {\n\n\t\t\t\t\t// If height and density are not both absent, then let error be yes.\n\t\t\t\t\tif (h || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes. Otherwise, let future-compat-h\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {h = intVal;}\n\n\t\t\t\t// Anything else, Let error be yes.\n\t\t\t\t} else {pError = true;}\n\t\t\t} // (close step 13 for loop)\n\n\t\t\t// 15. If error is still no, then append a new image source to candidates whose\n\t\t\t// URL is url, associated with a width width if not absent and a pixel\n\t\t\t// density density if not absent. Otherwise, there is a parse error.\n\t\t\tif (!pError) {\n\t\t\t\tcandidate.url = url;\n\n\t\t\t\tif (w) { candidate.w = w;}\n\t\t\t\tif (d) { candidate.d = d;}\n\t\t\t\tif (h) { candidate.h = h;}\n\t\t\t\tif (!h && !d && !w) {candidate.d = 1;}\n\t\t\t\tif (candidate.d === 1) {set.has1x = true;}\n\t\t\t\tcandidate.set = set;\n\n\t\t\t\tcandidates.push(candidate);\n\t\t\t}\n\t\t} // (close parseDescriptors fn)\n\n\t\t/**\n\t\t* Tokenizes descriptor properties prior to parsing\n\t\t* Returns undefined.\n\t\t* (Again, this fn is defined before it is used, in order to pass JSHINT.\n\t\t* Unfortunately this breaks the logical sequencing of the spec comments. :/ )\n\t\t*/\n\t\tfunction tokenize() {\n\n\t\t\t// 8.1. Descriptor tokeniser: Skip whitespace\n\t\t\tcollectCharacters(regexLeadingSpaces);\n\n\t\t\t// 8.2. Let current descriptor be the empty string.\n\t\t\tcurrentDescriptor = \"\";\n\n\t\t\t// 8.3. Let state be in descriptor.\n\t\t\tstate = \"in descriptor\";\n\n\t\t\twhile (true) {\n\n\t\t\t\t// 8.4. Let c be the character at position.\n\t\t\t\tc = input.charAt(pos);\n\n\t\t\t\t// Do the following depending on the value of state.\n\t\t\t\t// For the purpose of this step, \"EOF\" is a special character representing\n\t\t\t\t// that position is past the end of input.\n\n\t\t\t\t// In descriptor\n\t\t\t\tif (state === \"in descriptor\") {\n\t\t\t\t\t// Do the following, depending on the value of c:\n\n\t\t\t\t // Space character\n\t\t\t\t // If current descriptor is not empty, append current descriptor to\n\t\t\t\t // descriptors and let current descriptor be the empty string.\n\t\t\t\t // Set state to after descriptor.\n\t\t\t\t\tif (isSpace(c)) {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t\tcurrentDescriptor = \"\";\n\t\t\t\t\t\t\tstate = \"after descriptor\";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// U+002C COMMA (,)\n\t\t\t\t\t// Advance position to the next character in input. If current descriptor\n\t\t\t\t\t// is not empty, append current descriptor to descriptors. Jump to the step\n\t\t\t\t\t// labeled descriptor parser.\n\t\t\t\t\t} else if (c === \",\") {\n\t\t\t\t\t\tpos += 1;\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// U+0028 LEFT PARENTHESIS (()\n\t\t\t\t\t// Append c to current descriptor. Set state to in parens.\n\t\t\t\t\t} else if (c === \"\\u0028\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in parens\";\n\n\t\t\t\t\t// EOF\n\t\t\t\t\t// If current descriptor is not empty, append current descriptor to\n\t\t\t\t\t// descriptors. Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// Anything else\n\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\t\t\t\t// (end \"in descriptor\"\n\n\t\t\t\t// In parens\n\t\t\t\t} else if (state === \"in parens\") {\n\n\t\t\t\t\t// U+0029 RIGHT PARENTHESIS ())\n\t\t\t\t\t// Append c to current descriptor. Set state to in descriptor.\n\t\t\t\t\tif (c === \")\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in descriptor\";\n\n\t\t\t\t\t// EOF\n\t\t\t\t\t// Append current descriptor to descriptors. Jump to the step labeled\n\t\t\t\t\t// descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// Anything else\n\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\n\t\t\t\t// After descriptor\n\t\t\t\t} else if (state === \"after descriptor\") {\n\n\t\t\t\t\t// Do the following, depending on the value of c:\n\t\t\t\t\t// Space character: Stay in this state.\n\t\t\t\t\tif (isSpace(c)) {\n\n\t\t\t\t\t// EOF: Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// Anything else\n\t\t\t\t\t// Set state to in descriptor. Set position to the previous character in input.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstate = \"in descriptor\";\n\t\t\t\t\t\tpos -= 1;\n\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Advance position to the next character in input.\n\t\t\t\tpos += 1;\n\n\t\t\t// Repeat this step.\n\t\t\t} // (close while true loop)\n\t\t}\n\n\t\t// 4. Splitting loop: Collect a sequence of characters that are space\n\t\t// characters or U+002C COMMA characters. If any U+002C COMMA characters\n\t\t// were collected, that is a parse error.\n\t\twhile (true) {\n\t\t\tcollectCharacters(regexLeadingCommasOrSpaces);\n\n\t\t\t// 5. If position is past the end of input, return candidates and abort these steps.\n\t\t\tif (pos >= inputLength) {\n\t\t\t\treturn candidates; // (we're done, this is the sole return path)\n\t\t\t}\n\n\t\t\t// 6. Collect a sequence of characters that are not space characters,\n\t\t\t// and let that be url.\n\t\t\turl = collectCharacters(regexLeadingNotSpaces);\n\n\t\t\t// 7. Let descriptors be a new empty list.\n\t\t\tdescriptors = [];\n\n\t\t\t// 8. If url ends with a U+002C COMMA character (,), follow these substeps:\n\t\t\t//\t\t(1). Remove all trailing U+002C COMMA characters from url. If this removed\n\t\t\t// more than one character, that is a parse error.\n\t\t\tif (url.slice(-1) === \",\") {\n\t\t\t\turl = url.replace(regexTrailingCommas, \"\");\n\t\t\t\t// (Jump ahead to step 9 to skip tokenization and just push the candidate).\n\t\t\t\tparseDescriptors();\n\n\t\t\t//\tOtherwise, follow these substeps:\n\t\t\t} else {\n\t\t\t\ttokenize();\n\t\t\t} // (close else of step 8)\n\n\t\t// 16. Return to the step labeled splitting loop.\n\t\t} // (Close of big while loop.)\n\t}\n\n\t/*\n\t * Sizes Parser\n\t *\n\t * By Alex Bell | MIT License\n\t *\n\t * Non-strict but accurate and lightweight JS Parser for the string value
\n\t *\n\t * Reference algorithm at:\n\t * https://html.spec.whatwg.org/multipage/embedded-content.html#parse-a-sizes-attribute\n\t *\n\t * Most comments are copied in directly from the spec\n\t * (except for comments in parens).\n\t *\n\t * Grammar is:\n\t * = # [ , ]? | \n\t * = \n\t * = \n\t * http://www.w3.org/html/wg/drafts/html/master/embedded-content.html#attr-img-sizes\n\t *\n\t * E.g. \"(max-width: 30em) 100vw, (max-width: 50em) 70vw, 100vw\"\n\t * or \"(min-width: 30em), calc(30vw - 15px)\" or just \"30vw\"\n\t *\n\t * Returns the first valid with a media condition that evaluates to true,\n\t * or \"100vw\" if all valid media conditions evaluate to false.\n\t *\n\t */\n\n\tfunction parseSizes(strValue) {\n\n\t\t// (Percentage CSS lengths are not allowed in this case, to avoid confusion:\n\t\t// https://html.spec.whatwg.org/multipage/embedded-content.html#valid-source-size-list\n\t\t// CSS allows a single optional plus or minus sign:\n\t\t// http://www.w3.org/TR/CSS2/syndata.html#numbers\n\t\t// CSS is ASCII case-insensitive:\n\t\t// http://www.w3.org/TR/CSS2/syndata.html#characters )\n\t\t// Spec allows exponential notation for type:\n\t\t// http://dev.w3.org/csswg/css-values/#numbers\n\t\tvar regexCssLengthWithUnits = /^(?:[+-]?[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?(?:ch|cm|em|ex|in|mm|pc|pt|px|rem|vh|vmin|vmax|vw)$/i;\n\n\t\t// (This is a quick and lenient test. Because of optional unlimited-depth internal\n\t\t// grouping parens and strict spacing rules, this could get very complicated.)\n\t\tvar regexCssCalc = /^calc\\((?:[0-9a-z \\.\\+\\-\\*\\/\\(\\)]+)\\)$/i;\n\n\t\tvar i;\n\t\tvar unparsedSizesList;\n\t\tvar unparsedSizesListLength;\n\t\tvar unparsedSize;\n\t\tvar lastComponentValue;\n\t\tvar size;\n\n\t\t// UTILITY FUNCTIONS\n\n\t\t// (Toy CSS parser. The goals here are:\n\t\t// 1) expansive test coverage without the weight of a full CSS parser.\n\t\t// 2) Avoiding regex wherever convenient.\n\t\t// Quick tests: http://jsfiddle.net/gtntL4gr/3/\n\t\t// Returns an array of arrays.)\n\t\tfunction parseComponentValues(str) {\n\t\t\tvar chrctr;\n\t\t\tvar component = \"\";\n\t\t\tvar componentArray = [];\n\t\t\tvar listArray = [];\n\t\t\tvar parenDepth = 0;\n\t\t\tvar pos = 0;\n\t\t\tvar inComment = false;\n\n\t\t\tfunction pushComponent() {\n\t\t\t\tif (component) {\n\t\t\t\t\tcomponentArray.push(component);\n\t\t\t\t\tcomponent = \"\";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction pushComponentArray() {\n\t\t\t\tif (componentArray[0]) {\n\t\t\t\t\tlistArray.push(componentArray);\n\t\t\t\t\tcomponentArray = [];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// (Loop forwards from the beginning of the string.)\n\t\t\twhile (true) {\n\t\t\t\tchrctr = str.charAt(pos);\n\n\t\t\t\tif (chrctr === \"\") { // ( End of string reached.)\n\t\t\t\t\tpushComponent();\n\t\t\t\t\tpushComponentArray();\n\t\t\t\t\treturn listArray;\n\t\t\t\t} else if (inComment) {\n\t\t\t\t\tif ((chrctr === \"*\") && (str[pos + 1] === \"/\")) { // (At end of a comment.)\n\t\t\t\t\t\tinComment = false;\n\t\t\t\t\t\tpos += 2;\n\t\t\t\t\t\tpushComponent();\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpos += 1; // (Skip all characters inside comments.)\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t} else if (isSpace(chrctr)) {\n\t\t\t\t\t// (If previous character in loop was also a space, or if\n\t\t\t\t\t// at the beginning of the string, do not add space char to\n\t\t\t\t\t// component.)\n\t\t\t\t\tif ( (str.charAt(pos - 1) && isSpace( str.charAt(pos - 1) ) ) || !component ) {\n\t\t\t\t\t\tpos += 1;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else if (parenDepth === 0) {\n\t\t\t\t\t\tpushComponent();\n\t\t\t\t\t\tpos +=1;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// (Replace any space character with a plain space for legibility.)\n\t\t\t\t\t\tchrctr = \" \";\n\t\t\t\t\t}\n\t\t\t\t} else if (chrctr === \"(\") {\n\t\t\t\t\tparenDepth += 1;\n\t\t\t\t} else if (chrctr === \")\") {\n\t\t\t\t\tparenDepth -= 1;\n\t\t\t\t} else if (chrctr === \",\") {\n\t\t\t\t\tpushComponent();\n\t\t\t\t\tpushComponentArray();\n\t\t\t\t\tpos += 1;\n\t\t\t\t\tcontinue;\n\t\t\t\t} else if ( (chrctr === \"/\") && (str.charAt(pos + 1) === \"*\") ) {\n\t\t\t\t\tinComment = true;\n\t\t\t\t\tpos += 2;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tcomponent = component + chrctr;\n\t\t\t\tpos += 1;\n\t\t\t}\n\t\t}\n\n\t\tfunction isValidNonNegativeSourceSizeValue(s) {\n\t\t\tif (regexCssLengthWithUnits.test(s) && (parseFloat(s) >= 0)) {return true;}\n\t\t\tif (regexCssCalc.test(s)) {return true;}\n\t\t\t// ( http://www.w3.org/TR/CSS2/syndata.html#numbers says:\n\t\t\t// \"-0 is equivalent to 0 and is not a negative number.\" which means that\n\t\t\t// unitless zero and unitless negative zero must be accepted as special cases.)\n\t\t\tif ((s === \"0\") || (s === \"-0\") || (s === \"+0\")) {return true;}\n\t\t\treturn false;\n\t\t}\n\n\t\t// When asked to parse a sizes attribute from an element, parse a\n\t\t// comma-separated list of component values from the value of the element's\n\t\t// sizes attribute (or the empty string, if the attribute is absent), and let\n\t\t// unparsed sizes list be the result.\n\t\t// http://dev.w3.org/csswg/css-syntax/#parse-comma-separated-list-of-component-values\n\n\t\tunparsedSizesList = parseComponentValues(strValue);\n\t\tunparsedSizesListLength = unparsedSizesList.length;\n\n\t\t// For each unparsed size in unparsed sizes list:\n\t\tfor (i = 0; i < unparsedSizesListLength; i++) {\n\t\t\tunparsedSize = unparsedSizesList[i];\n\n\t\t\t// 1. Remove all consecutive s from the end of unparsed size.\n\t\t\t// ( parseComponentValues() already omits spaces outside of parens. )\n\n\t\t\t// If unparsed size is now empty, that is a parse error; continue to the next\n\t\t\t// iteration of this algorithm.\n\t\t\t// ( parseComponentValues() won't push an empty array. )\n\n\t\t\t// 2. If the last component value in unparsed size is a valid non-negative\n\t\t\t// , let size be its value and remove the component value\n\t\t\t// from unparsed size. Any CSS function other than the calc() function is\n\t\t\t// invalid. Otherwise, there is a parse error; continue to the next iteration\n\t\t\t// of this algorithm.\n\t\t\t// http://dev.w3.org/csswg/css-syntax/#parse-component-value\n\t\t\tlastComponentValue = unparsedSize[unparsedSize.length - 1];\n\n\t\t\tif (isValidNonNegativeSourceSizeValue(lastComponentValue)) {\n\t\t\t\tsize = lastComponentValue;\n\t\t\t\tunparsedSize.pop();\n\t\t\t} else {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// 3. Remove all consecutive s from the end of unparsed\n\t\t\t// size. If unparsed size is now empty, return size and exit this algorithm.\n\t\t\t// If this was not the last item in unparsed sizes list, that is a parse error.\n\t\t\tif (unparsedSize.length === 0) {\n\t\t\t\treturn size;\n\t\t\t}\n\n\t\t\t// 4. Parse the remaining component values in unparsed size as a\n\t\t\t// . If it does not parse correctly, or it does parse\n\t\t\t// correctly but the evaluates to false, continue to the\n\t\t\t// next iteration of this algorithm.\n\t\t\t// (Parsing all possible compound media conditions in JS is heavy, complicated,\n\t\t\t// and the payoff is unclear. Is there ever an situation where the\n\t\t\t// media condition parses incorrectly but still somehow evaluates to true?\n\t\t\t// Can we just rely on the browser/polyfill to do it?)\n\t\t\tunparsedSize = unparsedSize.join(\" \");\n\t\t\tif (!(pf.matchesMedia( unparsedSize ) ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// 5. Return size and exit this algorithm.\n\t\t\treturn size;\n\t\t}\n\n\t\t// If the above algorithm exhausts unparsed sizes list without returning a\n\t\t// size value, return 100vw.\n\t\treturn \"100vw\";\n\t}\n\n\t// namespace\n\tpf.ns = (\"pf\" + new Date().getTime()).substr(0, 9);\n\n\t// srcset support test\n\tpf.supSrcset = \"srcset\" in image;\n\tpf.supSizes = \"sizes\" in image;\n\tpf.supPicture = !!window.HTMLPictureElement;\n\n\t// UC browser does claim to support srcset and picture, but not sizes,\n\t// this extended test reveals the browser does support nothing\n\tif (pf.supSrcset && pf.supPicture && !pf.supSizes) {\n\t\t(function(image2) {\n\t\t\timage.srcset = \"data:,a\";\n\t\t\timage2.src = \"data:,a\";\n\t\t\tpf.supSrcset = image.complete === image2.complete;\n\t\t\tpf.supPicture = pf.supSrcset && pf.supPicture;\n\t\t})(document.createElement(\"img\"));\n\t}\n\n\t// Safari9 has basic support for sizes, but does't expose the `sizes` idl attribute\n\tif (pf.supSrcset && !pf.supSizes) {\n\n\t\t(function() {\n\t\t\tvar width2 = \"data:image/gif;base64,R0lGODlhAgABAPAAAP///wAAACH5BAAAAAAALAAAAAACAAEAAAICBAoAOw==\";\n\t\t\tvar width1 = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n\t\t\tvar img = document.createElement(\"img\");\n\t\t\tvar test = function() {\n\t\t\t\tvar width = img.width;\n\n\t\t\t\tif (width === 2) {\n\t\t\t\t\tpf.supSizes = true;\n\t\t\t\t}\n\n\t\t\t\talwaysCheckWDescriptor = pf.supSrcset && !pf.supSizes;\n\n\t\t\t\tisSupportTestReady = true;\n\t\t\t\t// force async\n\t\t\t\tsetTimeout(picturefill);\n\t\t\t};\n\n\t\t\timg.onload = test;\n\t\t\timg.onerror = test;\n\t\t\timg.setAttribute(\"sizes\", \"9px\");\n\n\t\t\timg.srcset = width1 + \" 1w,\" + width2 + \" 9w\";\n\t\t\timg.src = width1;\n\t\t})();\n\n\t} else {\n\t\tisSupportTestReady = true;\n\t}\n\n\t// using pf.qsa instead of dom traversing does scale much better,\n\t// especially on sites mixing responsive and non-responsive images\n\tpf.selShort = \"picture>img,img[srcset]\";\n\tpf.sel = pf.selShort;\n\tpf.cfg = cfg;\n\n\t/**\n\t * Shortcut property for `devicePixelRatio` ( for easy overriding in tests )\n\t */\n\tpf.DPR = (DPR || 1 );\n\tpf.u = units;\n\n\t// container of supported mime types that one might need to qualify before using\n\tpf.types = types;\n\n\tpf.setSize = noop;\n\n\t/**\n\t * Gets a string and returns the absolute URL\n\t * @param src\n\t * @returns {String} absolute URL\n\t */\n\n\tpf.makeUrl = memoize(function(src) {\n\t\tanchor.href = src;\n\t\treturn anchor.href;\n\t});\n\n\t/**\n\t * Gets a DOM element or document and a selctor and returns the found matches\n\t * Can be extended with jQuery/Sizzle for IE7 support\n\t * @param context\n\t * @param sel\n\t * @returns {NodeList|Array}\n\t */\n\tpf.qsa = function(context, sel) {\n\t\treturn ( \"querySelector\" in context ) ? context.querySelectorAll(sel) : [];\n\t};\n\n\t/**\n\t * Shortcut method for matchMedia ( for easy overriding in tests )\n\t * wether native or pf.mMQ is used will be decided lazy on first call\n\t * @returns {boolean}\n\t */\n\tpf.matchesMedia = function() {\n\t\tif ( window.matchMedia && (matchMedia( \"(min-width: 0.1em)\" ) || {}).matches ) {\n\t\t\tpf.matchesMedia = function( media ) {\n\t\t\t\treturn !media || ( matchMedia( media ).matches );\n\t\t\t};\n\t\t} else {\n\t\t\tpf.matchesMedia = pf.mMQ;\n\t\t}\n\n\t\treturn pf.matchesMedia.apply( this, arguments );\n\t};\n\n\t/**\n\t * A simplified matchMedia implementation for IE8 and IE9\n\t * handles only min-width/max-width with px or em values\n\t * @param media\n\t * @returns {boolean}\n\t */\n\tpf.mMQ = function( media ) {\n\t\treturn media ? evalCSS(media) : true;\n\t};\n\n\t/**\n\t * Returns the calculated length in css pixel from the given sourceSizeValue\n\t * http://dev.w3.org/csswg/css-values-3/#length-value\n\t * intended Spec mismatches:\n\t * * Does not check for invalid use of CSS functions\n\t * * Does handle a computed length of 0 the same as a negative and therefore invalid value\n\t * @param sourceSizeValue\n\t * @returns {Number}\n\t */\n\tpf.calcLength = function( sourceSizeValue ) {\n\n\t\tvar value = evalCSS(sourceSizeValue, true) || false;\n\t\tif (value < 0) {\n\t\t\tvalue = false;\n\t\t}\n\n\t\treturn value;\n\t};\n\n\t/**\n\t * Takes a type string and checks if its supported\n\t */\n\n\tpf.supportsType = function( type ) {\n\t\treturn ( type ) ? types[ type ] : true;\n\t};\n\n\t/**\n\t * Parses a sourceSize into mediaCondition (media) and sourceSizeValue (length)\n\t * @param sourceSizeStr\n\t * @returns {*}\n\t */\n\tpf.parseSize = memoize(function( sourceSizeStr ) {\n\t\tvar match = ( sourceSizeStr || \"\" ).match(regSize);\n\t\treturn {\n\t\t\tmedia: match && match[1],\n\t\t\tlength: match && match[2]\n\t\t};\n\t});\n\n\tpf.parseSet = function( set ) {\n\t\tif ( !set.cands ) {\n\t\t\tset.cands = parseSrcset(set.srcset, set);\n\t\t}\n\t\treturn set.cands;\n\t};\n\n\t/**\n\t * returns 1em in css px for html/body default size\n\t * function taken from respondjs\n\t * @returns {*|number}\n\t */\n\tpf.getEmValue = function() {\n\t\tvar body;\n\t\tif ( !eminpx && (body = document.body) ) {\n\t\t\tvar div = document.createElement( \"div\" ),\n\t\t\t\toriginalHTMLCSS = docElem.style.cssText,\n\t\t\t\toriginalBodyCSS = body.style.cssText;\n\n\t\t\tdiv.style.cssText = baseStyle;\n\n\t\t\t// 1em in a media query is the value of the default font size of the browser\n\t\t\t// reset docElem and body to ensure the correct value is returned\n\t\t\tdocElem.style.cssText = fsCss;\n\t\t\tbody.style.cssText = fsCss;\n\n\t\t\tbody.appendChild( div );\n\t\t\teminpx = div.offsetWidth;\n\t\t\tbody.removeChild( div );\n\n\t\t\t//also update eminpx before returning\n\t\t\teminpx = parseFloat( eminpx, 10 );\n\n\t\t\t// restore the original values\n\t\t\tdocElem.style.cssText = originalHTMLCSS;\n\t\t\tbody.style.cssText = originalBodyCSS;\n\n\t\t}\n\t\treturn eminpx || 16;\n\t};\n\n\t/**\n\t * Takes a string of sizes and returns the width in pixels as a number\n\t */\n\tpf.calcListLength = function( sourceSizeListStr ) {\n\t\t// Split up source size list, ie ( max-width: 30em ) 100%, ( max-width: 50em ) 50%, 33%\n\t\t//\n\t\t// or (min-width:30em) calc(30% - 15px)\n\t\tif ( !(sourceSizeListStr in sizeLengthCache) || cfg.uT ) {\n\t\t\tvar winningLength = pf.calcLength( parseSizes( sourceSizeListStr ) );\n\n\t\t\tsizeLengthCache[ sourceSizeListStr ] = !winningLength ? units.width : winningLength;\n\t\t}\n\n\t\treturn sizeLengthCache[ sourceSizeListStr ];\n\t};\n\n\t/**\n\t * Takes a candidate object with a srcset property in the form of url/\n\t * ex. \"images/pic-medium.png 1x, images/pic-medium-2x.png 2x\" or\n\t * \"images/pic-medium.png 400w, images/pic-medium-2x.png 800w\" or\n\t * \"images/pic-small.png\"\n\t * Get an array of image candidates in the form of\n\t * {url: \"/foo/bar.png\", resolution: 1}\n\t * where resolution is http://dev.w3.org/csswg/css-values-3/#resolution-value\n\t * If sizes is specified, res is calculated\n\t */\n\tpf.setRes = function( set ) {\n\t\tvar candidates;\n\t\tif ( set ) {\n\n\t\t\tcandidates = pf.parseSet( set );\n\n\t\t\tfor ( var i = 0, len = candidates.length; i < len; i++ ) {\n\t\t\t\tsetResolution( candidates[ i ], set.sizes );\n\t\t\t}\n\t\t}\n\t\treturn candidates;\n\t};\n\n\tpf.setRes.res = setResolution;\n\n\tpf.applySetCandidate = function( candidates, img ) {\n\t\tif ( !candidates.length ) {return;}\n\t\tvar candidate,\n\t\t\ti,\n\t\t\tj,\n\t\t\tlength,\n\t\t\tbestCandidate,\n\t\t\tcurSrc,\n\t\t\tcurCan,\n\t\t\tcandidateSrc,\n\t\t\tabortCurSrc;\n\n\t\tvar imageData = img[ pf.ns ];\n\t\tvar dpr = pf.DPR;\n\n\t\tcurSrc = imageData.curSrc || img[curSrcProp];\n\n\t\tcurCan = imageData.curCan || setSrcToCur(img, curSrc, candidates[0].set);\n\n\t\t// if we have a current source, we might either become lazy or give this source some advantage\n\t\tif ( curCan && curCan.set === candidates[ 0 ].set ) {\n\n\t\t\t// if browser can abort image request and the image has a higher pixel density than needed\n\t\t\t// and this image isn't downloaded yet, we skip next part and try to save bandwidth\n\t\t\tabortCurSrc = (supportAbort && !img.complete && curCan.res - 0.1 > dpr);\n\n\t\t\tif ( !abortCurSrc ) {\n\t\t\t\tcurCan.cached = true;\n\n\t\t\t\t// if current candidate is \"best\", \"better\" or \"okay\",\n\t\t\t\t// set it to bestCandidate\n\t\t\t\tif ( curCan.res >= dpr ) {\n\t\t\t\t\tbestCandidate = curCan;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( !bestCandidate ) {\n\n\t\t\tcandidates.sort( ascendingSort );\n\n\t\t\tlength = candidates.length;\n\t\t\tbestCandidate = candidates[ length - 1 ];\n\n\t\t\tfor ( i = 0; i < length; i++ ) {\n\t\t\t\tcandidate = candidates[ i ];\n\t\t\t\tif ( candidate.res >= dpr ) {\n\t\t\t\t\tj = i - 1;\n\n\t\t\t\t\t// we have found the perfect candidate,\n\t\t\t\t\t// but let's improve this a little bit with some assumptions ;-)\n\t\t\t\t\tif (candidates[ j ] &&\n\t\t\t\t\t\t(abortCurSrc || curSrc !== pf.makeUrl( candidate.url )) &&\n\t\t\t\t\t\tchooseLowRes(candidates[ j ].res, candidate.res, dpr, candidates[ j ].cached)) {\n\n\t\t\t\t\t\tbestCandidate = candidates[ j ];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbestCandidate = candidate;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( bestCandidate ) {\n\n\t\t\tcandidateSrc = pf.makeUrl( bestCandidate.url );\n\n\t\t\timageData.curSrc = candidateSrc;\n\t\t\timageData.curCan = bestCandidate;\n\n\t\t\tif ( candidateSrc !== curSrc ) {\n\t\t\t\tpf.setSrc( img, bestCandidate );\n\t\t\t}\n\t\t\tpf.setSize( img );\n\t\t}\n\t};\n\n\tpf.setSrc = function( img, bestCandidate ) {\n\t\tvar origWidth;\n\t\timg.src = bestCandidate.url;\n\n\t\t// although this is a specific Safari issue, we don't want to take too much different code paths\n\t\tif ( bestCandidate.set.type === \"image/svg+xml\" ) {\n\t\t\torigWidth = img.style.width;\n\t\t\timg.style.width = (img.offsetWidth + 1) + \"px\";\n\n\t\t\t// next line only should trigger a repaint\n\t\t\t// if... is only done to trick dead code removal\n\t\t\tif ( img.offsetWidth + 1 ) {\n\t\t\t\timg.style.width = origWidth;\n\t\t\t}\n\t\t}\n\t};\n\n\tpf.getSet = function( img ) {\n\t\tvar i, set, supportsType;\n\t\tvar match = false;\n\t\tvar sets = img [ pf.ns ].sets;\n\n\t\tfor ( i = 0; i < sets.length && !match; i++ ) {\n\t\t\tset = sets[i];\n\n\t\t\tif ( !set.srcset || !pf.matchesMedia( set.media ) || !(supportsType = pf.supportsType( set.type )) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif ( supportsType === \"pending\" ) {\n\t\t\t\tset = supportsType;\n\t\t\t}\n\n\t\t\tmatch = set;\n\t\t\tbreak;\n\t\t}\n\n\t\treturn match;\n\t};\n\n\tpf.parseSets = function( element, parent, options ) {\n\t\tvar srcsetAttribute, imageSet, isWDescripor, srcsetParsed;\n\n\t\tvar hasPicture = parent && parent.nodeName.toUpperCase() === \"PICTURE\";\n\t\tvar imageData = element[ pf.ns ];\n\n\t\tif ( imageData.src === undefined || options.src ) {\n\t\t\timageData.src = getImgAttr.call( element, \"src\" );\n\t\t\tif ( imageData.src ) {\n\t\t\t\tsetImgAttr.call( element, srcAttr, imageData.src );\n\t\t\t} else {\n\t\t\t\tremoveImgAttr.call( element, srcAttr );\n\t\t\t}\n\t\t}\n\n\t\tif ( imageData.srcset === undefined || options.srcset || !pf.supSrcset || element.srcset ) {\n\t\t\tsrcsetAttribute = getImgAttr.call( element, \"srcset\" );\n\t\t\timageData.srcset = srcsetAttribute;\n\t\t\tsrcsetParsed = true;\n\t\t}\n\n\t\timageData.sets = [];\n\n\t\tif ( hasPicture ) {\n\t\t\timageData.pic = true;\n\t\t\tgetAllSourceElements( parent, imageData.sets );\n\t\t}\n\n\t\tif ( imageData.srcset ) {\n\t\t\timageSet = {\n\t\t\t\tsrcset: imageData.srcset,\n\t\t\t\tsizes: getImgAttr.call( element, \"sizes\" )\n\t\t\t};\n\n\t\t\timageData.sets.push( imageSet );\n\n\t\t\tisWDescripor = (alwaysCheckWDescriptor || imageData.src) && regWDesc.test(imageData.srcset || \"\");\n\n\t\t\t// add normal src as candidate, if source has no w descriptor\n\t\t\tif ( !isWDescripor && imageData.src && !getCandidateForSrc(imageData.src, imageSet) && !imageSet.has1x ) {\n\t\t\t\timageSet.srcset += \", \" + imageData.src;\n\t\t\t\timageSet.cands.push({\n\t\t\t\t\turl: imageData.src,\n\t\t\t\t\td: 1,\n\t\t\t\t\tset: imageSet\n\t\t\t\t});\n\t\t\t}\n\n\t\t} else if ( imageData.src ) {\n\t\t\timageData.sets.push( {\n\t\t\t\tsrcset: imageData.src,\n\t\t\t\tsizes: null\n\t\t\t} );\n\t\t}\n\n\t\timageData.curCan = null;\n\t\timageData.curSrc = undefined;\n\n\t\t// if img has picture or the srcset was removed or has a srcset and does not support srcset at all\n\t\t// or has a w descriptor (and does not support sizes) set support to false to evaluate\n\t\timageData.supported = !( hasPicture || ( imageSet && !pf.supSrcset ) || (isWDescripor && !pf.supSizes) );\n\n\t\tif ( srcsetParsed && pf.supSrcset && !imageData.supported ) {\n\t\t\tif ( srcsetAttribute ) {\n\t\t\t\tsetImgAttr.call( element, srcsetAttr, srcsetAttribute );\n\t\t\t\telement.srcset = \"\";\n\t\t\t} else {\n\t\t\t\tremoveImgAttr.call( element, srcsetAttr );\n\t\t\t}\n\t\t}\n\n\t\tif (imageData.supported && !imageData.srcset && ((!imageData.src && element.src) || element.src !== pf.makeUrl(imageData.src))) {\n\t\t\tif (imageData.src === null) {\n\t\t\t\telement.removeAttribute(\"src\");\n\t\t\t} else {\n\t\t\t\telement.src = imageData.src;\n\t\t\t}\n\t\t}\n\n\t\timageData.parsed = true;\n\t};\n\n\tpf.fillImg = function(element, options) {\n\t\tvar imageData;\n\t\tvar extreme = options.reselect || options.reevaluate;\n\n\t\t// expando for caching data on the img\n\t\tif ( !element[ pf.ns ] ) {\n\t\t\telement[ pf.ns ] = {};\n\t\t}\n\n\t\timageData = element[ pf.ns ];\n\n\t\t// if the element has already been evaluated, skip it\n\t\t// unless `options.reevaluate` is set to true ( this, for example,\n\t\t// is set to true when running `picturefill` on `resize` ).\n\t\tif ( !extreme && imageData.evaled === evalId ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !imageData.parsed || options.reevaluate ) {\n\t\t\tpf.parseSets( element, element.parentNode, options );\n\t\t}\n\n\t\tif ( !imageData.supported ) {\n\t\t\tapplyBestCandidate( element );\n\t\t} else {\n\t\t\timageData.evaled = evalId;\n\t\t}\n\t};\n\n\tpf.setupRun = function() {\n\t\tif ( !alreadyRun || isVwDirty || (DPR !== window.devicePixelRatio) ) {\n\t\t\tupdateMetrics();\n\t\t}\n\t};\n\n\t// If picture is supported, well, that's awesome.\n\tif ( pf.supPicture ) {\n\t\tpicturefill = noop;\n\t\tpf.fillImg = noop;\n\t} else {\n\n\t\t // Set up picture polyfill by polling the document\n\t\t(function() {\n\t\t\tvar isDomReady;\n\t\t\tvar regReady = window.attachEvent ? /d$|^c/ : /d$|^c|^i/;\n\n\t\t\tvar run = function() {\n\t\t\t\tvar readyState = document.readyState || \"\";\n\n\t\t\t\ttimerId = setTimeout(run, readyState === \"loading\" ? 200 : 999);\n\t\t\t\tif ( document.body ) {\n\t\t\t\t\tpf.fillImgs();\n\t\t\t\t\tisDomReady = isDomReady || regReady.test(readyState);\n\t\t\t\t\tif ( isDomReady ) {\n\t\t\t\t\t\tclearTimeout( timerId );\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tvar timerId = setTimeout(run, document.body ? 9 : 99);\n\n\t\t\t// Also attach picturefill on resize and readystatechange\n\t\t\t// http://modernjavascript.blogspot.com/2013/08/building-better-debounce.html\n\t\t\tvar debounce = function(func, wait) {\n\t\t\t\tvar timeout, timestamp;\n\t\t\t\tvar later = function() {\n\t\t\t\t\tvar last = (new Date()) - timestamp;\n\n\t\t\t\t\tif (last < wait) {\n\t\t\t\t\t\ttimeout = setTimeout(later, wait - last);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttimeout = null;\n\t\t\t\t\t\tfunc();\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\treturn function() {\n\t\t\t\t\ttimestamp = new Date();\n\n\t\t\t\t\tif (!timeout) {\n\t\t\t\t\t\ttimeout = setTimeout(later, wait);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\t\t\tvar lastClientWidth = docElem.clientHeight;\n\t\t\tvar onResize = function() {\n\t\t\t\tisVwDirty = Math.max(window.innerWidth || 0, docElem.clientWidth) !== units.width || docElem.clientHeight !== lastClientWidth;\n\t\t\t\tlastClientWidth = docElem.clientHeight;\n\t\t\t\tif ( isVwDirty ) {\n\t\t\t\t\tpf.fillImgs();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\ton( window, \"resize\", debounce(onResize, 99 ) );\n\t\t\ton( document, \"readystatechange\", run );\n\t\t})();\n\t}\n\n\tpf.picturefill = picturefill;\n\t//use this internally for easy monkey patching/performance testing\n\tpf.fillImgs = picturefill;\n\tpf.teardownRun = noop;\n\n\t/* expose methods for testing */\n\tpicturefill._ = pf;\n\n\twindow.picturefillCFG = {\n\t\tpf: pf,\n\t\tpush: function(args) {\n\t\t\tvar name = args.shift();\n\t\t\tif (typeof pf[name] === \"function\") {\n\t\t\t\tpf[name].apply(pf, args);\n\t\t\t} else {\n\t\t\t\tcfg[name] = args[0];\n\t\t\t\tif (alreadyRun) {\n\t\t\t\t\tpf.fillImgs( { reselect: true } );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\twhile (setOptions && setOptions.length) {\n\t\twindow.picturefillCFG.push(setOptions.shift());\n\t}\n\n\t/* expose picturefill */\n\twindow.picturefill = picturefill;\n\n\t/* expose picturefill */\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// CommonJS, just export\n\t\tmodule.exports = picturefill;\n\t} else if ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD support\n\t\tdefine( \"picturefill\", function() { return picturefill; } );\n\t}\n\n\t// IE8 evals this sync, so it must be the last thing we do\n\tif ( !pf.supPicture ) {\n\t\ttypes[ \"image/webp\" ] = detectTypeSupport(\"image/webp\", \"data:image/webp;base64,UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAABBxAR/Q9ERP8DAABWUDggGAAAADABAJ0BKgEAAQADADQlpAADcAD++/1QAA==\" );\n\t}\n\n} )( window, document );\n","import Sizzle from 'sizzle';\n\nconst dataScrollElement = Sizzle('[data-scroll-to]');\nconst defaultDuration = 350;\nconst defaultOffset = 32;\n\nwindow.requestAnimFrame = (function(){\n return window.requestAnimationFrame ||\n\t\t window.webkitRequestAnimationFrame ||\n\t\t window.mozRequestAnimationFrame ||\n\t\t function( callback ){\n\t\t\twindow.setTimeout(callback, 1000 / 60);\n\t\t };\n})();\n\nfunction scrollToY(elementY, speed = defaultDuration, easing = 'easeOutSine', offset = defaultOffset) {\n\n\tconst scrollTargetY = elementY - offset;\n\n\tconst scrollY = window.pageYOffset;\n\tlet currentTime = 0;\n\n\tconst time = Math.max(.1, Math.min(Math.abs(scrollY - scrollTargetY) / speed, .8));\n\n\t// easing equations from https://github.com/danro/easing-js/blob/master/easing.js\n\tconst PI_D2 = Math.PI / 2;\n\tconst easingEquations = {\n\t\teaseOutSine: function (pos) {\n\t\t\treturn Math.sin(pos * (Math.PI / 2));\n\t\t},\n\t\teaseInOutSine: function (pos) {\n\t\t\treturn (-0.5 * (Math.cos(Math.PI * pos) - 1));\n\t\t},\n\t\teaseInOutQuint: function (pos) {\n\t\t\tif ((pos /= 0.5) < 1) {\n\t\t\t\treturn 0.5 * Math.pow(pos, 5);\n\t\t\t}\n\t\t\treturn 0.5 * (Math.pow((pos - 2), 5) + 2);\n\t\t}\n\t};\n\tfunction tick() {\n\t\tcurrentTime += 1 / 60;\n\n\t\tconst p = currentTime / time;\n\t\tconst t = easingEquations[easing](p);\n\n\t\tif (p < 1) {\n\t\t\trequestAnimFrame(tick);\n\n\t\t\twindow.scrollTo(0, scrollY + ((scrollTargetY - scrollY) * t));\n\t\t} else {\n\t\t\twindow.scrollTo(0, scrollTargetY);\n\t\t}\n\t}\n\n\t// call it once to get started\n\ttick();\n}\n\n\nconst createFakeAnchorAndClickIt = (url) => {\n\tconst link = document.createElement('a');\n\tlink.href = url;\n\t// Some browsers require the link to be appended to the DOM.\n\t// Otherwise calling click() event on the virtual anchor provided\n\t// with document.createElement() will not trigger.\n\t// Positioning the appended element out of the viewbox will also\n\t// prevent undesired visual space in the DOM.\n\tlink.style.cssText = 'position: fixed;left: -2000em;opacity: 0;visibility: hidden;top: -2000em;';\n\tconst body = document.body !== null ? document.body : null;\n\tif (body !== null) {\n\t\tbody.appendChild(link);\n\t}\n\tlink.click();\n\t// Added null timeout to remove child so it happens in different thread.\n\t// Some browsers may remove the element earlier than invoking the click action.\n\tsetTimeout(() => {\n\t\tif (body !== null) {\n\t\t\tbody.removeChild(link);\n\t\t}\n\t}, 0);\n}\n\nconst removeDataScrollFromUrl = (urlParameters) => {\n\t// remove scroll-to from get parameters\n\turlParameters.delete('scroll-to');\n\tconst urlParametersString = urlParameters.toString();\n\twindow.history.replaceState({}, document.title, `${window.location.pathname}${urlParametersString.length > 0 ? '?' : ''}${urlParameters.toString()}`);\n};\n\nconst scrollToElement = (event) => {\n\tif (typeof event !== 'undefined' && event.type === 'click') {\n\t\tevent.preventDefault();\n\t\tconst scrollTarget = Sizzle(event.target.getAttribute('data-scroll-to'));\n\t\tif (scrollTarget.length) {\n\t\t\tconst firstTarget = scrollTarget[0];\n\t\t\tconst firstTargetTopPosition = firstTarget.offsetTop;\n\t\t\tconst duration = event.target.getAttribute('data-scroll-to-duration');\n\t\t\tconst offset = event.target.getAttribute('data-scroll-to-offset');\n\t\t\tscrollToY(firstTargetTopPosition, duration !== null ? parseInt(duration) : defaultDuration, 'easeInOutSine', offset !== null ? parseInt(offset) : defaultOffset);\n\t\t} else {\n\t\t\tconst elementHref = event.target.getAttribute('href');\n\t\t\tif (elementHref !== null) {\n\t\t\t\tcreateFakeAnchorAndClickIt(elementHref);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif (typeof window.URLSearchParams === 'function') {\n\t\t\tconst urlParameters = new URLSearchParams(window.location.search);\n\t\t\tconst urlScrollTarget = urlParameters.getAll('scroll-to');\n\t\t\tif (urlScrollTarget !== null && Array.isArray(urlScrollTarget) && urlScrollTarget.length > 0) {\n\t\t\t\tconst firstScrollTarget = urlScrollTarget[0];\n\t\t\t\tconst firstTarget = Sizzle(firstScrollTarget)[0];\n\t\t\t\tconst firstTargetTopPosition = firstTarget.getBoundingClientRect().top;\n\t\t\t\tscrollToY(firstTargetTopPosition, defaultDuration, 'easeInOutSine', defaultOffset);\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tremoveDataScrollFromUrl(urlParameters);\n\t\t\t\t}, defaultDuration);\n\t\t\t}\n\t\t}\n\t}\n}\n\nif (dataScrollElement.length) {\n\tdataScrollElement.forEach((element) => {\n\t\telement.addEventListener('click', scrollToElement);\n\t});\n}\n\nwindow.onload = scrollToElement;\n","import Sizzle from 'sizzle';\n\nconst faqQuestions = Sizzle('.faq__question');\nconst faqQuestionActiveClass = 'faq__question--active';\n\nconst setAnswerHeight = (question, shouldSetHeightToNull = false) => {\n\tconst answer = question.nextElementSibling;\n\tif (answer !== null) {\n\t\tconst answerChildren = answer.children;\n\t\tif (answerChildren.length) {\n\t\t\tif (shouldSetHeightToNull === false) {\n\t\t\t\tconst firstChildrenHeight = answer.children[0].offsetHeight;\n\t\t\t\tanswer.style.maxHeight = firstChildrenHeight + 'px';\n\t\t\t} else {\n\t\t\t\tanswer.style.maxHeight = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nconst setAnswerActive = (question) => {\n\tquestion.classList.add(faqQuestionActiveClass);\n\tsetAnswerHeight(question);\n}\n\nconst setAnswerInactive = (question) => {\n\tquestion.classList.remove(faqQuestionActiveClass);\n\tsetAnswerHeight(question, true);\n}\n\nconst maintainAnswersHeight = () => {\n\tif (faqQuestions.length) {\n\t\tfaqQuestions.map((question) => {\n\t\t\tif (question.classList.contains(faqQuestionActiveClass) === true) {\n\t\t\t\tsetAnswerHeight(question);\n\t\t\t}\n\t\t});\n\t}\n};\n\nif (faqQuestions.length) {\n\twindow.addEventListener('resize', maintainAnswersHeight);\n\n\tfaqQuestions.map((question) => {\n\t\tquestion.addEventListener('click', () => {\n\t\t\tif (question.classList.contains(faqQuestionActiveClass) === true) {\n\t\t\t\tsetAnswerInactive(question);\n\t\t\t} else {\n\t\t\t\tsetAnswerActive(question);\n\t\t\t}\n\t\t});\n\t});\n}\n","import Sizzle from 'sizzle';\n\nconst navbar = Sizzle('.navbar');\nconst navbarToggle = Sizzle('.navbar__toggle');\nconst navbarLogo = Sizzle('.navbar__logo');\nconst navbarMobileContent = Sizzle('.navbar__content-mobile');\nconst navbarMobileLink = Sizzle('.navbar__content-mobile-link');\nconst body = Sizzle('body');\nconst content = Sizzle('.content');\nconst activePageIndicatorLinks = Sizzle('[data-active-page-link]');\n\nlet lastYOffset = window.pageYOffset;\n\nconst getNavbarOffset = (navbar) => {\n\tif (navbar.length) {\n\t\treturn navbar[0].offsetHeight;\n\t}\n\n\treturn 0;\n}\n\nconst toggleMenu = (event) => {\n\tevent.preventDefault();\n\tif (navbar.length) {\n\t\tnavbar[0].classList.toggle('navbar--active');\n\t}\n\tif (navbarToggle.length) {\n\t\tnavbarToggle[0].classList.toggle('navbar__toggle--active');\n\t}\n\n\tif (navbarLogo.length) {\n\t\tnavbarLogo[0].classList.toggle('navbar__logo--gone');\n\t}\n\n\tif (navbarMobileContent.length) {\n\t\tnavbarMobileContent[0].classList.toggle('navbar__content-mobile--active');\n\t}\n\n\tif (content.length) {\n\t\tcontent[0].classList.toggle('content--bluried');\n\t}\n\n\tif (body.length) {\n\t\tbody[0].classList.toggle('overflow-hidden-mobile');\n\t}\n}\n\nconst handleNavbarRevelation = () => {\n\tif (navbar.length) {\n\t\tconst navbarOffset = getNavbarOffset(navbar);\n\t\tconst pageYOffset = window.pageYOffset;\n\t\tif ((pageYOffset > navbarOffset) && !navbar[0].classList.contains('navbar--active') && pageYOffset > lastYOffset) {\n\t\t\tnavbar[0].classList.add('navbar--gone');\n\t\t\tnavbar[0].classList.remove('navbar--unveiled');\n\t\t} else {\n\t\t\tnavbar[0].classList.remove('navbar--gone');\n\t\t\tif ((pageYOffset > navbarOffset)) {\n\t\t\t\tnavbar[0].classList.add('navbar--unveiled');\n\t\t\t} else {\n\t\t\t\tnavbar[0].classList.remove('navbar--unveiled');\n\t\t\t}\n\t\t}\n\t\tlastYOffset = window.pageYOffset;\n\t}\n};\n\nif (navbarToggle.length) {\n\tnavbarToggle[0].addEventListener('click', toggleMenu);\n}\n\nif (navbarMobileLink.length) {\n\tnavbarMobileLink.forEach((link) => link.addEventListener('click', toggleMenu));\n}\n\nif (navbar.length) {\n\thandleNavbarRevelation();\n\twindow.addEventListener('scroll', handleNavbarRevelation);\n}\n\nif (activePageIndicatorLinks.length) {\n\tconst currentUrl = window.location.toString();\n\tactivePageIndicatorLinks.forEach((link) => {\n\t\tconst linkHref = link.getAttribute('href');\n\t\tif(currentUrl.indexOf(linkHref) !== -1) {\n\t\t\tlink.classList.add('active');\n\t\t}\n\t});\n}\n","import Sizzle from 'sizzle';\n\nconst tooltipElement = Sizzle('.tooltip-owner');\n\nif (tooltipElement.length) {\n\ttooltipElement.forEach((tooltip) => {\n\t\tif (window.matchMedia('(hover: none)').matches === true) {\n\t\t\ttooltip.addEventListener('click', (event) => {\n\t\t\t\ttooltip.classList.toggle('tooltip-owner-active');\n\t\t\t});\n\t\t}\n\t});\n}\n"],"sourceRoot":""}