1/*! 2 * modernizr v3.12.0 3 * Build https://modernizr.com/download?-applicationcache-audio-backgroundsize-borderimage-borderradius-boxshadow-canvas-canvastext-cssanimations-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-flexbox-fontface-generatedcontent-geolocation-hashchange-history-hsla-inlinesvg-input-inputtypes-localstorage-multiplebgs-opacity-postmessage-rgba-sessionstorage-smil-svgclippaths-textshadow-touchevents-video-webgl-websockets-websqldatabase-webworkers-addtest-atrule-domprefixes-hasevent-load-mq-prefixed-prefixedcss-prefixes-printshiv-setclasses-testallprops-testprop-teststyles-dontmin 4 * 5 * Copyright (c) 6 * Faruk Ates 7 * Paul Irish 8 * Alex Sexton 9 * Ryan Seddon 10 * Patrick Kettner 11 * Stu Cox 12 * Richard Herrera 13 * Veeck 14 15 * MIT License 16 */ 17!function(e,t,n,o){var r=[],a={_version:"3.12.0",_config:{classPrefix:"",enableClasses:!0,enableJSClass:!0,usePrefixes:!0},_q:[],on:function(e,t){var n=this;setTimeout(function(){t(n[e])},0)},addTest:function(e,t,n){r.push({name:e,fn:t,options:n})},addAsyncTest:function(e){r.push({name:null,fn:e})}},i=function(){};i.prototype=a,i=new i;var s=[];function c(e,t){return typeof e===t}var l,d,u=n.documentElement,p="svg"===u.nodeName.toLowerCase();function f(e){var t=u.className,n=i._config.classPrefix||"";if(p&&(t=t.baseVal),i._config.enableJSClass){var o=new RegExp("(^|\\s)"+n+"no-js(\\s|$)");t=t.replace(o,"$1"+n+"js$2")}i._config.enableClasses&&(e.length>0&&(t+=" "+n+e.join(" "+n)),p?u.className.baseVal=t:u.className=t)}function m(e,t){if("object"==typeof e)for(var n in e)l(e,n)&&m(n,e[n]);else{var o=(e=e.toLowerCase()).split("."),r=i[o[0]];if(2===o.length&&(r=r[o[1]]),void 0!==r)return i;t="function"==typeof t?t():t,1===o.length?i[o[0]]=t:(!i[o[0]]||i[o[0]]instanceof Boolean||(i[o[0]]=new Boolean(i[o[0]])),i[o[0]][o[1]]=t),f([(t&&!1!==t?"":"no-")+o.join("-")]),i._trigger(e,t)}return i}l=c(d={}.hasOwnProperty,"undefined")||c(d.call,"undefined")?function(e,t){return t in e&&c(e.constructor.prototype[t],"undefined")}:function(e,t){return d.call(e,t)},a._l={},a.on=function(e,t){this._l[e]||(this._l[e]=[]),this._l[e].push(t),i.hasOwnProperty(e)&&setTimeout(function(){i._trigger(e,i[e])},0)},a._trigger=function(e,t){if(this._l[e]){var n=this._l[e];setTimeout(function(){var e;for(e=0;e<n.length;e++)(0,n[e])(t)},0),delete this._l[e]}},i._q.push(function(){a.addTest=m});var h="Moz O ms Webkit",v=a._config.usePrefixes?h.split(" "):[];a._cssomPrefixes=v;var g=function(e){var n,r=L.length,a=t.CSSRule;if(void 0===a)return o;if(!e)return!1;if((n=(e=e.replace(/^@/,"")).replace(/-/g,"_").toUpperCase()+"_RULE")in a)return"@"+e;for(var i=0;i<r;i++){var s=L[i];if(s.toUpperCase()+"_"+n in a)return"@-"+s.toLowerCase()+"-"+e}return!1};a.atRule=g;var y=a._config.usePrefixes?h.toLowerCase().split(" "):[];function T(){return"function"!=typeof n.createElement?n.createElement(arguments[0]):p?n.createElementNS.call(n,"http://www.w3.org/2000/svg",arguments[0]):n.createElement.apply(n,arguments)}a._domPrefixes=y;var b,x=(b=!("onblur"in u),function(e,t){var n;return!!e&&(t&&"string"!=typeof t||(t=T(t||"div")),!(n=(e="on"+e)in t)&&b&&(t.setAttribute||(t=T("div")),t.setAttribute(e,""),n="function"==typeof t[e],t[e]!==o&&(t[e]=o),t.removeAttribute(e)),n)});a.hasEvent=x,p||function(e,t){var n,o,r=e.html5||{},a=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,i=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,s="_html5shiv",c=0,l={};function d(e,t){var n=e.createElement("p"),o=e.getElementsByTagName("head")[0]||e.documentElement;return n.innerHTML="x<style>"+t+"</style>",o.insertBefore(n.lastChild,o.firstChild)}function u(){var e=h.elements;return"string"==typeof e?e.split(" "):e}function p(e){var t=l[e[s]];return t||(t={},c++,e[s]=c,l[c]=t),t}function f(e,n,r){return n||(n=t),o?n.createElement(e):(r||(r=p(n)),!(s=r.cache[e]?r.cache[e].cloneNode():i.test(e)?(r.cache[e]=r.createElem(e)).cloneNode():r.createElem(e)).canHaveChildren||a.test(e)||s.tagUrn?s:r.frag.appendChild(s));var s}function m(e){e||(e=t);var r=p(e);return!h.shivCSS||n||r.hasCSS||(r.hasCSS=!!d(e,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{dis
17play:block}mark{background:#FF0;color:#000}template{display:none}")),o||function(e,t){t.cache||(t.cache={},t.createElem=e.createElement,t.createFrag=e.createDocumentFragment,t.frag=t.createFrag()),e.createElement=function(n){return h.shivMethods?f(n,e,t):t.createElem(n)},e.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+u().join().replace(/[\w\-:]+/g,function(e){return t.createElem(e),t.frag.createElement(e),'c("'+e+'")'})+");return n}")(h,t.frag)}(e,r),e}!function(){try{var e=t.createElement("a");e.innerHTML="<xyz></xyz>",n="hidden"in e,o=1==e.childNodes.length||function(){t.createElement("a");var e=t.createDocumentFragment();return void 0===e.cloneNode||void 0===e.createDocumentFragment||void 0===e.createElement}()}catch(e){n=!0,o=!0}}();var h={elements:r.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:"3.7.3",shivCSS:!1!==r.shivCSS,supportsUnknownElements:o,shivMethods:!1!==r.shivMethods,type:"default",shivDocument:m,createElement:f,createDocumentFragment:function(e,n){if(e||(e=t),o)return e.createDocumentFragment();for(var r=(n=n||p(e)).frag.cloneNode(),a=0,i=u(),s=i.length;a<s;a++)r.createElement(i[a]);return r},addElements:function(e,t){var n=h.elements;"string"!=typeof n&&(n=n.join(" ")),"string"!=typeof e&&(e=e.join(" ")),h.elements=n+" "+e,m(t)}};e.html5=h,m(t);var v,g=/^$|\b(?:all|print)\b/,y="html5shiv",T=!(o||(v=t.documentElement,void 0===t.namespaces||void 0===t.parentWindow||void 0===v.applyElement||void 0===v.removeNode||void 0===e.attachEvent));function b(e){for(var t,n=e.attributes,o=n.length,r=e.ownerDocument.createElement(y+":"+e.nodeName);o--;)(t=n[o]).specified&&r.setAttribute(t.nodeName,t.nodeValue);return r.style.cssText=e.style.cssText,r}function x(e){var t,n,o=p(e),r=e.namespaces,a=e.parentWindow;if(!T||e.printShived)return e;function i(){clearTimeout(o._removeSheetTimer),t&&t.removeNode(!0),t=null}return void 0===r[y]&&r.add(y),a.attachEvent("onbeforeprint",function(){i();for(var o,r,a,s=e.styleSheets,c=[],l=s.length,p=Array(l);l--;)p[l]=s[l];for(;a=p.pop();)if(!a.disabled&&g.test(a.media)){try{r=(o=a.imports).length}catch(e){r=0}for(l=0;l<r;l++)p.push(o[l]);try{c.push(a.cssText)}catch(e){}}c=function(e){for(var t,n=e.split("{"),o=n.length,r=RegExp("(^|[\\s,>+~])("+u().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),a="$1"+y+"\\:$2";o--;)(t=n[o]=n[o].split("}"))[t.length-1]=t[t.length-1].replace(r,a),n[o]=t.join("}");return n.join("{")}(c.reverse().join("")),n=function(e){for(var t,n=e.getElementsByTagName("*"),o=n.length,r=RegExp("^(?:"+u().join("|")+")$","i"),a=[];o--;)t=n[o],r.test(t.nodeName)&&a.push(t.applyElement(b(t)));return a}(e),t=d(e,c)}),a.attachEvent("onafterprint",function(){!function(e){for(var t=e.length;t--;)e[t].removeNode()}(n),clearTimeout(o._removeSheetTimer),o._removeSheetTimer=setTimeout(i,500)}),e.printShived=!0,e}h.type+=" print",h.shivPrint=x,x(t),"object"==typeof module&&module.exports&&(module.exports=h)}(void 0!==t?t:this,n);var w=function(){},S=function(){};function C(e,t,o,r){var a,i,s,c,l="modernizr",d=T("div"),f=function(){var e=n.body;return e||((e=T(p?"svg":"body")).fake=!0),e}();if(parseInt(o,10))for(;o--;)(s=T("div")).id=r?r[o]:l+(o+1),d.appendChild(s);return(a=T("style")).type="text/css",a.id="s"+l,(f.fake?f:d).appendChild(a),f.appendChild(d),a.styleSheet?a.styleSheet.cssText=e:a.appendChild(n.createTextNode(e)),d.id=l,f.fake&&(f.style.background="",f.style.overflow="hidden",c=u.style.overflow,u.style.overflow="hidden",u.appendChild(f)),i=t(d,e),f.fake&&f.parentNode?(f.parentNode.removeChild(f),u.style.overflow=c,u.offsetHeight):d.parentNode.removeChild(d),!!i}function E(e,n,o){var r;if("getComputedStyle"in t){r=getComputedStyle.call(t,e,n);var a=t.console;if(null!==r)o&&(r=r.getPropertyValue(o));else if(a)a[a.error?"error":"log"].call(a,"getComputedStyle returning null, its possible modernizr test results are inaccurate")}else r=!n&&e.currentStyle&&e.currentStyle[o];return r}t.console&&(w=function(){var e=console.error?"error":"log";t.console[e].apply(t.console,Array.prototype.slice.call(arguments))},S=function(){var e=console.warn?"warn":"log";t.console[e].apply(t.console,Array.prototype.slice.call(arguments))}),a.load=function(){"yepnope"in t?(S("yepnope.js (aka Modernizr.load) is no longer included as part of Modernizr. yepnope appears to be available on the page, so weââ¬â¢ll use it to handle this call to Modernizr.load, but please update your co
17de to use yepnope directly.\n See http://github.com/Modernizr/Modernizr/issues/1182 for more information."),t.yepnope.apply(t,[].slice.call(arguments,0))):w("yepnope.js (aka Modernizr.load) is no longer included as part of Modernizr. Get it from http://yepnopejs.com. See http://github.com/Modernizr/Modernizr/issues/1182 for more information.")};var P,k=(P=t.matchMedia||t.msMatchMedia)?function(e){var t=P(e);return t&&t.matches||!1}:function(e){var t=!1;return C("@media "+e+" { #modernizr { position: absolute; } }",function(e){t="absolute"===E(e,null,"position")}),t};function _(e,t){return!!~(""+e).indexOf(t)}a.mq=k;var z={elem:T("modernizr")};i._q.push(function(){delete z.elem});var N={style:z.elem.style};function M(e){return e.replace(/([A-Z])/g,function(e,t){return"-"+t.toLowerCase()}).replace(/^ms-/,"-ms-")}function $(e){return e.replace(/([a-z])-([a-z])/g,function(e,t,n){return t+n.toUpperCase()}).replace(/^-/,"")}function j(e,n,r,a){if(a=!c(a,"undefined")&&a,!c(r,"undefined")){var i=function(e,n){var r=e.length;if("CSS"in t&&"supports"in t.CSS){for(;r--;)if(t.CSS.supports(M(e[r]),n))return!0;return!1}if("CSSSupportsRule"in t){for(var a=[];r--;)a.push("("+M(e[r])+":"+n+")");return C("@supports ("+(a=a.join(" or "))+") { #modernizr { position: absolute; } }",function(e){return"absolute"===E(e,null,"position")})}return o}(e,r);if(!c(i,"undefined"))return i}for(var s,l,d,u,p,f=["modernizr","tspan","samp"];!N.style&&f.length;)s=!0,N.modElem=T(f.shift()),N.style=N.modElem.style;function m(){s&&(delete N.style,delete N.modElem)}for(d=e.length,l=0;l<d;l++)if(u=e[l],p=N.style[u],_(u,"-")&&(u=$(u)),N.style[u]!==o){if(a||c(r,"undefined"))return m(),"pfx"!==n||u;try{N.style[u]=r}catch(e){}if(N.style[u]!==p)return m(),"pfx"!==n||u}return m(),!1}function A(e,t){return function(){return e.apply(t,arguments)}}function O(e,t,n,o,r){var a=e.charAt(0).toUpperCase()+e.slice(1),i=(e+" "+v.join(a+" ")+a).split(" ");return c(t,"string")||c(t,"undefined")?j(i,t,o,r):function(e,t,n){var o;for(var r in e)if(e[r]in t)return!1===n?e[r]:c(o=t[e[r]],"function")?A(o,n||t):o;return!1}(i=(e+" "+y.join(a+" ")+a).split(" "),t,n)}i._q.unshift(function(){delete N.style}),a.testAllProps=O;var R=a.prefixed=function(e,t,n){return 0===e.indexOf("@")?g(e):(-1!==e.indexOf("-")&&(e=$(e)),t?O(e,t,n):O(e,"pfx"))},L=a._config.usePrefixes?" -webkit- -moz- -o- -ms- ".split(" "):["",""];a._prefixes=L;a.prefixedCSS=function(e){var t=R(e);return t&&M(t)};function B(e,t,n){return O(e,o,o,t,n)}a.testAllProps=B;var D=a.testProp=function(e,t,n){return j([e],o,t,n)},F=a.testStyles=C; 18/*! 19{ 20 "name": "Touch Events", 21 "property": "touchevents", 22 "caniuse": "touch", 23 "tags": ["media", "attribute"], 24 "notes": [{ 25 "name": "Touch Events spec", 26 "href": "https://www.w3.org/TR/2013/WD-touch-events-20130124/" 27 }], 28 "warnings": [ 29 "** DEPRECATED see https://github.com/Modernizr/Modernizr/pull/2432 **", 30 "Indicates if the browser supports the Touch Events spec, and does not necessarily reflect a touchscreen device" 31 ], 32 "knownBugs": [ 33 "False-positive on some configurations of Nokia N900", 34 "False-positive on some BlackBerry 6.0 builds ââ¬â https://github.com/Modernizr/Modernizr/issues/372#issuecomment-3112695" 35 ] 36} 37!*/ 38i.addTest("touchevents",function(){if("ontouchstart"in t||t.TouchEvent||t.DocumentTouch&&n instanceof DocumentTouch)return!0;var e=["(",L.join("touch-enabled),("),"heartz",")"].join("");return k(e)}), 39/*! 40{ 41 "name": "Application Cache", 42 "property": "applicationcache", 43 "caniuse": "offline-apps", 44 "tags": ["storage", "offline"], 45 "notes": [{ 46 "name": "MDN Docs", 47 "href": "https://developer.mozilla.org/en/docs/HTML/Using_the_application_cache" 48 }], 49 "polyfills": ["html5gears"] 50} 51!*/ 52i.addTest("applicationcache","applicationCache"in t), 53/*! 54{ 55 "name": "HTML5 Audio Element", 56 "property": "audio", 57 "caniuse": "audio", 58 "tags": ["html5", "audio", "media"], 59 "notes": [{ 60 "name": "MDN Docs", 61 "href": "https://developer.mozilla.org/En/Media_formats_supported_by_the_audio_and_video_elements" 62 }] 63} 64!*/ 65function(){var e=T("audio");i.addTest("audio",function(){var t=!1;try{(t=!!e.canPlayType)&&(t=new Boolean(t))}catch(e){}return t});try{e.canPlayType&&(i.addTest("audio.ogg",e.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,"")),i.addTest("audio.mp3",e.canPlayType('audio/mpeg; codecs="mp3"').replace(/^no$/,"")),i.addTest("audio.opus",e.canPlayType('audio/ogg; codecs="opus"')||e.canPlayType('audio/webm; codecs="opus"').replace(/^no$/,"")),i.addTest("audio.wav",e.canPlayType('audio/wav; codecs="1"').replace(/^no$/,"")),i.addTest("audio.m4a",(e.canPlayType("audio/x-m4a;")||e.canPlayType("audio/aac;")).replace(/^no$/,"")))}catch(e){}}(), 66/*! 67{ 68 "name": "Canvas", 69 "property": "canvas", 70 "caniuse": "canvas", 71 "tags": ["canvas", "graphics"], 72 "polyfills": ["flashcanvas", "excanvas", "slcanvas", "fxcanvas"] 73} 74!*/ 75i.addTest("canvas",function(){var e=T("canvas");return!(!e.getContext||!e.getContext("2d"))}), 76/*! 77{ 78 "name": "Canvas text", 79 "property": "canvastext", 80 "caniuse": "canvas-text", 81 "tags": ["canvas", "graphics"], 82 "polyfills": ["canvastext"] 83} 84!*/ 85i.addTest("canvastext",function(){return!1!==i.canvas&&"function"==typeof T("canvas").getContext("2d").fillText}), 86/*! 87{ 88 "name": "Hashchange event",
89 "property": "hashchange", 90 "caniuse": "hashchange", 91 "tags": ["history"], 92 "notes": [{ 93 "name": "MDN Docs", 94 "href": "https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onhashchange" 95 }], 96 "polyfills": [ 97 "jquery-hashchange", 98 "moo-historymanager", 99 "jquery-ajaxy", 100 "hasher", 101 "shistory" 102 ] 103} 104!*/ 105i.addTest("hashchange",function(){return!1!==x("hashchange",t)&&(n.documentMode===o||n.documentMode>7)}), 106/*! 107{ 108 "name": "Geolocation API", 109 "property": "geolocation", 110 "caniuse": "geolocation", 111 "tags": ["media"], 112 "notes": [{ 113 "name": "MDN Docs", 114 "href": "https://developer.mozilla.org/en-US/docs/WebAPI/Using_geolocation" 115 }], 116 "polyfills": [ 117 "joshuabell-polyfill", 118 "webshims", 119 "geo-location-javascript", 120 "geolocation-api-polyfill" 121 ] 122} 123!*/ 124i.addTest("geolocation","geolocation"in navigator), 125/*! 126{ 127 "name": "History API", 128 "property": "history", 129 "caniuse": "history", 130 "tags": ["history"], 131 "authors": ["Hay Kranen", "Alexander Farkas"], 132 "notes": [{ 133 "name": "W3C Spec", 134 "href": "https://www.w3.org/TR/html51/browsers.html#the-history-interface" 135 }, { 136 "name": "MDN Docs", 137 "href": "https://developer.mozilla.org/en-US/docs/Web/API/window.history" 138 }], 139 "polyfills": ["historyjs", "html5historyapi"] 140} 141!*/ 142i.addTest("history",function(){var e=navigator.userAgent;return!!e&&((-1===e.indexOf("Android 2.")&&-1===e.indexOf("Android 4.0")||-1===e.indexOf("Mobile Safari")||-1!==e.indexOf("Chrome")||-1!==e.indexOf("Windows Phone")||"file:"===location.protocol)&&(t.history&&"pushState"in t.history))});var q=T("input"),I="autocomplete autofocus list placeholder max min multiple pattern required step".split(" "),V={}; 143/*! 144{ 145 "name": "Input attributes", 146 "property": "input", 147 "tags": ["forms"], 148 "authors": ["Mike Taylor"], 149 "notes": [{ 150 "name": "WHATWG Spec", 151 "href": "https://html.spec.whatwg.org/multipage/input.html#input-type-attr-summary" 152 }], 153 "knownBugs": ["Some blackberry devices report false positive for input.multiple"] 154} 155!*/ 156i.input=function(e){for(var n=0,o=e.length;n<o;n++)V[e[n]]=!!(e[n]in q);return V.list&&(V.list=!(!T("datalist")||!t.HTMLDataListElement)),V}(I), 157/*! 158{ 159 "name": "Form input types", 160 "property": "inputtypes", 161 "caniuse": "forms", 162 "tags": ["forms"], 163 "authors": ["Mike Taylor"], 164 "polyfills": [ 165 "jquerytools", 166 "webshims", 167 "h5f", 168 "webforms2", 169 "nwxforms", 170 "fdslider", 171 "html5slider", 172 "galleryhtml5forms", 173 "jscolor", 174 "html5formshim", 175 "selectedoptionsjs", 176 "formvalidationjs" 177 ] 178} 179!*/ 180function(){for(var e,t,r,a=["search","tel","url","email","datetime","date","month","week","time","datetime-local","number","range","color"],s=0;s<a.length;s++)q.setAttribute("type",e=a[s]),(r="text"!==q.type&&"style"in q)&&(q.value="1)",q.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(e)&&q.style.WebkitAppearance!==o?(u.appendChild(q),r=(t=n.defaultView).getComputedStyle&&"textfield"!==t.getComputedStyle(q,null).WebkitAppearance&&0!==q.offsetHeight,u.removeChild(q)):/^(search|tel)$/.test(e)||(r=/^(url|email)$/.test(e)?q.checkValidity&&!1===q.checkValidity():"1)"!==q.value)),i.addTest("inputtypes."+e,!!r)}(); 181/*! 182{ 183 "name": "postMessage", 184 "property": "postmessage", 185 "caniuse": "x-doc-messaging", 186 "notes": [{ 187 "name": "W3C Spec", 188 "href": "https://www.w3.org/TR/webmessaging/#crossDocumentMessages" 189 }], 190 "polyfills": ["easyxdm", "postmessage-jquery"], 191 "knownBugs": ["structuredclones - Android 2&3 can not send a structured clone of dates, filelists or regexps"], 192 "warnings": ["Some old WebKit versions have bugs. Stick with object, array, number and pixeldata to be safe."] 193} 194!*/ 195var W=!0;try{t.postMessage({toString:function(){W=!1}},"*")}catch(e){}i.addTest("postmessage",new Boolean("postMessage"in t)),i.addTest("postmessage.structuredclones",W), 196/*! 197{ 198 "name": "HTML5 Video", 199 "property": "video", 200 "caniuse": "video", 201 "tags": ["html5", "video", "media"], 202 "knownBugs": ["Without QuickTime, `Modernizr.video.h264` will be `undefined`; https://github.com/Modernizr/Modernizr/issues/546"], 203 "polyfills": [ 204 "html5media", 205 "mediaelementjs", 206 "sublimevideo", 207 "videojs", 208 "leanbackplayer", 209 "videoforeverybody" 210 ] 211} 212!*/ 213function(){var e=T("video");i.addTest("video",function(){var t=!1;try{(t=!!e.canPlayType)&&(t=new Boolean(t))}catch(e){}return t});try{e.canPlayType&&(i.addTest("video.ogg",e.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,"")),i.addTest("video.h264",e.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,"")),i.addTest("video.h265",e.canPlayType('video/mp4; codecs="hev1"').replace(/^no$/,"")),i.addTest("video.webm",e.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")),i.addTest("video.vp9",e.canPlayType('video/webm; codecs="vp9"').replace(/^no$/,"")),i.addTest("video.hls",e.canPlayType('application/x-mpegURL; codecs="avc1.42E01E"').replace(/^no$/,"")),i.addTest("video.av1",e.canPlayType('video/mp4; codecs="av01"').replace(/^no$/,"")))}catch(e){}}(), 214/*! 215{ 216 "name": "WebGL", 217 "property": "webgl", 218 "caniuse": "webgl", 219 "tags": ["webgl", "graphics"], 220 "polyfills": ["jebgl", "cwebgl", "iewebgl"] 221} 222!*/ 223i.addTest("webgl",function(){return"WebGLRenderingContext"in t}); 224/*! 225{ 226 "name": "WebSockets Support", 227 "property": "websockets",
228 "authors": ["Phread (@fearphage)", "Mike Sherov (@mikesherov)", "Burak Yigit Kaya (@BYK)"], 229 "caniuse": "websockets", 230 "tags": ["html5"], 231 "warnings": [ 232 "This test will reject any old version of WebSockets even if it is not prefixed such as in Safari 5.1" 233 ], 234 "notes": [{ 235 "name": "CLOSING State and Spec", 236 "href": "https://www.w3.org/TR/websockets/#the-websocket-interface" 237 }], 238 "polyfills": [ 239 "sockjs", 240 "socketio", 241 "kaazing-websocket-gateway", 242 "websocketjs", 243 "atmosphere", 244 "graceful-websocket", 245 "portal", 246 "datachannel" 247 ] 248} 249!*/ 250var U,H,G,J=!1;try{J="WebSocket"in t&&2===t.WebSocket.CLOSING}catch(e){}i.addTest("websockets",J), 251/*! 252{ 253 "name": "CSS Animations", 254 "property": "cssanimations", 255 "caniuse": "css-animation", 256 "polyfills": ["transformie", "csssandpaper"], 257 "tags": ["css"], 258 "warnings": ["Android < 4 will pass this test, but can only animate a single property at a time"], 259 "notes": [{ 260 "name": "Article: 'Dispelling the Android CSS animation myths'", 261 "href": "https://web.archive.org/web/20180602074607/https://daneden.me/2011/12/14/putting-up-with-androids-bullshit/" 262 }] 263} 264!*/ 265i.addTest("cssanimations",B("animationName","a",!0)), 266/*! 267{ 268 "name": "Background Size", 269 "property": "backgroundsize", 270 "tags": ["css"], 271 "knownBugs": ["This will false positive in Opera Mini - https://github.com/Modernizr/Modernizr/issues/396"], 272 "notes": [{ 273 "name": "Related Issue", 274 "href": "https://github.com/Modernizr/Modernizr/issues/396" 275 }] 276} 277!*/ 278i.addTest("backgroundsize",B("backgroundSize","100%",!0)), 279/*! 280{ 281 "name": "Border Image", 282 "property": "borderimage", 283 "caniuse": "border-image", 284 "polyfills": ["css3pie"], 285 "knownBugs": ["Android < 2.0 is true, but has a broken implementation"], 286 "tags": ["css"] 287} 288!*/ 289i.addTest("borderimage",B("borderImage","url() 1",!0)), 290/*! 291{ 292 "name": "Border Radius",
293 "property": "borderradius", 294 "caniuse": "border-radius", 295 "polyfills": ["css3pie"], 296 "tags": ["css"], 297 "notes": [{ 298 "name": "Comprehensive Compat Chart", 299 "href": "https://muddledramblings.com/table-of-css3-border-radius-compliance" 300 }] 301} 302!*/ 303i.addTest("borderradius",B("borderRadius","0px",!0)), 304/*! 305{ 306 "name": "Box Shadow", 307 "property": "boxshadow", 308 "caniuse": "css-boxshadow", 309 "tags": ["css"], 310 "knownBugs": [ 311 "WebOS false positives on this test.", 312 "The Kindle Silk browser false positives" 313 ] 314} 315!*/ 316i.addTest("boxshadow",B("boxShadow","1px 1px",!0)), 317/*! 318{ 319 "name": "Flexbox", 320 "property": "flexbox", 321 "caniuse": "flexbox", 322 "tags": ["css"], 323 "notes": [{ 324 "name": "The _new_ flexbox", 325 "href": "https://www.w3.org/TR/css-flexbox-1/" 326 }], 327 "warnings": [ 328 "A `true` result for this detect does not imply that the `flex-wrap` property is supported; see the `flexwrap` detect." 329 ] 330} 331!*/ 332i.addTest("flexbox",B("flexBasis","1px",!0)),(U=navigator.userAgent,H=U.match(/w(eb)?osbrowser/gi),G=U.match(/windows phone/gi)&&U.match(/iemobile\/([0-9])+/gi)&&parseFloat(RegExp.$1)>=9,H||G)?i.addTest("fontface",!1):F('@font-face {font-family:"font";src:url("https://")}',function(e,t){var o=n.getElementById("smodernizr"),r=o.sheet||o.styleSheet,a=r?r.cssRules&&r.cssRules[0]?r.cssRules[0].cssText:r.cssText||"":"",s=/src/i.test(a)&&0===a.indexOf(t.split(" ")[0]);i.addTest("fontface",s)}), 333/*! 334{ 335 "name": "CSS Generated Content", 336 "property": "generatedcontent", 337 "tags": ["css"], 338 "warnings": ["Android won't return correct height for anything below 7px #738"], 339 "notes": [{ 340 "name": "W3C Spec", 341 "href": "https://www.w3.org/TR/css3-selectors/#gen-content" 342 }, { 343 "name": "MDN Docs on :before", 344 "href": "https://developer.mozilla.org/en-US/docs/Web/CSS/::before" 345 }, { 346 "name": "MDN Docs on :after", 347 "href": "https://developer.mozilla.org/en-US/docs/Web/CSS/::after" 348 }] 349} 350!*/ 351F('#modernizr{font:0/0 a}#modernizr:after{content:":)";visibility:hidden;font:7px/1 a}',function(e){i.addTest("generatedcontent",e.offsetHeight>=6)}), 352/*! 353{ 354 "name": "CSS Gradients", 355 "caniuse": "css-gradients", 356 "property": "cssgradients", 357 "tags": ["css"], 358 "knownBugs": ["False-positives on webOS (https://github.com/Modernizr/Modernizr/issues/202)"], 359 "notes": [{ 360 "name": "Webkit Gradient Syntax", 361 "href": "https://webkit.org/blog/175/introducing-css-gradients/" 362 }, { 363 "name": "Linear Gradient Syntax", 364 "href": "https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient" 365 }, { 366 "name": "W3C Spec", 367 "href": "https://drafts.csswg.org/css-images-3/#gradients" 368 }] 369} 370!*/ 371i.addTest("cssgradients",function(){for(var e,t="background-image:",n="",o=0,r=L.length-1;o<r;o++)e=0===o?"to ":"",n+=t+L[o]+"linear-gradient("+e+"left top, #9f9, white);";i._config.usePrefixes&&(n+=t+"-webkit-gradient(linear,left top,right bottom,from(#9f9),to(white));");var a=T("a").style;return a.cssText=n,(""+a.backgroundImage).indexOf("gradient")>-1}), 372/*! 373{ 374 "name": "CSS HSLA Colors", 375 "caniuse": "css3-colors", 376 "property": "hsla", 377 "tags": ["css"] 378} 379!*/ 380i.addTest("hsla",function(){var e=T("a").style;return e.cssText="background-color:hsla(120,40%,100%,.5)",_(e.backgroundColor,"rgba")||_(e.backgroundColor,"hsla")}), 381/*! 382{
383 "name": "CSS Multiple Backgrounds", 384 "caniuse": "multibackgrounds", 385 "property": "multiplebgs", 386 "tags": ["css"] 387} 388!*/ 389i.addTest("multiplebgs",function(){var e=T("a").style;return e.cssText="background:url(https://),url(https://),red url(https://)",/(url\s*\(.*?){3}/.test(e.background)}), 390/*! 391{ 392 "name": "CSS Opacity", 393 "caniuse": "css-opacity", 394 "property": "opacity", 395 "tags": ["css"] 396} 397!*/ 398i.addTest("opacity",function(){var e=T("a").style;return e.cssText=L.join("opacity:.55;"),/^0.55$/.test(e.opacity)}), 399/*! 400{ 401 "name": "CSS Reflections", 402 "caniuse": "css-reflections", 403 "property": "cssreflections", 404 "tags": ["css"] 405} 406!*/ 407i.addTest("cssreflections",B("boxReflect","above",!0)), 408/*! 409{ 410 "name": "CSS rgba", 411 "caniuse": "css3-colors", 412 "property": "rgba", 413 "tags": ["css"], 414 "notes": [{ 415 "name": "CSSTricks Tutorial", 416 "href": "https://css-tricks.com/rgba-browser-support/" 417 }] 418} 419!*/ 420i.addTest("rgba",function(){var e=T("a").style;return e.cssText="background-color:rgba(150,255,150,.5)",(""+e.backgroundColor).indexOf("rgba")>-1}), 421/*! 422{ 423 "name": "CSS textshadow", 424 "property": "textshadow", 425 "caniuse": "css-textshadow", 426 "tags": ["css"], 427 "knownBugs": ["FF3.0 will false positive on this test"] 428} 429!*/ 430i.addTest("textshadow",D("textShadow","1px 1px")), 431/*! 432{ 433 "name": "CSS Transforms", 434 "property": "csstransforms", 435 "caniuse": "transforms2d", 436 "tags": ["css"] 437} 438!*/ 439i.addTest("csstransforms",function(){return-1===navigator.userAgent.indexOf("Android 2.")&&B("transform","scale(1)",!0)}); 440/*! 441{ 442 "name": "CSS Supports", 443 "property": "supports", 444 "caniuse": "css-featurequeries", 445 "tags": ["css"], 446 "builderAliases": ["css_supports"], 447 "notes": [{ 448 "name": "W3C Spec (The @supports rule)", 449 "href": "https://dev.w3.org/csswg/css3-conditional/#at-supports" 450 }, { 451 "name": "Related Github Issue", 452 "href": "https://github.com/Modernizr/Modernizr/issues/648" 453 }, { 454 "name": "W3C Spec (The CSSSupportsRule interface)", 455 "href": "https://dev.w3.org/csswg/css3-conditional/#the-csssupportsrule-interface" 456 }] 457} 458!*/ 459var Z="CSS"in t&&"supports"in t.CSS,K="supportsCSS"in t;i.addTest("supports",Z||K), 460/*! 461{ 462 "name": "CSS Transforms 3D", 463 "property": "csstransforms3d", 464 "caniuse": "transforms3d", 465 "tags": ["css"], 466 "warnings": [ 467 "Chrome may occasionally fail this test on some systems; more info: https://bugs.chromium.org/p/chromium/issues/detail?id=129004" 468 ] 469} 470!*/ 471i.addTest("csstransforms3d",function(){return!!B("perspective","1px",!0)}), 472/*! 473{ 474 "name": "CSS Transitions", 475 "property": "csstransitions", 476 "caniuse": "css-transitions", 477 "tags": ["css"] 478} 479!*/ 480i.addTest("csstransitions",B("transition","all",!0)), 481/*! 482{ 483 "name": "Local Storage", 484 "property": "localstorage", 485 "caniuse": "namevalue-storage", 486 "tags": ["storage"], 487 "polyfills": [ 488 "joshuabell-polyfill", 489 "cupcake", 490 "storagepolyfill", 491 "amplifyjs", 492 "yui-cacheoffline" 493 ] 494} 495!*/ 496i.addTest("localstorage",function(){var e="modernizr";try{return localStorage.setItem(e,e),localStorage.removeItem(e),!0}catch(e){return!1}}), 497/*! 498{ 499 "name": "Session Storage", 500 "property": "sessionstorage", 501 "tags": ["storage"], 502 "polyfills": ["joshuabell-polyfill", "cupcake", "sessionstorage"] 503} 504!*/ 505i.addTest("sessionstorage",function(){var e="modernizr";try{return sessionStorage.setItem(e,e),sessionStorage.removeItem(e),!0}catch(e){return!1}}), 506/*! 507{ 508 "name": "Web SQL Database", 509 "property": "websqldatabase", 510 "caniuse": "sql-storage", 511 "tags": ["storage"] 512} 513!*/ 514i.addTest("websqldatabase","openDatabase"in t);var Q={}.toString; 515/*! 516{ 517 "name": "SVG clip paths", 518 "property": "svgclippaths", 519 "tags": ["svg"], 520 "notes": [{ 521 "name": "Demo", 522 "href": "http://srufaculty.sru.edu/david.dailey/svg/newstuff/clipPath4.svg" 523 }] 524} 525!*/ 526i.addTest("svgclippaths",function(){return!!n.createElementNS&&/SVGClipPath/.test(Q.call(n.createElementNS("http://www.w3.org/2000/svg","clipPath")))}), 527/*! 528{ 529 "name": "Inline SVG", 530 "property": "inlinesvg", 531 "caniuse": "svg-html5", 532 "tags": ["svg"], 533 "notes": [{ 534 "name": "Test page", 535 "href": "https://paulirish.com/demo/inline-svg" 536 }, { 537 "name": "Test page and results", 538 "href": "https://codepen.io/eltonmesquita/full/GgXbvo/" 539 }], 540 "polyfills": ["inline-svg-polyfill"],
541 "knownBugs": ["False negative on some Chromia browsers."] 542} 543!*/ 544i.addTest("inlinesvg",function(){var e=T("div");return e.innerHTML="<svg/>","http://www.w3.org/2000/svg"===("undefined"!=typeof SVGRect&&e.firstChild&&e.firstChild.namespaceURI)}), 545/*! 546{ 547 "name": "SVG SMIL animation", 548 "property": "smil", 549 "caniuse": "svg-smil", 550 "tags": ["svg"], 551 "notes": [{ 552 "name": "W3C Spec", 553 "href": "https://www.w3.org/AudioVideo/" 554 }] 555} 556!*/ 557i.addTest("smil",function(){return!!n.createElementNS&&/SVGAnimate/.test(Q.call(n.createElementNS("http://www.w3.org/2000/svg","animate")))}), 558/*! 559{ 560 "name": "Web Workers", 561 "property": "webworkers", 562 "caniuse": "webworkers", 563 "tags": ["performance", "workers"], 564 "notes": [{ 565 "name": "W3C Spec", 566 "href": "https://www.w3.org/TR/workers/" 567 }, { 568 "name": "HTML5 Rocks Tutorial", 569 "href": "https://www.html5rocks.com/en/tutorials/workers/basics/" 570 }, { 571 "name": "MDN Docs", 572 "href": "https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers" 573 }], 574 "polyfills": ["fakeworker", "html5shims"] 575} 576!*/ 577i.addTest("webworkers","Worker"in t),function(){var e,t,n,o,a,l;for(var d in r)if(r.hasOwnProperty(d)){if(e=[],(t=r[d]).name&&(e.push(t.name.toLowerCase()),t.options&&t.options.aliases&&t.options.aliases.length))for(n=0;n<t.options.aliases.length;n++)e.push(t.options.aliases[n].toLowerCase());for(o=c(t.fn,"function")?t.fn():t.fn,a=0;a<e.length;a++)1===(l=e[a].split(".")).length?i[l[0]]=o:(i[l[0]]&&(!i[l[0]]||i[l[0]]instanceof Boolean)||(i[l[0]]=new Boolean(i[l[0]])),i[l[0]][l[1]]=o),s.push((o?"":"no-")+l.join("-"))}}(),f(s),delete a.addTest,delete a.addAsyncTest;for(var X=0;X<i._q.length;X++)i._q[X]();e.Modernizr=i}(window,window,document);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.