1(function (w, d) { 2 var ua = (w.navigator && w.navigator.userAgent) || ""; 3 var unsupported = false; 4 var testEl = d.createElement("div"); 5 var isIOSDevice = /\b(iPad|iPhone|iPod)\b/i.test(ua); 6 7 if ( 8 !isIOSDevice && 9 /\bMacintosh\b/i.test(ua) && 10 w.navigator && 11 typeof w.navigator.maxTouchPoints === "number" && 12 w.navigator.maxTouchPoints > 1 13 ) { 14 isIOSDevice = true; 15 } 16 17 function onReady(callback) { 18 if (d.readyState === "loading") { 19 d.addEventListener("DOMContentLoaded", callback); 20 } else { 21 callback(); 22 } 23 } 24 25 function lacksModernFeatures() { 26 if (!d.querySelector || !w.addEventListener || !("classList" in testEl)) { 27 return true; 28 } 29 30 try { 31 if ( 32 !( 33 w.CSS && 34 typeof w.CSS.supports === "function" && 35 w.CSS.supports("color", "var(--brand-color--one)") 36 ) 37 ) { 38 return true; 39 } 40 } catch (error) { 41 return true; 42 } 43 44 return false; 45 } 46 47 if (lacksModernFeatures()) { 48 unsupported = true; 49 } 50 51 if (!unsupported) { 52 try { 53 if ( 54 !w.CSS || 55 typeof w.CSS.supports !== "function" || 56 !w.CSS.supports("color", "var(--brand-color--one)") 57 ) { 58 unsupported = true; 59 } 60 } catch (cssError) { 61 unsupported = true; 62 } 63 } 64 65 if (!unsupported && /\bMSIE\b|\bTrident\/7\.0\b/i.test(ua)) { 66 unsupported = true; 67 } 68 69 if (!unsupported && /\bEdge\/\d{1,2}\./i.test(ua)) { 70 unsupported = true; 71 } 72 73 if (!unsupported && isIOSDevice) { 74 var iosMatch = ua.match(/OS (\d+)_/i); 75 if ((!iosMatch || !iosMatch[1]) && /\bVersion\/(\d+)/i.test(ua)) { 76 iosMatch = ua.match(/\bVersion\/(\d+)/i); 77 } 78 if (iosMatch && iosMatch[1] && parseInt(iosMatch[1], 10) <= 14) { 79 unsupported = true; 80 } 81 } 82 83 if ( 84 !unsupported && 85 /\bMobile\/\w+/i.test(ua) && 86 /\bSafari\//i.test(ua) && 87 !/(CriOS|FxiOS|OPiOS|EdgiOS)/i.test(ua) 88 ) { 89 var mobileSafariVersion = ua.match(/Version\/(\d+(?:\.\d+)?)/i); 90 if (mobileSafariVersion && parseFloat(mobileSafariVersion[1]) <= 14.9) { 91 unsupported = true; 92 } 93 } 94 95 if ( 96 !unsupported && 97 /\bMacintosh\b/i.test(ua) && 98 /\bSafari\/\d+/i.test(ua) && 99 !/\bChrome\/\d+/i.test(ua) 100 ) { 101 var safariVersion = ua.match(/Version\/(\d+)/i); 102 if (safariVersion && safariVersion[1] && parseInt(safariVersion[1], 10) <= 12) { 103 unsupported = true; 104 } 105 } 106 107 if (!unsupported) { 108 var androidMatch = ua.match(/Android (\d+)/i); 109 if (androidMatch && androidMatch[1] && parseInt(androidMatch[1], 10) <= 9) { 110 unsupported = true; 111 } 112 } 113 114 w.__IS_BROWSER_UNSUPPORTED__ = unsupported; 115 116 onReady(function () { 117 if (d.body) { 118 d.body.style.visibility = "visible"; 119 } 120 121 if (unsupported) { 122 var docEl = d.documentElement; 123 124 if (docEl.classList) { 125 docEl.classList.add("is-browser-unsupported"); 126 } else if (docEl.className.indexOf("is-browser-unsupported") === -1) { 127 docEl.className += (docEl.className ? " " : "") + "is-browser-unsupported"; 128 } 129 130 var loader = d.querySelector(".js-page-loader"); 131 if (!loader) { 132 return; 133 } 134 135 var content = loader.querySelector(".js-page-loader-content"); 136 137 if (content) { 138 if (content.classList && !content.classList.contains("show")) { 139 content.classList.add("show"); 140 } else if ( 141 typeof content.className === "string" && 142 content.className.indexOf("show") === -1 143 ) { 144 content.className += " show"; 145 } 146 } 147 148 var message = loader.querySelector(".page-loader__unsupported-browser"); 149 150 if (message) { 151 message.style.display = "block"; 152 } 153 } else if (w.GWPageLoader) { 154 w.GWPageLoader.init(); 155 } 156 }); 157})(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.