{"version":3,"sources":["webpack:///./node_modules/when-dom-ready/dist/index.es2015.js","webpack:///./js/utils/is-ie11.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/imagesloaded/imagesloaded.js","webpack:///./node_modules/object-fit-images/dist/ofi.common-js.js","webpack:///./node_modules/ev-emitter/ev-emitter.js","webpack:///./js/components/init-object-fit.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/element-closest/browser.js","webpack:///./node_modules/fg-loadcss/src/loadcss.js","webpack:///./node_modules/fg-loadcss/src/cssrelpreload.js","webpack:///./node_modules/picturefill/dist/picturefill.js","webpack:///./node_modules/whatwg-fetch/fetch.js","webpack:///./js/components/init-polyfill-intersection-observer.js","webpack:///./js/components/init-svg4everybody.js","webpack:///./js/components/init-video-fit.js"],"names":["loadedStates","whenDomReady","cb","doc","Promise","resolve","window","document","done","setTimeout","indexOf","readyState","addEventListener","resume","val","then","__webpack_exports__","isIe11","undefined","body","style","msTouchAction","querySelector","classList","add","g","this","Function","e","module","exports","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","factory","__webpack_require__","EvEmitter","$","jQuery","console","extend","a","b","prop","arraySlice","Array","prototype","slice","ImagesLoaded","elem","options","onAlways","queryElem","querySelectorAll","elements","obj","isArray","length","call","makeArray","on","getImages","jqDeferred","Deferred","check","bind","error","Object","create","images","forEach","addElementImages","nodeName","addImage","background","addElementBackgroundImages","nodeType","elementNodeTypes","childImgs","i","img","children","child","1","9","11","LoadingImage","Background","url","element","Image","getComputedStyle","reURL","matches","exec","backgroundImage","addBackground","loadingImage","push","_this","onProgress","image","message","progress","progressedCount","hasAnyBroken","once","complete","isLoaded","emitEvent","notify","debug","log","eventName","isComplete","jqMethod","getIsImageComplete","confirm","naturalWidth","proxyImage","src","handleEvent","event","method","type","onload","unbindEvents","onerror","removeEventListener","makeJQueryPlugin","fn","imagesLoaded","callback","promise","apply","OFI","propRegex","testImg","object-position","supportsObjectFit","supportsObjectPosition","supportsOFI","supportsCurrentSrc","currentSrc","nativeGetAttribute","getAttribute","nativeSetAttribute","setAttribute","autoModeEnabled","setPlaceholder","width","height","placeholder","onImageReady","fixOne","el","parsed","fontFamily","props","getStyle","ofi","skipTest","srcset","naturalHeight","descriptors","get","set","value","defineProperty","ss","keepSrcUsable","err","warn","picturefill","pf","_","ns","evaled","fillImg","reselect","curSrc","supported","polyfillCurrentSrc","replace","backgroundPosition","backgroundRepeat","backgroundOrigin","test","backgroundSize","fix","imgs","opts","startAutoMode","getElementsByTagName","target","tagName","watchMQ","getOfiImageMaybe","name","HTMLImageElement","String","hijackAttributes","__WEBPACK_AMD_DEFINE_FACTORY__","proto","listener","events","_events","listeners","onceEvents","_onceEvents","off","index","splice","args","onceListeners","allOff","_callee","someImages","regeneratorRuntime","wrap","_context","prev","next","from","imageElement","objectFitImages","stop","runtime","Op","hasOwn","hasOwnProperty","key","desc","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","makeInvokeMethod","tryCatch","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","_invoke","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","reject","invoke","record","result","__await","unwrapped","state","Error","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","methodName","TypeError","info","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","ctor","constructor","mark","setPrototypeOf","__proto__","awrap","async","iter","keys","object","reverse","pop","skipTempReset","charAt","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","finish","catch","thrown","delegateYield","accidentalStrictMode","globalThis","t","Element","msMatchesSelector","mozMatchesSelector","webkitMatchesSelector","ownerDocument","o","Boolean","closest","parentNode","global","w","loadCSS","href","before","media","attributes","ref","createElement","refs","childNodes","sheets","styleSheets","attributeName","rel","ready","insertBefore","nextSibling","onloadcssdefined","resolvedHref","loadCB","rp","relpreload","support","ret","relList","supports","bindMediaToggle","link","finalMedia","enableStylesheet","attachEvent","detachEvent","poly","links","run","setInterval","clearInterval","timer","dummySrc","fixRespimg","findPictureImgs","onResize","mq","init","ua","navigator","userAgent","HTMLPictureElement","match","RegExp","$1","source","sizes","picture","toUpperCase","cloneNode","firstElementChild","removeChild","_pfLastSize","offsetWidth","clearTimeout","matchMedia","addListener","eminpx","alwaysCheckWDescriptor","evalId","isSupportTestReady","noop","getImgAttr","setImgAttr","removeImgAttr","removeAttribute","docElem","documentElement","types","cfg","algorithm","supportAbort","curSrcProp","regWDesc","regSize","setOptions","picturefillCFG","fsCss","isVwDirty","cssCache","sizeLengthCache","DPR","devicePixelRatio","units","px","in","anchor","alreadyRun","regexLeadingSpaces","regexLeadingCommasOrSpaces","regexLeadingNotSpaces","regexTrailingCommas","regexNonNegativeInteger","regexFloatingPoint","evt","capture","memoize","cache","input","isSpace","c","regLength","buildStr","image2","width1","isDomReady","func","wait","timeout","timestamp","later","regReady","timerId","lastClientWidth","evalCSS","css","arguments","string","toLowerCase","parsedLength","setResolution","candidate","sizesattr","cWidth","calcListLength","res","d","opt","plen","qsa","reevaluate","sel","selShort","setupRun","teardownRun","ascendingSort","getCandidateForSrc","candidates","parseSet","makeUrl","implementation","hasFeature","Date","getTime","substr","supSrcset","supSizes","supPicture","u","setSize","matchesMedia","mMQ","calcLength","sourceSizeValue","supportsType","parseSize","sourceSizeStr","cands","collectCharacters","regEx","chars","substring","pos","currentDescriptor","inputLength","parseDescriptors","h","lastChar","intVal","floatVal","pError","parseInt","parseFloat","has1x","tokenize","parseSrcset","getEmValue","div","originalHTMLCSS","cssText","originalBodyCSS","appendChild","sourceSizeListStr","uT","winningLength","strValue","unparsedSizesList","unparsedSizesListLength","unparsedSize","lastComponentValue","size","s","regexCssLengthWithUnits","regexCssCalc","str","chrctr","component","componentArray","listArray","parenDepth","inComment","pushComponent","pushComponentArray","parseComponentValues","join","parseSizes","setRes","len","applySetCandidate","j","bestCandidate","curCan","candidateSrc","abortCurSrc","lowerValue","higherValue","dprValue","isCached","bonusFactor","bonus","meanDensity","imageData","dpr","sets","setSrcToCur","cached","sort","Math","pow","sqrt","setSrc","origWidth","getSet","parseSets","parent","srcsetAttribute","imageSet","isWDescripor","srcsetParsed","hasPicture","pic","sources","getAllSourceElements","srcAttr","extreme","srcSetCandidates","matchingSet","evaluated","applyBestCandidate","max","innerWidth","clientWidth","innerHeight","clientHeight","vw","vh","em","rem","fillImgs","last","shift","typeUri","detectTypeSupport","r","Headers","Request","Response","DOMException","fetch","searchParams","blob","Blob","formData","arrayBuffer","viewClasses","isArrayBufferView","ArrayBuffer","isView","toString","normalizeName","normalizeValue","iteratorFor","items","headers","map","append","header","getOwnPropertyNames","consumed","bodyUsed","fileReaderReady","reader","readBlobAsArrayBuffer","FileReader","readAsArrayBuffer","bufferClone","buf","view","Uint8Array","byteLength","buffer","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","FormData","_bodyFormData","URLSearchParams","DataView","_bodyArrayBuffer","rejected","text","readAsText","fromCharCode","readArrayBufferAsText","decode","json","JSON","parse","oldValue","has","thisArg","entries","methods","upcased","credentials","mode","signal","referrer","form","trim","split","bytes","decodeURIComponent","bodyInit","status","ok","statusText","clone","response","redirectStatuses","redirect","RangeError","location","stack","request","aborted","xhr","XMLHttpRequest","abortXhr","abort","rawHeaders","getAllResponseHeaders","line","parts","responseURL","responseText","ontimeout","onabort","open","withCredentials","responseType","setRequestHeader","onreadystatechange","send","polyfill","IntersectionObserver","_ref","svg4everybody","default","videos","objectFitVideos"],"mappings":"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","file":"polyfill-32f70abeaed89530be2f.js","sourcesContent":["/* eslint no-void: \"off\" */\n\n// Loaded ready states\nvar loadedStates = ['interactive', 'complete'];\n\n// Return Promise\nvar whenDomReady = function whenDomReady(cb, doc) {\n\treturn new Promise(function (resolve) {\n\t\t// Allow doc to be passed in as the lone first param\n\t\tif (cb && typeof cb !== 'function') {\n\t\t\tdoc = cb;\n\t\t\tcb = null;\n\t\t}\n\n\t\t// Use global document if we don't have one\n\t\tdoc = doc || window.document;\n\n\t\t// Handle DOM load\n\t\tvar done = function done() {\n\t\t\treturn resolve(void (cb && setTimeout(cb)));\n\t\t};\n\n\t\t// Resolve now if DOM has already loaded\n\t\t// Otherwise wait for DOMContentLoaded\n\t\tif (loadedStates.indexOf(doc.readyState) !== -1) {\n\t\t\tdone();\n\t\t} else {\n\t\t\tdoc.addEventListener('DOMContentLoaded', done);\n\t\t}\n\t});\n};\n\n// Promise chain helper\nwhenDomReady.resume = function (doc) {\n\treturn function (val) {\n\t\treturn whenDomReady(doc).then(function () {\n\t\t\treturn val;\n\t\t});\n\t};\n};\n\nexport default whenDomReady;\n//# sourceMappingURL=index.es2015.js.map\n","const isIe11 = function isIE11() {\r\n const ieVersion = document.body.style.msTouchAction !== undefined;\r\n return ieVersion;\r\n};\r\n\r\nif (isIe11()) {\r\n const $body = document.querySelector('body');\r\n $body.classList.add('IE11');\r\n}\r\n\r\nexport default isIe11;\r\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/*!\n * imagesLoaded v4.1.4\n * JavaScript is all like \"You images are done yet or what?\"\n * MIT License\n */\n\n( function( window, factory ) { 'use strict';\n // universal module definition\n\n /*global define: false, module: false, require: false */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter'\n ], function( EvEmitter ) {\n return factory( window, EvEmitter );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('ev-emitter')\n );\n } else {\n // browser global\n window.imagesLoaded = factory(\n window,\n window.EvEmitter\n );\n }\n\n})( typeof window !== 'undefined' ? window : this,\n\n// -------------------------- factory -------------------------- //\n\nfunction factory( window, EvEmitter ) {\n\n'use strict';\n\nvar $ = window.jQuery;\nvar console = window.console;\n\n// -------------------------- helpers -------------------------- //\n\n// extend objects\nfunction extend( a, b ) {\n for ( var prop in b ) {\n a[ prop ] = b[ prop ];\n }\n return a;\n}\n\nvar arraySlice = Array.prototype.slice;\n\n// turn element or nodeList into an array\nfunction makeArray( obj ) {\n if ( Array.isArray( obj ) ) {\n // use object if already an array\n return obj;\n }\n\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n if ( isArrayLike ) {\n // convert nodeList to array\n return arraySlice.call( obj );\n }\n\n // array of single index\n return [ obj ];\n}\n\n// -------------------------- imagesLoaded -------------------------- //\n\n/**\n * @param {Array, Element, NodeList, String} elem\n * @param {Object or Function} options - if function, use as callback\n * @param {Function} onAlways - callback function\n */\nfunction ImagesLoaded( elem, options, onAlways ) {\n // coerce ImagesLoaded() without new, to be new ImagesLoaded()\n if ( !( this instanceof ImagesLoaded ) ) {\n return new ImagesLoaded( elem, options, onAlways );\n }\n // use elem as selector string\n var queryElem = elem;\n if ( typeof elem == 'string' ) {\n queryElem = document.querySelectorAll( elem );\n }\n // bail if bad element\n if ( !queryElem ) {\n console.error( 'Bad element for imagesLoaded ' + ( queryElem || elem ) );\n return;\n }\n\n this.elements = makeArray( queryElem );\n this.options = extend( {}, this.options );\n // shift arguments if no options set\n if ( typeof options == 'function' ) {\n onAlways = options;\n } else {\n extend( this.options, options );\n }\n\n if ( onAlways ) {\n this.on( 'always', onAlways );\n }\n\n this.getImages();\n\n if ( $ ) {\n // add jQuery Deferred object\n this.jqDeferred = new $.Deferred();\n }\n\n // HACK check async to allow time to bind listeners\n setTimeout( this.check.bind( this ) );\n}\n\nImagesLoaded.prototype = Object.create( EvEmitter.prototype );\n\nImagesLoaded.prototype.options = {};\n\nImagesLoaded.prototype.getImages = function() {\n this.images = [];\n\n // filter & find items if we have an item selector\n this.elements.forEach( this.addElementImages, this );\n};\n\n/**\n * @param {Node} element\n */\nImagesLoaded.prototype.addElementImages = function( elem ) {\n // filter siblings\n if ( elem.nodeName == 'IMG' ) {\n this.addImage( elem );\n }\n // get background image on element\n if ( this.options.background === true ) {\n this.addElementBackgroundImages( elem );\n }\n\n // find children\n // no non-element nodes, #143\n var nodeType = elem.nodeType;\n if ( !nodeType || !elementNodeTypes[ nodeType ] ) {\n return;\n }\n var childImgs = elem.querySelectorAll('img');\n // concat childElems to filterFound array\n for ( var i=0; i < childImgs.length; i++ ) {\n var img = childImgs[i];\n this.addImage( img );\n }\n\n // get child background images\n if ( typeof this.options.background == 'string' ) {\n var children = elem.querySelectorAll( this.options.background );\n for ( i=0; i < children.length; i++ ) {\n var child = children[i];\n this.addElementBackgroundImages( child );\n }\n }\n};\n\nvar elementNodeTypes = {\n 1: true,\n 9: true,\n 11: true\n};\n\nImagesLoaded.prototype.addElementBackgroundImages = function( elem ) {\n var style = getComputedStyle( elem );\n if ( !style ) {\n // Firefox returns null if in a hidden iframe https://bugzil.la/548397\n return;\n }\n // get url inside url(\"...\")\n var reURL = /url\\((['\"])?(.*?)\\1\\)/gi;\n var matches = reURL.exec( style.backgroundImage );\n while ( matches !== null ) {\n var url = matches && matches[2];\n if ( url ) {\n this.addBackground( url, elem );\n }\n matches = reURL.exec( style.backgroundImage );\n }\n};\n\n/**\n * @param {Image} img\n */\nImagesLoaded.prototype.addImage = function( img ) {\n var loadingImage = new LoadingImage( img );\n this.images.push( loadingImage );\n};\n\nImagesLoaded.prototype.addBackground = function( url, elem ) {\n var background = new Background( url, elem );\n this.images.push( background );\n};\n\nImagesLoaded.prototype.check = function() {\n var _this = this;\n this.progressedCount = 0;\n this.hasAnyBroken = false;\n // complete if no images\n if ( !this.images.length ) {\n this.complete();\n return;\n }\n\n function onProgress( image, elem, message ) {\n // HACK - Chrome triggers event before object properties have changed. #83\n setTimeout( function() {\n _this.progress( image, elem, message );\n });\n }\n\n this.images.forEach( function( loadingImage ) {\n loadingImage.once( 'progress', onProgress );\n loadingImage.check();\n });\n};\n\nImagesLoaded.prototype.progress = function( image, elem, message ) {\n this.progressedCount++;\n this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded;\n // progress event\n this.emitEvent( 'progress', [ this, image, elem ] );\n if ( this.jqDeferred && this.jqDeferred.notify ) {\n this.jqDeferred.notify( this, image );\n }\n // check if completed\n if ( this.progressedCount == this.images.length ) {\n this.complete();\n }\n\n if ( this.options.debug && console ) {\n console.log( 'progress: ' + message, image, elem );\n }\n};\n\nImagesLoaded.prototype.complete = function() {\n var eventName = this.hasAnyBroken ? 'fail' : 'done';\n this.isComplete = true;\n this.emitEvent( eventName, [ this ] );\n this.emitEvent( 'always', [ this ] );\n if ( this.jqDeferred ) {\n var jqMethod = this.hasAnyBroken ? 'reject' : 'resolve';\n this.jqDeferred[ jqMethod ]( this );\n }\n};\n\n// -------------------------- -------------------------- //\n\nfunction LoadingImage( img ) {\n this.img = img;\n}\n\nLoadingImage.prototype = Object.create( EvEmitter.prototype );\n\nLoadingImage.prototype.check = function() {\n // If complete is true and browser supports natural sizes,\n // try to check for image status manually.\n var isComplete = this.getIsImageComplete();\n if ( isComplete ) {\n // report based on naturalWidth\n this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );\n return;\n }\n\n // If none of the checks above matched, simulate loading on detached element.\n this.proxyImage = new Image();\n this.proxyImage.addEventListener( 'load', this );\n this.proxyImage.addEventListener( 'error', this );\n // bind to image as well for Firefox. #191\n this.img.addEventListener( 'load', this );\n this.img.addEventListener( 'error', this );\n this.proxyImage.src = this.img.src;\n};\n\nLoadingImage.prototype.getIsImageComplete = function() {\n // check for non-zero, non-undefined naturalWidth\n // fixes Safari+InfiniteScroll+Masonry bug infinite-scroll#671\n return this.img.complete && this.img.naturalWidth;\n};\n\nLoadingImage.prototype.confirm = function( isLoaded, message ) {\n this.isLoaded = isLoaded;\n this.emitEvent( 'progress', [ this, this.img, message ] );\n};\n\n// ----- events ----- //\n\n// trigger specified handler for event type\nLoadingImage.prototype.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\nLoadingImage.prototype.onload = function() {\n this.confirm( true, 'onload' );\n this.unbindEvents();\n};\n\nLoadingImage.prototype.onerror = function() {\n this.confirm( false, 'onerror' );\n this.unbindEvents();\n};\n\nLoadingImage.prototype.unbindEvents = function() {\n this.proxyImage.removeEventListener( 'load', this );\n this.proxyImage.removeEventListener( 'error', this );\n this.img.removeEventListener( 'load', this );\n this.img.removeEventListener( 'error', this );\n};\n\n// -------------------------- Background -------------------------- //\n\nfunction Background( url, element ) {\n this.url = url;\n this.element = element;\n this.img = new Image();\n}\n\n// inherit LoadingImage prototype\nBackground.prototype = Object.create( LoadingImage.prototype );\n\nBackground.prototype.check = function() {\n this.img.addEventListener( 'load', this );\n this.img.addEventListener( 'error', this );\n this.img.src = this.url;\n // check if image is already complete\n var isComplete = this.getIsImageComplete();\n if ( isComplete ) {\n this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );\n this.unbindEvents();\n }\n};\n\nBackground.prototype.unbindEvents = function() {\n this.img.removeEventListener( 'load', this );\n this.img.removeEventListener( 'error', this );\n};\n\nBackground.prototype.confirm = function( isLoaded, message ) {\n this.isLoaded = isLoaded;\n this.emitEvent( 'progress', [ this, this.element, message ] );\n};\n\n// -------------------------- jQuery -------------------------- //\n\nImagesLoaded.makeJQueryPlugin = function( jQuery ) {\n jQuery = jQuery || window.jQuery;\n if ( !jQuery ) {\n return;\n }\n // set local variable\n $ = jQuery;\n // $().imagesLoaded()\n $.fn.imagesLoaded = function( options, callback ) {\n var instance = new ImagesLoaded( this, options, callback );\n return instance.jqDeferred.promise( $(this) );\n };\n};\n// try making plugin\nImagesLoaded.makeJQueryPlugin();\n\n// -------------------------- -------------------------- //\n\nreturn ImagesLoaded;\n\n});\n","/*! npm.im/object-fit-images 3.2.4 */\n'use strict';\n\nvar OFI = 'bfred-it:object-fit-images';\nvar propRegex = /(object-fit|object-position)\\s*:\\s*([-.\\w\\s%]+)/g;\nvar testImg = typeof Image === 'undefined' ? {style: {'object-position': 1}} : new Image();\nvar supportsObjectFit = 'object-fit' in testImg.style;\nvar supportsObjectPosition = 'object-position' in testImg.style;\nvar supportsOFI = 'background-size' in testImg.style;\nvar supportsCurrentSrc = typeof testImg.currentSrc === 'string';\nvar nativeGetAttribute = testImg.getAttribute;\nvar nativeSetAttribute = testImg.setAttribute;\nvar autoModeEnabled = false;\n\nfunction createPlaceholder(w, h) {\n\treturn (\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='\" + w + \"' height='\" + h + \"'%3E%3C/svg%3E\");\n}\n\nfunction polyfillCurrentSrc(el) {\n\tif (el.srcset && !supportsCurrentSrc && window.picturefill) {\n\t\tvar pf = window.picturefill._;\n\t\t// parse srcset with picturefill where currentSrc isn't available\n\t\tif (!el[pf.ns] || !el[pf.ns].evaled) {\n\t\t\t// force synchronous srcset parsing\n\t\t\tpf.fillImg(el, {reselect: true});\n\t\t}\n\n\t\tif (!el[pf.ns].curSrc) {\n\t\t\t// force picturefill to parse srcset\n\t\t\tel[pf.ns].supported = false;\n\t\t\tpf.fillImg(el, {reselect: true});\n\t\t}\n\n\t\t// retrieve parsed currentSrc, if any\n\t\tel.currentSrc = el[pf.ns].curSrc || el.src;\n\t}\n}\n\nfunction getStyle(el) {\n\tvar style = getComputedStyle(el).fontFamily;\n\tvar parsed;\n\tvar props = {};\n\twhile ((parsed = propRegex.exec(style)) !== null) {\n\t\tprops[parsed[1]] = parsed[2];\n\t}\n\treturn props;\n}\n\nfunction setPlaceholder(img, width, height) {\n\t// Default: fill width, no height\n\tvar placeholder = createPlaceholder(width || 1, height || 0);\n\n\t// Only set placeholder if it's different\n\tif (nativeGetAttribute.call(img, 'src') !== placeholder) {\n\t\tnativeSetAttribute.call(img, 'src', placeholder);\n\t}\n}\n\nfunction onImageReady(img, callback) {\n\t// naturalWidth is only available when the image headers are loaded,\n\t// this loop will poll it every 100ms.\n\tif (img.naturalWidth) {\n\t\tcallback(img);\n\t} else {\n\t\tsetTimeout(onImageReady, 100, img, callback);\n\t}\n}\n\nfunction fixOne(el) {\n\tvar style = getStyle(el);\n\tvar ofi = el[OFI];\n\tstyle['object-fit'] = style['object-fit'] || 'fill'; // default value\n\n\t// Avoid running where unnecessary, unless OFI had already done its deed\n\tif (!ofi.img) {\n\t\t// fill is the default behavior so no action is necessary\n\t\tif (style['object-fit'] === 'fill') {\n\t\t\treturn;\n\t\t}\n\n\t\t// Where object-fit is supported and object-position isn't (Safari < 10)\n\t\tif (\n\t\t\t!ofi.skipTest && // unless user wants to apply regardless of browser support\n\t\t\tsupportsObjectFit && // if browser already supports object-fit\n\t\t\t!style['object-position'] // unless object-position is used\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\t// keep a clone in memory while resetting the original to a blank\n\tif (!ofi.img) {\n\t\tofi.img = new Image(el.width, el.height);\n\t\tofi.img.srcset = nativeGetAttribute.call(el, \"data-ofi-srcset\") || el.srcset;\n\t\tofi.img.src = nativeGetAttribute.call(el, \"data-ofi-src\") || el.src;\n\n\t\t// preserve for any future cloneNode calls\n\t\t// https://github.com/bfred-it/object-fit-images/issues/53\n\t\tnativeSetAttribute.call(el, \"data-ofi-src\", el.src);\n\t\tif (el.srcset) {\n\t\t\tnativeSetAttribute.call(el, \"data-ofi-srcset\", el.srcset);\n\t\t}\n\n\t\tsetPlaceholder(el, el.naturalWidth || el.width, el.naturalHeight || el.height);\n\n\t\t// remove srcset because it overrides src\n\t\tif (el.srcset) {\n\t\t\tel.srcset = '';\n\t\t}\n\t\ttry {\n\t\t\tkeepSrcUsable(el);\n\t\t} catch (err) {\n\t\t\tif (window.console) {\n\t\t\t\tconsole.warn('https://bit.ly/ofi-old-browser');\n\t\t\t}\n\t\t}\n\t}\n\n\tpolyfillCurrentSrc(ofi.img);\n\n\tel.style.backgroundImage = \"url(\\\"\" + ((ofi.img.currentSrc || ofi.img.src).replace(/\"/g, '\\\\\"')) + \"\\\")\";\n\tel.style.backgroundPosition = style['object-position'] || 'center';\n\tel.style.backgroundRepeat = 'no-repeat';\n\tel.style.backgroundOrigin = 'content-box';\n\n\tif (/scale-down/.test(style['object-fit'])) {\n\t\tonImageReady(ofi.img, function () {\n\t\t\tif (ofi.img.naturalWidth > el.width || ofi.img.naturalHeight > el.height) {\n\t\t\t\tel.style.backgroundSize = 'contain';\n\t\t\t} else {\n\t\t\t\tel.style.backgroundSize = 'auto';\n\t\t\t}\n\t\t});\n\t} else {\n\t\tel.style.backgroundSize = style['object-fit'].replace('none', 'auto').replace('fill', '100% 100%');\n\t}\n\n\tonImageReady(ofi.img, function (img) {\n\t\tsetPlaceholder(el, img.naturalWidth, img.naturalHeight);\n\t});\n}\n\nfunction keepSrcUsable(el) {\n\tvar descriptors = {\n\t\tget: function get(prop) {\n\t\t\treturn el[OFI].img[prop ? prop : 'src'];\n\t\t},\n\t\tset: function set(value, prop) {\n\t\t\tel[OFI].img[prop ? prop : 'src'] = value;\n\t\t\tnativeSetAttribute.call(el, (\"data-ofi-\" + prop), value); // preserve for any future cloneNode\n\t\t\tfixOne(el);\n\t\t\treturn value;\n\t\t}\n\t};\n\tObject.defineProperty(el, 'src', descriptors);\n\tObject.defineProperty(el, 'currentSrc', {\n\t\tget: function () { return descriptors.get('currentSrc'); }\n\t});\n\tObject.defineProperty(el, 'srcset', {\n\t\tget: function () { return descriptors.get('srcset'); },\n\t\tset: function (ss) { return descriptors.set(ss, 'srcset'); }\n\t});\n}\n\nfunction hijackAttributes() {\n\tfunction getOfiImageMaybe(el, name) {\n\t\treturn el[OFI] && el[OFI].img && (name === 'src' || name === 'srcset') ? el[OFI].img : el;\n\t}\n\tif (!supportsObjectPosition) {\n\t\tHTMLImageElement.prototype.getAttribute = function (name) {\n\t\t\treturn nativeGetAttribute.call(getOfiImageMaybe(this, name), name);\n\t\t};\n\n\t\tHTMLImageElement.prototype.setAttribute = function (name, value) {\n\t\t\treturn nativeSetAttribute.call(getOfiImageMaybe(this, name), name, String(value));\n\t\t};\n\t}\n}\n\nfunction fix(imgs, opts) {\n\tvar startAutoMode = !autoModeEnabled && !imgs;\n\topts = opts || {};\n\timgs = imgs || 'img';\n\n\tif ((supportsObjectPosition && !opts.skipTest) || !supportsOFI) {\n\t\treturn false;\n\t}\n\n\t// use imgs as a selector or just select all images\n\tif (imgs === 'img') {\n\t\timgs = document.getElementsByTagName('img');\n\t} else if (typeof imgs === 'string') {\n\t\timgs = document.querySelectorAll(imgs);\n\t} else if (!('length' in imgs)) {\n\t\timgs = [imgs];\n\t}\n\n\t// apply fix to all\n\tfor (var i = 0; i < imgs.length; i++) {\n\t\timgs[i][OFI] = imgs[i][OFI] || {\n\t\t\tskipTest: opts.skipTest\n\t\t};\n\t\tfixOne(imgs[i]);\n\t}\n\n\tif (startAutoMode) {\n\t\tdocument.body.addEventListener('load', function (e) {\n\t\t\tif (e.target.tagName === 'IMG') {\n\t\t\t\tfix(e.target, {\n\t\t\t\t\tskipTest: opts.skipTest\n\t\t\t\t});\n\t\t\t}\n\t\t}, true);\n\t\tautoModeEnabled = true;\n\t\timgs = 'img'; // reset to a generic selector for watchMQ\n\t}\n\n\t// if requested, watch media queries for object-fit change\n\tif (opts.watchMQ) {\n\t\twindow.addEventListener('resize', fix.bind(null, imgs, {\n\t\t\tskipTest: opts.skipTest\n\t\t}));\n\t}\n}\n\nfix.supportsObjectFit = supportsObjectFit;\nfix.supportsObjectPosition = supportsObjectPosition;\n\nhijackAttributes();\n\nmodule.exports = fix;\n","/**\n * EvEmitter v1.1.0\n * Lil' event emitter\n * MIT License\n */\n\n/* jshint unused: true, undef: true, strict: true */\n\n( function( global, factory ) {\n // universal module definition\n /* jshint strict: false */ /* globals define, module, window */\n if ( typeof define == 'function' && define.amd ) {\n // AMD - RequireJS\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS - Browserify, Webpack\n module.exports = factory();\n } else {\n // Browser globals\n global.EvEmitter = factory();\n }\n\n}( typeof window != 'undefined' ? window : this, function() {\n\n\"use strict\";\n\nfunction EvEmitter() {}\n\nvar proto = EvEmitter.prototype;\n\nproto.on = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // set events hash\n var events = this._events = this._events || {};\n // set listeners array\n var listeners = events[ eventName ] = events[ eventName ] || [];\n // only add once\n if ( listeners.indexOf( listener ) == -1 ) {\n listeners.push( listener );\n }\n\n return this;\n};\n\nproto.once = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // add event\n this.on( eventName, listener );\n // set once flag\n // set onceEvents hash\n var onceEvents = this._onceEvents = this._onceEvents || {};\n // set onceListeners object\n var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};\n // set flag\n onceListeners[ listener ] = true;\n\n return this;\n};\n\nproto.off = function( eventName, listener ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n var index = listeners.indexOf( listener );\n if ( index != -1 ) {\n listeners.splice( index, 1 );\n }\n\n return this;\n};\n\nproto.emitEvent = function( eventName, args ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n // copy over to avoid interference if .off() in listener\n listeners = listeners.slice(0);\n args = args || [];\n // once stuff\n var onceListeners = this._onceEvents && this._onceEvents[ eventName ];\n\n for ( var i=0; i < listeners.length; i++ ) {\n var listener = listeners[i]\n var isOnce = onceListeners && onceListeners[ listener ];\n if ( isOnce ) {\n // remove listener\n // remove before trigger to prevent recursion\n this.off( eventName, listener );\n // unset once flag\n delete onceListeners[ listener ];\n }\n // trigger listener\n listener.apply( this, args );\n }\n\n return this;\n};\n\nproto.allOff = function() {\n delete this._events;\n delete this._onceEvents;\n};\n\nreturn EvEmitter;\n\n}));\n","import whenDomReady from 'when-dom-ready';\r\nimport objectFitImages from 'object-fit-images';\r\nimport imagesLoaded from 'imagesloaded/imagesloaded';\r\n\r\nimport isIe11 from '@utils/is-ie11';\r\n\r\nasync function initialise() {\r\n if (isIe11()) {\r\n const someImages = document.querySelectorAll('.js-object-fit');\r\n Array.from(someImages).forEach(imageElement => {\r\n imagesLoaded(imageElement, () => {\r\n objectFitImages(imageElement);\r\n });\r\n });\r\n }\r\n}\r\n\r\nwhenDomReady().then(initialise);\r\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; };\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n defineProperty(generator, \"_invoke\", { value: makeInvokeMethod(innerFn, self, context) });\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n defineProperty(Gp, \"constructor\", { value: GeneratorFunctionPrototype, configurable: true });\n defineProperty(\n GeneratorFunctionPrototype,\n \"constructor\",\n { value: GeneratorFunction, configurable: true }\n );\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n defineProperty(this, \"_invoke\", { value: enqueue });\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per GeneratorResume behavior specified since ES2015:\n // ES2015 spec, step 3: https://262.ecma-international.org/6.0/#sec-generatorresume\n // Latest spec, step 2: https://tc39.es/ecma262/#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method;\n var method = delegate.iterator[methodName];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method, or a missing .next method, always terminate the\n // yield* loop.\n context.delegate = null;\n\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (methodName === \"throw\" && delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n if (methodName !== \"return\") {\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a '\" + methodName + \"' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(val) {\n var object = Object(val);\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable != null) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n throw new TypeError(typeof iterable + \" is not iterable\");\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","!function(e){var t=e.Element.prototype;\"function\"!=typeof t.matches&&(t.matches=t.msMatchesSelector||t.mozMatchesSelector||t.webkitMatchesSelector||function(e){for(var t=(this.document||this.ownerDocument).querySelectorAll(e),o=0;t[o]&&t[o]!==this;)++o;return Boolean(t[o])}),\"function\"!=typeof t.closest&&(t.closest=function(e){for(var t=this;t&&1===t.nodeType;){if(t.matches(e))return t;t=t.parentNode}return null})}(window);\n","/*** IMPORTS FROM imports-loader ***/\nvar exports = undefined;\n\n/*! loadCSS. [c]2017 Filament Group, Inc. MIT License */\n(function(w){\n\t\"use strict\";\n\t/* exported loadCSS */\n\tvar loadCSS = function( href, before, media, attributes ){\n\t\t// Arguments explained:\n\t\t// `href` [REQUIRED] is the URL for your CSS file.\n\t\t// `before` [OPTIONAL] is the element the script should use as a reference for injecting our stylesheet before\n\t\t// By default, loadCSS attempts to inject the link after the last stylesheet or script in the DOM. However, you might desire a more specific location in your document.\n\t\t// `media` [OPTIONAL] is the media type or query of the stylesheet. By default it will be 'all'\n\t\t// `attributes` [OPTIONAL] is the Object of attribute name/attribute value pairs to set on the stylesheet's DOM Element.\n\t\tvar doc = w.document;\n\t\tvar ss = doc.createElement( \"link\" );\n\t\tvar ref;\n\t\tif( before ){\n\t\t\tref = before;\n\t\t}\n\t\telse {\n\t\t\tvar refs = ( doc.body || doc.getElementsByTagName( \"head\" )[ 0 ] ).childNodes;\n\t\t\tref = refs[ refs.length - 1];\n\t\t}\n\n\t\tvar sheets = doc.styleSheets;\n\t\t// Set any of the provided attributes to the stylesheet DOM Element.\n\t\tif( attributes ){\n\t\t\tfor( var attributeName in attributes ){\n\t\t\t\tif( attributes.hasOwnProperty( attributeName ) ){\n\t\t\t\t\tss.setAttribute( attributeName, attributes[attributeName] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tss.rel = \"stylesheet\";\n\t\tss.href = href;\n\t\t// temporarily set media to something inapplicable to ensure it'll fetch without blocking render\n\t\tss.media = \"only x\";\n\n\t\t// wait until body is defined before injecting link. This ensures a non-blocking load in IE11.\n\t\tfunction ready( cb ){\n\t\t\tif( doc.body ){\n\t\t\t\treturn cb();\n\t\t\t}\n\t\t\tsetTimeout(function(){\n\t\t\t\tready( cb );\n\t\t\t});\n\t\t}\n\t\t// Inject link\n\t\t\t// Note: the ternary preserves the existing behavior of \"before\" argument, but we could choose to change the argument to \"after\" in a later release and standardize on ref.nextSibling for all refs\n\t\t\t// Note: `insertBefore` is used instead of `appendChild`, for safety re: http://www.paulirish.com/2011/surefire-dom-element-insertion/\n\t\tready( function(){\n\t\t\tref.parentNode.insertBefore( ss, ( before ? ref : ref.nextSibling ) );\n\t\t});\n\t\t// A method (exposed on return object for external use) that mimics onload by polling document.styleSheets until it includes the new sheet.\n\t\tvar onloadcssdefined = function( cb ){\n\t\t\tvar resolvedHref = ss.href;\n\t\t\tvar i = sheets.length;\n\t\t\twhile( i-- ){\n\t\t\t\tif( sheets[ i ].href === resolvedHref ){\n\t\t\t\t\treturn cb();\n\t\t\t\t}\n\t\t\t}\n\t\t\tsetTimeout(function() {\n\t\t\t\tonloadcssdefined( cb );\n\t\t\t});\n\t\t};\n\n\t\tfunction loadCB(){\n\t\t\tif( ss.addEventListener ){\n\t\t\t\tss.removeEventListener( \"load\", loadCB );\n\t\t\t}\n\t\t\tss.media = media || \"all\";\n\t\t}\n\n\t\t// once loaded, set link's media back to `all` so that the stylesheet applies once it loads\n\t\tif( ss.addEventListener ){\n\t\t\tss.addEventListener( \"load\", loadCB);\n\t\t}\n\t\tss.onloadcssdefined = onloadcssdefined;\n\t\tonloadcssdefined( loadCB );\n\t\treturn ss;\n\t};\n\t// commonjs\n\tif( typeof exports !== \"undefined\" ){\n\t\texports.loadCSS = loadCSS;\n\t}\n\telse {\n\t\tw.loadCSS = loadCSS;\n\t}\n}( typeof global !== \"undefined\" ? global : this ));\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = window.loadCSS;\n","/*** IMPORTS FROM imports-loader ***/\n(function() {\n\n/*! loadCSS. [c]2017 Filament Group, Inc. MIT License */\n/* This file is meant as a standalone workflow for\n- testing support for link[rel=preload]\n- enabling async CSS loading in browsers that do not support rel=preload\n- applying rel preload css once loaded, whether supported or not.\n*/\n(function( w ){\n\t\"use strict\";\n\t// rel=preload support test\n\tif( !w.loadCSS ){\n\t\tw.loadCSS = function(){};\n\t}\n\t// define on the loadCSS obj\n\tvar rp = loadCSS.relpreload = {};\n\t// rel=preload feature support test\n\t// runs once and returns a function for compat purposes\n\trp.support = (function(){\n\t\tvar ret;\n\t\ttry {\n\t\t\tret = w.document.createElement( \"link\" ).relList.supports( \"preload\" );\n\t\t} catch (e) {\n\t\t\tret = false;\n\t\t}\n\t\treturn function(){\n\t\t\treturn ret;\n\t\t};\n\t})();\n\n\t// if preload isn't supported, get an asynchronous load by using a non-matching media attribute\n\t// then change that media back to its intended value on load\n\trp.bindMediaToggle = function( link ){\n\t\t// remember existing media attr for ultimate state, or default to 'all'\n\t\tvar finalMedia = link.media || \"all\";\n\n\t\tfunction enableStylesheet(){\n\t\t\t// unbind listeners\n\t\t\tif( link.addEventListener ){\n\t\t\t\tlink.removeEventListener( \"load\", enableStylesheet );\n\t\t\t} else if( link.attachEvent ){\n\t\t\t\tlink.detachEvent( \"onload\", enableStylesheet );\n\t\t\t}\n\t\t\tlink.setAttribute( \"onload\", null ); \n\t\t\tlink.media = finalMedia;\n\t\t}\n\n\t\t// bind load handlers to enable media\n\t\tif( link.addEventListener ){\n\t\t\tlink.addEventListener( \"load\", enableStylesheet );\n\t\t} else if( link.attachEvent ){\n\t\t\tlink.attachEvent( \"onload\", enableStylesheet );\n\t\t}\n\n\t\t// Set rel and non-applicable media type to start an async request\n\t\t// note: timeout allows this to happen async to let rendering continue in IE\n\t\tsetTimeout(function(){\n\t\t\tlink.rel = \"stylesheet\";\n\t\t\tlink.media = \"only x\";\n\t\t});\n\t\t// also enable media after 3 seconds,\n\t\t// which will catch very old browsers (android 2.x, old firefox) that don't support onload on link\n\t\tsetTimeout( enableStylesheet, 3000 );\n\t};\n\n\t// loop through link elements in DOM\n\trp.poly = function(){\n\t\t// double check this to prevent external calls from running\n\t\tif( rp.support() ){\n\t\t\treturn;\n\t\t}\n\t\tvar links = w.document.getElementsByTagName( \"link\" );\n\t\tfor( var i = 0; i < links.length; i++ ){\n\t\t\tvar link = links[ i ];\n\t\t\t// qualify links to those with rel=preload and as=style attrs\n\t\t\tif( link.rel === \"preload\" && link.getAttribute( \"as\" ) === \"style\" && !link.getAttribute( \"data-loadcss\" ) ){\n\t\t\t\t// prevent rerunning on link\n\t\t\t\tlink.setAttribute( \"data-loadcss\", true );\n\t\t\t\t// bind listeners to toggle media back\n\t\t\t\trp.bindMediaToggle( link );\n\t\t\t}\n\t\t}\n\t};\n\n\t// if unsupported, run the polyfill\n\tif( !rp.support() ){\n\t\t// run once at least\n\t\trp.poly();\n\n\t\t// rerun poly on an interval until onload\n\t\tvar run = w.setInterval( rp.poly, 500 );\n\t\tif( w.addEventListener ){\n\t\t\tw.addEventListener( \"load\", function(){\n\t\t\t\trp.poly();\n\t\t\t\tw.clearInterval( run );\n\t\t\t} );\n\t\t} else if( w.attachEvent ){\n\t\t\tw.attachEvent( \"onload\", function(){\n\t\t\t\trp.poly();\n\t\t\t\tw.clearInterval( run );\n\t\t\t} );\n\t\t}\n\t}\n\n\n\t// commonjs\n\tif( typeof exports !== \"undefined\" ){\n\t\texports.loadCSS = loadCSS;\n\t}\n\telse {\n\t\tw.loadCSS = loadCSS;\n\t}\n}( typeof global !== \"undefined\" ? global : this ) );\n\n}.call(window));","/*! 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","var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob()\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n}\n\nfunction isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n}\n\nif (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n}\n\nfunction normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n}\n\nfunction normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n}\n\n// Build a destructive iterator for the value list\nfunction iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n}\n\nexport function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n}\n\nHeaders.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue + ', ' + value : value\n}\n\nHeaders.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n}\n\nHeaders.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n}\n\nHeaders.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n}\n\nHeaders.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n}\n\nHeaders.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n}\n\nHeaders.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push(name)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.values = function() {\n var items = []\n this.forEach(function(value) {\n items.push(value)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push([name, value])\n })\n return iteratorFor(items)\n}\n\nif (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n}\n\nfunction consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n}\n\nfunction fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n}\n\nfunction readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n}\n\nfunction readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n}\n\nfunction readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n}\n\nfunction bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n}\n\nfunction Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n this._bodyText = body = Object.prototype.toString.call(body)\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n}\n\n// HTTP methods whose capitalization should be normalized\nvar methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\nfunction normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return methods.indexOf(upcased) > -1 ? upcased : method\n}\n\nexport function Request(input, options) {\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n this.signal = input.signal\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.signal = options.signal || this.signal\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n}\n\nRequest.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n}\n\nfunction decode(body) {\n var form = new FormData()\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n}\n\nfunction parseHeaders(rawHeaders) {\n var headers = new Headers()\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n}\n\nBody.call(Request.prototype)\n\nexport function Response(bodyInit, options) {\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = options.status === undefined ? 200 : options.status\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = 'statusText' in options ? options.statusText : 'OK'\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n}\n\nBody.call(Response.prototype)\n\nResponse.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n}\n\nResponse.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n}\n\nvar redirectStatuses = [301, 302, 303, 307, 308]\n\nResponse.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n}\n\nexport var DOMException = self.DOMException\ntry {\n new DOMException()\n} catch (err) {\n DOMException = function(message, name) {\n this.message = message\n this.name = name\n var error = Error(message)\n this.stack = error.stack\n }\n DOMException.prototype = Object.create(Error.prototype)\n DOMException.prototype.constructor = DOMException\n}\n\nexport function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n\n if (request.signal && request.signal.aborted) {\n return reject(new DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest()\n\n function abortXhr() {\n xhr.abort()\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n resolve(new Response(body, options))\n }\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.onabort = function() {\n reject(new DOMException('Aborted', 'AbortError'))\n }\n\n xhr.open(request.method, request.url, true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob'\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr)\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr)\n }\n }\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n}\n\nfetch.polyfill = true\n\nif (!self.fetch) {\n self.fetch = fetch\n self.Headers = Headers\n self.Request = Request\n self.Response = Response\n}\n","(() => {\r\n const isSupported = typeof IntersectionObserver === 'function';\r\n\r\n if (!isSupported) {\r\n import('intersection-observer');\r\n }\r\n})();\r\n","import whenDomReady from 'when-dom-ready';\r\n\r\nimport isIe11 from '@utils/is-ie11';\r\n\r\nasync function initialise() {\r\n if (isIe11()) {\r\n const { default: svg4everybody } = await import('svg4everybody/dist/svg4everybody');\r\n svg4everybody();\r\n }\r\n}\r\n\r\nwhenDomReady().then(initialise);\r\n","import whenDomReady from 'when-dom-ready';\r\n\r\nimport isIe11 from '@utils/is-ie11';\r\n\r\nasync function initialise() {\r\n if (isIe11()) {\r\n const videos = document.querySelectorAll('.js-video');\r\n\r\n if (videos && videos.length) {\r\n const { default: objectFitVideos } = await import('object-fit-videos');\r\n objectFitVideos(videos);\r\n }\r\n }\r\n}\r\n\r\nwhenDomReady().then(initialise);\r\n"],"sourceRoot":""}