CINXE.COM
Best smart thermostat 2021: Save energy efficiently | ZDNet
<!DOCTYPE html> <html lang="en" xmlns:fb="http://ogp.me/ns/fb#"> <head><script type="text/javascript" src="/_static/js/bundle-playback.js?v=HxkREWBo" charset="utf-8"></script> <script type="text/javascript" src="/_static/js/wombat.js?v=txqj7nKC" charset="utf-8"></script> <script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script> <script type="text/javascript" src="/_static/js/ruffle/ruffle.js"></script> <script type="text/javascript"> __wm.init("https://web.archive.org/web"); __wm.wombat("https://www.zdnet.com/article/best-smart-thermostat/","20210826133042","https://web.archive.org/","web","/_static/", "1629984642"); </script> <link rel="stylesheet" type="text/css" href="/_static/css/banner-styles.css?v=S1zqJCYt" /> <link rel="stylesheet" type="text/css" href="/_static/css/iconochive.css?v=3PDvdIFv" /> <!-- End Wayback Rewrite JS Include --> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <!-- Fly Version: 982281-fly --> <!-- A/B test: --> <title>Best smart thermostat 2021: Save energy efficiently | ZDNet</title> <meta name="description" content="Make your home smarter, automated, and more energy-efficient by getting one of the best smart thermostats on the market."> <link rel="canonical" href="https://web.archive.org/web/20210826133042/https://www.zdnet.com/article/best-smart-thermostat/"> <meta property="og:site_name" content="ZDNet"> <meta property="og:type" content="article"> <meta property="og:url" content="https://web.archive.org/web/20210826133042/https://www.zdnet.com/article/best-smart-thermostat/"> <meta property="og:title" content="Best smart thermostat 2021: Save energy efficiently | ZDNet"> <meta property="og:description" content="Make your home smarter, automated, and more energy-efficient by getting one of the best smart thermostats on the market."> <meta property="og:image" content="https://web.archive.org/web/20210826133042im_/https://www.zdnet.com/a/hub/i/r/2021/08/17/5b19cf71-9442-47c2-9491-edf107c51126/thumbnail/770x578/fde9d57d4bdf692181c5f40a21340bed/best-smart-thermostat.jpg"> <meta property="fb:app_id" content="136759700898"> <meta name="author" content="AJ Dellinger"> <meta name="twitter:site" content="@ZDNet"> <meta name="twitter:creator" content="@ZDNet"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:url" content="https://web.archive.org/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/"> <meta name="twitter:title" content="Best smart thermostat 2021: Save energy efficiently | ZDNet"> <meta name="twitter:description" content="Make your home smarter, automated, and more energy-efficient by getting one of the best smart thermostats on the market."> <meta name="twitter:image" content="https://web.archive.org/web/20210826133042im_/https://www.zdnet.com/a/hub/i/r/2021/08/17/5b19cf71-9442-47c2-9491-edf107c51126/thumbnail/770x578/fde9d57d4bdf692181c5f40a21340bed/best-smart-thermostat.jpg"> <meta name="viewport" content="width=device-width, user-scalable=no, maximum-scale=1, minimum-scale=1"> <meta name="theme-color" content="#080e14"> <link rel="icon" sizes="192x192" href="https://web.archive.org/web/20210826133042im_/https://www.zdnet.com/a/fly/bundles/zdnetcss/images/logos/logo-192x192.png"> <link rel="amphtml" href="https://web.archive.org/web/20210826133042/https://www.zdnet.com/google-amp/article/best-smart-thermostat/"> <style>@font-face{font-family:Proxima Nova ZD;font-weight:600;font-display:swap;font-style:normal;src:url('/web/20210826133042im_/https://www.zdnet.com/bundles/zdnetcss/fonts/Proxima Nova/Semibold.eot');src:url('/web/20210826133042im_/https://www.zdnet.com/bundles/zdnetcss/fonts/Proxima Nova/Semibold.eot#iefix') format("embedded-opentype"),url('/web/20210826133042im_/https://www.zdnet.com/bundles/zdnetcss/fonts/Proxima Nova/Semibold.woff2') format("woff2"),url('/web/20210826133042im_/https://www.zdnet.com/bundles/zdnetcss/fonts/Proxima Nova/Semibold.woff') format("woff"),url('/web/20210826133042im_/https://www.zdnet.com/bundles/zdnetcss/fonts/Proxima Nova/Semibold.ttf') format("truetype"),url('/web/20210826133042im_/https://www.zdnet.com/bundles/zdnetcss/fonts/Proxima Nova/Semibold.svg') format("svg")}@font-face{font-family:Proxima Nova ZD;font-weight:400;font-display:swap;font-style:normal;src:url('/web/20210826133042im_/https://www.zdnet.com/bundles/zdnetcss/fonts/Proxima Nova/Regular.eot');src:url('/web/20210826133042im_/https://www.zdnet.com/bundles/zdnetcss/fonts/Proxima Nova/Regular.eot#iefix') format("embedded-opentype"),url('/web/20210826133042im_/https://www.zdnet.com/bundles/zdnetcss/fonts/Proxima Nova/Regular.woff2') format("woff2"),url('/web/20210826133042im_/https://www.zdnet.com/bundles/zdnetcss/fonts/Proxima Nova/Regular.woff') format("woff"),url('/web/20210826133042im_/https://www.zdnet.com/bundles/zdnetcss/fonts/Proxima Nova/Regular.ttf') format("truetype"),url('/web/20210826133042im_/https://www.zdnet.com/bundles/zdnetcss/fonts/Proxima Nova/Regular.svg') format("svg")}</style> <link rel="stylesheet" href="https://web.archive.org/web/20210826133042cs_/https://www.zdnet.com/a/fly/css/core/main-4fa5b7a1f1-rev.css"> <link rel="stylesheet" href="https://web.archive.org/web/20210826133042cs_/https://www.zdnet.com/a/fly/css/video/htmlPlayerControls/controls-1330df05dc-rev.css"> <script src="https://web.archive.org/web/20210826133042js_/https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" type="text/javascript" charset="UTF-8" data-domain-script="e70f246a-fd9b-4805-9fd4-fcd89020aca5" async></script> <script type="application/javascript"> (function(a){ var w=window,b='cbsoptanon',q='cmd',r='config'; w[b] = w[b] ? w[b] : {}; w[b][q] = w[b][q] ? w[b][q] : []; w[b][r] = w[b][r] ? w[b][r] : []; a.forEach(function(z){ w[b][z] = w[b][z] || function(){ var c=arguments; w[b][q].push(function(){ w[b][z].apply(w[b],c); }) } }); })(["onIframesReady","onFormsReady","onScriptsReady","onAdsReady"]); //Add configs window.cbsoptanon.config.push({ enableServices: false, setNpaOnConsentChange: true, countryCodeMaxAttempts: 25, oneTrustTimeout: 700 }); window.cbsoptanon.onIframesReady(function(cmp) { console.log('Loading iframes'); // load any gated iframes cmp.iframes.load(); }); </script> <script src="https://web.archive.org/web/20210826133042js_/https://www.zdnet.com/a/privacy/optanon/optanon-v1.1.0.js" id="bb-optanon" type="application/javascript" async></script> <!-- gdpr: false --> <script type="text/javascript"> window.ZdnetPageVars = { ads: { enabled: true, data: {"gpt":{"targeting":{"buyingcycle":"compare","topic":"hardware,networking,reviews,best-lists,zdnet-recommends,smart-home,thermostats,home,google,amazon","mfr":"google,apple,amazon,samsung,honeywell-inc,microsoft,nest,ecobee,wyze,smartthings","tag":"honeywell,google,apple,microsoft,nest,samsung,amazon,alexa,smartthings,google-assistant","pid":"nest-learning-thermostat,google-home,samsung-smartthings,apple,honeywell-wi-fi-smart-thermostat,ecobee-smartthermostat-with-voice-control,apple-homekit,samsung-smart-home-adapter,honeywell-lyric,emerson-sensi","prodtype":"smart-speakers,air-conditioner,air-conditioners,thermostat","device":"desktop","ptype":"article","cid":"best-smart-thermostat","env":"prod"},"adConfig":{"network":{"dev":22309610186,"prod":22309610186},"method":"async","regions":[],"adUnits":{"mpuPlusTop":[],"mpuMiddle":[],"mpuMiddle2":[],"mpuBottom":[],"leaderPlusTop":[],"leaderPlusMiddle":[],"leaderPlusBottom":[],"leaderTop":[],"navAd":[],"navAdPlusLeader":[],"incontentAdPlus":[],"incontentAdPlusTop":[],"incontentAdPlusBottom":[],"sponsorLogo":[],"sharethroughTop":{"customTargeting":{"strnativekey":"8ec3a4f3"}},"sharethroughBottom":[],"specialFeatureRiver":[],"showcaseTop":[],"mobileMpu":{"sizes":[300,250],"position":"increment"}},"mobile":{"adUnits":{"mobileBannerTop":[],"mobileMpuBottom":[],"mobileBannerPlus":[],"mobileBanner":[],"mobileSharethroughTop":[],"mobileSharethroughBottom":[],"mobileSpecialFeatureRiver":[],"mobileNavAd":[],"mobileNavAdPlusBanner":[],"mobileIncontentAdPlus":[],"mobileIncontentAdPlusTop":[],"mobileIncontentAdPlusBottom":[],"showcaseTop":[],"mobileMpu":{"sizes":[300,250],"position":"increment"}}},"siteName":"zdnet","enableYieldIntelligence":true,"defaultRegion":"aw","collapseEmptyDiv":"false","setRefreshUnfilledSlots":"true","setClearUnfilledSlots":"false","disableInitialLoad":"false","disableInitialLoadCompanions":"false","disableInitialLoadRefresh":"false","enableHeaderBidding":false,"disableAdIncrement":false,"disableClearTargetingOnInit":false,"enableRepeatedAds":false,"enableSingleRequest":"true"},"containerId":"612793177a63b","slotVars":{"network":"22309610186","siteName":"zdnet","collapseEmptyDiv":"false","topics":"hardware","platform":"desktop"},"adType":"gpt"},"cookieName":"zdnet_ad","cookieServicePath":"\/ad\/ad-cookie\/","session":8,"subSession":6,"cookieDomain":".zdnet.com","cookieSecure":true} }, assetsVersion: { version: '982281-fly' }, disqus: { shortname: 'zdnet-1', publicKey: 'y0Dp0T6itn9rbTvSf2xkzkhaUL7c5EJsmaWF3XYBqXNz8GHH7wSX1nXi4qzdihWV', sso: { name: 'ZDNet', authLoginUrl: '/disqus/sso/login/', authLogoutUrl: '/disqus/sso/logout/', button: 'https://web.archive.org/web/20210826133042/https://www.zdnet.com/a/fly/bundles/zdnetcss/images/logos/logo-32x32.jpg', icon: 'https://web.archive.org/web/20210826133042/https://www.zdnet.com/favicon.ico', loginUrl: '/?openLogin=1&redirect=https%3A//www.zdnet.com/disqus/login/', logoutUrl: '/user/logout/' } }, edition: { code: 'us' }, environment: 'prod', tracking: { enabled: true, data: {"isEnabled":true,"articleAuthorId":["b8bbed42-666a-452f-851a-53b974d52259"],"articleAuthorName":["aj dellinger"],"articleId":"e1658703-f6e3-4739-a035-21412d635fa5","articlePubDate":"2021-08-25 14:43:00","articleTitle":"best smart thermostat 2021: save energy efficiently","articleType":"content_article","collectionId":[],"collectionName":[],"deviceType":"desktop","isDev":"0","pageType":"article","siteHier":["hardware","networking","reviews","best lists","zdnet recommends"],"siteSection":"editorial","siteType":"responsive web","topicId":["10666ed8-ec91-11e3-95d2-02911863765e","10e2a445-ec91-11e3-95d2-02911863765e","112a7545-ec91-11e3-95d2-02911863765e","af36937c-c95c-4bf0-9c02-831f70ad9a0c","f1f7db06-c6f9-4e80-8187-60ad48f035a1"],"topicName":["hardware","networking","reviews","best lists","zdnet recommends"],"buyingCycle":"compare","siteId":2,"bkSiteId":3330,"limit":4,"articleSubType":"best-list","collectionSlug":[],"assetCompany":["google","amazon","apple","samsung","honeywell, inc.","microsoft"],"rsid":"cnetzdnetglobalsite","siteName":"zdnet","tealium":{"profile":"zdnet","env":"prod"}} }, pageType: 'article', services: {"ab_test":{"enabled":true},"audiencescience":{"enabled":true},"bidbarrel":{"enabled":true},"chartbeat_headline":{"enabled":false},"chartbeat_tracking":{"enabled":true},"comscore":{"enabled":true},"cohesion":{"enabled":true},"digioh":{"enabled":true},"disqus":{"enabled":true},"dw":{"enabled":true},"facebook":{"enabled":true},"facebookmarketing":{"enabled":true},"flickr":{"enabled":true},"gdpr":{"enabled":true},"giphy":{"enabled":true},"googlecsa":{"enabled":true},"googleima":{"enabled":true},"gpt":{"enabled":true},"google_maps":{"enabled":true},"heartbeat":{"enabled":true},"imgur":{"enabled":true},"indexexchange":{"enabled":true},"instagram":{"enabled":true},"medusa":{"enabled":true},"mpulse":{"enabled":true},"myfinance_top":{"enabled":true},"myfinance_bottom":{"enabled":true},"nielsen":{"enabled":true},"omniture":{"enabled":true},"one_trust":{"enabled":true},"preload_images":{"enabled":true},"preload_images_push":{"enabled":true},"qualtrics":{"enabled":true},"recaptcha":{"enabled":true},"scribd":{"enabled":true},"service_worker":{"enabled":true},"sitecatalyst":{"enabled":true},"skybox":{"enabled":true},"slideshare":{"enabled":true},"soundcloud":{"enabled":true},"sourcepoint":{"enabled":true},"tealium":{"enabled":true},"tealium_collect":{"enabled":true},"trackonomics":{"enabled":true},"true_anthem":{"enabled":true},"twitterwidget":{"enabled":true},"urban_airship":{"enabled":true},"video":{"enabled":true},"viglink":{"enabled":true},"vimeo":{"enabled":true},"youtube":{"enabled":true}}, user: { cookieDomain: '.zdnet.com', urls: { checkEmail: '/user/authentication/email/xhr/', forgot: '/user/authentication/forgot/xhr/', login: '/user/authentication/login/xhr/', modal: '/user/authentication/xhr/', register: '/user/authentication/register/xhr/', social: '/user/authentication/social/xhr/', userData: '/user/get-data/', userName: '/user/authentication/user-name/xhr/' } }, build: true, jsPageTypes: {"front_door":["front_door"],"article":["article","infographic","commerical","video_article","blog_post_sponsored","greatdebate"],"abstract":["abstract"],"image_gallery":["image_gallery"],"product_main":["product_main"],"topic_door":["topic_door"],"profile_pages":["profile_preferences","profile_community","profile_newsletters"],"video_door":["video_door"],"video_page":["video_page"]}, device: 'desktop', deviceOriginal: 'desktop', }; var soastaTracking = {"soastaBucket":"","soastaPageType":"article"}; if (typeof(Storage) !== 'undefined') { } </script> <script type="application/javascript"> var ZdnetFunctions = { /** Need a helper function since the native method isn't available in IE. */ endsWith: function(needle, haystack) { return haystack.indexOf(needle) === haystack.length - needle.length; }, /** Execute a function as a callback once GDPR consent is granted. TODO - See if we can update this method to prevent the stacking of callbacks. Specifically, if this is called on AJAX events, multiple instances of a single service call (like ad refresh) could be queued up and all fired at once when the user grants consent. Not currently an issue since we're assuming user consent by default, but that could change in the near future. */ gdprConsentCallback: function(id, callback, callbackArgs, category, onReady) { if ((window.ZdnetPageVars.services.gdpr && window.ZdnetPageVars.services.gdpr.enabled)) { // One trust is enabled setup the functions onReady = onReady || 'Scripts'; var opt = window.cbsoptanon['on'+onReady+'Ready']; window.ZdnetPageVars[id] = false; function oneTrustLog(message) { window.ZdnetFunctions.logWithLabel('%c One Trust ', message); } oneTrustLog("Added to "+ onReady +" Queue: " + id + ' ' + (category == null ? '' : category)); opt(function(_cbsoptanon, options) { //If we have categories we need to check if they are allowed if (category != null) { //Gets the current state of all categories var checkState = function () { _cbsoptanon.ot.getState(function (targeting, performance, functional, social) { var obj = { targeting: targeting, performance: performance, functional: functional, social: social }; var cat = category.toLowerCase(); if (obj[cat]) { oneTrustLog(cat + ' is allowed for ' + id); window.ZdnetPageVars[id] = true; callback.apply(this, [callbackArgs, _cbsoptanon, options]); } }); }; checkState(); _cbsoptanon.ot.addOnConsentChangedHandler(function() { if (window.ZdnetPageVars[id] !== true) { checkState(); } }); } else { //Just waiting for on ready fire callback oneTrustLog(onReady + " Ready: Loaded " + id); callback.apply(this, [callbackArgs, _cbsoptanon, options]); } }); } else { window.ZdnetFunctions.log("Service loading (One Trust disabled): " + id); callback.apply(this, callbackArgs); } }, /** Log to the console w/o exceptions thrown in IE. */ log: function(message) { if (window.console) { window.console.log(message); } }, /** Log with a label **/ logWithLabel: function(label, message) { if (window.console) { window.console.log(label, 'color:#000;border-radius:3px;background-color:hsl(161, 100%, 94%);', message); } }, /** Get the value of a cookie by name. */ getCookieValue: function(cookieName) { var cookieValue = window.document.cookie.match('(^|;)\\s*' + cookieName + '\\s*=\\s*([^;]+)'); return cookieValue ? cookieValue.pop() : null; }, /** Push Cohesion Tagular beam event. */ pushCohesionBeam: function(data) { if (window.ZdnetPageVars.services.cohesion && window.ZdnetPageVars.services.cohesion.enabled) { if ('function' === typeof window.tagular) { window.tagular('beam', data); } } }, /** Creates a tag with the specified attributes and body, then injects it after the injection point element. */ append_element: function(tagName, injectionPoint, attributes, body) { var element = document.createElement(tagName); for (var attribute in attributes) { var value = attributes[attribute]; if (false !== value && null != value && '' !== value) { element.setAttribute(attribute, attributes[attribute]); } } if (null != body) { element.innerHTML = body; } injectionPoint.parentNode.insertBefore(element, injectionPoint.nextSibling); }, /** Trigger a custom event on the specified element. */ trigger_event: function(element, eventName, payload) { var event; payload = payload || {}; if ('function' === typeof window.CustomEvent) { // Current W3C standard event = new CustomEvent(eventName, payload); element.dispatchEvent(event); } else if ('function' === typeof window.document.createEvent) { // Fallback for IE and really old browsers event = window.document.createEvent("Event"); event.initEvent(eventName, true, true); event.eventName = eventName; element.dispatchEvent(event); } } }; </script> <style type="text/css">.preampjs [data-preamp], .fusejs [data-fuse] {opacity: 0 !important}</style> <script type="text/javascript"> </script> <script type="text/plain" id="script_cohesion" class="optanon-category-2"> !function(co,h,e,s,i,o,n){var d='documentElement';var a='className';h[d][a]+=' preampjs fusejs'; n.k=e;co._Cohesion=n;co._Preamp={k:s,start:new Date};co._Fuse={k:i};co._Tagular={k:o}; [e,s,i,o].map(function(x){co[x]=co[x]||function(){(co[x].q=co[x].q||[]).push([].slice.call(arguments))}}); h.addEventListener('DOMContentLoaded',function(){co.setTimeout(function(){ var u=h[d][a];h[d][a]=u.replace(/ ?preampjs| ?fusejs/g,'')},3e3); co._Preamp.docReady=co._Fuse.docReady=!0});var z=h.createElement('script'); z.async=1;z.src='https://web.archive.org/web/20210826133042/https://cdn.cohesionapps.com/cohesion/cohesion-latest.min.js';h.head.appendChild(z);} (window,document,'cohesion','preamp','fuse','tagular',{ tagular:{writeKey:'wk_1kYsAdHsx1XVwT5EbX9OQYl4nJM', sourceKey:'src_1kYsAcdpfzbZ8UlNLYht1RPg3m2', apiVersion:'v2/t'} }) </script> <script type="text/plain" class="optanon-category-2"> window.ZdnetFunctions.logWithLabel('%c One Trust ', "Service loaded: script_cohesion with class optanon-category-2"); </script> <!-- Start of Soasta mPulse Script --> <script type="application/javascript"> (function(){ if (window.BOOMR && window.BOOMR.version) { return; } var dom, doc, where, iframe = document.createElement("iframe"), win = window; function boomerangSaveLoadTime(e) { win.BOOMR_onload=(e && e.timeStamp) || new Date().getTime(); } if (win.addEventListener) { win.addEventListener("load", boomerangSaveLoadTime, false); } else if (win.attachEvent) { win.attachEvent("onload", boomerangSaveLoadTime); } iframe.src = "javascript:void(0)"; iframe.title = ""; iframe.role = "presentation"; (iframe.frameElement || iframe).style.cssText = "width:0;height:0;border:0;display:none;"; where = document.getElementsByTagName("script")[0]; where.parentNode.insertBefore(iframe, where); try { doc = iframe.contentWindow.document; } catch(e) { dom = document.domain; iframe.src = "javascript:var d=document.open();d.domain='"+dom+"';void(0);"; doc = iframe.contentWindow.document; } doc.open()._l = function() { var js = this.createElement("script"); if (dom) { this.domain = dom; } js.id = "boomr-if-as"; js.src = "//web.archive.org/web/20210826133042/https://c.go-mpulse.net/boomerang/" + "YZ2TK-PC7PJ-K64DL-L53CR-P2G4E"; BOOMR_lstart = new Date().getTime(); this.body.appendChild(js); }; doc.write('<body onload="document._l();">'); doc.close(); })(); </script> <!-- End of Soasta mPulse Script --> <script type="application/javascript"> var _sf_async_config = _sf_async_config || {}; _sf_async_config.uid = 66142; _sf_async_config.domain = "zdnet.com"; _sf_async_config.flickerControl = false; _sf_async_config.useCanonical = true; _sf_async_config.autoDetect = false; _sf_async_config.sections = "hardware,zdnet recommends"; _sf_async_config.authors = "aj dellinger"; _sf_async_config.contentType = "content_article"; var _sf_startpt = (new Date()).getTime(); window._cbq = (window._cbq || []); </script> <script type="application/javascript"> </script> <script type="text/plain" id="script_sourcepoint" class="optanon-category-4"> (function() { window._sp_ = window._sp_ || {}; window._sp_.config = window._sp_.config || {}; window._sp_.config.account_id = 68; !function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,e),o.l=!0,o.exports}var n={};e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t["default"]}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=470)}([function(t,e,n){var r,o;!function(i){"use strict";var u={};u.VERSION="1.3.0";var a,c={},f=function(t,e){return function(){return e.apply(t,arguments)}},s=function(){var t,e,n=arguments,r=n[0];for(e=1;e<n.length;e++)for(t in n[e])t in r||!n[e].hasOwnProperty(t)||(r[t]=n[e][t]);return r},l=function(t,e){return{value:t,name:e}};u.DEBUG=l(1,"DEBUG"),u.INFO=l(2,"INFO"),u.TIME=l(3,"TIME"),u.WARN=l(4,"WARN"),u.ERROR=l(8,"ERROR"),u.OFF=l(99,"OFF");var p=function(t){this.context=t,this.setLevel(t.filterLevel),this.log=this.info};p.prototype={setLevel:function(t){t&&"value"in t&&(this.context.filterLevel=t)},enabledFor:function(t){var e=this.context.filterLevel;return t.value>=e.value},debug:function(){this.invoke(u.DEBUG,arguments)},info:function(){this.invoke(u.INFO,arguments)},warn:function(){this.invoke(u.WARN,arguments)},error:function(){this.invoke(u.ERROR,arguments)},time:function(t){"string"==typeof t&&t.length>0&&this.invoke(u.TIME,[t,"start"])},timeEnd:function(t){"string"==typeof t&&t.length>0&&this.invoke(u.TIME,[t,"end"])},invoke:function(t,e){a&&this.enabledFor(t)&&a(e,s({level:t},this.context))}};var h=new p({filterLevel:u.OFF});!function(){var t=u;t.enabledFor=f(h,h.enabledFor),t.debug=f(h,h.debug),t.time=f(h,h.time),t.timeEnd=f(h,h.timeEnd),t.info=f(h,h.info),t.warn=f(h,h.warn),t.error=f(h,h.error),t.log=t.info}(),u.setHandler=function(t){a=t},u.setLevel=function(t){h.setLevel(t);for(var e in c)c.hasOwnProperty(e)&&c[e].setLevel(t)},u.get=function(t){return c[t]||(c[t]=new p(s({name:t},h.context)))},u.createDefaultHandler=function(t){t=t||{},t.formatter=t.formatter||function(t,e){e.name&&t.unshift("["+e.name+"]")};var e={},n=function(t,e){Function.prototype.apply.call(t,console,e)};return"undefined"==typeof console?function(){}:function(r,o){r=Array.prototype.slice.call(r);var i,a=console.log;o.level===u.TIME?(i=(o.name?"["+o.name+"] ":"")+r[0],"start"===r[1]?console.time?console.time(i):e[i]=(new Date).getTime():console.timeEnd?console.timeEnd(i):n(a,[i+": "+((new Date).getTime()-e[i])+"ms"])):(o.level===u.WARN&&console.warn?a=console.warn:o.level===u.ERROR&&console.error?a=console.error:o.level===u.INFO&&console.info&&(a=console.info),t.formatter(r,o),n(a,r))}},u.useDefaults=function(t){u.setLevel(t&&t.defaultLevel||u.DEBUG),u.setHandler(u.createDefaultHandler(t))},r=u,void 0!==(o="function"==typeof r?r.call(e,n,e,t):r)&&(t.exports=o)}()},function(t,e,n){"use strict";function r(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function u(t){return t instanceof h}function a(t){return t instanceof d}function c(t){return t instanceof _}function f(t){return t instanceof y}function s(t){return t instanceof b}n.d(e,"w",function(){return v}),n.d(e,"v",function(){return m}),n.d(e,"t",function(){return g}),n.d(e,"u",function(){return E}),n.d(e,"s",function(){return O}),n.d(e,"r",function(){return T}),n.d(e,"p",function(){return S}),n.d(e,"q",function(){return R}),n.d(e,"i",function(){return k}),n.d(e,"j",function(){return N}),n.d(e,"h",function(){return j}),n.d(e,"k",function(){return C}),n.d(e,"g",function(){return x}),e.l=u,e.m=a,e.n=c,e.d=f,e.o=s,n.d(e,"b",function(){return I}),n.d(e,"c",function(){return M}),n.d(e,"f",function(){return U}),n.d(e,"a",function(){return K});var l=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),p=(n(0).get("detection:test_result:attribute:index"),function(){function t(e){i(this,t),this._str=e}return l(t,[{key:"is",value:function(t){return t.name()===this.name()&&t.toString()===this.toString()}},{key:"name",value:function(){return"at"}},{key:"toString",value:function(){return this._str}}]),t}());e.e=p;var h=function(t){function e(){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return o(e,t),l(e,[{key:"name",value:function(){return"tat"}}]),e}(p),d=function(t){function e(){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return o(e,t),l(e,[{key:"name",value:function(){return"teat"}}]),e}(p),_=function(t){function e(){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return o(e,t),l(e,[{key:"name",value:function(){return"rat"}}]),e}(p),y=function(t){function e(){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return o(e,t),l(e,[{key:"name",value:function(){return"reat"}}]),e}(p),b=function(t){function e(t,n){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t+"="+n))}return o(e,t),e}(p),v=function(t){function e(t){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,"url",t))}return o(e,t),e}(b),m=function(t){function e(t){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,"err",t.toString()))}return o(e,t),e}(b),g=function(t){function e(t){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,"st",t.toFixed()))}return o(e,t),e}(b),E=function(t){function e(t){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,"ts",t.toFixed(3)))}return o(e,t),e}(b),O=function(t){function e(t){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,"dom",t))}return o(e,t),e}(b),w=(function(t){function e(t){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,"ch",t.toString()))}o(e,t)}(b),function(t){function e(t,n){i(this,e);var o=t?"_"+t:"";return r(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,"sel"+o,n))}return o(e,t),e}(b)),T=function(t){function e(t){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,"",t))}return o(e,t),e}(w),S=function(t){function e(t){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,"br",t))}return o(e,t),e}(w),R=function(t){function e(t){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,"nc",t))}return o(e,t),e}(w),P=function(t){function e(t,n,o){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,"net_"+t,JSON.stringify({src:n,tag:o})))}return o(e,t),e}(b),k=function(t){function e(t,n){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,"ld",t,n))}return o(e,t),e}(P),N=function(t){function e(t,n){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,"err",t,n))}return o(e,t),e}(P),A=function(t){function e(t,n,o,u){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,"netr_"+t,JSON.stringify({rule:n,lds:o.map(function(t){return t.toString()}),errs:u.map(function(t){return t.toString()})})))}return o(e,t),e}(b),j=function(t){function e(t,n,o){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,"bl",t,n,o))}return o(e,t),e}(A),C=function(t){function e(t,n,o){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,"wl",t,n,o))}return o(e,t),e}(A),x=function(t){function e(t,n,o){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,"bkrl",JSON.stringify({name:t,bls:n.map(function(t){return t.toString()}),wls:o.map(function(t){return t.toString()})})))}return o(e,t),e}(b),I={},L={INTERFERENCE:"in",DFP_INTERFERENCE:"dfpi",ADBLOCKER:"ad",GENERIC_ADBLOCKER:"gad",STAND_DOWN:"sd",PRIVATE:"pr",RECOVERY_INTERFERENCE:"rin",FSM_DATA:"fda",ACCEPTABLE_AD:"aad"};for(var D in L)I[D]=new h(L[D]);var M={},B={INFERENCE:"inf",NETWORK:"ne",IMAGE:"im",SCRIPT:"sc",IFRAME:"if",ELEMENT:"el",ARTIFACT:"ar",STYLE_SHEET:"ss",STYLE_PROPERTY:"sp",INLINE_STYLE_SHEET:"iss",HIDDEN_PROPERTY:"hp",CUSTOM_PROPERTY:"cp",HIDING:"hi",USER_AGENT:"ua",BOT:"bo",PROXY_HOST:"ph",NATIVE_OVERRIDE:"no",FEATURE_ACCESS:"fa",AJAX:"aj",FSM:"fsm",NETWORK_LISTENER:"nel",HIDING_DATA:"hid"};for(var F in B)M[F]=new d(B[F]);var U={},H={NO_LOAD_BLOCK:"nlb",LOAD_BLOCK:"lb",ELEMENT_HIDDEN:"eh",CONTROL_ELEMENT_HIDDEN:"ceh",NO_ELEMENT_HIDDEN:"neh",URL_REWRITTEN:"ur",NO_URL_REWRITTEN:"nur",DATA_URL_REWRITTEN:"dur",NO_ARTIFACT_PRESENT:"nap",ARTIFACT_PRESENT:"ap",NO_STYLE_SHEET_PRESENT:"nssp",STYLE_SHEET_PRESENT:"ssp",NO_STYLE_PROPERTY_PRESENT:"nspp",STYLE_PROPERTY_PRESENT:"spp",NO_HIDDEN_PROPERTY_PRESENT:"nhpp",HIDDEN_PROPERTY_PRESENT:"hpp",NO_CUSTOM_PROPERTY_PRESENT:"ncpp",CUSTOM_PROPERTY_PRESENT:"cpp",TIMEOUT:"to",NO_BOT_USER_AGENT:"nbua",GOOGLE_BOT_USER_AGENT:"gbua",BING_BOT_USER_AGENT:"bbua",NO_PROXY_HOST:"nph",GOOGLE_WEBCACHE_PROXY_HOST:"gwph",NO_NATIVE_OVERRIDE:"nno",SHADOW_ROOT_NATIVE_OVERRIDE:"srno",REQUEST_FILE_SYSTEM_SUCCESS:"rfss",REQUEST_FILE_SYSTEM_ERROR:"rfse",NO_REQUEST_FILE_SYSTEM:"nrfs",INDEXED_DB_OPEN_SUCCESS:"idos",INDEXED_DB_OPEN_ERROR:"idoe",NO_INDEXED_DB:"nid",INDEXED_DB_EXISTS:"ide",LOCAL_STORAGE_SET_SUCCESS:"lsss",LOCAL_STORAGE_SET_ERROR:"lsse",NO_LOCAL_STORAGE:"nls",AJAX_LOAD_BLOCK:"alb",AJAX_LOAD_SUCCESS:"als",AJAX_LOAD_ERROR:"ale",AJAX_OPEN_BLOCK:"aob",AJAX_SEND_BLOCK:"asb",PROTOCOL_MISMATCH:"pm",EXA_BOT_USER_AGENT:"ebua",CANNOT_TEST:"cnt",GOOGLE_WEB_LIGHT_USER_AGENT:"gwl",NO_BLOCKER_RULES:"nbr",BROKEN_ELEMENT_HIDING_RULE:"behr",NO_ELEMENT_HIDING_RULES:"nehr",HIDE_MATCHING_BLACKLIST:"hmbl",NO_MATCHING_BLACKLIST:"nmbl",ERROR_MATCHING_BLACKLIST:"embl",LOAD_MATCHING_BLACKLIST:"lmbl",ERROR_MATCHING_WHITELIST:"emwl",LOAD_MATCHING_WHITELIST:"lmwl",NO_NETWORK_LISTENER_DATA:"nnld",NO_NETWORK_BLOCKING_RULES:"nnbr",HIDDEN_IMMEDIATELY:"hii",NONE_HIDDEN_IMMEDIATELY:"nhii",HIDDEN_LATER:"hil",NONE_HIDDEN_LATER:"nhil",OFFLINE:"off"};for(var G in H)U[G]=new _(H[G]);var K={},Y={ADBLOCK:"ab",ADBLOCK_PLUS:"abp",ADGUARD:"ag",UBLOCK:"ub",UBLOCK_ORIGIN:"ubo",NATIVE:"na",PRESENT:"pr",NOT_PRESENT:"npr",UNKNOWN_ADBLOCKER:"ua"};for(var W in Y)K[W]=new y(Y[W])},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];return new(Function.prototype.bind.apply(Error,[null].concat(["Uncaught in promise: "+(null==t?"":t.toString()+t.stack||"")],n)))}function i(t){return new s(function(e,n){t.then(function(t){e(t)},function(t){n(t)})})}Object.defineProperty(e,"__esModule",{value:!0});var u=n(27);n.d(e,"UtilPromise",function(){return s});var a=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),c=n(0).get("util:promise"),f=0,s=function(){function t(e){if(r(this,t),this._state=f,this._resolveCallbacks=[],this._rejectCallbacks=[],this._catchListenerAdded=!1,null!=e)try{e(this._resolve.bind(this),this._reject.bind(this))}catch(t){if(t.message&&t.message.match(/^Uncaught in promise: /))throw t;this._reject(t)}}return a(t,null,[{key:"resolve",value:function(e){return new t(function(t){t(e)})}},{key:"reject",value:function(e){return new t(function(t,n){return n(e)})}},{key:"all",value:function(e){var n=this;if(0===e.length)return t.resolve([]);var r=0,o=[];return new t(function(i,u){function a(t,n){o[t]=n,++r===e.length&&i(o)}e.forEach(function(e,r){t.resolve(e).then(a.bind(n,r),u)})})}},{key:"race",value:function(e){return 0===e.length?l:new t(function(t,n){e.forEach(function(e){e.then(t,n)})})}}]),a(t,[{key:"then",value:function(e,n){var r=this;return new t(function(t,o){r._then(function(n){return t(e(n))}),r._catch(function(e){null==n?o(e):t(n(e))})})}},{key:"catch",value:function(t){return this.then(function(t){return t},t)}},{key:"_resolve",value:function(e){if(this._state===f){var n=this._resolve.bind(this),r=this._reject.bind(this);e instanceof t?e.then(n,r):null!=e&&e instanceof Object&&e.then&&"function"==typeof e.then&&e["catch"]&&"function"==typeof e["catch"]?i(e).then(n,r):(this._state=1,this._result=e,this._resolveCallbacks.forEach(function(t){t(e)}),this._clearCallbacks())}}},{key:"_reject",value:function(t){var e=this;this._state===f&&(this._state=2,this._error=t,this._catchListenerAdded?c.debug("caught promise error",t):(c.error("uncaught promise error",t),setTimeout(function(){if(!e._catchListenerAdded)throw o(t)},0)),this._rejectCallbacks.forEach(function(e){e(t)}),this._clearCallbacks())}},{key:"_clearCallbacks",value:function(){this._resolveCallbacks=[],this._rejectCallbacks=[]}},{key:"_then",value:function(t){1===this._state?t(this._result):this._state===f&&this._resolveCallbacks.push(t)}},{key:"_catch",value:function(t){this._catchListenerAdded=!0,2===this._state?t(this._error):this._state===f&&this._rejectCallbacks.push(t)}}]),t}(),l=s.resolve(null),p=n.i(u.a)(window.Promise)?window.Promise:s;e["default"]=p},function(t,e,n){"use strict";function r(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var u=n(93),a=n.n(u),c=n(2),f=n(1);n.d(e,"a",function(){return _});var s=function t(e,n,r){null===e&&(e=Function.prototype);var o=Object.getOwnPropertyDescriptor(e,n);if(void 0===o){var i=Object.getPrototypeOf(e);return null===i?void 0:t(i,n,r)}if("value"in o)return o.value;var u=o.get;if(void 0!==u)return u.call(r)},l=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),p=(n(0).get("detection:test"),new Error("not implemented")),h=function(){function t(){var e=this;i(this,t),this.runPromise=new c["default"](function(t){e.resolve=a()(t.bind(e.runPromise))})}return l(t,null,[{key:"getSchema",value:function(){throw p}},{key:"testMethod",value:function(){throw p}},{key:"has",value:function(){var t;return(t=this.getSchema()).has.apply(t,arguments)}}]),l(t,[{key:"waitForResult",value:function(){return this.runPromise}},{key:"timeout",value:function(){return this.resolve(this.constructor.getSchema().createResult(f.a.NOT_PRESENT,f.f.TIMEOUT)),this.runPromise}}]),t}(),d=function(t){function e(){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return o(e,t),l(e,[{key:"run",value:function(){var t,e=this;return c["default"].resolve((t=this.constructor).testMethod.apply(t,arguments)).then(function(t){return e.resolve(t),e.runPromise})}}],[{key:"testMethod",value:function(){throw p}},{key:"bindArgs",value:function(){for(var t=arguments.length,e=Array(t),n=0;n<t;n++)e[n]=arguments[n];return function(t){function n(){return i(this,n),r(this,(n.__proto__||Object.getPrototypeOf(n)).apply(this,arguments))}return o(n,t),l(n,null,[{key:"testMethod",value:function(){for(var t=arguments.length,r=Array(t),o=0;o<t;o++)r[o]=arguments[o];return s(n.__proto__||Object.getPrototypeOf(n),"testMethod",this).apply(this,e.concat(r))}}]),n}(this)}}]),e}(h);e.b=d;var _=function(t){function e(){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return o(e,t),l(e,[{key:"run",value:function(t){for(var e,n=this,r=arguments.length,o=Array(r>1?r-1:0),i=1;i<r;i++)o[i-1]=arguments[i];return c["default"].resolve((e=this.constructor).testMethod.apply(e,[t].concat(o))).then(function(t){return n.resolve(t),n.runPromise})}}],[{key:"findDependency",value:function(){throw p}},{key:"bindArgs",value:function(){for(var t=arguments.length,e=Array(t),n=0;n<t;n++)e[n]=arguments[n];return function(t){function n(){return i(this,n),r(this,(n.__proto__||Object.getPrototypeOf(n)).apply(this,arguments))}return o(n,t),l(n,null,[{key:"testMethod",value:function(t){for(var r,o=arguments.length,i=Array(o>1?o-1:0),u=1;u<o;u++)i[u-1]=arguments[u];return(r=s(n.__proto__||Object.getPrototypeOf(n),"testMethod",this)).call.apply(r,[this,t].concat(e,i))}}]),n}(this)}}]),e}(h)},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=n(290),a=n(129),c=n(128),f=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),s=(n(0).get("detection:test_result:schema"),function(t){function e(){var t;r(this,e);for(var i=arguments.length,u=Array(i),a=0;a<i;a++)u[a]=arguments[a];var f=o(this,(t=e.__proto__||Object.getPrototypeOf(e)).call.apply(t,[this].concat(u))),s=n.i(c.a)(f.attributes);if(0===s.types.length||0===s.tests.length)throw new Error("missing required types or tests from schema");return f}return i(e,t),f(e,[{key:"createResult",value:function(){for(var t=arguments.length,e=Array(t),n=0;n<t;n++)e[n]=arguments[n];return new(Function.prototype.bind.apply(u.a,[null].concat([this.attributes],e)))}},{key:"addAttribute",value:function(){for(var t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];return new(Function.prototype.bind.apply(e,[null].concat([this.attributes],n)))}},{key:"removeAttribute",value:function(){for(var t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];var o=new(Function.prototype.bind.apply(a.a,[null].concat(n)));return new e(this.attributes.filter(function(t){return!o.attributes.some(function(e){return e.is(t)})}))}}]),e}(a.a));e.a=s},function(t,e,n){"use strict";function r(){if(!window._sp_||!window._sp_.config)throw new Error("_sp_.config is not defined");window._sp_.config.hasBeenRead||(n.i(O.a)(["config","hasBeenRead"],!0),n.i(O.a)(["config","has_been_read"],!0)),o.apply(void 0,arguments),a(M)}function o(){D=window._sp_.config;for(var t=arguments.length,e=Array(t),n=0;n<t;n++)e[n]=arguments[n];M=i(e),u(M)}function i(t){return t.reduce(function(t,e){return b()(t,e),t},{})}function u(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:D,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];Object.keys(e).forEach(function(r){var o=n.concat(r).join(".");if(t[r]){var i=l(e[r],t[r]);if(t[r].type!==(void 0===i?"undefined":T(i)))throw new Error("invalid value: '"+JSON.stringify(i)+"' for option: '"+o+"' expected: '"+t[r].type+"'");if(t[r].validation&&!t[r].validation(i)){var a=t[r].validationMessage||"";throw new Error("invalid value: '"+JSON.stringify(i)+"' for option: '"+o+"' "+a)}t[r].keys&&u(t[r].keys,i,n.concat(r))}}),Object.keys(t).forEach(function(e){var r=n.concat(e).join(".");if(t[e].required&&!D.hasOwnProperty(e)){if(t[e].mapQueryParam){if(null!=s(t[e],n.concat(e)))return}throw new Error("required option: '"+r+"' not specified in config")}})}function a(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:D,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];Object.keys(e).forEach(function(r){var o=n.concat(r).join(".");if(!t.hasOwnProperty(r))throw new Error("invalid option: '"+o+"' valid keys are: '"+JSON.stringify(Object.keys(t).map(function(t){return n.concat(t).join(".")}))+"'");t[r].keys&&a(t[r].keys,e[r],n.concat(r))})}function c(t){return"config value: "+JSON.stringify([].concat(t))+" does not exist in spec"}function f(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:D,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:M,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],o=void 0,i=[];if(Array.isArray(t)?(o=t[0],i=t.slice(1)):o=t,!n)throw new Error('config value: "'+o+'" fetched before initialization');if(!n[o])throw new Error(c(r.concat(t)));var u=void 0;e&&e.hasOwnProperty(o)&&(u=e[o]);var a=n[o],p=a.keys;if(i.length>0)return f(i,u,p,r.concat(o));if(p){var h={};for(var d in p)h[d]=f(d,u,p,r.concat(o));return h}if(a.mapQueryParam){var _=s(a,r.concat(o));if(null!=_)return _}if(void 0!==u)return l(u,a);var y=a.fallback?a.fallback():null;return null!=y?l(y,a):l(a["default"],a)}function s(t,e){var r=e.join("_"),o=n.i(E.a)("_sp_"+r);if(o){var i=t.mapQueryParam(o);if(void 0!==i)return l(i,t)}}function l(t,e){return e.mapConfigParam?e.mapConfigParam(t):t}function p(t){var e=void 0;try{e=f(t)}catch(e){if(e.message.indexOf(c(t))>-1)return!1;throw e}return void 0!==e}function h(){return Object.keys(M)}function d(){for(var t=arguments.length,e=Array(t),n=0;n<t;n++)e[n]=arguments[n];var r=e.reduce(function(t,e){return Object.keys(e).forEach(function(n){t[n]=f(n,D,e)}),t},{});return JSON.stringify(r)}function _(t){D=JSON.parse(t);for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];M=i(n)}Object.defineProperty(e,"__esModule",{value:!0});var y=n(205),b=n.n(y),v=n(106),m=n.n(v),g=n(142),E=n(87),O=n(11),w=n(31),T="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},S=(n(0).get("config:client_api"),"boolean"),R="string",P="object",k={hasBeenRead:{type:S,"default":!1},has_been_read:{type:S,"default":!1},accountId:{type:"number",required:!0,mapQueryParam:function(t){return parseInt(t,10)}},siteId:{type:"number"},siteHref:{type:R,mapQueryParam:function(t){return t},"default":window.location.href},clientId:{type:R},writeFirstPartyCookies:{type:S,"default":!1,mapQueryParam:function(t){if("true"===t)return!0}},cmd:{type:P,"default":[],validation:function(t){return Array.isArray(t)},validationMessage:"must be an array"},debug:{type:P,keys:{level:{type:R,"default":"OFF",mapQueryParam:function(t){return t},mapConfigParam:function(t){return t.toUpperCase()},validation:function(t){return"string"==typeof t&&g.a.indexOf(t)>-1},validationMessage:"expected one of "+g.a.join(",")}}},beacon:{type:P,keys:{pageViewEndpoint:{type:R,fallback:function(){return w.d}},contentControlEndpoint:{type:R,fallback:function(){return w.e}},customEntries:{type:P,validation:function(t){return Array.isArray(t)&&t.length<=3&&t.every(function(t){return"string"==typeof t})},validationMessage:"expected an array of at most 3 string values"}}},bootstrap:{type:P,keys:{contentControlCallback:{type:"function","default":function(){}}}},detection:{type:P,keys:{timeout:{type:"number","default":null},runNetworkBlockerTests:{type:S,"default":!0},useNetworkBlockerTests:{type:S,"default":!1},useDFPNetworkBlockerTests:{type:S,"default":!1},useGenericContentBlockerTests:{type:S,"default":!0},useSpecificContentBlockerTests:{type:S,"default":!0},internal:{type:P,keys:{useNetworkBlockerTests:{type:S,"default":!1},useDFPNetworkBlockerTests:{type:S,"default":!1},useGenericContentBlockerTests:{type:S,"default":!0},useSpecificContentBlockerTests:{type:S,"default":!0}}},fsm:{type:P,keys:{enable:{type:S,"default":!1,mapQueryParam:function(t){if("true"===t)return!0}},endpoint:{type:R,fallback:function(){return w.f}},enableNetwork:{type:S,"default":!1,mapQueryParam:function(t){if("true"===t)return!0}}}},exposeSpecificContentBlockerData:{type:S,"default":!1}}},dfp:{type:P,keys:{targetingKey:{type:R,"default":"sp.block"}}},events:{type:P,keys:{onDetectionComplete:{type:"function","default":function(){}}}},rid:{type:P,keys:{enable:{type:S,fallback:function(){return f(["rid","enableForgivenessCookie"])},"default":!1},enableForgivenessCookie:{type:S,"default":!1},contentControlCallback:{type:"function","default":function(){}}}},siteCssLocation:{type:R},disableBlockerStyleSheets:{type:S,"default":!0},vid:{type:P,keys:{enable:{type:S,fallback:function(){return f(["vid","enableInIFrame"])||f(["vid","enableGeneric"])},"default":!1},enableInIFrame:{type:S,"default":!1},enableGeneric:{type:S,"default":!1},contentControlCallback:{type:"function","default":function(){}}}},runImmediately:{type:S,"default":!1}},N={events:{type:P,keys:{onReceiveMessageData:{type:"function",fallback:function(){return f(["msg","clientDataCallback"])}},onMessageChoiceSelect:{type:"function",fallback:function(){return f(["msg","selectChoiceCallback"])}}}},cmp:{type:P,keys:{enable:{type:S,"default":!1,fallback:function(){return f(["cmp","enabled"])}},enabled:{type:S,"default":!1},waitForConsentData:{type:S,"default":!1,mapQueryParam:function(t){if("true"===t)return!0}},origin:{type:R,"default":"https://web.archive.org/web/20210826133042/https://sourcepoint.mgr.consensu.org",mapQueryParam:function(t){return t}},inApp:{type:S,"default":!1,mapQueryParam:function(t){if("true"===t)return!0}}}},msg:{type:P,keys:{stageCampaign:{type:S,mapQueryParam:function(t){return"true"===t||"false"!==t&&void 0}},zIndex:{type:"number","default":1e4},domain:{type:R,"default":"",mapQueryParam:function(t){return t}},clientDataCallback:{type:"function"},selectChoiceCallback:{type:"function"},loadData:{type:S,"default":!1,fallback:function(){return f(["cmp","enable"])}},targetingParams:{type:P,mapQueryParam:function(t){return JSON.parse(t)},"default":{}}}},vid:{type:P,keys:{enable:{fallback:null,"default":!0}}}},A={smart:{type:P,keys:{libURL:{type:R},targetingKey:{type:R,"default":"sp_block"}}}},j={publisherBase:{type:R,required:!0},events:{type:P,keys:{onReadyToReloadAdLibrary:{type:"function","default":function(){}}}}},C={accountId:{type:"number",required:!1,fallback:function(){return f("clientId")}}},x={publisherBase:j.publisherBase,accountId:k.accountId,debug:m()(k.debug,["type","keys.level"]),vid:m()(k.vid,["type","keys.enableInIFrame"])},I={BASE:k,SMART:A,RECOVERY_LIB_API_IFRAME:x,MESSAGING:N,PROXY:j,ANALYTICS:C},L={init:r,internalInit:o,get:f,has:p,availableConfigKeys:h,serialize:d,initFromSerialized:_,specs:I},D=void 0,M=void 0;e["default"]=L},function(t,e,n){function r(t){if(!t)return[];if(a(t))return c(t)?p(t):i(t);if(y&&t[y])return f(t[y]());var e=u(t);return(e==d?s:e==_?l:h)(t)}var o=n(111),i=n(56),u=n(70),a=n(38),c=n(215),f=n(212),s=n(213),l=n(104),p=n(114),h=n(117),d="[object Map]",_="[object Set]",y=o?o.iterator:void 0;t.exports=r},function(t,e,n){"use strict";n.d(e,"b",function(){return r}),n.d(e,"a",function(){return o}),n.d(e,"k",function(){return i}),n.d(e,"j",function(){return u}),n.d(e,"i",function(){return a}),n.d(e,"h",function(){return c}),n.d(e,"c",function(){return f}),n.d(e,"d",function(){return s}),n.d(e,"e",function(){return l}),n.d(e,"f",function(){return p}),n.d(e,"g",function(){return h});var r=(n(0).get("util:dom:get_elements_from_selector:selector_text_matchers"),/^([a-zA-Z0-9\-_]|\\.)+/),o=/^( *\+ *| *~ *| *> *| +)/,i=/^ *> */,u=/^ +/,a=/^ *\+ */,c=/^ *~ */,f=/^\*/,s=/^[#.[:]/,l=/^([~^$*]?=|])/,p=/.*?[^\\](\\\\)*]/,h=/^['"]?(.*?)['"]?( i)?]$/},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function u(t){var e=[];try{e=T()(O()(t.ownerDocument.querySelectorAll("::shadow link, ::shadow style")).map(function(t){return t.sheet}))}catch(t){}return e}function a(t,e,r){return p()(t.filter(function(t){return!(t.ownerNode&&t.ownerNode.disabled)}).map(function(t){return n.i(R.a)(t)})).filter(function(t){var o=n.i(k.b)(t.selectorText),i=!1;try{i=n.i(P.a)(e,o)}catch(t){}return(c(t.style)||f(t.style))&&i&&(null==r||o.indexOf(r.trim())>-1)})}function c(t){return"none"===t.getPropertyValue("display")}function f(t){return(t.getPropertyValue("-moz-binding")||"").indexOf("abp-elemhide")>-1}function s(t,e){var n=e.hasAttribute("style"),r=e.getAttribute("style");e.style.setProperty("display","block","important");var o=t.getComputedStyle(e).display;if(n&&null!=r)e.setAttribute("style",r);else{var i=e.attributes.getNamedItem("style");i&&e.removeAttributeNode(i),e.removeAttribute("style")}return"none"===o}var l=n(20),p=n.n(l),h=n(170),d=n.n(h),_=n(57),y=n.n(_),b=n(75),v=n.n(b),m=n(344),g=n.n(m),E=n(6),O=n.n(E),w=n(86),T=n.n(w),S=n(54),R=n(62),P=n(118),k=n(159),N=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),A=(n(0).get("detection:test_result:attribute:data:element_hiding"),function(t){function e(t){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t))}return i(e,t),N(e,null,[{key:"fromStyleSheets",value:function(t){var n=t.documentSheets,r=t.shadowSheets;return new e(new j({documentSheets:n,shadowSheets:r}))}},{key:"fromElement",value:function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=r.selector,i=r.documentSheets,l=void 0===i?T()(O()(t.ownerDocument.querySelectorAll("link, style")).map(function(t){return t.sheet})):i,p=r.shadowSheets,h=void 0===p?u(t):p,d=r.hiddenImmediately,_=t.ownerDocument.defaultView,y={hasNone:c(t.style),hasImportant:"important"===t.style.getPropertyPriority("display")},b={hasDisplayNoneImportant:s(_,t)},m=_.getComputedStyle(t),E=f(m),w=null!=t.shadowRoot,S=t.hidden,R=["id","class","hidden","disabled","style"],P=g()(t.attributes,function(t){return-1===R.indexOf(t.name)&&""===t.value}),N=P.map(function(t){var e=_.document.createElement("div");return e.hidden=!0,e.setAttribute(t.name,""),e.style.setProperty("display","block"),_.document.body.appendChild(e),e}),A=null;N.forEach(function(t,e){if(null==A){var n=_.getComputedStyle(t);n&&"none"===n.display&&(A=P[e].name)}}),N.forEach(function(t){t.parentElement&&t.parentElement.removeChild(t)});var C=null;null!=o&&(C=n.i(k.a)(o,t.ownerDocument)||o);var x=a(l,t,C),I=a(h,t,C),L=v()(T()(x.map(function(t){return t.parentStyleSheet}))),D=v()(T()(I.map(function(t){return t.parentStyleSheet}))),M=x.concat(I);return new e(new j({inlineDisplay:y,inlineStyleSheet:b,hiddenImmediately:d,hasHiddenAttribute:S,hidingId:A,hasShadowRoot:w,hasMozBinding:E,documentSheets:L,shadowSheets:D,hidingCSSRules:M}))}}]),N(e,[{key:"is",value:function(t){if(t instanceof e){var n=t,r=this.getValue(),o=n.getValue();if(r instanceof j&&o instanceof j)return r.is(o)}return!1}}]),e}(S.a));e.a=A;var j=function(){function t(e){var n=e.documentSheets,o=void 0===n?[]:n,i=e.shadowSheets,u=void 0===i?[]:i,a=e.hidingCSSRules,c=void 0===a?[]:a,f=e.inlineDisplay,s=void 0===f?{hasNone:!1,hasImportant:!1}:f,l=e.inlineStyleSheet,p=void 0===l?{hasDisplayNoneImportant:!1}:l,h=e.hiddenImmediately,d=e.hasHiddenAttribute,_=void 0!==d&&d,b=e.hidingId,v=e.hasMozBinding,m=void 0!==v&&v,g=e.hasShadowRoot,E=void 0!==g&&g;r(this,t),this.documentSheets=o,this.shadowSheets=u,this.hidingCSSRules=c,this.inlineDisplay=y()({},s),this.inlineStyleSheet=y()({},p),this.hiddenImmediately=h,this.hasHiddenAttribute=_,this.hidingId=null,null!=b&&(this.hidingId=b),this.hasMozBinding=m,this.hasShadowRoot=E}return N(t,[{key:"is",value:function(t){return d()(this,t)}}]),t}()},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var o=n(2);n.d(e,"b",function(){return a});var i=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),u=(n(0).get("detection:artifact:finder_record"),function(){function t(e,n,o){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];r(this,t),this._type=e,this._foundAdblocker=n,this._elementMatchMethod=o,this._adblockerStyleSheets=i}return i(t,[{key:"type",value:function(){return this._type}},{key:"foundAdblocker",value:function(){return this._foundAdblocker}},{key:"findElementMatches",value:function(){if(this._foundAdblocker&&this._elementMatchMethod)return o["default"].resolve(this._elementMatchMethod.apply(this,arguments));throw new Error("no adblocker or element match method")}},{key:"supportsElementMatching",value:function(){return null!=this._elementMatchMethod}},{key:"getAdblockerStyleSheets",value:function(){return this._adblockerStyleSheets}}]),t}());e.a=u;var a={ADBLOCK:"adblock",ADBLOCK_PLUS:"adblock_plus",ADGUARD:"adguard",UBLOCK:"ublock",UBLOCK_ORIGIN:"ublock_origin",OPERA:"opera"}},function(t,e){var n=Array.isArray;t.exports=n},function(t,e,n){"use strict";function r(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:window._sp_,r=[].concat(t),o=r.pop();r.reduce(function(t,e){return t[e]=t[e]||{},t[e]},n)[o]=e}e.a=r;n(0).get("life_cycle:util:set_sp_key")},function(t,e,n){"use strict";function r(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var u=n(132),a=n(2);n.d(e,"a",function(){return l}),n.d(e,"f",function(){return p}),n.d(e,"d",function(){return h}),n.d(e,"b",function(){return d}),n.d(e,"c",function(){return _}),n.d(e,"e",function(){return y});var c=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),f=(n(0).get("life_cycle:feature"),function(){function t(){i(this,t),this.eventMap={},this.startPromise=a["default"].resolve(!0),this.resolutionPromise=a["default"].resolve(!0)}return c(t,[{key:"on",value:function(t,e){this.eventMap[t]=this.eventMap[t]||[],this.eventMap[t].push(e)}},{key:"emit",value:function(t){var e=this;(this.eventMap[t]||[]).forEach(function(t){return t.call(e)})}}]),t}()),s=new u.a(function(t){return function(t){function e(t){i(this,e);var n=r(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return n.detection=t,n}return o(e,t),e}(t)}),l=new u.a,p=new u.a,h=function(t){function e(){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return o(e,t),e}(f),d=function(t){function e(){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return o(e,t),e}(s.to(f)),_=function(t){function e(){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return o(e,t),e}(s.to(f)),y=function(t){function e(){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return o(e,t),e}(s.to(f))},function(t,e){function n(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}t.exports=n},function(t,e,n){function r(t){return(null==t?0:t.length)?o(t,i):[]}var o=n(84),i=1/0;t.exports=r},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){return"string"==typeof e?"_sp_"+e:"number"==typeof e?e.toString():"boolean"==typeof e?String(e):null==e?String(e):e[t]||null}var i=n(27),u=function(){function t(t,e){var n=[],r=!0,o=!1,i=void 0;try{for(var u,a=t[Symbol.iterator]();!(r=(u=a.next()).done)&&(n.push(u.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{!r&&a["return"]&&a["return"]()}finally{if(o)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),a=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),c=(n(0).get("util:map"),function(){function t(){r(this,t),this._guid="_sp_map_key_"+Math.random().toString(),this._insertionCount=0,this.clear()}return a(t,[{key:"clear",value:function(){this._data={},this.size=0}},{key:"set",value:function(t,e){this.has(t)||(this.size++,this._insertionCount++);var n=o(this._guid,t);null==n&&(n="o_sp_"+this._insertionCount,Object.defineProperty(t,this._guid,{enumerable:!1,configurable:!0,writable:!0,value:n}));var r=this._data[n]?this._data[n][2]:this._insertionCount;this._data[n]=[t,e,r]}},{key:"has",value:function(t){return null!=this._getKeyIfInMap(t)}},{key:"get",value:function(t){var e=this._getKeyIfInMap(t);if(null!=e)return this._data[e][1]}},{key:"delete",value:function(t){var e=this._getKeyIfInMap(t);return null!=e&&(this.size--,delete this._data[e],!0)}},{key:"forEach",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,r=Object.keys(this._data);r.sort(function(t,n){return e._data[t][2]-e._data[n][2]}),r.forEach(function(r){var o=u(e._data[r],2),i=o[0],a=o[1];t.call(n,a,i)})}},{key:"_getKeyIfInMap",value:function(t){var e=o(this._guid,t);return null==e?null:e in this._data?e:null}}]),t}());e.a=n.i(i.a)(window.Map)?window.Map:c},function(t,e,n){function r(t,e,n,r){var u=!n;n||(n={});for(var a=-1,c=e.length;++a<c;){var f=e[a],s=r?r(n[f],t[f],f,n,t):void 0;void 0===s&&(s=t[f]),u?i(n,f,s):o(n,f,s)}return n}var o=n(35),i=n(28);t.exports=r},function(t,e,n){"use strict";function r(t,e,n){return new s.a(e,n.length>0,o.bind(null,t,n),n)}function o(t,e){for(var r=arguments.length,o=Array(r>2?r-2:0),u=2;u<r;u++)o[u-2]=arguments[u];return f()(e.map(function(e){return n.i(p.a)(e).map(function(e){var n=e.selectorText,r=n.replace(/::content/g,""),u=t.querySelectorAll(r);return a()(u).filter(function(t){return o.some(function(e){return e.contains(t)||t.contains(e)})}).map(function(e){var n=i(t,r,e);return new l.a(l.b.STYLE,e,n)})})}))}function i(t,e,n){return e.replace(/(\[[^\]]*),/g,"$1"+h).split(",").map(function(t){return t.trim().replace(h,",")}).filter(function(e){return a()(t.querySelectorAll(e)).some(function(t){return t===n})}).join(",")}var u=n(6),a=n.n(u),c=n(14),f=n.n(c),s=n(9),l=n(60),p=n(62);e.b=r,e.a=o;var h=(n(0).get("detection:artifact:get_cosmetic_finder_record"),"__SP__COMMA_PLACEHOLDER")},function(t,e,n){"use strict";function r(t,e){return i(t.querySelectorAll("style,link"),e)}function o(t,e){return i(t.querySelectorAll("::shadow style,::shadow link"),e)}function i(t,e){return f()(t).map(function(t){return t.sheet}).filter(function(t){return a(t,e)})}function u(t,e){return t.some(function(t){return n.i(s.a)(t).some(e)})}function a(t,e){if(!t)return!1;var r=void 0;try{r=n.i(s.a)(t)}catch(t){return!1}return!(!r||0===r.length)&&r.every(e)}var c=n(6),f=n.n(c),s=n(62);n.d(e,"b",function(){return l}),e.a=r,e.d=o,e.c=u;var l=(n(0).get("detection:artifact:get_sheets_with_rules"),{ONLY_DISPLAY_NONE:/{\s*display:\s*none\s*!\s*important;\s*}/,ROOT:/:root/,DISPLAY_NONE_AND_ORPHAN:/display\s*:\s*none\s*!\s*important.*orphans\s*:\s*4321/})},function(t,e,n){"use strict";function r(t){return o.indexOf(t)>-1}var o=(n(0).get("util:ua_detection"),(navigator.userAgent||navigator.vendor||window.opera).toLowerCase()),i={chrome:function(){return r("chrome")&&!i.edge()&&!i.android_chrome()&&!i.opera()},phantom:function(){return r("phantom")},mobile:function(){return r("mobi")},android:function(){return r("android")},firefox:function(){return r("firefox")},safari:function(){return r("safari")&&r("mozilla")&&!i.edge()&&!i.chrome()&&!i.mobile()&&!i.mobile_safari()&&!i.opera()&&!i.phantom()},ie:function(){return r("trident")||r("msie")},edge:function(){return r("edge")},ipad:function(){return r("ipad")},mobile_safari:function(){return null!==o.match(/(ipod|iphone|ipad)/gi)&&null!==o.match(/AppleWebKit/gi)&&!r("crios")},android_chrome:function(){return r("chrome")&&r("android")},googlebot:function(){return r("googlebot")||r("adsbot-google")||r("mediapartners-google")},googleweblight:function(){return r("googleweblight")},bingbot:function(){return r("bingbot")||r("bingpreview")},exabot:function(){return r("exabot")},opera:function(){return r("opera")||r("opr/")},contains:r};e.a=i},function(t,e,n){function r(t){return(null==t?0:t.length)?o(t,1):[]}var o=n(84);t.exports=r},function(t,e,n){function r(t,e){return o(t)?t:i(t,e)?[t]:u(a(t))}var o=n(10),i=n(195),u=n(202),a=n(46);t.exports=r},function(t,e,n){"use strict";function r(t){return("div"===t.tagName.toLowerCase()||"img"===t.tagName.toLowerCase()||"iframe"===t.tagName.toLowerCase())&&(!!o(t)||i(t))}function o(t){return 0===t.clientHeight||0===t.offsetHeight||0===t.offsetWidth||0===t.clientWidth}function i(t){if(window.getComputedStyle){var e=window.getComputedStyle(t,null);if("none"===e.getPropertyValue("display")||"hidden"===e.getPropertyValue("visibility"))return!0}return!1}function u(t){return a([t])[0]}function a(t){return t.map(function(t){var e=document.createElement("div");return Object.defineProperty(e,"_sp_isMarker",{writable:!1,configurable:!0,enumerable:!1,value:!0}),e.style.height="2px",e.style.width="2px",e.style.position="absolute",e.style.top="-9999px",e.style.left="-9999px",t.appendChild(e),[t,e]}).map(function(t){var e=f(t,2),n=e[0],r=e[1],i=o(r);return r.parentElement&&r.parentElement.removeChild(r),!(o(n)&&i)})}function c(t){return t.hasOwnProperty("_sp_isMarker")}e.b=o,e.c=a,e.a=c;var f=function(){function t(t,e){var n=[],r=!0,o=!1,i=void 0;try{for(var u,a=t[Symbol.iterator]();!(r=(u=a.next()).done)&&(n.push(u.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{!r&&a["return"]&&a["return"]()}finally{if(o)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}();n(0).get("util:dom:element_hidden");r.elementIsCollapsed=o,r.elementIsDisplayable=u,r.batchedElementIsDisplayable=a,r.isMarkerElement=c},function(t,e,n){"use strict";function r(t,e){return s()(t,e)}function o(t){return c()(t,u).join("")}function i(){return o(r(arguments.length>0&&void 0!==arguments[0]?arguments[0]:5,arguments.length>1&&void 0!==arguments[1]?arguments[1]:25))}function u(){return String.fromCharCode(r(97,122))}var a=n(123),c=n.n(a),f=n(231),s=n.n(f);e.a=r,e.b=i;n(0).get("util:random_generators")},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=n(80),a=(n(0).get("util:dom:get_elements_from_selector:consumers:attribute_consumer:element_attribute_modification_record"),function(t){function e(t,n){r(this,e);var i=o(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return i.key=t,i.value=n,i}return i(e,t),e}(u.a));e.a=a},function(t,e,n){var r=n(53),o=r(Object.keys,Object);t.exports=o},function(t,e,n){var r=n(135),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();t.exports=i},function(t,e,n){"use strict";function r(t){try{return i()(t)}catch(t){return!1}}var o=n(171),i=n.n(o);e.a=r;n(0).get("util:is_native")},function(t,e,n){function r(t,e,n){"__proto__"==e&&o?o(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}var o=n(162);t.exports=r},function(t,e,n){function r(t){if(!i(t))return!1;var e=o(t);return e==a||e==c||e==u||e==f}var o=n(47),i=n(13),u="[object AsyncFunction]",a="[object Function]",c="[object GeneratorFunction]",f="[object Proxy]";t.exports=r},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t){var e=t.match(/\?(.*)/);return null==e?new i.a:e[1].trim().split("&").reduce(function(t,e){var n=e.indexOf("=");if(-1===n)return t.set(e,""),t;var r=e.substring(0,n),o=e.substring(n+1);return t.set(r,o),t},new i.a)}var i=n(15),u=n(110),a=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),c=(n(0).get("util:url"),function(){function t(e){r(this,t),this._parser=window.document.createElement("a"),this._parser.href=e,this._searchParams=o(this._parser.search)}return a(t,[{key:"_formatPathname",value:function(t){return"/"===t[0]?t:"/"+t}},{key:"toString",value:function(){var t=this.port?":"+this.port:"";return this.protocol+"//"+this.hostname+t+this.pathname+this.search+this.hash}},{key:"getSearchParam",value:function(t){var e=this._searchParams.get(encodeURIComponent(t));return null==e?e:decodeURIComponent(e)}},{key:"setSearchParam",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return this._searchParams.set(encodeURIComponent(t),encodeURIComponent(e))}},{key:"deleteSearchParam",value:function(t){return this._searchParams["delete"](encodeURIComponent(t))}},{key:"forEachSearchParam",value:function(t){return this._searchParams.forEach(function(e,n){t(decodeURIComponent(e),decodeURIComponent(n))})}},{key:"protocol",get:function(){return this._parser.protocol||window.location.protocol},set:function(t){return this._parser.protocol=t}},{key:"hostname",get:function(){return this._parser.hostname},set:function(t){return this._parser.hostname=t}},{key:"port",get:function(){return"21"===this._parser.port||"80"===this._parser.port||"443"===this._parser.port?"":this._parser.port},set:function(t){return this._parser.port=t}},{key:"pathname",get:function(){return this._formatPathname(this._parser.pathname)},set:function(t){var e=this._formatPathname(t);return this._parser.pathname=e}},{key:"search",get:function(){var t=this,e=n.i(u.a)(this._searchParams).map(function(e){return e+"="+t._searchParams.get(e)}).join("&");return e.length>0?"?"+e:e},set:function(t){var e="?"===t[0]?t:"?"+t;this._searchParams=o(e)}},{key:"hash",get:function(){return this._parser.hash},set:function(t){return this._parser.hash=t}}]),t}());e.a=c},function(t,e,n){"use strict";function r(t){return t.join("")}n.d(e,"a",function(){return o}),n.d(e,"d",function(){return i}),n.d(e,"e",function(){return u}),n.d(e,"f",function(){return a}),n.d(e,"g",function(){return c}),n.d(e,"c",function(){return f}),n.d(e,"b",function(){return s});var o=(n(0).get("config:index"),"2.0.1105"),i=r(["w","w","w",".","s","u","m","m","e","r","h","a","m","s","t","e","r",".","c","o","m"]),u=r(["w","w","w",".","r","o","o","s","t","e","r","f","i","r","e","w","o","r","k",".","c","o","m"]),a=r(["/","/","f","s","m","1","0","1","9",".","g","l","o","b","a","l",".","s","s","l",".","f","a","s","t","l","y",".","n","e","t","/","f","s","m","/","d","s"]),c=r(["h","t","t","p","s",":","/","/","d","2","z","v","5","r","k","i","i","4","6","m","i","q",".","c","l","o","u","d","f","r","o","n","t",".","n","e","t","/","0","/","2",".","0",".","1","1","0","5","/","r","e","c","o","v","e","r","y","_","d","f","p","_","i","n","t","e","r","n","a","l","-","v","2",".","0",".","1","1","0","5",".","j","s"]),f=r(["h","t","t","p","s",":","/","/","d","2","z","v","5","r","k","i","i","4","6","m","i","q",".","c","l","o","u","d","f","r","o","n","t",".","n","e","t","/","0","/","2",".","0",".","1","1","0","5","/","r","e","c","o","v","e","r","y","_","l","i","b","_","a","p","i","_","i","f","r","a","m","e","-","v","2",".","0",".","1","1","0","5",".","h","t","m","l"]),s=r(["h","t","t","p","s",":","/","/","d","2","z","v","5","r","k","i","i","4","6","m","i","q",".","c","l","o","u","d","f","r","o","n","t",".","n","e","t","/","0","/","2",".","0",".","1","1","0","5","/","r","e","c","o","v","e","r","y","_","l","i","b","_","r","i","d","_","i","f","r","a","m","e","-","v","2",".","0",".","1","1","0","5",".","h","t","m","l"])},function(t,e,n){function r(t,e){for(var n=t.length;n--;)if(o(t[n][0],e))return n;return-1}var o=n(33);t.exports=r},function(t,e){function n(t,e){return t===e||t!==t&&e!==e}t.exports=n},function(t,e){function n(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e}t.exports=n},function(t,e,n){function r(t,e,n){var r=t[e];a.call(t,e)&&i(r,n)&&(void 0!==n||e in t)||o(t,e,n)}var o=n(28),i=n(33),u=Object.prototype,a=u.hasOwnProperty;t.exports=r},function(t,e){function n(t){return t}t.exports=n},function(t,e){function n(t){return t}t.exports=n},function(t,e,n){function r(t){return null!=t&&i(t.length)&&!o(t)}var o=n(29),i=n(71);t.exports=r},function(t,e){function n(t){return null!=t&&"object"==typeof t}t.exports=n},function(t,e,n){"use strict";function r(){for(var t=n.i(o.a)(0,5),e=[],r=0;r<t;r++)e.push(n.i(o.b)());return e}var o=n(23);e.a=r;n(0).get("util:dom:get_elements_from_selector:consumers:attribute_consumer:generate_random_words")},function(t,e,n){"use strict";function r(t){return o.g.exec(t)[1]}var o=n(7);e.a=r;n(0).get("util:dom:get_elements_from_selector:consumers:attribute_consumer:unwrap_attribute_value")},function(t,e,n){"use strict";function r(t){var e=t.lookAheadRegex(f.b,f.c);e.length>0&&t.consumeCharacters(e);var n=void 0;n="*"===e||0===e.length?new o.b("div"):new o.b(e);for(var r=t.lookAheadRegex(f.d);r.length>0;){var i=s[r];n.addElementModificationRecord(i(t)),r=t.lookAheadRegex(f.d)}return n}var o=n(81),i=n(298),u=n(301),a=n(302),c=n(306),f=n(7);e.a=r;var s=(n(0).get("util:dom:get_elements_from_selector:consumers:element_consumer"),{"[":i.a,".":u.a,"#":c.a,":":a.a})},function(t,e,n){"use strict";function r(t){return new Error("Unsupported Selector: "+t)}function o(t){return new Error("Unparseable Selector: "+t)}function i(t){return new Error("Non-Matching Selector: "+t)}function u(t){return new Error("Network Request Triggering Selector: "+t)}e.c=r,e.a=o,e.b=i,e.d=u;n(0).get("util:dom:get_elements_from_selector:error")},function(t,e,n){n(0).get("util:beacon:beacon_types");t.exports={BEACON:"bcn",IMPRESSION:"imp",CLICK:"clk",CONTEXT_CLICK:"ctx",CONTENT_CONTROL:"cct",MSG:"msg"}},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var o=n(15),i=n(27),u=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),a=(n(0).get("util:set"),function(){function t(){r(this,t),this._data=new o.a}return u(t,[{key:"add",value:function(t){this._data.set(t,t)}},{key:"has",value:function(t){return this._data.has(t)}},{key:"delete",value:function(t){return this._data["delete"](t)}},{key:"clear",value:function(){return this._data.clear()}},{key:"forEach",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;this._data.forEach(function(n){t.call(e,n)})}},{key:"size",get:function(){return this._data.size}}]),t}());e.a=n.i(i.a)(window.Set)?window.Set:a},function(t,e){function n(t){return t}t.exports=n},function(t,e){function n(t){return o.call(t)}var r=Object.prototype,o=r.toString;t.exports=n},function(t,e,n){var r=n(229),o=n(121),i=r(o);t.exports=i},function(t,e,n){"use strict";function r(t){var e=t.document;return n.i(o.a)(e).then(function(t){return n.i(o.b)(t)?[]:t}).then(function(t){return new i.a(i.b.UBLOCK,t.length>0,o.c.bind(null,e),t)})}var o=n(78),i=n(9);e.a=r;n(0).get("detection:artifact:generic:ublock")},function(t,e,n){n(0).get("util:beacon:beacon_keys");t.exports={USER_ID:"uid",SCRIPT_VERSION:"v",ACCOUNT_ID:"cid",PAGE_URL:"u",CORRELATION_ID:"bid",REASON_CODE:"rc",SENTINEL_FLAG:"sntl",ADBLOCK_DETECTED:"abl",FIRST_ACCESS:"fa",SESSION_START:"ss",PRIVACY_LIST_BLOCKED:"pl",UNSUPPORTED_OPERATING_SYSTEM:"unsupos",UNSUPPORTED_NEW_BROWSER:"unsupnb",UNSUPPORTED_USER_AGENT:"unsupua",RECOVERY_FLAG:"rcv",WHITELISTED_SESSION:"wnsk",INJECTION_STATE:"st",INJECTION_DOMAINS:"noq.id",INJECTION_CLASSES:"noq.ic",INJECTION_IDS:"noq.ii",DEBUG_0:"d0",DEBUG_1:"d1",DEBUG_2:"d2",CUSTOMER_1:"c0",CUSTOMER_2:"c1",CUSTOMER_3:"c2",EXCEPTION_RULES:"er",cct:{LOCK:"l",CONTROL_TYPE:"ct"},msg:{MSG_ID:"mid",MSG_EVENT_TYPE:"met"}}},,function(t,e,n){"use strict";function r(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];return n.some(function(e){return t.nodeName.toLowerCase()===e})}function o(t){return r(t,"iframe")}function i(t){return r(t,"img")}function u(t){return r(t,"video")}function a(t){return o(t)&&(!t.src||"about:blank"===t.src||0===t.src.indexOf("javascript"))}function c(t,e){try{return"complete"===t.contentDocument.readyState&&t.contentDocument.body&&b()(t.contentDocument.querySelectorAll("*")).some(e)}catch(t){}}function f(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return c(t,function(n){return!r(n,"html","head","body")&&(e||!r(n,"link","script")&&!t.contentDocument.head.contains(n))})}function s(t){return c(t,function(t){return!r(t,"html","head","body")&&_(t)})}function l(t){return a(t)&&f(t)}function p(){function t(t){o(t.target)&&n.add(t.target)}var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window;if(g&&!E.has(e)){var n=g.get(e)||new m.a;n&&(g.set(e,n),E.set(e,t),e.document.addEventListener("load",t,!0))}}function h(t){if(f(t,!0))return!0;if(!g)return!1;var e=g.get(t.ownerDocument.defaultView);return!!e&&e.has(t)}function d(t){if(r.apply(void 0,[t].concat(w)))return!0;if(i(t)){var e=t;if(null==e.naturalHeight||0===e.naturalHeight||1===e.naturalHeight||!e.complete)return!0}if(t.ownerDocument.head.contains(t))return!0;if(o(t)){if(!1===s(t))return!0}return!1}function _(t){return!d(t)&&(0===t.children.length||(!!b()(t.childNodes).some(function(t){return 3===t.nodeType&&t.data.trim().length>0})||(!!r.apply(void 0,[t].concat(O))||t.ownerDocument.defaultView.getComputedStyle(t).backgroundImage.toLowerCase().indexOf("url(")>-1)))}var y=n(6),b=n.n(y),v=n(15),m=n(45);e.d=r,e.c=o,e.g=i,e.h=u,e.b=l,e.a=p,e.f=h,e.i=d,e.e=_;var g=(n(0).get("util:dom:is_element"),new v.a),E=new v.a,O=["iframe","img","video","object","input","button","select","textarea"],w=["link","script"]},function(t,e){function n(t,e){return function(n){return t(e(n))}}t.exports=n},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=n(1),a=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),c=(n(0).get("detection:test_result:attribute:data:index"),function(t){function e(t){r(this,e);var n=o(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,"DataAttribute"));return n._value=t,n}return i(e,t),a(e,[{key:"is",value:function(t){return t instanceof e&&t.getValue()===this._value}},{key:"getValue",value:function(){return this._value}}]),e}(u.e));e.a=c},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),i=(n(0).get("util:dom:get_elements_from_selector:element_hierarchy_modification_record"),function(){function t(e){r(this,t),this.elementRecord=e}return o(t,[{key:"applyToElementRecord",value:function(t){throw new Error("not implemented")}},{key:"getElementRecord",value:function(){return this.elementRecord}}]),t}());e.a=i},function(t,e){function n(t,e){var n=-1,r=t.length;for(e||(e=Array(r));++n<r;)e[n]=t[n];return e}t.exports=n},function(t,e,n){var r=n(35),o=n(16),i=n(63),u=n(38),a=n(99),c=n(25),f=Object.prototype,s=f.hasOwnProperty,l=i(function(t,e){if(a(e)||u(e))return void o(e,c(e),t);for(var n in e)s.call(e,n)&&r(t,n,e[n])});t.exports=l},function(t,e){function n(){return!1}t.exports=n},function(t,e){function n(){}t.exports=n},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}n.d(e,"b",function(){return i});var o=(n(0).get("detection:artifact:element_match_record"),function t(e,n,o){r(this,t),this.type=e,this.element=n,this.info=o});e.a=o;var i={STYLE:"s",MOZ:"m"}},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=n(3),a=n(4),c=n(8),f=n(2),s=n(22),l=n(131),p=n(1),h=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),d=n(0).get("detection:generic_adblocker:element_hiding_test"),_=function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),h(e,null,[{key:"getSchema",value:function(){return new a.a(p.b.GENERIC_ADBLOCKER,p.c.INFERENCE,p.c.ELEMENT,p.c.HIDING,p.c.HIDING_DATA)}},{key:"testMethod",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:".plainAd",e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:window,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:30;return new f["default"](function(i){function u(e){if(n.i(s.b)(f))return d.error("control element hidden, standing down element hiding detection test",f),h(p.a.NOT_PRESENT,p.f.CONTROL_ELEMENT_HIDDEN);n.i(s.b)(a)&&(d.info("bait element hidden, element hiding detection test detected adblocker",a),h(p.a.PRESENT,p.f.ELEMENT_HIDDEN,c.a.fromElement(a,{selector:t,hiddenImmediately:e})))}var a=n.i(l.a)(t,r.document)[0];a.style.position="absolute",a.style.top="-2000px",a.style.left="-2000px",a.style.height="30px",a.style.width="30px";var f=a.cloneNode(!1);f.removeAttribute("class"),f.removeAttribute("id"),r.document.body.appendChild(a),r.document.body.appendChild(f);var h=function(){for(var n,o=arguments.length,u=Array(o),c=0;c<o;c++)u[c]=arguments[c];r.clearInterval(y),a.parentElement&&r.document.body.removeChild(a),f.parentElement&&r.document.body.removeChild(f),i((n=e.getSchema()).createResult.apply(n,[new p.r(t)].concat(u)))},_=0,y=r.setInterval(function(){if(++_===o)return d.info("bait element not hidden, element hiding detection test did not detect adblocker"),void h(p.a.NOT_PRESENT,p.f.NO_ELEMENT_HIDDEN);u(!1)},10);u(!0)})}}]),e}(u.b);e.a=_},function(t,e,n){"use strict";function r(t){var e=void 0;try{if(null==t.cssRules)return[];e=c()(t.cssRules)}catch(t){return[]}return u()(c()(e).map(function(t){return o(t)}))}function o(t){return t.type===CSSRule.STYLE_RULE?t:null!=t.cssRules?c()(t.cssRules).map(function(t){return o(t)}):[]}var i=n(14),u=n.n(i),a=n(6),c=n.n(a);e.a=r;n(0).get("util:css:extract_style_rules_from_style_sheet")},function(t,e,n){function r(t){return o(function(e,n){var r=-1,o=n.length,u=o>1?n[o-1]:void 0,a=o>2?n[2]:void 0;for(u=t.length>3&&"function"==typeof u?(o--,u):void 0,a&&i(n[0],n[1],a)&&(u=o<3?void 0:u,o=1),e=Object(e);++r<o;){var c=n[r];c&&t(e,c,r,u)}return e})}var o=n(66),i=n(92);t.exports=r},function(t,e,n){function r(t,e){return o(i(t,e),1)}var o=n(84),i=n(345);t.exports=r},function(t,e,n){function r(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}var o=n(196),i=n(197),u=n(198),a=n(199),c=n(200);r.prototype.clear=o,r.prototype["delete"]=i,r.prototype.get=u,r.prototype.has=a,r.prototype.set=c,t.exports=r},function(t,e,n){function r(t,e){return u(i(t,e,o),t+"")}var o=n(122),i=n(167),u=n(168);t.exports=r},function(t,e){function n(){return!1}t.exports=n},function(t,e,n){function r(t,e){e=o(e,t);for(var n=0,r=e.length;null!=t&&n<r;)t=t[i(e[n++])];return n&&n==r?t:void 0}var o=n(21),i=n(37);t.exports=r},function(t,e,n){"use strict";function r(t){d="OFF"!==t;var e={defaultLevel:h[t]},n={};p.a.ie()||p.a.edge()?e.formatter=function(t,e){null!=e.name&&t.unshift("[SP:"+e.name+"]")}:e.formatter=function(t,e){var r=e.name;if(null!=r){if(!(r in n)){var o=f(c(u(i(r))));n[r]=o}t.unshift("%c[SP:"+r+"]","color: "+n[r])}},l.a.useDefaults(e)}function o(){return d}function i(t){for(var e=0,n=0;n<t.length;n++){e=(e<<5)-e+t.charCodeAt(n),e|=0}return e}function u(t){return[(16711680&t)>>16,(65280&t)>>8,255&t]}function a(t){return.299*t[0]+.587*t[1]+.114*t[2]}function c(t){var e=a(t);if(e>_){var n=_/e;return[Math.floor(t[0]*n),Math.floor(t[1]*n),Math.floor(t[2]*n)]}return t}function f(t){return"#"+t.map(function(t){return t.toString(16)}).join("")}Object.defineProperty(e,"__esModule",{value:!0});var s=n(0),l=n.n(s),p=n(19);e["default"]=r,e.isLoggerEnabled=o;var h=(n(0).get("util:logger:init"),{DEBUG:l.a.DEBUG,INFO:l.a.INFO,TIME:l.a.TIME,WARN:l.a.WARN,ERROR:l.a.ERROR,OFF:l.a.OFF}),d=!1,_=100},function(t,e){function n(t){return o.call(t)}var r=Object.prototype,o=r.toString;t.exports=n},function(t,e){function n(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=r}var r=9007199254740991;t.exports=n},,function(t,e,n){function r(t,e,n){var r=-1,l=i,p=t.length,h=!0,d=[],_=d;if(n)h=!1,l=u;else if(p>=s){var y=e?null:c(t);if(y)return f(y);h=!1,l=a,_=new o}else _=e?[]:d;t:for(;++r<p;){var b=t[r],v=e?e(b):b;if(b=n||0!==b?b:0,h&&v===v){for(var m=_.length;m--;)if(_[m]===v)continue t;e&&_.push(v),d.push(b)}else l(_,v,n)||(_!==d&&_.push(v),d.push(b))}return d}var o=n(119),i=n(225),u=n(226),a=n(120),c=n(230),f=n(104),s=200;t.exports=r},function(t,e,n){var r=n(26),o=r["__core-js_shared__"];t.exports=o},function(t,e,n){function r(t){return t&&t.length?o(t):[]}var o=n(73);t.exports=r},,function(t,e,n){"use strict";function r(){return i++,i%=o.length,o[i]}n.d(e,"a",function(){return o}),e.b=r;var o=(n(0).get("detection:artifact:get_easylist_classnames"),["ad-space","placeholder-ad","placeholderAd","plainAd","play-page-ads","playAds1","playAds2","player-ads","player-leaderboard-ad-wrapper","player-under-ad","playerAd","player_ad","player_ad2","player_ad_box","player_hover_ad","player_page_ad_box"]),i=Math.floor(Math.random()*o.length)},function(t,e,n){"use strict";function r(t){return o(t,function(){var e=n.i(p.a)(t,function(t){return p.b.ONLY_DISPLAY_NONE.test(t.cssText)}),r=e.length>0&&e.every(function(t){return t.cssRules.length<50}),o=n.i(p.c)(e,function(t){return s.a.some(function(e){return t.selectorText.toLowerCase().indexOf(e.toLowerCase())>-1})});return r&&o?e:[]})}function o(t,e){var r=t.createElement("div");return new f["default"](function(e){r.className=n.i(s.b)();var o=new MutationObserver(function(n){n.some(function(t){return c()(t.addedNodes).some(function(t){return t===r})})&&(o.disconnect(),t.defaultView.setTimeout(function(){e()},1))});o.observe(t.body,{childList:!0}),t.body.appendChild(r)}).then(function(){return new f["default"](function(n){t.defaultView.setTimeout(function(){n(e(r)),r.parentElement&&t.body.removeChild(r)},150)})})}function i(t){return n.i(p.c)(t,function(t){return p.b.ROOT.test(t.cssText)})}function u(t){for(var e=arguments.length,n=Array(e>1?e-1:0),o=1;o<e;o++)n[o-1]=arguments[o];return r(t).then(function(e){return l.a.apply(void 0,[t,e].concat(n))})}var a=n(6),c=n.n(a),f=n(2),s=n(77),l=n(17),p=n(18);e.a=r,e.d=o,e.b=i,e.c=u;n(0).get("detection:artifact:get_ublock_sheets")},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=n(54),a=(n(0).get("detection:test_result:attribute:data:xhr"),function(t){function e(t){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t))}return i(e,t),e}(u.a));e.a=a},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),i=(n(0).get("util:dom:get_elements_from_selector:element_modification_record"),function(){function t(){r(this,t)}return o(t,[{key:"applyToElement",value:function(t){throw new Error("not implemented")}}]),t}());e.a=i},function(t,e,n){"use strict";function r(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function u(t,e){return(t instanceof a.a?1:-1)-(e instanceof a.a?1:-1)}var a=n(24);n.d(e,"a",function(){return f});var c=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),f=(n(0).get("util:dom:get_elements_from_selector:element_record"),function(){function t(){i(this,t),this._childElementRecords=[]}return c(t,[{key:"appendChildElementRecord",value:function(t){t.setParentElementRecord(this),this._childElementRecords.push(t)}},{key:"generateElementHierarchy",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document;return this._childElementRecords.map(function(e){return e.generateElement(t)})}}]),t}()),s=function(t){function e(t){i(this,e);var n=r(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return n._nodeName=t,n._elementModificationRecords=[],n}return o(e,t),c(e,[{key:"addElementModificationRecord",value:function(t){this._elementModificationRecords.push(t)}},{key:"setParentElementRecord",value:function(t){this._parentElementRecord=t}},{key:"getParentElementRecord",value:function(){return this._parentElementRecord}},{key:"generateElement",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document,e=t.createElement(this._nodeName);return this._elementModificationRecords.slice().sort(u).forEach(function(t){t.applyToElement(e)}),this.generateElementHierarchy(t).forEach(function(t){e.appendChild(t)}),e}}]),e}(f);e.b=s},,function(t,e){function n(t,e){for(var n=-1,r=null==t?0:t.length,o=Array(r);++n<r;)o[n]=e(t[n],n,t);return o}t.exports=n},function(t,e,n){function r(t,e,n,u,a){var c=-1,f=t.length;for(n||(n=i),a||(a=[]);++c<f;){var s=t[c];e>0&&n(s)?e>1?r(s,e-1,n,u,a):o(a,s):u||(a[a.length]=s)}return a}var o=n(313),i=n(335);t.exports=r},function(t,e,n){var r=n(194),o=r();t.exports=o},function(t,e){function n(t){for(var e=-1,n=null==t?0:t.length,r=0,o=[];++e<n;){var i=t[e];i&&(o[r++]=i)}return o}t.exports=n},function(t,e,n){"use strict";function r(t){return new o.a(i).getSearchParam(t)}var o=n(30);e.a=r;var i=(n(0).get("life_cycle:debug"),window.location.search)},function(t,e,n){"use strict";function r(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function u(t,e,n,r){var o=t.charCodeAt(0),i=r-n;if(o<n||o>r)return o;var u=o-n;return u=(u+e+i)%i,String.fromCharCode(u+n)}n.d(e,"a",function(){return s});var a=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),c=(n(0).get("util:shift_cipher"),function(){function t(e){i(this,t),this._shift=e}return a(t,[{key:"encode",value:function(t){return this._encode(t,this._shift)}},{key:"decode",value:function(t){return this._encode(t,-this._shift)}}]),t}()),f=function(t){function e(){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return o(e,t),a(e,[{key:"_encode",value:function(t,e){return t.split("").map(function(t){return u(t,e,33,127)}).join("")}}]),e}(c);e.b=f;var s=function(t){function e(){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return o(e,t),a(e,[{key:"_encode",value:function(t,e){return t.replace(/[A-Z]/g,function(t){return u(t,e,65,91)}).replace(/[a-z]/g,function(t){return u(t,e,97,123)})}}]),e}(c)},function(t,e,n){function r(t,e,n){(void 0===n||i(t[e],n))&&(void 0!==n||e in t)||o(t,e,n)}var o=n(28),i=n(33);t.exports=r},function(t,e,n){var r=n(53),o=r(Object.getPrototypeOf,Object);t.exports=o},function(t,e){function n(t,e){return!!(e=null==e?r:e)&&("number"==typeof t||o.test(t))&&t>-1&&t%1==0&&t<e}var r=9007199254740991,o=/^(?:0|[1-9]\d*)$/;t.exports=n},function(t,e){function n(){return!1}t.exports=n},function(t,e,n){function r(t){return o(2,t)}var o=n(339);t.exports=r},function(t,e,n){"use strict";function r(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e<t.length;e++)n[e]=t[e];return n}return Array.from(t)}function o(t){var e=c(t);if(!e)return[];var n=v()(e.data,m),r=y()(n);return d()(r,function(t){return t.net_list}).map(function(t){return p()(t,function(t,e){return s()(e)})})}function i(t){return a(t,m)}function u(t){return a(t,g)}function a(t,e){var n=[],o=c(t);if(!o)return n;var i=v()(o.data,e);for(var u in i){var a=i[u];if(a.hasOwnProperty("css")){var f=a.css,s=f.blacklist,l=f.non_specific_blacklist;n.push.apply(n,r(s)),n.push.apply(n,r(l))}}return n}function c(t){return t.responseText?JSON.parse(t.responseText):null}var f=n(340),s=n.n(f),l=n(346),p=n.n(l),h=n(64),d=n.n(h),_=n(117),y=n.n(_),b=n(106),v=n.n(b);e.b=o,e.c=i,e.a=u;var m=(n(0).get("detection:fsm:parse_data"),["reg","exception"]),g=["legacy"]},function(t,e,n){"use strict";function r(t){for(var e=[],r=t;r&&!n.i(u.d)(r,"html","head","body");)e.push(r),r=r.parentElement;e.reverse();var o=t.querySelectorAll("*");return e.concat(i()(o))}var o=n(6),i=n.n(o),u=n(52);e.a=r;n(0).get("util:dom:get_all_elements_in_hierarchy")},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:window.location,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:window.navigator;return s(t,e,n)}function u(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return s(t,window.location,window.navigator,e)}var a=n(2),c=n(141);e.b=i,e.c=u,n.d(e,"a",function(){return l});var f,s=(n(0).get("util:load_via_xhr:index"),function(t,e,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return new a["default"](function(i){n.i(c.a)(t,function(t,e,n,r,o){var u=void 0,a=void 0;if(n.indexOf("::")>-1){var c=n.split("::")[1];u=parseInt(c)}else a=n;i(new h({succeeded:e,blocked:t,bootstrapType:r,timeStamp:u,xhr:o,errorText:a,status:o&&o.status}))},e,r,o)})}),l={SUCCEEDED:"SUCCEEDED",NETWORK_FAILURE:"NETWORK_FAILURE",OFFLINE:"OFFLINE",PROTOCOL_MISMATCH:"PROTOCOL_MISMATCH",OPEN_ERROR:"OPEN_ERROR",SEND_ERROR:"SEND_ERROR"},p=(f={},o(f,c.b,l.SUCCEEDED),o(f,c.c,l.NETWORK_FAILURE),o(f,c.d,l.OFFLINE),o(f,c.e,l.PROTOCOL_MISMATCH),o(f,c.f,l.OPEN_ERROR),o(f,c.g,l.SEND_ERROR),f),h=function t(e){var n=e.succeeded,o=e.blocked,i=e.status,u=void 0===i?null:i,a=e.timeStamp,c=void 0===a?null:a,f=e.bootstrapType,s=e.errorText,l=void 0===s?null:s,h=e.xhr,d=void 0===h?null:h;r(this,t),this.succeeded=n,this.blocked=o,this.status=u,this.timeStamp=c,this.type=p[f],this.errorText=l,this.xhr=d}},function(t,e){function n(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}t.exports=n},function(t,e){function n(t,e,n){for(var r=n-1,o=t.length;++r<o;)if(t[r]===e)return r;return-1}t.exports=n},function(t,e){function n(){return!1}t.exports=n},function(t,e,n){"use strict";function r(t){var e=t.document;return n.i(o.a)(e).then(function(t){return n.i(o.b)(t)?t:[]}).then(function(t){return new i.a(i.b.UBLOCK_ORIGIN,t.length>0,o.c.bind(null,e),t)})}var o=n(78),i=n(9);e.a=r;n(0).get("detection:artifact:generic:ublock_origin")},,function(t,e,n){(function(t){function r(t,e){if(e)return t.slice();var n=t.length,r=f?f(n):new t.constructor(n);return t.copy(r),r}var o=n(26),i="object"==typeof e&&e&&!e.nodeType&&e,u=i&&"object"==typeof t&&t&&!t.nodeType&&t,a=u&&u.exports===i,c=a?o.Buffer:void 0,f=c?c.allocUnsafe:void 0;t.exports=r}).call(e,n(207)(t))},function(t,e,n){function r(t){return"function"!=typeof t.constructor||u(t)?{}:o(i(t))}var o=n(186),i=n(90),u=n(99);t.exports=r},function(t,e){function n(){return[]}t.exports=n},function(t,e){function n(){return!1}t.exports=n},function(t,e,n){var r=n(190),o=n(112),i=o(function(t,e){return null==t?{}:r(t,e)});t.exports=i},function(t,e,n){function r(t,e,n,r){if(!a(t))return t;e=i(e,t);for(var f=-1,s=e.length,l=s-1,p=t;null!=p&&++f<s;){var h=c(e[f]),d=n;if(f!=l){var _=p[h];d=r?r(_,h,p):void 0,void 0===d&&(d=a(_)?_:u(e[f+1])?[]:{})}o(p,h,d),p=p[h]}return t}var o=n(35),i=n(21),u=n(91),a=n(13),c=n(37);t.exports=r},function(t,e,n){function r(t,e,n){e=o(e,t);for(var r=-1,s=e.length,l=!1;++r<s;){var p=f(e[r]);if(!(l=null!=t&&n(t,p)))break;t=t[p]}return l||++r!=s?l:!!(s=null==t?0:t.length)&&c(s)&&a(p,s)&&(u(t)||i(t))}var o=n(21),i=n(58),u=n(10),a=n(91),c=n(71),f=n(37);t.exports=r},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var o=n(5),i=n(11),u=n(88),a=n(31),c=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),f=n(0).get("util:beacon:core"),s=n(220).beacon,l=n(44),p=n(50),h=new u.a(s.shiftKey),d=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:l.BEACON,u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o["default"].get(["beacon","pageViewEndpoint"]),a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];r(this,t),window._sp_&&window._sp_._bid?this._bid=window._sp_._bid:(this._bid=Math.floor(1e9*Math.random()),n.i(i.a)("_bid",this._bid)),this._beaconType=e,this._data={},this._endpoint=u,this._sent=!1,this._shouldCipher=a}return c(t,[{key:"set",value:function(t,e){this._data[t]=String(e)}},{key:"get",value:function(t){return this._data[t]}},{key:"unset",value:function(t){delete this._data[t]}},{key:"send",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){};if(!0===this._sent)return void t(new Error("Beacon already sent"));this._sent=!0,this.set("cb",(new Date).getTime()),this.populateBeaconFields(),this._sendBeacon(t)}},{key:"populateBeaconFields",value:function(){this.set(p.SCRIPT_VERSION,a.a),this.set(p.CORRELATION_ID,this._bid),this.set(p.ACCOUNT_ID,o["default"].get("accountId"))}},{key:"getBeaconUrl",value:function(){return"//"+this._getEndpoint()+"/"+this._beaconType+"?"+this._encodeData()}},{key:"_sendBeacon",value:function(t){var e=this.getBeaconUrl(),n=new Image;f.info("firing "+this._beaconType+" beacon: "+e),f.info("beacon data",this._data),n.addEventListener("load",function(){return t()}),n.addEventListener("error",function(e){return t(e)}),n.src=e}},{key:"_getEndpoint",value:function(){return this.processEndpoint(this._endpoint)}},{key:"processEndpoint",value:function(t){return t}},{key:"_encodeData",value:function(){var t=this,e=Object.keys(this._data).map(function(e){return encodeURIComponent(t._shouldCipher?h.encode(e):e)+"="+encodeURIComponent(t._shouldCipher?h.encode(t._data[e]):t._data[e])});return e=this.dataPostProcessing(e),e.join("&")}},{key:"dataPostProcessing",value:function(t){return t}}]),t}();e.a=d},function(t,e,n){"use strict";function r(t){if(t instanceof o.a){if("function"==typeof t.keys&&"function"==typeof Array.from&&n.i(u.a)(Array.from)){return Array.from.bind(Array)(t.keys())}var e=[];return t.forEach(function(t,n){return e.push(n)}),e}if(t instanceof i.a){if("function"==typeof t.keys&&"function"==typeof Array.from&&n.i(u.a)(Array.from)){return Array.from.bind(Array)(t.keys())}var r=[];return t.forEach(function(t){return r.push(t)}),r}throw new Error("non es6 structure")}var o=n(15),i=n(45),u=n(27);e.a=r;n(0).get("util:es6_keys")},function(t,e,n){var r=n(26),o=r.Symbol;t.exports=o},function(t,e){function n(t){return t}t.exports=n},function(t,e){function n(){return!1}t.exports=n},function(t,e,n){function r(t){return i(t)?u(t):o(t)}var o=n(209),i=n(113),u=n(214);t.exports=r},function(t,e,n){function r(t){return i(t)&&o(t)}var o=n(38),i=n(39);t.exports=r},function(t,e,n){function r(t){if(!u(t)||o(t)!=a)return!1;var e=i(t);if(null===e)return!0;var n=l.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&s.call(n)==p}var o=n(47),i=n(90),u=n(39),a="[object Object]",c=Function.prototype,f=Object.prototype,s=c.toString,l=f.hasOwnProperty,p=s.call(Object);t.exports=r},function(t,e,n){function r(t){return null==t?[]:o(t,i(t))}var o=n(211),i=n(25);t.exports=r},function(t,e,n){"use strict";function r(t,e){return(Element.prototype.matches||Element.prototype.matchesSelector||Element.prototype.mozMatchesSelector||Element.prototype.msMatchesSelector||Element.prototype.oMatchesSelector||Element.prototype.webkitMatchesSelector||function(t){var e=this,n=(this.document||this.ownerDocument).querySelectorAll(t);return i()(n).some(function(t){return t===e})}).call(t,e)}var o=n(6),i=n.n(o);e.a=r;n(0).get("util:dom:matches_selector")},function(t,e,n){function r(){if(!arguments.length)return[];var t=arguments[0];return o(t)?t:[t]}var o=n(10);t.exports=r},function(t,e,n){function r(t,e){return!!(null==t?0:t.length)&&o(t,e,0)>-1}var o=n(98);t.exports=r},function(t,e,n){function r(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var c=null==n?0:u(n);return c<0&&(c=a(r+c,0)),o(t,i(e,3),c)}var o=n(227),i=n(36),u=n(124),a=Math.max;t.exports=r},function(t,e){function n(t){return t}t.exports=n},function(t,e){function n(t,e){for(var n=-1,r=Array(t);++n<t;)r[n]=e(n);return r}t.exports=n},function(t,e){function n(t){return t}t.exports=n},,function(t,e,n){"use strict";var r=n(254);n(0).get("detection:adblocker:generic:ublock_origin:index");e.a=[r.a]},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=n(3),a=n(79),c=n(1),f=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),s=(n(0).get("detection:fsm:data_dependent_test"),function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),f(e,null,[{key:"findDependency",value:function(t){return t.has(c.b.FSM_DATA)}},{key:"getFSMData",value:function(t){return t.map(function(t){return t.getData(a.a)}).filter(Boolean)}}]),e}(u.a));e.a=s},function(t,e,n){"use strict";function r(t){var e={};for(var n in u)!function(n){e[n]=t.filter(function(t){return u[n](t)})}(n);return e}var o=n(54),i=n(1);e.a=r;var u=(n(0).get("detection:test_result:attribute:group_attributes_by_type"),{types:i.l,tests:i.m,reasons:i.n,results:i.d,info:i.o,data:function(t){return t instanceof o.a}})},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var o=n(86),i=n.n(o),u=n(20),a=n.n(u),c=n(139),f=n.n(c),s=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),l=(n(0).get("detection:test_result:core"),function(){function t(){r(this,t);for(var e=arguments.length,n=Array(e),o=0;o<e;o++)n[o]=arguments[o];this.attributes=f()(a()(i()(n)),function(t,e){return t.is(e)})}return s(t,[{key:"has",value:function(){for(var t=this,e=arguments.length,n=Array(e),r=0;r<e;r++)n[r]=arguments[r];return n.every(function(e){return t.attributes.some(function(t){return t.is(e)})})}}]),t}());e.a=l},function(t,e,n){"use strict";function r(){for(var t=n.i(i.a)(0,5),e=[],r=0;r<t;r++){var a=u[n.i(i.a)(0,u.length)];e.push(new o.b(a))}return e}var o=n(81),i=n(23);e.a=r;var u=(n(0).get("util:dom:get_elements_from_selector:consumers:generate_random_element_records"),["li","span","div"])},function(t,e,n){"use strict";function r(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;try{e.querySelector(t)}catch(e){throw n.i(a.a)(t.toString())}var r=n.i(u.a)(new i.a(t.trim())).generateElementHierarchy(e);return o(t,r,e),r}function o(t,e,r){var o=r.createElement("div");if(e.forEach(function(t){o.appendChild(t)}),!(null!=o.querySelector(t)))throw n.i(a.b)(t)}var i=n(308),u=n(303),a=n(43);e.a=r;n(0).get("util:dom:get_elements_from_selector:index")},function(t,e,n){"use strict";function r(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function u(t){return function(t){function e(){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return o(e,t),e}(t)}var a=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),c=(n(0).get("util:mixin"),function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:u;i(this,t),this._toCallback=e,this._mixinClasses=[]}return a(t,[{key:"to",value:function(t){for(var e=this._toCallback.bind(this),n=arguments.length,r=Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];var i=e.apply(void 0,[t].concat(r));return this._mixinClasses.push(i),i}},{key:"test",value:function(t){var e=t.hasOwnProperty("prototype")?t.prototype:t;return this._mixinClasses.some(function(n){return e instanceof n||t===n})}}]),t}());e.a=c},function(t,e,n){"use strict";function r(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}n.d(e,"a",function(){return a}),n.d(e,"b",function(){return c});var u=(n(0).get("util:network_event"),function t(e,n){i(this,t),this.src=e,this.tagName=n}),a=function(t){function e(){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return o(e,t),e}(u),c=function(t){function e(){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return o(e,t),e}(u)},function(t,e){function n(t,e,n){var r=-1,o=t.length;e<0&&(e=-e>o?0:o+e),n=n>o?o:n,n<0&&(n+=o),o=e>n?0:n-e>>>0,e>>>=0;for(var i=Array(o);++r<o;)i[r]=t[r+e];return i}t.exports=n},function(t,e,n){(function(e){var n="object"==typeof e&&e&&e.Object===Object&&e;t.exports=n}).call(e,n(140))},function(t,e,n){var r=n(53),o=r(Object.keys,Object);t.exports=o},function(t,e){function n(t){var e=null==t?0:t.length;return e?t[e-1]:void 0}t.exports=n},function(t,e,n){function r(t,e){return t&&t.length?i(t,o(e,2)):[]}var o=n(36),i=n(73);t.exports=r},function(t,e,n){function r(t,e){return e="function"==typeof e?e:void 0,t&&t.length?o(t,void 0,e):[]}var o=n(73);t.exports=r},function(t,e){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e,n){"use strict";function r(t,e){function n(t){try{return t&&t.timeStamp?t.timeStamp:window.performance.now()}catch(t){return Date.now()}}var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:window.location,l=arguments.length>3&&void 0!==arguments[3]?arguments[3]:window.navigator,p=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},h=document.createElement("a");if(h.href=t,"https:"===r.protocol&&h.protocol!==r.protocol)return o.error("protocol mismatch in https environment, standing down"),void e(!1,!1,h.protocol,f);var d=new XMLHttpRequest,_=p.withCredentials;null!=_&&(d.withCredentials=_);try{d.open(p.method||"GET",t)}catch(t){return void e(!0,!1,t.toString(),a,d)}if(null!=p.headers){var y=p.headers;Object.keys(y).forEach(function(t){d.setRequestHeader(t,y[t])})}var b=void 0,v=void 0;d.onloadstart=function(t){b=n(t)},d.onreadystatechange=function(t){if(4===this.readyState){v=n(t)-b;var r=0===this.status&&!1!==l.onLine,o="2"===this.status.toString()[0],a=void 0;return a=o?u:!1===l.onLine?s:i,void e(r,o,this.status+"::"+v,a,d)}};try{d.send(p.body)}catch(t){return void e(!0,!1,t.toString(),c,d)}}n.d(e,"c",function(){return i}),n.d(e,"b",function(){return u}),n.d(e,"f",function(){return a}),n.d(e,"g",function(){return c}),n.d(e,"e",function(){return f}),n.d(e,"d",function(){return s}),e.a=r;var o=n(0).get("util:load_via_xhr:callback"),i="n",u="nx",a="xo",c="xs",f="p",s="of"},function(t,e,n){"use strict";var r=(n(0).get("util:logger:levels"),["DEBUG","INFO","TIME","WARN","ERROR","OFF"]);e.a=r},function(t,e,n){"use strict";var r=n(14),o=n.n(r),i=n(236),u=n(238),a=n(240),c=n(242),f=n(126);n(0).get("detection:adblocker:chrome:index");e.a=o()([i.a,u.a,a.a,c.a,f.a])},function(t,e,n){"use strict";var r=n(14),o=n.n(r),i=n(245),u=n(247),a=n(250),c=n(126);n(0).get("detection:adblocker:firefox:index");e.a=o()([i.a,u.a,a.a,c.a])},function(t,e,n){"use strict";var r=n(14),o=n.n(r),i=n(256);n(0).get("detection:adblocker:internet_explorer:index");e.a=o()([i.a])},function(t,e,n){"use strict";var r=n(14),o=n.n(r),i=n(257);n(0).get("detection:adblocker:opera:index");e.a=o()([i.a])},function(t,e,n){"use strict";var r=n(14),o=n.n(r),i=n(259),u=n(261),a=n(252);n(0).get("detection:adblocker:safari:index");e.a=o()([i.a,u.a,a.a])},function(t,e,n){"use strict";function r(t){var e=t.document,r=n.i(u.d)(e,function(t){return u.b.ONLY_DISPLAY_NONE.test(t.cssText)}),a=1===r.length&&r[0].cssRules.length<200?r:[];return n.i(o.b)(e,i.b.ADBLOCK,a)}var o=n(17),i=n(9),u=n(18);e.a=r;n(0).get("detection:artifact:chrome:adblock")},function(t,e,n){"use strict";function r(t){var e=t.document,r=n.i(u.d)(e,function(t){return u.b.ONLY_DISPLAY_NONE.test(t.cssText)}),a=1===r.length&&r[0].cssRules.length<200?r:[];return n.i(o.b)(e,i.b.ADBLOCK_PLUS,a)}var o=n(17),i=n(9),u=n(18);e.a=r;n(0).get("detection:artifact:chrome:adblock_plus")},function(t,e,n){"use strict";function r(t){var e=t.document,r=n.i(u.d)(e,function(t){return u.b.ONLY_DISPLAY_NONE.test(t.cssText)}),a=2===r.length||3===r.length?r:[];return n.i(o.b)(e,i.b.ADGUARD,a)}var o=n(17),i=n(9),u=n(18);e.a=r;n(0).get("detection:artifact:chrome:adguard")},function(t,e,n){"use strict";function r(t){var e=t.document,r=o(e,n.i(b.b)()),a=o(e);return e.body.appendChild(r),e.body.appendChild(a),new _["default"](function(e){i(t,r)&&n.i(v.b)(r)&&!n.i(v.b)(a)?window.setTimeout(function(){window.setTimeout(function(){e(n.i(v.b)(r))},300)},1):e(!1)}).then(function(n){return r.parentElement&&e.body.removeChild(r),a.parentElement&&e.body.removeChild(a),u(n,t)})}function o(t,e){var n=t.createElement("div");return n.className=e||"",n.style.width="1px",n.style.height="1px",n.style.position="absolute",n.style.top="-9999px",n}function i(t,e){return((t.getComputedStyle(e)||{}).MozBinding||"").indexOf("abp-elemhide")>-1}function u(t,e){return new h.a(h.b.ADBLOCK_PLUS,t,a.bind(null,e))}function a(t){for(var e=arguments.length,r=Array(e>1?e-1:0),o=1;o<e;o++)r[o-1]=arguments[o];var u=p()(r,function(t){return n.i(y.a)(t)}).filter(function(e){return i(t,e)}).map(function(t){return new d.a(d.b.MOZ,t,c(t))});return s()(u,function(t){return t.element})}function c(t){return t.nodeName.toLowerCase()+"#"+t.id+"."+t.className}var f=n(138),s=n.n(f),l=n(64),p=n.n(l),h=n(9),d=n(60),_=n(2),y=n(95),b=n(77),v=n(22);e.a=r;n(0).get("detection:artifact:firefox:adblock_plus")},function(t,e,n){"use strict";function r(t){var e=t.document,r=n.i(u.a)(e,function(t){return u.b.ONLY_DISPLAY_NONE.test(t.cssText)}),a=(2===r.length||3===r.length)&&r[0].cssRules.length>300?r:[];return n.i(o.b)(e,i.b.ADGUARD,a)}var o=n(17),i=n(9),u=n(18);e.a=r;n(0).get("detection:artifact:firefox:adguard")},function(t,e,n){"use strict";function r(t){return n.i(E.d)(t.document,function(e){var n=c(e);return new m.a(m.b.UBLOCK_ORIGIN,i(t,e)&&null!=n,o.bind(null,t,n))})}function o(t,e){for(var r=arguments.length,o=Array(r>2?r-2:0),u=2;u<r;u++)o[u-2]=arguments[u];var c=b()(o,function(t){return n.i(g.a)(t)}).filter(function(n){return i(t,n)||f(t,e,n)}).map(function(t){return new v.a(v.b.STYLE,t,a(t))});return _()(c,function(t){return t.element})}function i(t,e){return u(t,e)&&e.hidden}function u(t,e){return"none"===((t.getComputedStyle(e)||{}).display||"")}function a(t){return t.nodeName.toLowerCase()+"#"+t.id+"."+t.className}function c(t){var e=h()(t.attributes,function(t){return-1===O.indexOf(t.name)&&""===t.value});return e?e.name:null}function f(t,e,n){return u(t,n)&&l()(n.attributes).some(function(t){return t.name===e})}var s=n(6),l=n.n(s),p=n(48),h=n.n(p),d=n(138),_=n.n(d),y=n(64),b=n.n(y),v=n(60),m=n(9),g=n(95),E=n(78);e.a=r;var O=(n(0).get("detection:artifact:firefox:ublock_origin_1_11"),["id","class","hidden"])},function(t,e,n){"use strict";function r(t){return new o.a(o.b.ADBLOCK_PLUS,"0"===t.document.body.getAttribute("abp"))}var o=n(9);e.a=r;n(0).get("detection:artifact:internet_explorer:adblock_plus")},function(t,e,n){"use strict";function r(t){return new o["default"](function(e){var r=t.document.createElement("div");r.className=n.i(u.b)(),t.document.body.appendChild(r),t.setTimeout(function(){var n="none"===r.style.display;t.document.body.removeChild(r),e(new i.a(i.b.OPERA,n))},1)})}var o=n(2),i=n(9),u=n(77);e.a=r;var a=(n(0).get("detection:artifact:opera:index"),[r]);e.b=a},function(t,e,n){"use strict";function r(t){var e=t.document,r=n.i(u.a)(e,function(t){return u.b.DISPLAY_NONE_AND_ORPHAN.test(t.cssText)});return n.i(o.b)(e,i.b.ADBLOCK,r)}var o=n(17),i=n(9),u=n(18);e.a=r;n(0).get("detection:artifact:safari:adblock")},function(t,e,n){"use strict";function r(t){var e=t.document,r=n.i(u.a)(e,function(t){return u.b.ONLY_DISPLAY_NONE.test(t.cssText)}),a=1===r.length&&r[0].cssRules.length>50&&r[0].cssRules.length<200?r:[];return n.i(o.b)(e,i.b.ADBLOCK_PLUS,a)}var o=n(17),i=n(9),u=n(18);e.a=r;n(0).get("detection:artifact:safari:adblock_plus")},,function(t,e,n){"use strict";function r(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document,n=e.createElement("style");e.head.appendChild(n);var r=o(t),i=r+" { no_affect_rule: 0; }",u=n.sheet;u&&"function"==typeof u.insertRule?u.insertRule(i,0):n.innerHTML=i;var a=u&&null!=u.cssRules&&"function"==typeof u.cssRules.item&&u.cssRules.item(0),c=a&&a.selectorText||null;return n.parentElement&&n.parentElement.removeChild(n),c}function o(t){return t.replace(/::content/g,"").trim()}e.a=r,e.b=o;n(0).get("util:css:normalize_selector")},function(t,e,n){"use strict";function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document;return new o["default"](function(e){function r(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:100,u=t.createElement("div");u.style.setProperty("display","block","important"),u.style.setProperty("height","10px","important"),t.body.appendChild(u),n.i(i.b)(t.body)&&o-- >0?(u.parentElement&&t.body.removeChild(u),setTimeout(function(){r(o)},100)):(u.parentElement&&t.body.removeChild(u),e())}if("loading"===t.readyState){var o=function(){r()};n.i(u.a)(t.addEventListener)?t.addEventListener("DOMContentLoaded",o):t.defaultView.setTimeout(function(){r()},5e3)}else r()})}var o=n(2),i=n(22),u=n(27);e.a=r;n(0).get("util:dom:ready")},function(t,e,n){function r(t){return!(!u(t)||i(t))&&(o(t)?d:f).test(a(t))}var o=n(29),i=n(166),u=n(13),a=n(169),c=/[\\^$.*+?()[\]{}|]/g,f=/^\[object .+?Constructor\]$/,s=Function.prototype,l=Object.prototype,p=s.toString,h=l.hasOwnProperty,d=RegExp("^"+p.call(h).replace(c,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=r},function(t,e,n){var r=n(164),o=function(){try{var t=r(Object,"defineProperty");return t({},"",{}),t}catch(t){}}();t.exports=o},function(t,e){function n(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e}t.exports=n},function(t,e){function n(t,e){return null==t?void 0:t[e]}t.exports=n},function(t,e,n){var r=n(74),o=n(29),i=n(172),u=r?o:i;t.exports=u},function(t,e,n){function r(t){return!!i&&i in t}var o=n(74),i=function(){var t=/[^.]+$/.exec(o&&o.keys&&o.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();t.exports=r},function(t,e,n){function r(t,e,n){return e=i(void 0===e?t.length-1:e,0),function(){for(var r=arguments,u=-1,a=i(r.length-e,0),c=Array(a);++u<a;)c[u]=r[e+u];u=-1;for(var f=Array(e+1);++u<e;)f[u]=r[u];return f[e]=n(c),o(t,this,f)}}var o=n(97),i=Math.max;t.exports=r},function(t,e){function n(t){return t}t.exports=n},function(t,e){function n(t){if(null!=t){try{return o.call(t)}catch(t){}try{return t+""}catch(t){}}return""}var r=Function.prototype,o=r.toString;t.exports=n},function(t,e,n){function r(t,e){return o(t,e)}var o=n(319);t.exports=r},function(t,e,n){function r(t){if(i(t))throw new Error(u);return o(t)}var o=n(161),i=n(165),u="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.";t.exports=r},function(t,e){function n(){return!1}t.exports=n},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var o=n(139),i=n.n(o),u=n(48),a=n.n(u),c=n(86),f=n.n(c),s=n(343),l=n.n(s),p=n(291),h=n(8),d=n(79),_=n(235),y=n(143),b=n(277),v=n(265),m=n(160),g=n(144),E=n(279),O=n(272),w=n(268),T=n(276),S=n(145),R=n(281),P=n(146),k=n(147),N=n(283),A=n(287),j=n(19),C=n(1),x=function(){function t(t,e){var n=[],r=!0,o=!1,i=void 0;try{for(var u,a=t[Symbol.iterator]();!(r=(u=a.next()).done)&&(n.push(u.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{!r&&a["return"]&&a["return"]()}finally{if(o)throw i}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),I=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),L=(n(0).get("detection:index"),function(){function t(e,o){r(this,t),this._options=l()({},e||{},{runInterference:!0,runDFPInterference:!0,useInterference:!1,useDFPInterference:!1,useGenericAdblocker:!0,useAdblocker:!0,runImmediately:!1,timeout:null,internal:{}}),this._options.internal=l()({},this._options.internal,{useInterference:!1,useDFPInterference:!1,useGenericAdblocker:!0,useAdblocker:!0}),this._testClasses=o||[A.a,this._options.runInterference?T.a:[],this._options.runDFPInterference?v.a:[],O.a,_.a,j.a.chrome()?y.a:[],j.a.firefox()?g.a:[],j.a.safari()?k.a:[],j.a.ie()?S.a:[],j.a.opera()?P.a:[],j.a.chrome()?b.a:[],j.a.firefox()?E.a:[],j.a.safari()?N.a:[],j.a.ie()?R.a:[],n.i(w.a)()],this.rerun()}return I(t,[{key:"rerun",value:function(){var t=this,e=new p.a({timeout:this._options.timeout,detectionTestClasses:this._testClasses});return this._runner=e,this._options.runImmediately?this._runner.run():n.i(m.a)().then(function(){t._runner===e&&t._runner.run()}),this}},{key:"serializeResults",value:function(){return this._runner.waitForResultsWhere().then(function(t){return t.join("|")})}},{key:"isStandingDown",value:function(){return this._runner.someResultPresentWhere(function(t){return t.has(C.b.STAND_DOWN)})}},{key:"isInterfering",value:function(){return this._isNotStandDownAnd(this._runner.someResultPresentWhere(function(t){return t.has(C.b.INTERFERENCE)||t.has(C.b.GENERIC_ADBLOCKER)||t.has(C.b.ADBLOCKER)}))}},{key:"isDFPInterfering",value:function(){return this._isNotStandDownAnd(this._runner.someResultPresentWhere(function(t){return t.has(C.b.DFP_INTERFERENCE)}))}},{key:"allowsAcceptableAds",value:function(){var t=this;return this.isContentBlockerPresent().then(function(e){return e&&t._runner.someResultPresentWhere(function(t){return t.has(C.b.ACCEPTABLE_AD)})})}},{key:"isFSM",value:function(){return this._isNotStandDownAnd(this._runner.waitForResultsWhere(function(t){return t.has(C.c.FSM)}).then(function(t){return t.some(function(t){return!t.has(C.a.NOT_PRESENT)})}))}},{key:"isPrivate",value:function(){return this._isNotStandDownAnd(this._runner.someResultPresentWhere(function(t){return t.has(C.b.PRIVATE)}))}},{key:"isContentBlockerPresent",value:function(){return this._isContentBlockerPresent(this._options)}},{key:"internalIsContentBlockerPresent",value:function(){return this._isContentBlockerPresent(this._options.internal)}},{key:"getContentBlockers",value:function(){var t=this;return this.isContentBlockerPresent().then(function(e){return e?t._runner.waitForResultsWhere(function(t){return t.has(C.b.ADBLOCKER)}).then(function(t){return f()(t.map(function(t){return a()(t.attributes,function(t){return n.i(C.d)(t)&&t!==C.a.NOT_PRESENT&&t!==C.a.PRESENT})}))}):[]})}},{key:"getContentBlocker",value:function(){var t=this;return this.isContentBlockerPresent().then(function(e){return e?t.getContentBlockers().then(function(t){return x(t,1)[0]||C.a.UNKNOWN_ADBLOCKER}):null})}},{key:"getFSMData",value:function(){return this._runner.waitForResultsWhere(function(t){return t.has(C.c.FSM)}).then(function(t){return a()(t.map(function(t){return t.getData(d.a)}),function(t){return null!=t})||null})}},{key:"getAllElementHidingData",value:function(){return this._runner.waitForResultsWhere(function(t){return t.has(C.c.HIDING_DATA)}).then(function(t){return i()(f()(t.map(function(t){return t.getData(h.a)})),function(t,e){return t.is(e)})})}},{key:"_isContentBlockerPresent",value:function(t){return this._isNotStandDownAnd(this._runner.someResultPresentWhere(function(e){return t.useInterference&&e.has(C.b.INTERFERENCE)||t.useDFPInterference&&e.has(C.b.DFP_INTERFERENCE)||t.useGenericAdblocker&&e.has(C.b.GENERIC_ADBLOCKER)||t.useAdblocker&&e.has(C.b.ADBLOCKER)}))}},{key:"_isNotStandDownAnd",value:function(t){return this.isStandingDown().then(function(e){return!e&&t})}}]),t}());e.a=L},function(t,e,n){function r(t,e,n,j,C,x){var I,L=e&w,D=e&T,M=e&S;if(n&&(I=C?n(t,j,C,x):n(t)),void 0!==I)return I;if(!E(t))return t;var B=m(t);if(B){if(I=y(t),!L)return s(t,I)}else{var F=_(t),U=F==P||F==k;if(g(t))return f(t,L);if(F==N||F==R||U&&!C){if(I=D||U?{}:v(t),!L)return D?p(t,c(I,t)):l(t,a(I,t))}else{if(!A[F])return C?t:{};I=b(t,F,r,L)}}x||(x=new o);var H=x.get(t);if(H)return H;x.set(t,I);var G=M?D?d:h:D?keysIn:O,K=B?void 0:G(t);return i(K||t,function(o,i){K&&(i=o,o=t[i]),u(I,i,r(o,e,n,i,t,x))}),I}var o=n(65),i=n(312),u=n(35),a=n(317),c=n(318),f=n(102),s=n(56),l=n(322),p=n(323),h=n(136),d=n(163),_=n(70),y=n(333),b=n(334),v=n(103),m=n(10),g=n(67),E=n(13),O=n(25),w=1,T=2,S=4,R="[object Arguments]",P="[object Function]",k="[object GeneratorFunction]",N="[object Object]",A={};A[R]=A["[object Array]"]=A["[object ArrayBuffer]"]=A["[object DataView]"]=A["[object Boolean]"]=A["[object Date]"]=A["[object Float32Array]"]=A["[object Float64Array]"]=A["[object Int8Array]"]=A["[object Int16Array]"]=A["[object Int32Array]"]=A["[object Map]"]=A["[object Number]"]=A[N]=A["[object RegExp]"]=A["[object Set]"]=A["[object String]"]=A["[object Symbol]"]=A["[object Uint8Array]"]=A["[object Uint8ClampedArray]"]=A["[object Uint16Array]"]=A["[object Uint32Array]"]=!0,A["[object Error]"]=A[P]=A["[object WeakMap]"]=!1,t.exports=r},function(t,e,n){function r(t,e){return e=o(e,t),null==(t=u(t,e))||delete t[a(i(e))]}var o=n(21),i=n(137),u=n(336),a=n(37);t.exports=r},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var u=n(223),a=n(12),c=n(2),f=n(30),s=n(5);n.d(e,"AdblockBeacon",function(){return y});var l=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),p=function t(e,n,r){null===e&&(e=Function.prototype);var o=Object.getOwnPropertyDescriptor(e,n);if(void 0===o){var i=Object.getPrototypeOf(e);return null===i?void 0:t(i,n,r)}if("value"in o)return o.value;var u=o.get;if(void 0!==u)return u.call(r)},h=n(0).get("analytics:pageview_beacon"),d=n(44),_=n(50),y=function(t){function e(t){r(this,e);var n=o(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,d.BEACON));return c["default"].all([t.isInterfering().then(function(t){n._isInterfering=t}),t.isDFPInterfering().then(function(t){n._isDFPInterfering=t}),t.isContentBlockerPresent().then(function(t){n._isContentBlockerPresent=t}),t.isPrivate().then(function(t){n._isPrivate=t}),t.isFSM().then(function(t){n._isFSM=t}),t.serializeResults().then(function(t){n._serializedResults=t}),t.allowsAcceptableAds().then(function(t){n._allowsAcceptableAds=t}),t.getContentBlockers().then(function(t){n._contentBlockers=t})]).then(function(){n.send()}),n}return i(e,t),l(e,[{key:"populateBeaconFields",value:function(){p(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"populateBeaconFields",this).call(this),this.set(_.SENTINEL_FLAG,1),!0===this._isInterfering||!0===this._isDFPInterfering?this.set(_.ADBLOCK_DETECTED,1):null!=this._isInterfering&&null!=this._isDFPInterfering&&this.set(_.ADBLOCK_DETECTED,0),null!=this._serializedResults&&this.set(_.DEBUG_0,this._serializedResults),null!=this._allowsAcceptableAds&&this.set(_.EXCEPTION_RULES,this._allowsAcceptableAds?1:0),null!=this._contentBlockers&&this._contentBlockers.length>0&&this.set(_.DEBUG_1,this._contentBlockers.join(","));var t=[this._isInterfering,this._isContentBlockerPresent,this._isPrivate,this._isFSM,this._isDFPInterfering].map(function(t){return null==t?-1:t?1:0}).join("::");this.set(_.DEBUG_2,t)}},{key:"send",value:function(t){p(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"send",this).call(this,function(e){if(null!=e&&s["default"].has(["msg","domain"])){var n=e;if(null!=n.target&&"string"==typeof n.target.src){var r=n.target.src,o=new f.a(r);o.hostname=s["default"].get(["msg","domain"]),o.pathname="/pv";var i=new Image;i.src=o.toString(),h.info("firing msg pv error beacon",i.src)}}t&&(e?t(e):t())})}}]),e}(u["default"]),b=function(t){function e(t){r(this,e);var n=o(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t));return new y(t),n.on("pagechange",function(){new y(t)}),n}return i(e,t),e}(a.b);e["default"]=b},function(t,e,n){"use strict";function r(t){t.events=t.events||{},t.events.onDetectionComplete=t.events.onDetectionComplete||function(t){n.i(o.a)(t?"sp.blocking":"sp.not_blocking")}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(219);e["default"]=r;n(0).get("backwards_compatibility:config:apply_default_params")},function(t,e,n){"use strict";function r(t){function e(e,r){l()(t,e)&&(l()(t,r)||f()(n,r,a()(t,e)),i()(n,e))}var n=h()(t);return e("account_id","accountId"),e("client_id","clientId"),e("publisher_base","publisherBase"),e("beacon_endpoint",["beacon","pageViewEndpoint"]),e("content_control_beacon_endpoint",["beacon","contentControlEndpoint"]),e("custom_beacon_entries",["beacon","customEntries"]),e("content_control_callback",["bootstrap","contentControlCallback"]),e("content_control_callback",["rid","contentControlCallback"]),e("enable_rid",["rid","enable"]),e("enable_rid_retry",["rid","enableForgivenessCookie"]),e("dfp_targeting_key",["dfp","targetingKey"]),e("enable_vid",["vid","enable"]),e("enable_generic_vid",["vid","enableGeneric"]),e("enable_iframe_vid",["vid","enableInIFrame"]),e("vid_control_callback",["vid","contentControlCallback"]),e("enable_artifact_detection",["detection","exposeSpecificContentBlockerData"]),e("enable_fsm_detection",["detection","fsm","enable"]),e("enable_fsm_network_detection",["detection","fsm","enableNetwork"]),e("fsm_endpoint",["detection","fsm","endpoint"]),e("use_network_detection",["detection","useNetworkBlockerTests"]),e("site_css_url","siteCssLocation"),e("enable_blocker_style_sheet_disabling","disableBlockerStyleSheets"),e("disable_blocker_style_sheets","disableBlockerStyleSheets"),e("run_immediately","runImmediately"),e("mms_domain",["msg","domain"]),e("mms_client_data_callback",["events","onReceiveMessageData"]),e("mms_choice_selected_callback",["events","onMessageChoiceSelect"]),e("msg_z_index",["msg","zIndex"]),e("smart_lib_url",["smart","libURL"]),e("smart_targeting_key",["smart","targetingKey"]),i()(n,"rid_asset_base"),i()(n,"gpt_auto_load"),i()(n,"converge_recovery_domain"),i()(n,"msg_lib_location"),i()(n,"smart_auto_load"),n}Object.defineProperty(e,"__esModule",{value:!0});var o=n(361),i=n.n(o),u=n(357),a=n.n(u),c=n(360),f=n.n(c),s=n(359),l=n.n(s),p=n(356),h=n.n(p);e["default"]=r;n(0).get("backwards_compatibility:config:index")},function(t,e,n){"use strict";function r(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:a,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:window,c=i()(e),f=n.i(u.a)("_sp_scriptVersion")||n.i(u.a)("_sp_version");if(!f)return void c(!1);var s=o.document.createElement("script");s.id="_sp_override",s.addEventListener("load",function(){c(!0)}),s.addEventListener("error",function(){c(!1)});var l="latest"===f?"":"-v"+f;s.src=r+"/0/"+f+"/"+t+l+".js",o.document.head?o.document.head.appendChild(s):o.document.documentElement.appendChild(s)}Object.defineProperty(e,"__esModule",{value:!0});var o=n(93),i=n.n(o),u=n(87);e["default"]=r;var a=(n(0).get("delivery:override_script_version"),["h","t","t","p","s",":","/","/","s","p","-","j","s","-","r","e","l","e","a","s","e","s",".","s","3",".","a","m","a","z","o","n","a","w","s",".","c","o","m"].join(""))},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function u(t){t.forEach(function(t){try{t()}catch(t){p.error("Failed to execute command function",t)}})}Object.defineProperty(e,"__esModule",{value:!0});var a=n(59),c=n.n(a),f=n(2),s=n(5),l=n(12),p=n(0).get("life_cycle:command_queue_feature"),h=function(t){function e(t){r(this,e);var n=o(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t));return n.resolutionPromise=new f["default"](function(t){var e=s["default"].get("cmd");u(e),Object.defineProperty(e,"push",{get:function(){return function(){for(var t=arguments.length,e=Array(t),n=0;n<t;n++)e[n]=arguments[n];u(e)}},set:c.a}),t(!0)}),n}return i(e,t),e}(l.f.to(l.b));e["default"]=h},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function u(t){var e=Date.now();t.isContentBlockerPresent().then(function(t){function n(){f.info("triggering on detection complete",t),a["default"].get(["events","onDetectionComplete"])(t)}var r=Date.now(),o=a["default"].get("runImmediately")?0:Math.max(200-(r-e),0);o>0?window.setTimeout(function(){n()},o):n()})}Object.defineProperty(e,"__esModule",{value:!0});var a=n(5),c=n(12),f=n(0).get("life_cycle:events:on_detection_complete_feature"),s=function(t){function e(t){r(this,e);var n=o(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t));return n.on("pagechange",function(){u(t)}),u(t),n}return i(e,t),e}(c.f.to(c.b));e["default"]=s},function(t,e,n){"use strict";function r(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e<t.length;e++)n[e]=t[e];return n}return Array.from(t)}function o(t){var e=f()(t,function(t){return m.f.test(t)?"1":"0"});return[e[0]||[],e[1]||[]]}function i(t,e){function i(t,e){var n=t[0].map(function(t){return e?new t(e):new t});return a.push.apply(a,r(n)),p["default"].all(n.map(function(t){return t.startPromise})).then(function(){var o=t[1].map(function(t){return e?new t(e):new t});return a.push.apply(a,r(o)),p["default"].all(n.map(function(t){return t.resolutionPromise}).concat(o.map(function(t){return t.resolutionPromise})))})}var u=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];n.i(_["default"])(d["default"].get(["debug","level"])),g.info("client config",window._sp_.config);var a=[];n.i(y.a)("pageChange",function(){a.forEach(function(t){t.emit("pagechange")})}),n.i(y.a)("scriptName",t),n.i(y.a)("version",v.a),g.info("build version",window._sp_.version),window._sp_._networkListenerData||n.i(y.a)("_networkListenerData",n.i(b.a)()),n.i(y.a)("writeCookie",function(){for(var t=arguments.length,e=Array(t),n=0;n<t;n++)e[n]=arguments[n];d["default"].get("writeFirstPartyCookies")&&e.forEach(function(t){document.cookie=t})});var c=void 0;u&&(c=n.i(h.a)());var f=e.filter(function(t){return null!=t.prototype&&t.prototype instanceof m.d}),E=e.filter(function(t){return null!=t.prototype&&t.prototype instanceof m.b}),O=e.filter(function(t){return null!=t.prototype&&t.prototype instanceof m.c}),w=e.filter(function(t){return null!=t.prototype&&t.prototype instanceof m.e});i(o(f)).then(function(){var t=d["default"].get("detection"),e=t.internal,n=u?s.a:l.a,r=new n({runImmediately:d["default"].get("runImmediately"),runInterference:t.runNetworkBlockerTests,runDFPInterference:t.runNetworkBlockerTests,useInterference:t.runNetworkBlockerTests&&t.useNetworkBlockerTests,useDFPInterference:t.runNetworkBlockerTests&&t.useDFPNetworkBlockerTests,useGenericAdblocker:t.useGenericContentBlockerTests,useAdblocker:t.useSpecificContentBlockerTests,timeout:t.timeout,internal:{useInterference:e.useNetworkBlockerTests,useDFPInterference:e.useDFPNetworkBlockerTests,useGenericAdblocker:e.useGenericContentBlockerTests,useAdblocker:e.useSpecificContentBlockerTests}});return u&&r.isContentBlockerPresent().then(function(t){c(t)}),i(o(E),r).then(function(){return i(o(O),r)}).then(function(){return i(o(w),r)})})}function u(t,e){i(t,e)}function a(t,e){i(t,e,!1)}Object.defineProperty(e,"__esModule",{value:!0});var c=n(358),f=n.n(c),s=n(173),l=n(350),p=n(2),h=n(349),d=n(5),_=n(69),y=n(11),b=n(351),v=n(31),m=n(12);e["default"]=u,e.runLifeCycleWithoutDetection=a;var g=n(0).get("life_cycle:index")},function(t,e,n){n(0).get("util:force_util_promise");t.exports=function(){var t=window.Promise;delete window.Promise,n(2),window.Promise=t}},,function(t,e,n){var r=n(26),o=r.Uint8Array;t.exports=o},function(t,e,n){var r=n(13),o=Object.create,i=function(){function t(){}return function(e){if(!r(e))return{};if(o)return o(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();t.exports=i},function(t,e){function n(t,e){return null!=t&&e in Object(t)}t.exports=n},function(t,e,n){function r(t,e,n,s,l){t!==e&&u(e,function(u,f){if(c(u))l||(l=new o),a(t,e,f,n,r,s,l);else{var p=s?s(t[f],u,f+"",t,e,l):void 0;void 0===p&&(p=u),i(t,f,p)}},f)}var o=n(65),i=n(89),u=n(85),a=n(189),c=n(13),f=n(34);t.exports=r},function(t,e,n){function r(t,e,n,r,v,m,g){var E=t[n],O=e[n],w=g.get(O);if(w)return void o(t,n,w);var T=m?m(E,O,n+"",t,e,g):void 0,S=void 0===T;if(S){var R=s(O),P=!R&&p(O),k=!R&&!P&&y(O);T=O,R||P||k?s(E)?T=E:l(E)?T=a(E):P?(S=!1,T=i(O,!0)):k?(S=!1,T=u(O,!0)):T=[]:_(O)||f(O)?(T=E,f(E)?T=b(E):(!d(E)||r&&h(E))&&(T=c(O))):S=!1}S&&(g.set(O,T),v(T,O,r,m,g),g["delete"](O)),o(t,n,T)}var o=n(89),i=n(102),u=n(193),a=n(56),c=n(103),f=n(58),s=n(10),l=n(115),p=n(67),h=n(29),d=n(13),_=n(116),y=n(105),b=n(206);t.exports=r},function(t,e,n){function r(t,e){return o(t,e,function(e,n){return i(t,n)})}var o=n(191),i=n(203);t.exports=r},function(t,e,n){function r(t,e,n){for(var r=-1,a=e.length,c={};++r<a;){var f=e[r],s=o(t,f);n(s,f)&&i(c,u(f,t),s)}return c}var o=n(68),i=n(107),u=n(21);t.exports=r},function(t,e,n){function r(t){var e=new t.constructor(t.byteLength);return new o(e).set(new o(t)),e}var o=n(185);t.exports=r},function(t,e,n){function r(t,e){var n=e?o(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}var o=n(192);t.exports=r},function(t,e){function n(t){return function(e,n,r){for(var o=-1,i=Object(e),u=r(e),a=u.length;a--;){var c=u[t?a:++o];if(!1===n(i[c],c,i))break}return e}}t.exports=n},function(t,e,n){function r(t,e){if(o(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!i(t))||(a.test(t)||!u.test(t)||null!=e&&t in Object(e))}var o=n(10),i=n(204),u=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;t.exports=r},function(t,e){function n(){this.__data__=[],this.size=0}t.exports=n},function(t,e,n){function r(t){var e=this.__data__,n=o(e,t);return!(n<0)&&(n==e.length-1?e.pop():u.call(e,n,1),--this.size,!0)}var o=n(32),i=Array.prototype,u=i.splice;t.exports=r},function(t,e,n){function r(t){var e=this.__data__,n=o(e,t);return n<0?void 0:e[n][1]}var o=n(32);t.exports=r},function(t,e,n){function r(t){return o(this.__data__,t)>-1}var o=n(32);t.exports=r},function(t,e,n){function r(t,e){var n=this.__data__,r=o(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this}var o=n(32);t.exports=r},function(t,e){function n(t){return t}t.exports=n},function(t,e,n){var r=n(201),o=/^\./,i=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,u=/\\(\\)?/g,a=r(function(t){var e=[];return o.test(t)&&e.push(""),t.replace(i,function(t,n,r,o){e.push(r?o.replace(u,"$1"):n||t)}),e});t.exports=a},function(t,e,n){function r(t,e){return null!=t&&i(t,e,o)}var o=n(187),i=n(108);t.exports=r},function(t,e){function n(){return!1}t.exports=n},function(t,e,n){var r=n(188),o=n(63),i=o(function(t,e,n){r(t,e,n)});t.exports=i},function(t,e,n){function r(t){return o(t,i(t))}var o=n(16),i=n(34);t.exports=r},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},,function(t,e){function n(t){return t.split("")}t.exports=n},function(t,e,n){function r(t,e){return t&&o(t,e,i)}var o=n(85),i=n(25);t.exports=r},function(t,e,n){function r(t,e){return o(e,function(e){return t[e]})}var o=n(83);t.exports=r},function(t,e){function n(t){for(var e,n=[];!(e=t.next()).done;)n.push(e.value);return n}t.exports=n},function(t,e){function n(){return[]}t.exports=n},function(t,e){function n(t){return t.split("")}t.exports=n},function(t,e,n){function r(t){return"string"==typeof t||!i(t)&&u(t)&&o(t)==a}var o=n(47),i=n(10),u=n(39),a="[object String]";t.exports=r},function(t,e,n){n(0).get("delivery:stand_down");window._sp_=window._sp_||{};var r={checkState:function(t){t(!1)},isAdBlocking:function(t){t(!1)},getSafeUri:function(t){return t},pageChange:function(){},setupSmartBeacons:function(){}};t.exports.mockApi=function(t){for(var e=0;e<t.length;e++)window._sp_[t[e]]=r[t[e]]}},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function u(t,e){t.getContentBlockers().then(function(t){e(c()(t.map(function(t){return _.get(t)||"unknown"})))})}Object.defineProperty(e,"__esModule",{value:!0});var a=n(75),c=n.n(a),f=n(12),s=n(15),l=n(5),p=n(1),h=n(11),d=(n(0).get("detection:get_content_blockers_feature"),function(t){function e(t){r(this,e);var i=o(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t));return l["default"].get(["detection","exposeSpecificContentBlockerData"])&&(n.i(h.a)("getContentBlockers",u.bind(null,t)),n.i(h.a)("getAdblockers",u.bind(null,t))),i}return i(e,t),e}(f.b));e["default"]=d;var _=new s.a;_.set(p.a.ADBLOCK,"adblock"),_.set(p.a.ADBLOCK_PLUS,"adblock_plus"),_.set(p.a.ADGUARD,"adguard"),_.set(p.a.UBLOCK,"ublock"),_.set(p.a.UBLOCK_ORIGIN,"ublock_origin"),_.set(p.a.NATIVE,"native")},function(t,e,n){n(0).get("util:detect_stand_down_browser");t.exports=function(t){var e=void 0;e=null==t?(navigator.userAgent||navigator.vendor||window.opera).toLowerCase():t.toLowerCase();var n=e.match(/(msie|trident)\s*(\d+)\./),r=n&&window.parseInt(n[2]);return!!r&&r<11}},function(t,e,n){"use strict";function r(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document,n=void 0;try{n=new Event(t,{bubbles:!0,cancelable:!1})}catch(e){n=document.createEvent("Event"),"function"==typeof n.initEvent&&n.initEvent(t,!0,!1)}e.dispatchEvent(n)}e.a=r;n(0).get("util:dom:dispatch_event")},function(t,e,n){n(0).get("config:config");t.exports={bugsnagKey:"00eac706c084cf17802b8cba591a1128",detection:{elementDetection:{waitInterval:100,maxRetries:1}},beacon:{shiftKey:3}}},,,function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var u=n(109),a=n(5),c=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),f=function t(e,n,r){null===e&&(e=Function.prototype);var o=Object.getOwnPropertyDescriptor(e,n);if(void 0===o){var i=Object.getPrototypeOf(e);return null===i?void 0:t(i,n,r)}if("value"in o)return o.value;var u=o.get;if(void 0!==u)return u.call(r)},s=(n(0).get("util:beacon:index"),n(310)),l=n(50),p=n(44),h=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:p.BEACON;r(this,e);var n=o(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t));return s(function(){return n.send()}),n}return i(e,t),c(e,[{key:"populateBeaconFields",value:function(){f(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"populateBeaconFields",this).call(this),this._populateCommonFields(),this._populateCustomerFields()}},{key:"_populateCommonFields",value:function(){this.set(l.PAGE_URL,document.location.hostname+document.location.pathname)}},{key:"_populateCustomerFields",value:function(){var t=this,e=a["default"].get(["beacon","customEntries"]);e&&e.forEach(function(e,n){t.set(l["CUSTOMER_"+(n+1).toString()],e)})}},{key:"processEndpoint",value:function(t){return t.replace(/^(https?:)?\/\//,"")}},{key:"dataPostProcessing",value:function(t){if(t=t.slice(),t.length>0&&0===t[0].indexOf("id")){var e=Math.floor(Math.random()*(t.length-1)+1),n=t[0];t[0]=t[e],t[e]=n}return t}}]),e}(u.a);e["default"]=h},,function(t,e,n){function r(t,e){return!!(null==t?0:t.length)&&o(t,e,0)>-1}var o=n(98);t.exports=r},function(t,e){function n(t,e,n){for(var r=-1,o=null==t?0:t.length;++r<o;)if(n(e,t[r]))return!0;return!1}t.exports=n},function(t,e){function n(t,e,n,r){for(var o=t.length,i=n+(r?1:-1);r?i--:++i<o;)if(e(t[i],i,t))return i;return-1}t.exports=n},function(t,e){function n(t,e){return t+r(o()*(e-t+1))}var r=Math.floor,o=Math.random;t.exports=n},function(t,e,n){function r(t){return function(e,n,r){var a=Object(e);if(!i(e)){var c=o(n,3);e=u(e),n=function(t){return c(a[t],t,a)}}var f=t(e,n,r);return f>-1?a[c?e[f]:f]:void 0}}var o=n(36),i=n(38),u=n(25);t.exports=r},function(t,e){function n(){}t.exports=n},function(t,e,n){function r(t,e,n){if(n&&"boolean"!=typeof n&&i(t,e,n)&&(e=n=void 0),void 0===n&&("boolean"==typeof e?(n=e,e=void 0):"boolean"==typeof t&&(n=t,t=void 0)),void 0===t&&void 0===e?(t=0,e=1):(t=u(t),void 0===e?(e=t,t=0):e=u(e)),t>e){var r=t;t=e,e=r}if(n||t%1||e%1){var s=f();return c(t+s*(e-t+a("1e-"+((s+"").length-1))),e)}return o(t,e)}var o=n(228),i=n(92),u=n(232),a=parseFloat,c=Math.min,f=Math.random;t.exports=r},function(t,e){function n(t){return t}t.exports=n},function(t,e,n){"use strict";function r(){return["/","/","a","d",".","d","o","u","b","l","e","c","l","i","c","k",".","n","e","t","/","d","d","m","/","a","d","/",o(),"/",";","o","r","d","=",Date.now(),"?"].join("")}function o(){return u()(n.i(a.a)(1,5),function(){return n.i(a.b)(2,11)}).join("/")}var i=n(123),u=n.n(i),a=n(23);e.a=r;n(0).get("config:network_test_uri")},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=n(61),a=n(1),c=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),f=function t(e,n,r){null===e&&(e=Function.prototype);var o=Object.getOwnPropertyDescriptor(e,n);if(void 0===o){var i=Object.getPrototypeOf(e);return null===i?void 0:t(i,n,r)}if("value"in o)return o.value;var u=o.get;if(void 0!==u)return u.call(r)},s=(n(0).get("detection:acceptable_ad:element_hiding_test"),function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),c(e,null,[{key:"getSchema",value:function(){return f(e.__proto__||Object.getPrototypeOf(e),"getSchema",this).call(this).addAttribute([a.b.ACCEPTABLE_AD])}},{key:"testMethod",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:".abp_ob_exist",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:window;return f(e.__proto__||Object.getPrototypeOf(e),"testMethod",this).call(this,t,n)}}]),e}(u.a));e.a=s},function(t,e,n){"use strict";var r=n(234);n(0).get("detection:acceptable_ad:index");e.a=[r.a]},function(t,e,n){"use strict";var r=n(237);n(0).get("detection:adblocker:chrome:adblock:index");e.a=[r.a]},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=n(3),a=n(4),c=n(8),f=n(148),s=n(1),l=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),p=(n(0).get("detection:adblocker:chrome:adblock:style_sheet_test"),function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),l(e,null,[{key:"getSchema",value:function(){return new a.a(s.b.ADBLOCKER,s.c.ARTIFACT,s.c.STYLE_SHEET,s.c.HIDING_DATA)}},{key:"testMethod",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window,e=n.i(f.a)(t),r=e.foundAdblocker();return this.getSchema().createResult(r?s.a.ADBLOCK:s.a.NOT_PRESENT,r?s.f.STYLE_SHEET_PRESENT:s.f.NO_STYLE_SHEET_PRESENT,c.a.fromStyleSheets({shadowSheets:e.getAdblockerStyleSheets()}))}}]),e}(u.b));e.a=p},function(t,e,n){"use strict";var r=n(239);n(0).get("detection:adblocker:chrome:adblock_plus:index");e.a=[r.a]},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=n(3),a=n(4),c=n(8),f=n(149),s=n(1),l=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),p=(n(0).get("detection:adblocker:chrome:adblock_plus:style_sheet_test"),function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),l(e,null,[{key:"getSchema",value:function(){return new a.a(s.b.ADBLOCKER,s.c.ARTIFACT,s.c.STYLE_SHEET,s.c.HIDING_DATA)}},{key:"testMethod",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window,e=n.i(f.a)(t),r=e.foundAdblocker();return this.getSchema().createResult(r?s.a.ADBLOCK_PLUS:s.a.NOT_PRESENT,r?s.f.STYLE_SHEET_PRESENT:s.f.NO_STYLE_SHEET_PRESENT,c.a.fromStyleSheets({shadowSheets:e.getAdblockerStyleSheets()}))}}]),e}(u.b));e.a=p},function(t,e,n){"use strict";var r=n(241);n(0).get("detection:adblocker:chrome:adguard:index");e.a=[r.a]},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=n(3),a=n(4),c=n(8),f=n(150),s=n(1),l=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),p=(n(0).get("detection:adblocker:chrome:adguard:style_sheet_test"),function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),l(e,null,[{key:"getSchema",value:function(){return new a.a(s.b.ADBLOCKER,s.c.ARTIFACT,s.c.STYLE_SHEET,s.c.HIDING_DATA)}},{key:"testMethod",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window,e=n.i(f.a)(t),r=e.foundAdblocker();return this.getSchema().createResult(r?s.a.ADGUARD:s.a.NOT_PRESENT,r?s.f.STYLE_SHEET_PRESENT:s.f.NO_STYLE_SHEET_PRESENT,c.a.fromStyleSheets({shadowSheets:e.getAdblockerStyleSheets()}))}}]),e}(u.b));e.a=p},function(t,e,n){"use strict";var r=n(14),o=n.n(r),i=n(243);n(0).get("detection:adblocker:chrome:ublock_origin:index");e.a=o()([i.a])},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=n(3),a=n(4),c=n(8),f=n(49),s=n(1),l=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),p=(n(0).get("detection:adblocker:chrome:ublock_origin:style_sheet_test"),function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),l(e,null,[{key:"getSchema",value:function(){return new a.a(s.b.ADBLOCKER,s.c.ARTIFACT,s.c.STYLE_SHEET,s.c.HIDING_DATA)}},{key:"testMethod",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window;return n.i(f.a)(e).then(function(e){var n=e.foundAdblocker();return t.getSchema().createResult(n?s.a.UBLOCK_ORIGIN:s.a.NOT_PRESENT,n?s.f.STYLE_SHEET_PRESENT:s.f.NO_STYLE_SHEET_PRESENT,c.a.fromStyleSheets({documentSheets:e.getAdblockerStyleSheets()}))})}}]),e}(u.b));e.a=p},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=n(3),a=n(4),c=n(8),f=n(1),s=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),l=(n(0).get("detection:adblocker:firefox:adblock_plus:57:inline_style_sheet_test"),function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),s(e,null,[{key:"findDependency",value:function(t){return t.has(f.c.HIDING_DATA)}},{key:"getSchema",value:function(){return new a.a(f.b.ADBLOCKER,f.c.INLINE_STYLE_SHEET)}},{key:"testMethod",value:function(t){var e=t.map(function(t){return t.getData(c.a)}).filter(function(t){return null!=t&&t.inlineStyleSheet.hasDisplayNoneImportant});return 0===e.length?this.getSchema().createResult(f.a.NOT_PRESENT,f.f.NO_STYLE_SHEET_PRESENT):e.some(function(t){return!1===t.hiddenImmediately})?this.getSchema().createResult(f.a.NOT_PRESENT,f.f.STYLE_SHEET_PRESENT,f.f.HIDDEN_LATER):e.some(function(t){return!0===t.hiddenImmediately})?this.getSchema().createResult(f.a.ADBLOCK_PLUS,f.f.STYLE_SHEET_PRESENT,f.f.HIDDEN_IMMEDIATELY):this.getSchema().createResult(f.a.NOT_PRESENT,f.f.STYLE_SHEET_PRESENT,f.f.NONE_HIDDEN_IMMEDIATELY)}}]),e}(u.a));e.a=l},function(t,e,n){"use strict";var r=n(244),o=n(246);n(0).get("detection:adblocker:firefox:adblock_plus:index");e.a=[r.a,o.a]},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=n(3),a=n(4),c=n(1),f=n(151),s=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),l=(n(0).get("detection:adblocker:firefox:adblock_plus:style_property_test"),function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),s(e,null,[{key:"getSchema",value:function(){return new a.a(c.b.ADBLOCKER,c.c.ARTIFACT,c.c.STYLE_PROPERTY)}},{key:"testMethod",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window;return n.i(f.a)(e).then(function(e){var n=e.foundAdblocker();return t.getSchema().createResult(n?c.a.ADBLOCK_PLUS:c.a.NOT_PRESENT,n?c.f.STYLE_PROPERTY_PRESENT:c.f.NO_STYLE_PROPERTY_PRESENT)})}}]),e}(u.b));e.a=l},function(t,e,n){"use strict";var r=n(248);n(0).get("detection:adblocker:firefox:adguard:index");e.a=[r.a]},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=n(3),a=n(4),c=n(8),f=n(152),s=n(1),l=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),p=(n(0).get("detection:adblocker:firefox:adguard:style_sheet_test"),function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),l(e,null,[{key:"getSchema",value:function(){return new a.a(s.b.ADBLOCKER,s.c.ARTIFACT,s.c.STYLE_SHEET,s.c.HIDING_DATA)}},{key:"testMethod",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window,e=n.i(f.a)(t),r=e.foundAdblocker();return this.getSchema().createResult(r?s.a.ADGUARD:s.a.NOT_PRESENT,r?s.f.STYLE_SHEET_PRESENT:s.f.NO_STYLE_SHEET_PRESENT,c.a.fromStyleSheets({documentSheets:e.getAdblockerStyleSheets()}))}}]),e}(u.b));e.a=p},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=n(3),a=n(4),c=n(8),f=n(1),s=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),l=(n(0).get("detection:adblocker:firefox:ublock_origin:57:inline_style_sheet_test"),function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),s(e,null,[{key:"findDependency",value:function(t){return t.has(f.c.HIDING_DATA)}},{key:"getSchema",value:function(){return new a.a(f.b.ADBLOCKER,f.c.INLINE_STYLE_SHEET)}},{key:"testMethod",value:function(t){var e=t.map(function(t){return t.getData(c.a)}).filter(function(t){return null!=t&&t.inlineStyleSheet.hasDisplayNoneImportant});return 0===e.length?this.getSchema().createResult(f.a.NOT_PRESENT,f.f.NO_STYLE_SHEET_PRESENT):e.some(function(t){return!1===t.hiddenImmediately})?this.getSchema().createResult(f.a.UBLOCK_ORIGIN,f.f.STYLE_SHEET_PRESENT,f.f.HIDDEN_LATER):this.getSchema().createResult(f.a.NOT_PRESENT,f.f.STYLE_SHEET_PRESENT,f.f.NONE_HIDDEN_LATER)}}]),e}(u.a));e.a=l},function(t,e,n){"use strict";var r=n(249),o=n(251);n(0).get("detection:adblocker:firefox:ublock_origin:index");e.a=[r.a,o.a]},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=n(3),a=n(4),c=n(1),f=n(153),s=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),l=(n(0).get("detection:adblocker:firefox:ublock_origin:style_property_and_hidden_property_test"),function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),s(e,null,[{key:"getSchema",value:function(){return new a.a(c.b.ADBLOCKER,c.c.ARTIFACT,c.c.STYLE_PROPERTY,c.c.HIDDEN_PROPERTY)}},{key:"testMethod",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window;return n.i(f.a)(e).then(function(e){var n=e.foundAdblocker();return t.getSchema().createResult(n?c.a.UBLOCK_ORIGIN:c.a.NOT_PRESENT,n?c.f.STYLE_PROPERTY_PRESENT:c.f.NO_STYLE_PROPERTY_PRESENT,n?c.f.HIDDEN_PROPERTY_PRESENT:c.f.NO_HIDDEN_PROPERTY_PRESENT)})}}]),e}(u.b));e.a=l},function(t,e,n){"use strict";var r=n(253);n(0).get("detection:adblocker:generic:ublock:index");e.a=[r.a]},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=n(3),a=n(4),c=n(8),f=n(49),s=n(1),l=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),p=(n(0).get("detection:adblocker:generic:ublock:style_sheet_test"),function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),l(e,null,[{key:"getSchema",value:function(){return new a.a(s.b.ADBLOCKER,s.c.ARTIFACT,s.c.STYLE_SHEET,s.c.HIDING_DATA)}},{key:"testMethod",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window;return n.i(f.a)(e).then(function(e){var n=e.foundAdblocker();return t.getSchema().createResult(n?s.a.UBLOCK:s.a.NOT_PRESENT,n?s.f.STYLE_SHEET_PRESENT:s.f.NO_STYLE_SHEET_PRESENT,c.a.fromStyleSheets({documentSheets:e.getAdblockerStyleSheets()}))})}}]),e}(u.b));e.a=p},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=n(3),a=n(4),c=n(8),f=n(100),s=n(1),l=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),p=(n(0).get("detection:adblocker:generic:ublock_origin:style_sheet_test"),function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),l(e,null,[{key:"getSchema",value:function(){return new a.a(s.b.ADBLOCKER,s.c.ARTIFACT,s.c.STYLE_SHEET,s.c.HIDING_DATA)}},{key:"testMethod",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window;return n.i(f.a)(e).then(function(e){var n=e.foundAdblocker();return t.getSchema().createResult(n?s.a.UBLOCK_ORIGIN:s.a.NOT_PRESENT,n?s.f.STYLE_SHEET_PRESENT:s.f.NO_STYLE_SHEET_PRESENT,c.a.fromStyleSheets({documentSheets:e.getAdblockerStyleSheets()}))})}}]),e}(u.b));e.a=p},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=n(3),a=n(4),c=n(1),f=n(154),s=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),l=(n(0).get("detection:adblocker:internet_explorer:adblock_plus:custom_property_test"),function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),s(e,null,[{key:"getSchema",value:function(){return new a.a(c.b.ADBLOCKER,c.c.ARTIFACT,c.c.CUSTOM_PROPERTY)}},{key:"testMethod",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window,e=n.i(f.a)(t).foundAdblocker();return this.getSchema().createResult(e?c.a.ADBLOCK_PLUS:c.a.NOT_PRESENT,e?c.f.CUSTOM_PROPERTY_PRESENT:c.f.NO_CUSTOM_PROPERTY_PRESENT)}}]),e}(u.b));e.a=l},function(t,e,n){"use strict";var r=n(255);n(0).get("detection:adblocker:internet_explorer:adblock_plus:index");e.a=[r.a]},function(t,e,n){"use strict";var r=n(258);n(0).get("detection:adblocker:opera:native:index");e.a=[r.a]},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=n(3),a=n(4),c=n(1),f=n(155),s=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),l=(n(0).get("detection:adblocker:opera:native:style_property_test"),function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),s(e,null,[{key:"getSchema",value:function(){return new a.a(c.b.ADBLOCKER,c.c.ARTIFACT,c.c.STYLE_PROPERTY)}},{key:"testMethod",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window;return n.i(f.a)(e).then(function(e){var n=e.foundAdblocker();return t.getSchema().createResult(n?c.a.NATIVE:c.a.NOT_PRESENT,n?c.f.STYLE_PROPERTY_PRESENT:c.f.NO_STYLE_PROPERTY_PRESENT)})}}]),e}(u.b));e.a=l},function(t,e,n){"use strict";var r=n(260);n(0).get("detection:adblocker:safari:adblock:index");e.a=[r.a]},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=n(3),a=n(4),c=n(8),f=n(156),s=n(1),l=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),p=(n(0).get("detection:adblocker:safari:adblock:style_sheet_test"),function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),l(e,null,[{key:"getSchema",value:function(){return new a.a(s.b.ADBLOCKER,s.c.ARTIFACT,s.c.STYLE_SHEET,s.c.HIDING_DATA)}},{key:"testMethod",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window,e=n.i(f.a)(t),r=e.foundAdblocker();return this.getSchema().createResult(r?s.a.ADBLOCK:s.a.NOT_PRESENT,r?s.f.STYLE_SHEET_PRESENT:s.f.NO_STYLE_SHEET_PRESENT,c.a.fromStyleSheets({documentSheets:e.getAdblockerStyleSheets()}))}}]),e}(u.b));e.a=p},function(t,e,n){"use strict";var r=n(262);n(0).get("detection:adblocker:safari:adblock_plus:index");e.a=[r.a]},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=n(3),a=n(4),c=n(8),f=n(157),s=n(1),l=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),p=(n(0).get("detection:adblocker:safari:adblock_plus:style_sheet_test"),function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),l(e,null,[{key:"getSchema",value:function(){return new a.a(s.b.ADBLOCKER,s.c.ARTIFACT,s.c.STYLE_SHEET,s.c.HIDING_DATA)}},{key:"testMethod",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window,e=n.i(f.a)(t),r=e.foundAdblocker();return this.getSchema().createResult(r?s.a.ADBLOCK_PLUS:s.a.NOT_PRESENT,r?s.f.STYLE_SHEET_PRESENT:s.f.NO_STYLE_SHEET_PRESENT,c.a.fromStyleSheets({documentSheets:e.getAdblockerStyleSheets()}))}}]),e}(u.b));e.a=p},,function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=n(275),a=n(233),c=n(1),f=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),s=function t(e,n,r){null===e&&(e=Function.prototype);var o=Object.getOwnPropertyDescriptor(e,n);if(void 0===o){var i=Object.getPrototypeOf(e);return null===i?void 0:t(i,n,r)}if("value"in o)return o.value;var u=o.get;if(void 0!==u)return u.call(r)},l=(n(0).get("detection:dfp_interference:image_network_test"),function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),f(e,null,[{key:"getSchema",value:function(){return s(e.__proto__||Object.getPrototypeOf(e),"getSchema",this).call(this).addAttribute(c.b.DFP_INTERFERENCE).removeAttribute(c.b.INTERFERENCE)}},{key:"testMethod",value:function(){return s(e.__proto__||Object.getPrototypeOf(e),"testMethod",this).call(this,n.i(a.a)())}}]),e}(u.a));e.a=l},function(t,e,n){"use strict";var r=n(264);n(0).get("detection:dfp_interference:index");e.a=[r.a]},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function u(t,e){return t+"/"+e}var a=n(3),c=n(4),f=n(274),s=n(1),l=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),p=n(0).get("detection:fsm:ajax_data_test"),h=function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),l(e,null,[{key:"getSchema",value:function(){return new c.a(s.b.GENERIC_ADBLOCKER,s.b.FSM_DATA,s.c.NETWORK,s.c.INFERENCE,s.c.AJAX,s.c.FSM)}},{key:"testMethod",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return e&&r?(p.info("loading fsm data",e,r),n.i(f.a)(u(e,r)).then(function(e){return t.getSchema().createResult(e.blocked?s.a.PRESENT:s.a.NOT_PRESENT,e.reasonAttribute,e.infoAttributes,e.xhrData,new s.s(r))})):(p.error("cannot load fsm data",e,r),this.getSchema().createResult(s.a.NOT_PRESENT,s.f.CANNOT_TEST))}}]),e}(a.b);e.a=h},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function u(t,e){var r=document.createElement(O[n.i(m.a)(0,O.length)]);r.className=n.i(m.b)(),document.body.appendChild(r);var o=document.createElement("style");return document.head.appendChild(o),o.innerHTML="\n "+r.nodeName.toLowerCase()+"."+r.className+" {\n position: absolute !important;\n top: -9999px !important;\n left: -9999px !important;\n }\n ",d["default"].all(a(o,r,t,e)).then(function(t){r.parentElement&&document.body.removeChild(r),o.parentElement&&document.head.removeChild(o);var e=t.reduce(function(t,e){return t.addAttribute(e.attributes)});return e.has(v.a.PRESENT)?e.removeAttribute(v.a.NOT_PRESENT,v.f.NO_MATCHING_BLACKLIST):e})}function a(t,e,r,o){var i=!1;return o.map(function(o){var u=document.createElement(O[n.i(m.a)(0,O.length)]);u.className=n.i(m.b)(),e.appendChild(u);var a=void 0;try{a=n.i(y.a)(o)}catch(t){return E.warn("broken rule",o),r.createResult(v.a.NOT_PRESENT,v.f.NO_MATCHING_BLACKLIST,new v.p(o))}var f=u.nodeName.toLowerCase()+"."+u.className+" > "+o,s="\n "+f+" {\n display: block;\n height: 5px !important;\n width: 5px !important;\n }\n ";return null==t.sheet||"function"!=typeof t.sheet.insertRule?t.innerHTML+=s:t.sheet.insertRule(s,0),a.forEach(function(t){u.appendChild(t)}),c().then(function(){return new d["default"](function(t){var e=document.querySelector(f);if(!e)return void t(r.createResult(v.a.NOT_PRESENT,v.f.NO_MATCHING_BLACKLIST,new v.q(o)));if(n.i(_.b)(e)){E.debug("hiding rule",o);var u=void 0;i||(i=!0,u=p.a.fromElement(e,o)),t(r.createResult(v.a.PRESENT,v.f.HIDE_MATCHING_BLACKLIST,u,new v.r(o)))}else t(r.createResult(v.a.NOT_PRESENT,v.f.NO_MATCHING_BLACKLIST))})}).then(function(t){return u.parentElement&&e.removeChild(u),t})})}function c(){return new d["default"](function(t){setTimeout(function(){setTimeout(function(){t()},150)},1)})}var f=n(20),s=n.n(f),l=n(4),p=n(8),h=n(127),d=n(2),_=n(22),y=n(131),b=n(94),v=n(1),m=n(23),g=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),E=n(0).get("detection:fsm:element_hiding_test"),O=["div","span","li","section"],w=function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),g(e,null,[{key:"getSchema",value:function(){return new l.a(v.b.GENERIC_ADBLOCKER,v.c.INFERENCE,v.c.FSM,v.c.ELEMENT,v.c.HIDING,v.c.HIDING_DATA)}},{key:"testMethod",value:function(t){var e=s()(this.getFSMData(t).map(function(t){return n.i(b.c)(t)}).filter(Boolean));return 0===e.length?(E.debug("no hiding rules"),this.getSchema().createResult(v.a.NOT_PRESENT,v.f.NO_ELEMENT_HIDING_RULES)):u(this.getSchema(),e)}}]),e}(h.a);e.a=w},function(t,e,n){"use strict";function r(){if(!a["default"].get(["detection","fsm","enable"]))return[];var t=o.a.bindArgs(a["default"].get(["detection","fsm","endpoint"]),document.domain);return a["default"].get(["detection","fsm","enableNetwork"])?[t,i.a,u.a]:[t,i.a]}var o=n(266),i=n(267),u=n(270),a=n(5);e.a=r;n(0).get("detection:fsm:index")},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var o=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),i=(n(0).get("detection:fsm:network_blocker_list"),function(){function t(e,n,o,i){r(this,t),this._name=e,this._domain=n||"",this._blacklistRules=o,this._whitelistRules=i}return o(t,[{key:"getName",value:function(){return this._name}},{key:"allMatchingBlacklistRules",value:function(t,e){return this._allMatchingRules(this._blacklistRules,t,e)}},{key:"allMatchingWhitelistRules",value:function(t,e){return this._allMatchingRules(this._whitelistRules,t,e)}},{key:"_allMatchingRules",value:function(t,e,n){var r=this;return t.reduce(function(t,o){var i=e.filter(function(t){return o.test(t.src,{tagName:t.tagName,domain:r._domain})}),a=n.filter(function(t){return o.test(t.src,{tagName:t.tagName,domain:r._domain})});return 0===i.length&&0===a.length?t:t.concat(new u(o,i,a))},[])}}]),t}());e.a=i;var u=function t(e,n,o){r(this,t),this.rule=e,this.loadEvents=n,this.errorEvents=o}},function(t,e,n){"use strict";function r(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e<t.length;e++)n[e]=t[e];return n}return Array.from(t)}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function u(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function a(t,e,o){var i=n.i(m.a)(window._sp_._networkListenerData);if(null==i)return t.createResult(E.a.NOT_PRESENT,E.f.NO_NETWORK_LISTENER_DATA);var u=i.loadEvents,a=i.errorEvents;S.debug("fsm load/error events",u,a);var f=e.reduce(function(t,e){var n,o,i=p()(t,function(t){return t.listName===e.listName});return-1===i?(t.push(e),t):((n=t[i].blacklist).push.apply(n,r(e.blacklist)),(o=t[i].whitelist).push.apply(o,r(e.whitelist)),t)},[]);S.debug("network rules by list",f);var l=f.map(function(t){return new b.a(t.listName,document.domain,t.blacklist.map(function(t){return new O.a(t)}),t.whitelist.map(function(t){return new O.b(t)}))});if(0===l.length)return t.createResult(E.a.NOT_PRESENT,E.f.NO_NETWORK_BLOCKING_RULES);var h=u.map(function(t){return new w.a(c(t.src,o.location.protocol),t.tagName)}),d=a.map(function(t){return new w.b(c(t.src,o.location.protocol),t.tagName)});return l.reduce(function(t,e){S.debug("fsm networker blocker list:",e.getName());var n=e.allMatchingBlacklistRules(h,d);S.debug("blacklist rule matches:",n);var r=e.allMatchingWhitelistRules(h,d);S.debug("whitelist rule matches:",r);var o=n.some(function(t){return t.loadEvents.length>0}),i=n.some(function(t){return t.errorEvents.length>0}),u=r.some(function(t){return t.loadEvents.length>0}),a=r.some(function(t){return t.errorEvents.length>0}),c=new E.g(e.getName(),n.map(function(t){return new E.h(t.rule.toString(),t.loadEvents.map(function(t){return new E.i(t.src,t.tagName)}),t.errorEvents.map(function(t){return new E.j(t.src,t.tagName)}))}),r.map(function(t){return new E.k(t.rule.toString(),t.loadEvents.map(function(t){return new E.i(t.src,t.tagName)}),t.errorEvents.map(function(t){return new E.j(t.src,t.tagName)}))}));if(S.debug("blacklist load",o),S.debug("blacklist error",i),S.debug("whitelist load",u),S.debug("whitelist error",a),S.debug(c),t.has(E.a.PRESENT))return o||i||u||a?t.addAttribute(c):t;if(i&&!o)return t.addAttribute(E.a.PRESENT,E.f.ERROR_MATCHING_BLACKLIST,c).removeAttribute(E.a.NOT_PRESENT,E.f.NO_MATCHING_BLACKLIST);if(i&&o){var f=s()(n.map(function(t){return t.loadEvents})),p=f.every(function(t){return l.some(function(e){return e.allMatchingWhitelistRules([t],[]).length>0})});return S.debug("all loads matching whitelist",p),p?t.addAttribute(E.a.PRESENT,E.f.ERROR_MATCHING_BLACKLIST,E.f.LOAD_MATCHING_WHITELIST,c).removeAttribute(E.a.NOT_PRESENT,E.f.NO_MATCHING_BLACKLIST):t.addAttribute(E.f.LOAD_MATCHING_BLACKLIST,c).removeAttribute(E.f.NO_MATCHING_BLACKLIST)}return!i&&o?t.addAttribute(E.f.LOAD_MATCHING_BLACKLIST,c).removeAttribute(E.f.NO_MATCHING_BLACKLIST):u||a?t.addAttribute(c):t},t.createResult(E.a.NOT_PRESENT,E.f.NO_MATCHING_BLACKLIST))}function c(t,e){return 0===t.indexOf("//")?e+t:t}var f=n(14),s=n.n(f),l=n(121),p=n.n(l),h=n(20),d=n.n(h),_=n(4),y=n(127),b=n(269),v=n(2),m=n(309),g=n(94),E=n(1),O=n(271),w=n(133),T=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),S=n(0).get("detection:fsm:network_listener_test"),R=function(t){function e(){return o(this,e),i(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return u(e,t),T(e,null,[{key:"getSchema",value:function(){return new _.a(E.b.GENERIC_ADBLOCKER,E.c.FSM,E.c.NETWORK_LISTENER,E.c.INFERENCE)}},{key:"testMethod",value:function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:window,o=d()(this.getFSMData(t).map(function(t){return n.i(g.b)(t)}).filter(Boolean));return S.debug("fsm network rules",o),new v["default"](function(t){"complete"===r.document.readyState?t(a(e.getSchema(),o,r)):r.addEventListener("load",function(){t(a(e.getSchema(),o,r))})})}}]),e}(y.a);e.a=R},function(t,e,n){"use strict";function r(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function u(t){return new RegExp(t.replace(/\*+/g,"*").replace(/\^\|$/,"^").replace(/\W/g,"\\$&").replace(/\\\*/g,".*").replace(/\\\^/g,"(?:[\\x00-\\x24\\x26-\\x2C\\x2F\\x3A-\\x40\\x5B-\\x5E\\x60\\x7B-\\x7F]|$)").replace(/^\\\|\\\|/,"^[\\w\\-]+:\\/+(?!\\/)(?:[^\\/]+\\.)?").replace(/^\\\|/,"^").replace(/\\\|$/,"$").replace(/^(\.\*)/,"").replace(/(\.\*)$/,""))}function a(t){return t.split(",").map(function(t){if(0===t.indexOf("domain=")){var e=t.slice("domain=".length);return new P("domain",e.split("|").map(s))}var n=t.indexOf("third-party");return 0===n||1===n?f(t):c(t)})}function c(t){return l(t,T)}function f(t){return l(t,S)}function s(t){return l(t,R)}function l(t,e){var n=t.match(/(~)?(.*)/);return null==n?new e(t):new e(n[2],"~"===n[1])}function p(t,e,n){if(0===t.length)return!0;var r=t.filter(function(t){return t instanceof O&&!t.not}),o=t.filter(function(t){return t instanceof E&&!t.not}),i=t.filter(function(t){return t.not});return!o.some(function(t){return!t.test(e,n)})&&(!(r.length>0&&r.every(function(t){return!t.test(e,n)}))&&!i.some(function(t){return t.test(e,n)}))}var h=n(137),d=n.n(h),_=n(30);n.d(e,"a",function(){return v}),n.d(e,"b",function(){return m});var y=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),b=(n(0).get("detection:fsm:network_rule"),function(){function t(e){i(this,t);var n=e.indexOf("$"),r=e,o=[];n>-1&&(o=a(e.slice(n+1)),r=e.slice(0,n)),this._ruleStr=e,this.regExp=u(r),this.options=o}return y(t,[{key:"toString",value:function(){return this._ruleStr}},{key:"test",value:function(t,e){return this.regExp.test(t)&&this._testOptions(t,e)}},{key:"_testOptions",value:function(t,e){return p(this.options,t,e)}}]),t}()),v=function(t){function e(){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return o(e,t),e}(b),m=function(t){function e(){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return o(e,t),e}(b),g=function t(e){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];i(this,t),this.name=e,this.not=n},E=function(t){function e(){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return o(e,t),e}(g),O=function(t){function e(){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return o(e,t),e}(g),w={img:"image",iframe:"subdocument"},T=function(t){function e(){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return o(e,t),y(e,[{key:"test",value:function(t,e){var n=e.tagName,r=w[n]||n;return this.name===r}}]),e}(O),S=function(t){function e(){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return o(e,t),y(e,[{key:"test",value:function(t,e){var n=new _.a(t),r=n.hostname;if(r.indexOf(e.domain)>-1)return!1;var o=r.split("."),i=e.domain.split(".");if(d()(o)!==d()(i))return!0;if("co"===o[o.length-2]&&"uk"===d()(o)){if("co"!==i[i.length-2]||"uk"!==d()(i))return!0;o.pop(),i.pop()}return o.pop(),i.pop(),d()(o)!==d()(i)}}]),e}(E),R=function(t){function e(){return i(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return o(e,t),y(e,[{key:"test",value:function(t,e){return e.domain.indexOf(this.name)>-1}}]),e}(O),P=function(t){function e(t,n){i(this,e);var o=r(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t));return o.domains=n,o}return o(e,t),y(e,[{key:"test",value:function(t,e){return p(this.domains,t,e)}}]),e}(E)},function(t,e,n){"use strict";var r=n(61),o=n(273);n(0).get("detection:generic_adblocker:index");e.a=[r.a,o.a]},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=n(61),a=n(2),c=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),f=function t(e,n,r){null===e&&(e=Function.prototype);var o=Object.getOwnPropertyDescriptor(e,n);if(void 0===o){var i=Object.getPrototypeOf(e);return null===i?void 0:t(i,n,r)}if("value"in o)return o.value;var u=o.get;if(void 0!==u)return u.call(r)},s=(n(0).get("detection:generic_adblocker:on_load_element_hiding_test"),function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),c(e,null,[{key:"testMethod",value:function(t){var n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:window,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10;return"complete"===r.document.readyState?f(e.__proto__||Object.getPrototypeOf(e),"testMethod",this).call(this,t,r,o):new a["default"](function(i){r.addEventListener("load",function(){i(f(e.__proto__||Object.getPrototypeOf(e),"testMethod",n).call(n,t,r,o))})})}}]),e}(u.a));e.a=s},function(t,e,n){"use strict";function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:window.location,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:window.navigator;return n.i(a.b)(t,e,r).then(function(e){var n=e.blocked,r=e.succeeded,o=e.type,a=e.status,c=e.timeStamp,f=e.errorText,h=e.xhr;s.info("ajax test finished",n,r,o,a,c,f,h);var d=n?l[o]:p[o],_=[];return null!=a&&_.push(new u.t(a)),null!=c&&_.push(new u.u(c)),null!=f&&_.push(new u.v(f)),_.push(new u.w(t)),{blocked:n,succeeded:r,reasonAttribute:d,infoAttributes:_,xhrData:h&&new i.a(h)}})}var i=n(79),u=n(1),a=n(96);e.a=o;var c,f,s=n(0).get("detection:interference:ajax_network_test:promise"),l=(c={},r(c,a.a.NETWORK_FAILURE,u.f.AJAX_LOAD_BLOCK),r(c,a.a.OPEN_ERROR,u.f.AJAX_OPEN_BLOCK),r(c,a.a.SEND_ERROR,u.f.AJAX_SEND_BLOCK),c),p=(f={},r(f,a.a.SUCCEEDED,u.f.AJAX_LOAD_SUCCESS),r(f,a.a.NETWORK_FAILURE,u.f.AJAX_LOAD_ERROR),r(f,a.a.OFFLINE,u.f.OFFLINE),r(f,a.a.PROTOCOL_MISMATCH,u.f.PROTOCOL_MISMATCH),f)},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function u(t,e){return new p["default"](function(n){var r=document.createElement("div");r.style.position="absolute",r.style.left="-9999px",r.style.top="-9999px",r.style.width="1px",r.style.height="1px";var o=new Image;o.setAttribute("height","1"),o.setAttribute("width","1"),r.appendChild(o);var i=c()(function(o,i,u){r.parentElement&&document.body.removeChild(r),n(t.createResult(o,i,new h.w(e),new l.a(u)))});o.addEventListener("load",function(t){o.src===y?i(h.a.PRESENT,h.f.URL_REWRITTEN,t):i(h.a.NOT_PRESENT,h.f.NO_LOAD_BLOCK,t)},!0),o.addEventListener("error",function(t){i(h.a.PRESENT,h.f.LOAD_BLOCK,t)},!0),o.src=e,document.body.appendChild(r)})}var a=n(93),c=n.n(a),f=n(3),s=n(4),l=n(289),p=n(2),h=n(1),d=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),_=(n(0).get("detection:interference:image_network_test"),function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),d(e,null,[{key:"getSchema",value:function(){return new s.a(h.b.INTERFERENCE,h.c.INFERENCE,h.c.IMAGE,h.c.NETWORK)}},{key:"testMethod",value:function(t){return null==t?this.getSchema().createResult(h.a.NOT_PRESENT,h.f.CANNOT_TEST):u(this.getSchema(),t)}}]),e}(f.b));e.a=_;var y="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs="},function(t,e,n){"use strict";n(0).get("detection:interference:index");e.a=[]},function(t,e,n){"use strict";var r=n(278);n(0).get("detection:private:chrome:index");e.a=[r.a]},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=n(3),a=n(4),c=n(2),f=n(1),s=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),l=(n(0).get("detection:private:chrome:request_file_system_test"),function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),s(e,null,[{key:"getSchema",value:function(){return new a.a(f.b.PRIVATE,f.c.FEATURE_ACCESS)}},{key:"testMethod",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window;return new c["default"](function(n){e.webkitRequestFileSystem?e.webkitRequestFileSystem(window.TEMPORARY,1,function(){n(t.getSchema().createResult(f.a.NOT_PRESENT,f.f.REQUEST_FILE_SYSTEM_SUCCESS))},function(e){n("SecurityError"===e.name?t.getSchema().createResult(f.a.PRESENT,f.f.REQUEST_FILE_SYSTEM_ERROR,new f.v(e.name)):t.getSchema().createResult(f.a.NOT_PRESENT,f.f.REQUEST_FILE_SYSTEM_ERROR,new f.v(e.name)))}):n(t.getSchema().createResult(f.a.NOT_PRESENT,f.f.NO_REQUEST_FILE_SYSTEM))})}}]),e}(u.b));e.a=l},function(t,e,n){"use strict";var r=n(280);n(0).get("detection:private:firefox:index");e.a=[r.a]},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=n(3),a=n(4),c=n(2),f=n(1),s=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),l=n(0).get("detection:private:firefox:indexed_db_open_test"),p=function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),s(e,null,[{key:"getSchema",value:function(){return new a.a(f.b.PRIVATE,f.c.FEATURE_ACCESS)}},{key:"testMethod",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window;return new c["default"](function(n){if(e.indexedDB){var r=e.indexedDB.open("test");r.onsuccess=function(){n(t.getSchema().createResult(f.a.NOT_PRESENT,f.f.INDEXED_DB_OPEN_SUCCESS))},r.onerror=function(){l.warn("you may see an InvalidStateError this is generated by ff when attempting to open indexed DB in private browsing mode"),n(t.getSchema().createResult(f.a.PRESENT,f.f.INDEXED_DB_OPEN_ERROR))}}else n(t.getSchema().createResult(f.a.NOT_PRESENT,f.f.NO_INDEXED_DB))})}}]),e}(u.b);e.a=p},function(t,e,n){"use strict";var r=n(282);n(0).get("detection:private:internet_explorer:index");e.a=[r.a]},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=n(3),a=n(4),c=n(1),f=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),s=(n(0).get("detection:private:internet_explorer:indexed_db_exists_test"),function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),f(e,null,[{key:"getSchema",value:function(){return new a.a(c.b.PRIVATE,c.c.FEATURE_ACCESS)}},{key:"testMethod",value:function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:window).indexedDB?this.getSchema().createResult(c.a.NOT_PRESENT,c.f.INDEXED_DB_EXISTS):this.getSchema().createResult(c.a.PRESENT,c.f.NO_INDEXED_DB)}}]),e}(u.b));e.a=s},function(t,e,n){"use strict";var r=n(284);n(0).get("detection:private:safari:index");e.a=[r.a]},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=n(3),a=n(4),c=n(1),f=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),s=(n(0).get("detection:private:safari:local_storage_set_test"),function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),f(e,null,[{key:"getSchema",value:function(){return new a.a(c.b.PRIVATE,c.c.FEATURE_ACCESS)}},{key:"testMethod",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window;if(!t.localStorage)return this.getSchema().createResult(c.a.NOT_PRESENT,c.f.NO_LOCAL_STORAGE);try{return t.localStorage.setItem("sp","1"),t.localStorage.removeItem("sp"),this.getSchema().createResult(c.a.NOT_PRESENT,c.f.LOCAL_STORAGE_SET_SUCCESS)}catch(t){return"QuotaExceededError"===t.name?this.getSchema().createResult(c.a.PRESENT,c.f.LOCAL_STORAGE_SET_ERROR,new c.v(t.name)):this.getSchema().createResult(c.a.NOT_PRESENT,c.f.LOCAL_STORAGE_SET_ERROR,new c.v(t.name))}}}]),e}(u.b));e.a=s},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function u(){return new c["default"](function(t){window.setTimeout(function(){t()},500)})}var a=n(132),c=n(2),f=n(1),s=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),l=function t(e,n,r){null===e&&(e=Function.prototype);var o=Object.getOwnPropertyDescriptor(e,n);if(void 0===o){var i=Object.getPrototypeOf(e);return null===i?void 0:t(i,n,r)}if("value"in o)return o.value;var u=o.get;if(void 0!==u)return u.call(r)};n(0).get("detection:rerun_test_mixin");e.a=new a.a(function(t){return function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),s(e,null,[{key:"testMethod",value:function(){for(var t=this,n=arguments.length,r=Array(n),o=0;o<n;o++)r[o]=arguments[o];var i=function(n){return n.has(f.a.NOT_PRESENT)?n:u().then(function(){return l(e.__proto__||Object.getPrototypeOf(e),"testMethod",t).apply(t,r)})};return c["default"].resolve(l(e.__proto__||Object.getPrototypeOf(e),"testMethod",this).apply(this,r)).then(function(t){return i(t)}).then(function(t){return i(t)})}}]),e}(t)})},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=n(3),a=n(4),c=n(19),f=n(1),s=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),l=(n(0).get("detection:stand_down:bot_ua_test"),function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),s(e,null,[{key:"getSchema",value:function(){return new a.a(f.b.STAND_DOWN,f.c.USER_AGENT,f.c.BOT)}},{key:"testMethod",value:function(){return c.a.googlebot()?this.getSchema().createResult(f.a.PRESENT,f.f.GOOGLE_BOT_USER_AGENT):c.a.googleweblight()?this.getSchema().createResult(f.a.PRESENT,f.f.GOOGLE_WEB_LIGHT_USER_AGENT):c.a.bingbot()?this.getSchema().createResult(f.a.PRESENT,f.f.BING_BOT_USER_AGENT):c.a.exabot()?this.getSchema().createResult(f.a.PRESENT,f.f.EXA_BOT_USER_AGENT):this.getSchema().createResult(f.a.NOT_PRESENT,f.f.NO_BOT_USER_AGENT)}}]),e}(u.b));e.a=l},function(t,e,n){"use strict";var r=n(286),o=n(288);n(0).get("detection:stand_down:index");e.a=[r.a,o.a]},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=n(3),a=n(4),c=n(1),f=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),s=(n(0).get("detection:stand_down:proxy_host_test"),["w","e","b","c","a","c","h","e",".","g","o","o","g","l","e","u","s","e","r","c","o","n","t","e","n","t",".","c","o","m"].join("")),l=function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),f(e,null,[{key:"getSchema",value:function(){return new a.a(c.b.STAND_DOWN,c.c.PROXY_HOST)}},{key:"testMethod",value:function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.location.host)===s?this.getSchema().createResult(c.a.PRESENT,c.f.GOOGLE_WEBCACHE_PROXY_HOST):this.getSchema().createResult(c.a.NOT_PRESENT,c.f.NO_PROXY_HOST)}}]),e}(u.b);e.a=l},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=n(54),a=(n(0).get("detection:test_result:attribute:data:event"),function(t){function e(t){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t))}return i(e,t),e}(u.a));e.a=a},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=n(48),a=n.n(u),c=n(129),f=n(128),s=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),l=(n(0).get("detection:test_result:index"),["types","tests","reasons","results"]),p=function(t){function e(){var t;r(this,e);for(var i=arguments.length,u=Array(i),a=0;a<i;a++)u[a]=arguments[a];var c=o(this,(t=e.__proto__||Object.getPrototypeOf(e)).call.apply(t,[this].concat(u))),s=n.i(f.a)(c.attributes);return l.forEach(function(t){if(0===s[t].length)throw new Error("did not provide attribute type: "+t)}),c}return i(e,t),s(e,[{key:"toString",value:function(){var t=n.i(f.a)(this.attributes);return l.concat("info").filter(function(e){return t[e].length>0}).map(function(e){return t[e].slice().sort().join(",")}).join("::")}},{key:"addAttribute",value:function(){for(var t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];return new(Function.prototype.bind.apply(e,[null].concat([this.attributes],n)))}},{key:"removeAttribute",value:function(){for(var t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];var o=new(Function.prototype.bind.apply(c.a,[null].concat(n)));return new e(this.attributes.filter(function(t){return!o.attributes.some(function(e){return e.is(t)})}))}},{key:"getData",value:function(t){var e=a()(this.attributes,function(e){return e instanceof t});return e?e.getValue():null}}]),e}(c.a);e.a=p},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var o=n(20),i=n.n(o),u=n(3),a=n(2),c=n(285),f=n(1),s=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),l=(n(0).get("detection:test_runner"),function(){function t(e){var n=e.timeout,o=e.detectionTestClasses;r(this,t),this._timeout=n,this._tests=i()(o).map(function(t){return t.has(f.c.NETWORK)?c.a.to(t):t}).map(function(t){return new t}),this._running=!1}return s(t,[{key:"run",value:function(){var t=this;if(this._running)throw new Error("already running");this._running=!0,this._tests.forEach(function(e){if(e instanceof u.a){var n=e,r=t._tests.filter(function(t){return t!==n&&n.constructor.findDependency(t.constructor)});a["default"].all(r.map(function(t){return t.waitForResult()})).then(function(t){return e.run(t)})}else e.run()}),null!=this._timeout&&window.setTimeout(function(){t._tests.forEach(function(t){t.timeout()})},this._timeout)}},{key:"waitForResultsWhere",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){return!0};return a["default"].all(this._getTestResultsWhere(t))}},{key:"someResultPresentWhere",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){return!0};return new a["default"](function(n){var r=t._getTestResultsWhere(e);if(0===r.length)return n(!1);var o=!1,i=0;r.forEach(function(t){t.then(function(t){if(!o){if(i++,!t.has(f.a.NOT_PRESENT))return o=!0,void n(!0);i===r.length&&(o=!0,n(!1))}})})})}},{key:"_getTestResultsWhere",value:function(t){return this._tests.filter(function(e){return t(e.constructor)}).map(function(t){return t.waitForResult()})}}]),t}());e.a=l},,function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function u(t,e){return t.consumeCharacters("]"),new s(e)}var a=n(24),c=n(40);e.a=u;var f=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),s=(n(0).get("util:dom:get_elements_from_selector:consumers:attribute_consumer:any_value_consumer"),function(t){function e(t){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,n.i(c.a)().join(" ")))}return i(e,t),f(e,[{key:"applyToElement",value:function(t){t.setAttribute(this.key,t.hasAttribute(this.key)?t.getAttribute(this.key)||"":this.value)}}]),e}(a.a))},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function u(t,e){t.consumeCharacters("*=");var r=t.consumeRegex(l.f),o=n.i(f.a)(r);return new h(e,o)}var a=n(24),c=n(40),f=n(41),s=n(23),l=n(7);e.a=u;var p=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),h=(n(0).get("util:dom:get_elements_from_selector:consumers:attribute_consumer:contains_value_consumer"),function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),p(e,[{key:"applyToElement",value:function(t){if(t.hasAttribute(this.key)){var e=(t.getAttribute(this.key)||"").split(" ");e.splice(n.i(s.a)(0,e.length),0,this.value),t.setAttribute(this.key,e.join(" "))}else{var r=n.i(c.a)().join(" "),o=n.i(s.a)(0,r.length);t.setAttribute(this.key,r.slice(0,o)+this.value+r.slice(o))}}}]),e}(a.a))},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function u(t,e){t.consumeCharacters("$=");var r=t.consumeRegex(s.f),o=n.i(f.a)(r);return new p(e,o)}var a=n(24),c=n(40),f=n(41),s=n(7);e.a=u;var l=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),p=(n(0).get("util:dom:get_elements_from_selector:consumers:attribute_consumer:ends_with_value_consumer"),function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),l(e,[{key:"applyToElement",value:function(t){var e=t.hasAttribute(this.key)?t.getAttribute(this.key)||"":n.i(c.a)().join(" ");t.setAttribute(this.key,e+" "+this.value)}}]),e}(a.a))},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function u(t,e){t.consumeCharacters("=");var r=t.consumeRegex(f.f),o=n.i(c.a)(r);return new l(e,o)}var a=n(24),c=n(41),f=n(7);e.a=u;var s=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),l=(n(0).get("util:dom:get_elements_from_selector:consumers:attribute_consumer:equals_value_consumer"),function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),s(e,[{key:"applyToElement",value:function(t){t.setAttribute(this.key,this.value)}}]),e}(a.a))},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function u(t,e){t.consumeCharacters("~=");var r=t.consumeRegex(l.f),o=n.i(f.a)(r);return new h(e,o)}var a=n(24),c=n(40),f=n(41),s=n(23),l=n(7);e.a=u;var p=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),h=(n(0).get("util:dom:get_elements_from_selector:consumers:attribute_consumer:equals_word_value_consumer"),function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),p(e,[{key:"applyToElement",value:function(t){var e=t.hasAttribute(this.key)?(t.getAttribute(this.key)||"").split(" "):n.i(c.a)(),r=n.i(s.a)(0,e.length);e.splice(r,0,this.value),t.setAttribute(this.key,e.join(" "))}}]),e}(a.a))},function(t,e,n){"use strict";function r(t){t.consumeCharacters("[");var e=t.consumeRegex(s.b);if(p.indexOf(e)>-1)throw n.i(l.d)(t.getSelector());var r=t.lookAheadRegex(s.e),o=h[r];if(!o)throw n.i(l.a)(t.getSelector());return o(t,e)}var o=n(293),i=n(294),u=n(296),a=n(295),c=n(299),f=n(297),s=n(7),l=n(43);e.a=r;var p=(n(0).get("util:dom:get_elements_from_selector:consumers:attribute_consumer:index"),["src"]),h={"=":u.a,"~=":f.a,"^=":c.a,"$=":a.a,"*=":i.a,"]":o.a}},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function u(t,e){t.consumeCharacters("^=");var r=t.consumeRegex(s.f),o=n.i(f.a)(r);return new p(e,o)}var a=n(24),c=n(40),f=n(41),s=n(7);e.a=u;var l=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),p=(n(0).get("util:dom:get_elements_from_selector:consumers:attribute_consumer:starts_with_value_consumer"),function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),l(e,[{key:"applyToElement",value:function(t){var e=t.hasAttribute(this.key)?t.getAttribute(this.key)||"":n.i(c.a)().join(" ");t.setAttribute(this.key,this.value+" "+e)}}]),e}(a.a))},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function u(t){return t.consumeRegex(f.k),new l(n.i(c.a)(t))}var a=n(55),c=n(42),f=n(7);e.a=u;var s=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),l=(n(0).get("util:dom:get_elements_from_selector:consumers:child_element_consumer"),function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),s(e,[{key:"applyToElementRecord",value:function(t){t.appendChildElementRecord(this.elementRecord)}}]),e}(a.a))},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function u(t){return t.consumeCharacters("."),new s(t.consumeRegex(c.b))}var a=n(80),c=n(7);e.a=u;var f=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),s=(n(0).get("util:dom:get_elements_from_selector:consumers:class_name_consumer"),function(t){function e(t){r(this,e);var n=o(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return n._className=t,n}return i(e,t),f(e,[{key:"applyToElement",value:function(t){t.className=t.className?t.className+" "+this._className:this._className}}]),e}(a.a))},function(t,e,n){"use strict";function r(t){throw t.consumeCharacters(":"),n.i(o.c)(t.getSelector())}var o=n(43);e.a=r;n(0).get("util:dom:get_elements_from_selector:consumers:custom_selector_method_consumer")},function(t,e,n){"use strict";function r(t){var e=new f.a,r=n.i(c.a)(t);e.appendChildElementRecord(r);for(var o=r;!t.isDone();){var i=t.lookAheadRegex(s.a);if(""===i)throw n.i(l.a)(t.getSelector());var u=p[i.trim()];if(!u)throw n.i(l.a)(t.getSelector());var a=u(t);a.applyToElementRecord(o),o=a.getElementRecord()}return e}var o=n(300),i=n(304),u=n(305),a=n(307),c=n(42),f=n(81),s=n(7),l=n(43);e.a=r;var p=(n(0).get("util:dom:get_elements_from_selector:consumers:element_hierarchy_consumer"),{">":o.a,"":i.a,"+":a.a,"~":u.a})},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function u(t){return t.consumeRegex(s.j),new p(n.i(c.a)(t))}var a=n(55),c=n(42),f=n(130),s=n(7);e.a=u;var l=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),p=(n(0).get("util:dom:get_elements_from_selector:consumers:grand_child_element_consumer"),function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),l(e,[{key:"applyToElementRecord",value:function(t){var e=n.i(f.a)();e.push(this.elementRecord),e.forEach(function(t,n){n>0&&e[n-1].appendChildElementRecord(t)}),t.appendChildElementRecord(e[0])}}]),e}(a.a))},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function u(t){return t.consumeRegex(s.h),new p(n.i(c.a)(t))}var a=n(55),c=n(42),f=n(130),s=n(7);e.a=u;var l=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),p=(n(0).get("util:dom:get_elements_from_selector:consumers:grand_sibling_element_consumer"),function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),l(e,[{key:"applyToElementRecord",value:function(t){var e=t.getParentElementRecord(),r=n.i(f.a)();r.push(this.elementRecord),r.forEach(function(t){e.appendChildElementRecord(t)})}}]),e}(a.a))},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function u(t){return t.consumeCharacters("#"),new s(t.consumeRegex(c.b))}var a=n(80),c=n(7);e.a=u;var f=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),s=(n(0).get("util:dom:get_elements_from_selector:consumers:id_consumer"),function(t){function e(t){r(this,e);var n=o(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return n._id=t,n}return i(e,t),f(e,[{key:"applyToElement",value:function(t){t.id=this._id}}]),e}(a.a))},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function u(t){return t.consumeRegex(f.i),new l(n.i(c.a)(t))}var a=n(55),c=n(42),f=n(7);e.a=u;var s=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),l=(n(0).get("util:dom:get_elements_from_selector:consumers:sibling_element_consumer"),function(t){function e(){return r(this,e),o(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return i(e,t),s(e,[{key:"applyToElementRecord",value:function(t){t.getParentElementRecord().appendChildElementRecord(this.elementRecord)}}]),e}(a.a))},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var o=n(43),i=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),u=(n(0).get("util:dom:get_elements_from_selector:selector_reader"),function(){function t(e){r(this,t),this._selector=e,this._index=0}return i(t,[{key:"lookAheadRegex",value:function(){var t=this._getCharsWithRegex.apply(this,arguments);return this._validateNoSkippedChars(t),t}},{key:"consumeRegex",value:function(){var t=this._getCharsWithRegex.apply(this,arguments);return this._validateConsumed(t),this._advanceReader(t.length),t}},{key:"consumeCharacters",value:function(t){return this._validateConsumed(t),this._advanceReader(t.length),t}},{key:"getSelector",value:function(){return this._selector}},{key:"isDone",value:function(){return this._index>=this._selector.length}},{key:"_getCharsWithRegex",value:function(){for(var t=this._getRemainingCharacters(),e=arguments.length,n=Array(e),r=0;r<e;r++)n[r]=arguments[r];var o=n.reduce(function(e,n){return e||n.exec(t)},null);return o?o[0]:""}},{key:"_getRemainingCharacters",value:function(){return this._selector.slice(this._index)}},{key:"_advanceReader",value:function(t){this._index+=t}},{key:"_validateConsumed",value:function(t){if(0===t.length)throw n.i(o.a)(this.getSelector());this._validateNoSkippedChars(t)}},{key:"_validateNoSkippedChars",value:function(t){if(0!==this._getRemainingCharacters().indexOf(t))throw n.i(o.a)(this.getSelector())}}]),t}());e.a=u},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var o=n(133);n(0).get("util:get_network_listener_data");e.a=function(t){return null==t?null:new i(t.load.events.map(function(t){return new o.a(t.src,t.tagName)}),t.error.events.map(function(t){return new o.b(t.src,t.tagName)}))};var i=function t(e,n){r(this,t),this.loadEvents=e,this.errorEvents=n}},function(t,e,n){function r(t){var e=window.document,n=e.addEventListener,r=n?"addEventListener":"attachEvent",o=n?"":"on";window[r](o+"unload",t,!1)}n(0).get("util:unload");t.exports=r},,function(t,e){function n(t,e){for(var n=-1,r=null==t?0:t.length;++n<r&&!1!==e(t[n],n,t););return t}t.exports=n},function(t,e){function n(t,e){for(var n=-1,r=e.length,o=t.length;++n<r;)t[o+n]=e[n];return t}t.exports=n},function(t,e){function n(t,e,n,r){var o=-1,i=null==t?0:t.length;for(r&&i&&(n=t[++o]);++o<i;)n=e(n,t[o],o,t);return n}t.exports=n},function(t,e){function n(t,e){for(var n=-1,r=null==t?0:t.length;++n<r;)if(e(t[n],n,t))return!0;return!1}t.exports=n},function(t,e){function n(t){return t.match(r)||[]}var r=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;t.exports=n},function(t,e,n){function r(t,e){return t&&o(e,i(e),t)}var o=n(16),i=n(25);t.exports=r},function(t,e,n){function r(t,e){return t&&o(e,i(e),t)}var o=n(16),i=n(34);t.exports=r},function(t,e,n){function r(t,e,n,u,a){return t===e||(null==t||null==e||!i(t)&&!i(e)?t!==t&&e!==e:o(t,e,n,u,r,a))}var o=n(320),i=n(39);t.exports=r},function(t,e,n){function r(t,e,n,r,y,v){var m=f(t),g=f(e),E=m?d:c(t),O=g?d:c(e);E=E==h?_:E,O=O==h?_:O;var w=E==_,T=O==_,S=E==O;if(S&&s(t)){if(!s(e))return!1;m=!0,w=!1}if(S&&!w)return v||(v=new o),m||l(t)?i(t,e,n,r,y,v):u(t,e,E,n,r,y,v);if(!(n&p)){var R=w&&b.call(t,"__wrapped__"),P=T&&b.call(e,"__wrapped__");if(R||P){var k=R?t.value():t,N=P?e.value():e;return v||(v=new o),y(k,N,n,r,v)}}return!!S&&(v||(v=new o),a(t,e,n,r,y,v))}var o=n(65),i=n(327),u=n(328),a=n(329),c=n(70),f=n(10),s=n(67),l=n(105),p=1,h="[object Arguments]",d="[object Array]",_="[object Object]",y=Object.prototype,b=y.hasOwnProperty;t.exports=r},function(t,e,n){function r(t,e,n){var r=t.length;return n=void 0===n?r:n,!e&&n>=r?t:o(t,e,n)}var o=n(134);t.exports=r},function(t,e,n){function r(t,e){return o(t,i(t),e)}var o=n(16),i=n(330);t.exports=r},function(t,e,n){function r(t,e){return o(t,i(t),e)}var o=n(16),i=n(331);t.exports=r},function(t,e,n){function r(t){return function(e){e=a(e);var n=i(e)?u(e):void 0,r=n?n[0]:e.charAt(0),c=n?o(n,1).join(""):e.slice(1);return r[t]()+c}}var o=n(321),i=n(113),u=n(114),a=n(46);t.exports=r},function(t,e,n){function r(t){return function(e){return o(u(i(e).replace(a,"")),t,"")}}var o=n(314),i=n(342),u=n(348),a=RegExp("['’]","g");t.exports=r},function(t,e,n){function r(t,e,n,r){return void 0===t||o(t,i[n])&&!u.call(r,n)?e:t}var o=n(33),i=Object.prototype,u=i.hasOwnProperty;t.exports=r},function(t,e,n){function r(t,e,n,r,f,s){var l=n&a,p=t.length,h=e.length;if(p!=h&&!(l&&h>p))return!1;var d=s.get(t);if(d&&s.get(e))return d==e;var _=-1,y=!0,b=n&c?new o:void 0;for(s.set(t,e),s.set(e,t);++_<p;){var v=t[_],m=e[_];if(r)var g=l?r(m,v,_,e,t,s):r(v,m,_,t,e,s);if(void 0!==g){if(g)continue;y=!1;break}if(b){if(!i(e,function(t,e){if(!u(b,e)&&(v===t||f(v,t,n,r,s)))return b.push(e)})){y=!1;break}}else if(v!==m&&!f(v,m,n,r,s)){y=!1;break}}return s["delete"](t),s["delete"](e),y}var o=n(119),i=n(315),u=n(120),a=1,c=2;t.exports=r},function(t,e){function n(t,e){return t===e||t!==t&&e!==e}t.exports=n},function(t,e,n){function r(t,e,n,r,u,c){var f=n&i,s=o(t),l=s.length;if(l!=o(e).length&&!f)return!1;for(var p=l;p--;){var h=s[p];if(!(f?h in e:a.call(e,h)))return!1}var d=c.get(t);if(d&&c.get(e))return d==e;var _=!0;c.set(t,e),c.set(e,t);for(var y=f;++p<l;){h=s[p];var b=t[h],v=e[h];if(r)var m=f?r(v,b,h,e,t,c):r(b,v,h,t,e,c);if(!(void 0===m?b===v||u(b,v,n,r,c):m)){_=!1;break}y||(y="constructor"==h)}if(_&&!y){var g=t.constructor,E=e.constructor;g!=E&&"constructor"in t&&"constructor"in e&&!("function"==typeof g&&g instanceof g&&"function"==typeof E&&E instanceof E)&&(_=!1)}return c["delete"](t),c["delete"](e),_}var o=n(136),i=1,u=Object.prototype,a=u.hasOwnProperty;t.exports=r},function(t,e){function n(){return[]}t.exports=n},function(t,e){function n(){return[]}t.exports=n},function(t,e){function n(){return!1}t.exports=n},function(t,e){function n(t){var e=t.length,n=t.constructor(e);return e&&"string"==typeof t[0]&&o.call(t,"index")&&(n.index=t.index,n.input=t.input),n}var r=Object.prototype,o=r.hasOwnProperty;t.exports=n},function(t,e){function n(t){return t}t.exports=n},function(t,e,n){function r(t){return u(t)||i(t)||!!(a&&t&&t[a])}var o=n(111),i=n(58),u=n(10),a=o?o.isConcatSpreadable:void 0;t.exports=r},function(t,e,n){function r(t,e){return e.length<2?t:o(t,i(e,0,-1))}var o=n(68),i=n(134);t.exports=r},function(t,e){function n(t){return t.match(r)||[]}var r=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;t.exports=n},function(t,e,n){var r=n(16),o=n(63),i=n(34),u=o(function(t,e,n,o){r(e,i(e),t,o)});t.exports=u},function(t,e,n){function r(t,e){var n;if("function"!=typeof e)throw new TypeError(i);return t=o(t),function(){return--t>0&&(n=e.apply(this,arguments)),t<=1&&(e=void 0),n}}var o=n(124),i="Expected a function";t.exports=r},function(t,e,n){var r=n(341),o=n(325),i=o(function(t,e,n){return e=e.toLowerCase(),t+(n?r(e):e)});t.exports=i},function(t,e,n){function r(t){return i(o(t).toLowerCase())}var o=n(46),i=n(347);t.exports=r},function(t,e){function n(t){return t}t.exports=n},function(t,e,n){var r=n(97),o=n(338),i=n(66),u=n(326),a=i(function(t){return t.push(void 0,u),r(o,void 0,t)});t.exports=a},function(t,e){function n(t,e){for(var n=-1,r=null==t?0:t.length,o=0,i=[];++n<r;){var u=t[n];e(u,n,t)&&(i[o++]=u)}return i}t.exports=n},function(t,e){function n(t,e){for(var n=-1,r=null==t?0:t.length,o=Array(r);++n<r;)o[n]=e(t[n],n,t);return o}t.exports=n},function(t,e,n){function r(t,e){var n={};return e=u(e,3),i(t,function(t,r,i){o(n,e(t,r,i),t)}),n}var o=n(28),i=n(210),u=n(36);t.exports=r},function(t,e,n){var r=n(324),o=r("toUpperCase");t.exports=o},function(t,e,n){function r(t,e,n){return t=u(t),e=n?void 0:e,void 0===e?i(t)?a(t):o(t):t.match(e)||[]}var o=n(316),i=n(332),u=n(46),a=n(337);t.exports=r},function(t,e,n){"use strict";function r(){var t=i.a,e=new u["default"](function(e){t=e});return n.i(a.a)("checkState",function(t){e.then(function(e){t(e)})}),t}var o=n(59),i=n.n(o),u=n(2),a=n(11);e.a=r;n(0).get("backwards_compatibility:life_cycle:check_state")},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var o=n(2),i=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),u=(n(0).get("detection:mock_detection"),function(){function t(e,n){r(this,t)}return i(t,[{key:"rerun",value:function(){return this}},{key:"serializeResults",value:function(){return new o["default"](function(t){return t("")})}},{key:"isStandingDown",value:function(){return new o["default"](function(t){return t(!1)})}},{key:"isInterfering",value:function(){return new o["default"](function(t){return t(!1)})}},{key:"isDFPInterfering",value:function(){return new o["default"](function(t){return t(!1)})}},{key:"allowsAcceptableAds",value:function(){return new o["default"](function(t){return t(!1)})}},{key:"isFSM",value:function(){return new o["default"](function(t){return t(!1)})}},{key:"isPrivate",value:function(){return new o["default"](function(t){return t(!1)})}},{key:"isContentBlockerPresent",value:function(){return new o["default"](function(t){return t(!1)})}},{key:"internalIsContentBlockerPresent",value:function(){return new o["default"](function(t){return t(!1)})}},{key:"getContentBlockers",value:function(){return new o["default"](function(t){return t(!1)})}},{key:"getContentBlocker",value:function(){return new o["default"](function(t){return t(null)})}},{key:"getFSMData",value:function(){return new o["default"](function(t){return t(null)})}},{key:"getAllElementHidingData",value:function(){return new o["default"](function(t){return t(null)})}},{key:"_isContentBlockerPresent",value:function(t){return new o["default"](function(t){return t(null)})}},{key:"_isNotStandDownAnd",value:function(t){return new o["default"](function(t){return t(null)})}}]),t}());e.a=u},function(t,e,n){"use strict";function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document,e=[],n=[],r=o.bind(null,e),i=o.bind(null,n);return t.addEventListener("load",r,!0),t.addEventListener("error",i,!0),{load:{events:e,listener:r},error:{events:n,listener:i}}}function o(t,e){if(e.target){var n="string"==typeof e.target.tagName?e.target.tagName.toLowerCase():"",r="string"==typeof e.target.src?e.target.src:"";"iframe"!==n&&t.push({tagName:n,src:r})}}e.a=r;n(0).get("util:setup_network_listeners")},function(t,e){function n(t,e,n,r){for(var o=-1,i=null==t?0:t.length;++o<i;){var u=t[o];e(r,u,n(u),t)}return r}t.exports=n},function(t,e){function n(t,e,n,r){for(var o=-1,i=null==t?0:t.length;++o<i;){var u=t[o];e(r,u,n(u),t)}return r}t.exports=n},function(t,e){function n(t,e){return null!=t&&o.call(t,e)}var r=Object.prototype,o=r.hasOwnProperty;t.exports=n},function(t,e,n){function r(t,e){return function(n,r){var c=a(n)?o:i,f=e?e():{};return c(n,t,u(r,2),f)}}var o=n(352),i=n(353),u=n(36),a=n(10);t.exports=r},function(t,e,n){function r(t){return o(t,i|u)}var o=n(174),i=1,u=4;t.exports=r},function(t,e,n){function r(t,e,n){var r=null==t?void 0:o(t,e);return void 0===r?n:r}var o=n(68);t.exports=r},function(t,e,n){var r=n(28),o=n(355),i=Object.prototype,u=i.hasOwnProperty,a=o(function(t,e,n){u.call(t,n)?t[n].push(e):r(t,n,[e])});t.exports=a},function(t,e,n){function r(t,e){return null!=t&&i(t,e,o)}var o=n(354),i=n(108);t.exports=r},function(t,e,n){function r(t,e,n){return null==t?t:o(t,e,n)}var o=n(107);t.exports=r},function(t,e,n){function r(t,e){return null==t||o(t,e)}var o=n(175);t.exports=r},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var u=n(12),a=n(11),c=(n(0).get("detection:is_content_blocker_present_feature"),function(t){function e(t){function i(e){t.isContentBlockerPresent().then(function(t){e(t)})}r(this,e);var u=o(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t));return n.i(a.a)("isContentBlockerPresent",i),n.i(a.a)("rerunDetection",function(){t.rerun()}),n.i(a.a)("isAdblocking",i),n.i(a.a)("isAdBlocking",i),u}return i(e,t),e}(u.b));e["default"]=c},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(t,e,n){n(0).get("detection");if(n(218)())n(216).mockApi(["checkState","isAdBlocking","pageChange"]);else{var r=function(){if(window._sp_&&window._sp_.config&&window._sp_.config.runImmediately&&n(183)(),window._sp_&&window._sp_.config){var t=n(178)["default"],e=n(177)["default"];window._sp_.config=t(window._sp_.config),e(window._sp_.config)}var r=n(5)["default"];r.init(r.specs.BASE),(0,n(182)["default"])("detection",[n(176)["default"],n(217)["default"],n(416)["default"],n(180)["default"],n(181)["default"]])};document.getElementById("_sp_override")?r():(0,n(179)["default"])("detection",function(t){if(t)throw new Error("overridden");r()})}}]); })(); </script> <script type="text/plain" class="optanon-category-4"> window.ZdnetFunctions.logWithLabel('%c One Trust ', "Service loaded: script_sourcepoint with class optanon-category-4"); </script> <script type="application/javascript"> (function() { if (typeof window.navigator.serviceWorker === 'object') { if (window.ZdnetPageVars.services.service_worker && window.ZdnetPageVars.services.service_worker.enabled) { // Register the global service worker here; others are registered by their respective managers. window.navigator.serviceWorker.register('/service-worker.js').then(function(registration) { window.console.info('Registration of service worker /service-worker.js successful with scope:' + registration.scope); }, function(e) { window.console.error('Registration of service worker /service-worker.js failed:', e); }); } window.knownServiceWorkers = {}; window.knownServiceWorkers[window.location.origin + "/service-worker.js"] = true; window.knownServiceWorkers[window.location.origin + "/bundles/zdnetjs/js/libs/ua-push-worker.js"] = true; try { // This is experimental but supported by Chrome, Firefox, Edge, and Opera window.navigator.serviceWorker.getRegistrations().then(function(registrations) { registrations.forEach(function(registration) { var statusObject = registration.active || registration.installing || registration.waiting; window.console.log('Found registered service worker:', registration); // Unregister any service worker that has not been explicitly allowed if (statusObject != null && !knownServiceWorkers[statusObject.scriptURL]) { window.console.info('Unregistering service worker:', registration); registration.unregister(); } }); }); } catch (e) { // Safari doesn't support fetching all registered SWs, // so only known registrations can be explicitly unregistered. Object.keys(knownServiceWorkers).forEach(function(url) { if (!knownServiceWorkers[url]) { window.navigator.serviceWorker.getRegistration(url).then(function(registration) { window.console.info('Unregistering service worker:', registration); registration.unregister(); }).catch(function(e) { window.console.error('An error occurred while unregistering a service worker:', e); }); } }); } } else if (typeof window.console === 'object' && typeof window.console.warn === 'function') { // Don't break IE by calling this without checking the console exists first. window.console.warn('Service workers are not supported by this browser.'); } })(); </script> <script type="application/javascript"> window.BidBarrel = window.BidBarrel || {}; window.BidBarrel.queue = window.BidBarrel.queue || []; </script> <script type="application/javascript"> (function(){ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).uuidv4=e()}(this,(function(){"use strict";var t="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto),e=new Uint8Array(16);function n(){if(!t)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return t(e)}for(var o=[],r=0;r<256;++r)o.push((r+256).toString(16).substr(1));return function(t,e,r){"string"==typeof t&&(e="binary"===t?new Uint8Array(16):null,t=null);var u=(t=t||{}).random||(t.rng||n)();if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,e){for(var i=r||0,d=0;d<16;++d)e[i+d]=u[d];return e}return function(t,e){var n=e||0,r=o;return(r[t[n+0]]+r[t[n+1]]+r[t[n+2]]+r[t[n+3]]+"-"+r[t[n+4]]+r[t[n+5]]+"-"+r[t[n+6]]+r[t[n+7]]+"-"+r[t[n+8]]+r[t[n+9]]+"-"+r[t[n+10]]+r[t[n+11]]+r[t[n+12]]+r[t[n+13]]+r[t[n+14]]+r[t[n+15]]).toLowerCase()}(u)}})); function injectClickId(target) { const clickId = uuidv4().replaceAll('-', ''); target.setAttribute('href', target.href.replace("__COM_CLICK_ID__", clickId)); window.ZdnetFunctions.pushCohesionBeam({ '@type': 'redventures.ecommerce.v1.ProductClicked', 'product': { 'pageId': window?.ZdnetPageVars?.tracking?.data?.articleId ? window.ZdnetPageVars.tracking.data.articleId : '' }, 'correlationId': clickId }); setTimeout(function () { target.setAttribute('href', target.href.replace(clickId, "__COM_CLICK_ID__")); }, 500); } document.addEventListener('DOMContentLoaded', function () { if (!window.leadsTracker) { let elements = document.querySelectorAll('a[data-component=leadsTracker]'); for (element of elements) { element.addEventListener('mousedown', event => { if (!window.leadsTracker) { let target = event.target.closest('a[data-component=leadsTracker]'); if (target) { injectClickId(target); } } }); } } }); })(); </script> <link rel="alternate" type="application/rss+xml" title="Latest ZDNet Hardware Topics" href="https://web.archive.org/web/20210826133042/https://www.zdnet.com/topic/hardware/rss.xml"> </head> <body class=" "> <svg class="svg-symbol"><symbol id="comment-bubble" viewbox="0 0 32 27.4"><path d="M16,0c8.8,0,16,5.3,16,11.9c0,2.9-2.2,6.3-4.6,8.3l2.3,7.2l-6.9-4.7c-2.1,0.7-4.3,1.1-6.8,1.1 c-8.8,0-16-5.3-16-11.9C0,5.3,7.2,0,16,0z"></path></symbol><symbol id="email" viewbox="0 0 32 21"><g><polygon points="32,19.5 32,1.3 23.1,10.4"></polygon></g><g><path d="M16.9,13.8L30.4,0h-29l13.5,13.9C15.4,14.4,16.3,14.4,16.9,13.8z"></path></g><g><polygon points="0,1.5 0,19.4 8.7,10.5"></polygon></g><g><path d="M18.3,15.3c-0.7,0.7-1.6,1-2.4,1c-0.9,0-1.7-0.3-2.4-1L10.2,12l-8.8,9h29.2l-8.9-9.2L18.3,15.3z"></path></g><g><polygon points="32,21 32,21 32,21"></polygon></g></symbol><symbol id="facebook" viewbox="0 0 15.2 32"><path d="M15.2,11.1H9.6V7c0-1.2,1.3-1.5,1.9-1.5c0.6,0,3.6,0,3.6,0V0L11,0C5.4,0,4.1,4.1,4.1,6.7v4.4H0v5.6h4.1 c0,7.3,0,15.2,0,15.2h5.5c0,0,0-8.1,0-15.2h4.7L15.2,11.1z"></path></symbol><symbol id="flipboard" data-name="flipboard" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 500 500"><path class="cls-1" d="M0,0V500H500V0ZM400,200H300V300H200V400H100V100H400Z"></path></symbol><symbol id="youtube" viewbox="0 0 24 24"><path d="M4.652 0h1.44l.988 3.702.916-3.702h1.454l-1.665 5.505v3.757h-1.431v-3.757l-1.702-5.505zm6.594 2.373c-1.119 0-1.861.74-1.861 1.835v3.349c0 1.204.629 1.831 1.861 1.831 1.022 0 1.826-.683 1.826-1.831v-3.349c0-1.069-.797-1.835-1.826-1.835zm.531 5.127c0 .372-.19.646-.532.646-.351 0-.554-.287-.554-.646v-3.179c0-.374.172-.651.529-.651.39 0 .557.269.557.651v3.179zm4.729-5.07v5.186c-.155.194-.5.512-.747.512-.271 0-.338-.186-.338-.46v-5.238h-1.27v5.71c0 .675.206 1.22.887 1.22.384 0 .918-.2 1.468-.853v.754h1.27v-6.831h-1.27zm2.203 13.858c-.448 0-.541.315-.541.763v.659h1.069v-.66c.001-.44-.092-.762-.528-.762zm-4.703.04c-.084.043-.167.109-.25.198v4.055c.099.106.194.182.287.229.197.1.485.107.619-.067.07-.092.105-.241.105-.449v-3.359c0-.22-.043-.386-.129-.5-.147-.193-.42-.214-.632-.107zm4.827-5.195c-2.604-.177-11.066-.177-13.666 0-2.814.192-3.146 1.892-3.167 6.367.021 4.467.35 6.175 3.167 6.367 2.6.177 11.062.177 13.666 0 2.814-.192 3.146-1.893 3.167-6.367-.021-4.467-.35-6.175-3.167-6.367zm-12.324 10.686h-1.363v-7.54h-1.41v-1.28h4.182v1.28h-1.41v7.54zm4.846 0h-1.21v-.718c-.223.265-.455.467-.696.605-.652.374-1.547.365-1.547-.955v-5.438h1.209v4.988c0 .262.063.438.322.438.236 0 .564-.303.711-.487v-4.939h1.21v6.506zm4.657-1.348c0 .805-.301 1.431-1.106 1.431-.443 0-.812-.162-1.149-.583v.5h-1.221v-8.82h1.221v2.84c.273-.333.644-.608 1.076-.608.886 0 1.18.749 1.18 1.631v3.609zm4.471-1.752h-2.314v1.228c0 .488.042.91.528.91.511 0 .541-.344.541-.91v-.452h1.245v.489c0 1.253-.538 2.013-1.813 2.013-1.155 0-1.746-.842-1.746-2.013v-2.921c0-1.129.746-1.914 1.837-1.914 1.161 0 1.721.738 1.721 1.914v1.656z"></path></symbol><symbol id="linkedin" viewbox="0 0 31.9 32"><path d="M24,8c-5.1,0.1-7.7,3.8-8,4V8h-6v24h6V18c0-0.5,1.3-4.6,6-4c2.5,0.2,3.9,3.5,4,4v14l6,0V15.4 C31.7,13,30.5,8.1,24,8z M0,32h6V8H0V32z M3,0C1.3,0,0,1.3,0,3s1.3,3,3,3c1.7,0,3-1.3,3-3S4.7,0,3,0z"></path></symbol><symbol id="more" viewbox="0 0 32 7.3"><circle cx="3.7" cy="3.7" r="3.7"></circle><circle cx="16" cy="3.7" r="3.7"></circle><circle cx="28.3" cy="3.7" r="3.7"></circle></symbol><symbol id="pinterest" viewbox="0 0 24.9 32"><path d="M13.2,0C4.4,0,0,6.3,0,11.5c0,3.2,1.2,6,3.8,7c0.4,0.2,0.8,0,0.9-0.5c0.1-0.3,0.3-1.1,0.4-1.5 c0.1-0.5,0.1-0.6-0.3-1c-0.7-0.9-1.2-2-1.2-3.6c0-4.6,3.5-8.8,9.1-8.8c5,0,7.7,3,7.7,7c0,5.3-2.4,9.8-5.9,9.8 c-1.9,0-3.4-1.6-2.9-3.5c0.6-2.3,1.6-4.8,1.6-6.5c0-1.5-0.8-2.8-2.5-2.8c-2,0-3.6,2-3.6,4.8c0,1.7,0.6,2.9,0.6,2.9s-2,8.5-2.4,10 c-0.7,3-0.1,6.6-0.1,7c0,0.2,0.3,0.3,0.4,0.1c0.2-0.2,2.5-3.1,3.3-6c0.2-0.8,1.3-5.1,1.3-5.1c0.6,1.2,2.5,2.3,4.5,2.3 c5.9,0,10-5.4,10-12.6C24.9,5.1,20.3,0,13.2,0z"></path></symbol><symbol id="reddit" viewbox="85.5 85.5 170.9 170.9"><path d="M227.9,170.9c0-6.9-5.6-12.5-12.5-12.5c-3.4,0-6.4,1.3-8.6,3.5c-8.5-6.1-20.3-10.1-33.3-10.6l5.7-26.7 l18.5,3.9c0.2,4.7,4.1,8.5,8.9,8.5c4.9,0,8.9-4,8.9-8.9c0-4.9-4-8.9-8.9-8.9c-3.5,0-6.5,2-7.9,5l-20.7-4.4c-0.6-0.1-1.2,0-1.7,0.3 c-0.5,0.3-0.8,0.8-1,1.4l-6.3,29.8c-13.3,0.4-25.2,4.3-33.8,10.6c-2.2-2.1-5.3-3.5-8.6-3.5c-6.9,0-12.5,5.6-12.5,12.5 c0,5.1,3,9.4,7.4,11.4c-0.2,1.2-0.3,2.5-0.3,3.8c0,19.2,22.3,34.7,49.9,34.7s49.9-15.5,49.9-34.7c0-1.3-0.1-2.5-0.3-3.7 C224.8,180.4,227.9,176,227.9,170.9z M142.4,179.8c0-4.9,4-8.9,8.9-8.9c4.9,0,8.9,4,8.9,8.9c0,4.9-4,8.9-8.9,8.9 C146.4,188.7,142.4,184.7,142.4,179.8z M192.1,203.3c-6.1,6.1-17.7,6.5-21.1,6.5c-3.4,0-15.1-0.5-21.1-6.5c-0.9-0.9-0.9-2.4,0-3.3 c0.9-0.9,2.4-0.9,3.3,0c3.8,3.8,12,5.2,17.9,5.2s14-1.4,17.9-5.2c0.9-0.9,2.4-0.9,3.3,0C193,201,193,202.4,192.1,203.3z M190.5,188.7c-4.9,0-8.9-4-8.9-8.9c0-4.9,4-8.9,8.9-8.9c4.9,0,8.9,4,8.9,8.9C199.4,184.7,195.4,188.7,190.5,188.7z"></path></symbol><symbol id="stumble" viewbox="0 0 32 24"><path d="M17.8,8.6l2.1,1.5l3.3-1.5l0-1.6C23,3.3,19.9,0,16,0c-3.8,0-7,3.2-7.1,6.9v9.9c0,0.9-0.8,1.6-1.7,1.6 c-0.9,0-1.9-0.4-1.9-1.3V12H0c0,0,0,5.1,0,5.1C0,20.9,3.2,24,7.1,24c3.9,0,7.1-3.1,7.1-6.9V6.9c0-0.9,0.8-1.7,1.8-1.7 c0.9,0,1.8,0.8,1.8,1.7V8.6z M26.7,12v5.1c0,0.9-1,1.5-1.9,1.5c-0.9,0-1.7-0.7-1.7-1.6l0-5l-3.3,1.6L17.8,12v5.1 c0,3.8,3.2,6.9,7.1,6.9c3.9,0,7.1-3.1,7.1-6.9c0,0,0-5.1,0-5.1H26.7z"></path></symbol><symbol id="tumblr" viewbox="0 0 20.9 32"><path d="M7,0C6.8,1.8,6.7,2.4,6.1,3.6C5.5,4.7,4.7,6.2,3.7,7.1C2.8,7.9,1.4,8.7,0,9.2v5.5h4.1v8.9 c0,1.6,0.2,2.8,0.5,3.6c0.3,0.8,0.9,1.6,1.8,2.4c0.9,0.7,2.8,1.7,2.8,1.7s1.6,0.6,3.2,0.6c1.4,0,2.7-0.1,4-0.4c1.2-0.3,3-1,4.6-1.7 v-5.5c-1.8,1.1-4,1.9-5.8,1.9c-1,0-1.9-0.2-2.7-0.7c-0.6-0.3-1-0.8-1.2-1.4c-0.2-0.6-0.7-1.9-0.7-3.9v-5.7H19V8.6h-8.5V0H7z"></path></symbol><symbol id="twitter" viewbox="0 0 32.5 28.4"><path d="M32.5,3.4c-0.5,0.3-2.2,1-3.7,1.1c1-0.6,2.4-2.4,2.8-3.9c-0.9,0.6-3.1,1.6-4.2,1.6c0,0,0,0,0,0 C26.1,0.9,24.4,0,22.5,0c-3.7,0-6.7,3.2-6.7,7.2c0,0.6,0.1,1.1,0.2,1.6h0C11,8.7,5.1,6,1.8,1.3c-2,3.8-0.3,8,2,9.5 c-0.8,0.1-2.2-0.1-2.9-0.8c0,2.5,1.1,5.8,5.2,7c-0.8,0.5-2.2,0.3-2.8,0.2c0.2,2.1,3,4.9,6,4.9c-1.1,1.3-4.7,3.8-9.3,3 c3.1,2,6.7,3.2,10.5,3.2c10.8,0,19.2-9.4,18.7-21.1c0,0,0,0,0,0c0,0,0-0.1,0-0.1c0,0,0-0.1,0-0.1C30.2,6.4,31.5,5.1,32.5,3.4z"></path></symbol><symbol id="yahoo" viewbox="-133 141 30.3 20"><path d="M-107.7,146.7c0,0,1.2-0.7,2.1-0.7s2.1,0,2.1,0l0.8-1.9h-12.9l0.1,1.4l0.8,0.4l3.3,0.1c0,0,0.2,0.7-0.3,1.1 c-0.6,0.4-5.4,4.7-5.4,4.7l-6.2-7.5c0,0,0.1-0.2,1-0.2c0.9,0,3.5,0,3.5,0V141H-133v3.1c0,0,1.8,0,2.7,0c0.9,0,1.9,1,2.8,1.8 c0.9,0.9,7.1,7.4,7.1,7.4v5.4c0,0-0.5,0.8-2.2,0.8c-1.8,0-2.5,0.1-2.5,0.1v1.4h14.1v-1c0,0-0.4-0.6-0.8-0.6h-3.4 c-0.4,0-0.5-0.5-0.5-1.1c0-0.6,0-4.7,0-4.7L-107.7,146.7z"></path></symbol><symbol id="whatsapp" viewbox="0 0 32 32"><path d="M16.2,0C7.6,0,0.6,7,0.6,15.6c0,4.3,2.3,8.1,2.3,8.1L0.2,32l8.5-2.7c0,0,3.2,1.9,7.5,1.9 c8.6,0,15.6-7,15.6-15.6C31.8,7,24.8,0,16.2,0z M16.2,28.7c-4,0-7.2-2.2-7.2-2.2l-4.9,1.6l1.6-4.8c0,0-2.6-3.5-2.6-7.8 C3.1,8.4,9,2.5,16.2,2.5c7.2,0,13.1,5.9,13.1,13.1C29.3,22.8,23.5,28.7,16.2,28.7z"></path><path d="M10.3,8.8c0,0,0.4-0.3,0.6-0.3c0.2,0,1.2,0,1.2,0s0.3,0.1,0.5,0.4c0.2,0.3,1.2,2.8,1.3,3 c0.1,0.2,0.3,0.7,0,1.1c-0.3,0.4-1,1.2-1,1.2s-0.3,0.2,0,0.6c0.2,0.4,1,1.6,2.1,2.6c1.1,1,2.4,1.7,3,1.9c0.7,0.2,0.8-0.1,1-0.4 c0.2-0.3,1-1.3,1-1.3s0.3-0.4,0.8-0.2c0.5,0.2,3.1,1.5,3.1,1.5s0.3,0.1,0.3,0.4c0,0.3,0.2,1.4-0.7,2.4c-0.9,1-2.9,1.5-3.8,1.2 c-0.9-0.3-4-1.1-6-2.9s-3.6-3.8-4.3-5.3c-0.7-1.5-0.6-2.3-0.6-2.7S9,9.6,10.3,8.8z"></path></symbol><symbol id="spotify" width="28px" height="28px" viewbox="0 0 28 28"><g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g id="icons" transform="translate(-166.000000, -216.000000)" fill="#1DB954"><g id="iconmonstr-spotify-1" transform="translate(166.000000, 216.000000)"><path d="M20.6895,11.5245 C16.4991667,9.03608333 9.5875,8.8075 5.58675,10.0219167 C4.94433333,10.2169167 4.26508333,9.854 4.07116667,9.21158333 C3.87616667,8.56916667 4.238,7.88991667 4.8815,7.69491667 C9.47375,6.30066667 17.1069167,6.57041667 21.931,9.43366667 C22.5084167,9.77708333 22.698,10.5224167 22.3556667,11.0998333 C22.0133333,11.67725 21.2669167,11.8679167 20.6895,11.5245 Z M20.553,15.2110833 C20.2583333,15.68775 19.6354167,15.83725 19.15875,15.54475 C15.665,13.3975833 10.33825,12.7746667 6.20425,14.0291667 C5.66908333,14.1916667 5.1025,13.8894167 4.94,13.35425 C4.77858333,12.818 5.08083333,12.2535833 5.616,12.09 C10.3371667,10.6578333 16.2066667,11.3511667 20.2193333,13.8179167 C20.696,14.1104167 20.8455,14.7355 20.553,15.2110833 Z M18.9615833,18.7503333 C18.7286667,19.1338333 18.22925,19.2540833 17.8479167,19.0200833 C14.7950833,17.1545833 10.9525,16.7331667 6.42741667,17.7666667 C5.99191667,17.8663333 5.5575,17.5933333 5.45783333,17.1578333 C5.35816667,16.72125 5.63008333,16.2868333 6.06666667,16.1871667 C11.0185833,15.0550833 15.2663333,15.5425833 18.6929167,17.6366667 C19.0753333,17.8695833 19.1955833,18.369 18.9615833,18.7503333 L18.9615833,18.7503333 Z M13,0 C5.82075,0 0,5.82075 0,13 C0,20.1803333 5.82075,26 13,26 C20.1803333,26 26,20.1803333 26,13 C26,5.82075 20.1803333,0 13,0 Z" id="Shape"></path></g></g></g></symbol><symbol id="apple" width="28px" height="28px" viewbox="0 0 28 28"><g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g id="icons" transform="translate(-283.000000, -217.000000)"><image id="apple-podcast-logo-0CF661058F-seeklogo.com" x="283" y="217" width="24" height="26" xlink:href="data:image/png;base64,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"></image></g></g></symbol><symbol id="google" width="28px" height="28px" viewbox="0 0 28 28"><g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g id="icons" transform="translate(-395.000000, -300.000000)"><image id="Bitmap" x="395" y="300" width="21" height="21" xlink:href="data:image/png;base64,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"></image></g></g></symbol><symbol id="stitcher" width="28px" height="14px" viewbox="0 0 28 14"><g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g id="icons" transform="translate(-471.000000, -304.000000)"><image id="Bitmap" x="471" y="304" width="25" height="12" xlink:href="data:image/png;base64,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"></image></g></g></symbol></svg> <svg class="svg-symbol"><symbol id="zdnet-logo" viewbox="0 0 500 319.403"><g><path d="M314.083,213.79L225.861,11.559c-1.747-4.02-6.476-5.872-10.501-4.116L13.125,95.642 c-4.019,1.755-5.878,6.476-4.123,10.502l88.215,202.24c1.76,4.019,6.48,5.873,10.503,4.118l202.234-88.216 C313.979,222.543,315.833,217.813,314.083,213.79z M211.526,188.116h-18.279v-24.361h12.704c17.168,0,31.838-9.38,31.838-30.958 c0-19.813-13.051-30.946-31.54-30.946h-16.09v55.254l-21.02,31.011H49.774l58.548-86.265H54.771l16.328-24.366h88.432 l-58.253,86.269h60.125V77.486h50.124c30.813,0,56.193,24.204,56.193,55.312C267.719,163.9,242.187,188.116,211.526,188.116z"></path><path d="M277.449,76.227h24.867l21.319,44.581c5.628,11.871,9.949,23.58,12.191,31.592 c-0.808-8.654-1.601-22.937-1.768-30.63l-0.475-45.542h21.333v111.464H331.49l-19.077-42.667 c-6.088-13.949-12.994-29.662-15.083-36.562c0.812,9.146,0.978,22.3,1.13,31.597l0.642,47.632h-21.652V76.227z"></path><path d="M427.211,165.88l8.344,12.83c-9.465,7.693-19.409,11.391-30.955,11.391 c-23.58,0-38.811-16.679-38.811-42.503c0-14.75,3.04-24.541,10.249-32.564c6.753-7.533,14.927-11.071,25.836-11.071 c9.455,0,18.44,3.216,23.728,8.677c7.536,7.694,10.908,18.762,10.908,35.93c0,1.752,0,2.391,0,4.958h-47.478v0.648 c0,12.659,6.26,19.885,17.334,19.885C413.742,174.061,420.638,171.335,427.211,165.88z M389.364,137.814h24.862v-0.964 c0-6.089-0.646-9.304-2.574-12.357c-2.095-3.201-5.139-4.813-9.465-4.813c-8.174,0-12.823,6.417-12.823,17.812V137.814z"></path><path d="M492.802,105.423l-5.447,14.257h-13.797v41.875c0,10.423,1.924,13.155,9.304,13.155 c1.924,0,3.848-0.496,7.699-1.612l2.726,12.825c-6.25,2.579-11.868,3.702-17.481,3.702c-10.904,0-19.733-4.817-22.132-12.032 c-1.282-3.533-1.443-5.144-1.443-12.676V119.68h-8.183v-13.944h8.183c0-8.017,0-13.466,0.808-19.56l21.803-5.454 c-0.812,7.532-1.282,16.358-1.282,24.7H492.802z"></path></g></symbol><symbol id="stars-full" viewbox="0 0 14 14"><polygon points="7,0 8.8,5.1 14,5.3 9.9,8.7 11.3,14 7,11 2.7,14 4.1,8.7 0,5.3 5.2,5.1"></polygon></symbol><symbol id="stars-half" viewbox="0 0 14 14"><polygon points="7.1,0 7.1,11 2.7,14 4.1,8.7 0,5.3 5.2,5.1"></polygon></symbol><symbol id="play" viewbox="0 0 24 24"><path d="M21 12l-18 12v-24z"></path></symbol><symbol id="circle" viewbox="0 0 24 24"><circle cx="12" cy="12" r="12"></circle></symbol><symbol id="playOverlay" viewbox="-99 101 100 100"><g><circle cx="-50" cy="151" r="33"></circle></g><path class="playOverlayBorder" d="M-50,118c18.2,0,33,14.8,33,33s-14.8,33-33,33s-33-14.8-33-33S-68.2,118-50,118 M-50,116c-19.3,0-35,15.7-35,35 s15.7,35,35,35s35-15.7,35-35S-30.7,116-50,116L-50,116z"></path><g><path class="playOverlayArrow" d="M-60.3,138.6c0-2.2,1.5-3.1,3.4-1.9l19.8,12.2c1.9,1.2,1.9,3,0,4.2l-19.8,12.2c-1.9,1.2-3.4,0.3-3.4-1.9C-60.3,163.4-60.3,138.6-60.3,138.6z"></path></g></symbol><symbol id="play_alt" viewbox="0 0 24 24"><g><path d="M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm-2 7v10l7-5-7-5z"></path></g></symbol><symbol id="undo" viewbox="0 0 24 24"><path d="M17.026 22.957c10.957-11.421-2.326-20.865-10.384-13.309l2.464 2.352h-9.106v-8.947l2.232 2.229c14.794-13.203 31.51 7.051 14.794 17.675z"></path></symbol><symbol id="sitemap" viewbox="0 0 24 24"><path d="M20 18c1.103 0 2 .897 2 2s-.897 2-2 2-2-.897-2-2 .897-2 2-2zm0-2c-2.209 0-4 1.791-4 4s1.791 4 4 4 4-1.791 4-4-1.791-4-4-4zm-16 2c1.103 0 2 .897 2 2s-.897 2-2 2-2-.897-2-2 .897-2 2-2zm0-2c-2.209 0-4 1.791-4 4s1.791 4 4 4 4-1.791 4-4-1.791-4-4-4zm8-14c1.103 0 2 .897 2 2s-.897 2-2 2-2-.897-2-2 .897-2 2-2zm0-2c-2.209 0-4 1.791-4 4s1.791 4 4 4 4-1.791 4-4-1.791-4-4-4zm3.873 15.655l-2.873-2.404v-3.341c-.326.055-.658.09-1 .09s-.674-.035-1-.09v3.341l-2.873 2.404c.484.46.892 1 1.201 1.598l2.672-2.253 2.672 2.253c.309-.598.717-1.137 1.201-1.598z"></path></symbol><symbol id="chat" viewbox="0 0 24 24"><path d="M24 20h-3v4l-5.333-4h-7.667v-4h2v2h6.333l2.667 2v-2h3v-8.001h-2v-2h4v12.001zm-15.667-6l-5.333 4v-4h-3v-14.001l18 .001v14h-9.667zm-6.333-2h3v2l2.667-2h8.333v-10l-14-.001v10.001z"></path></symbol><symbol id="envelope-open-outline"><svg viewbox="0 0 24 24"><path d="M11.99 0l-11.99 8.723v15.277h24v-15.277l-12.01-8.723zm.001 2.472l9.793 7.113-6.735 4.588-3.049-2.47-3.049 2.471-6.737-4.589 9.777-7.113zm-9.991 9.386l5.329 3.63-5.329 4.318v-7.948zm.474 10.142l9.526-7.723 9.526 7.723h-19.052zm19.526-2.194l-5.329-4.317 5.329-3.631v7.948z"></path></svg></symbol><symbol id="video-camera" viewbox="0 0 24 24"><path d="M16 16c0 1.104-.896 2-2 2h-12c-1.104 0-2-.896-2-2v-8c0-1.104.896-2 2-2h12c1.104 0 2 .896 2 2v8zm8-10l-6 4.223v3.554l6 4.223v-12z"></path></symbol><symbol id="book-open" viewbox="0 0 24 24"><path d="M23 5v13.883l-1 .117v-16c-3.895.119-7.505.762-10.002 2.316-2.496-1.554-6.102-2.197-9.998-2.316v16l-1-.117v-13.883h-1v15h9.057c1.479 0 1.641 1 2.941 1 1.304 0 1.461-1 2.942-1h9.06v-15h-1zm-12 13.645c-1.946-.772-4.137-1.269-7-1.484v-12.051c2.352.197 4.996.675 7 1.922v11.613zm9-1.484c-2.863.215-5.054.712-7 1.484v-11.613c2.004-1.247 4.648-1.725 7-1.922v12.051z"></path></symbol><symbol id="video" viewbox="0 0 32 22"><g><path d="M29,2.2c-0.7,0.2-4.6,3-7.9,5.3V2.1C21.1,1,20.1,0,19,0H2.1C1,0,0,1,0,2.1v17.7C0,21,1,22,2.1,22H19c1.2,0,2.1-1,2.1-2.1 v-5.9c3.3,2.4,7.4,5.4,8.2,5.6c1.4,0.4,2.7-0.1,2.7-0.1V2.2C32,2.2,30.1,1.8,29,2.2z"></path></g></symbol><symbol id="video-alt" viewbox="0 0 24 24"><path d="M19.615 3.184c-3.604-.246-11.631-.245-15.23 0-3.897.266-4.356 2.62-4.385 8.816.029 6.185.484 8.549 4.385 8.816 3.6.245 11.626.246 15.23 0 3.897-.266 4.356-2.62 4.385-8.816-.029-6.185-.484-8.549-4.385-8.816zm-10.615 12.816v-8l8 3.993-8 4.007z"></path></symbol><symbol id="photo" viewbox="0 0 32 24"><path d="M30,4h-6c-0.5,0-2.9-4-4-4h-8c-1.1,0-3.6,4-4,4H2C0.9,4,0,4.9,0,6v16c0,1.1,0.9,2,2,2h28c1.1,0,2-0.9,2-2V6 C32,4.9,31.1,4,30,4z M16,20.3c-3.9,0-7-3.1-7-7c0-3.9,3.1-7,7-7c3.9,0,7,3.1,7,7C23,17.2,19.9,20.3,16,20.3z M16,19 c-3.1,0-5.6-2.5-5.6-5.6c0-3.1,2.5-5.6,5.6-5.6c3.1,0,5.6,2.5,5.6,5.6C21.6,16.5,19.1,19,16,19z"></path></symbol><symbol id="arrow-down" viewbox="0 0 24 24"><path d="M14 18l10-7.088-10-6.912v3.042s-11.618 2.583-14 12.958c5.072-5.431 14-5.218 14-5.218v3.218z"></path></symbol><symbol id="arrow-round" viewbox="0 0 16 28"><g><path d="M0.6,27.4c0.8,0.8,2,0.8,2.8,0l12-12c0.8-0.8,0.8-2,0-2.8l-12-12C3,0.2,2.5,0,2,0C1.5,0,1,0.2,0.6,0.6 c-0.8,0.8-0.8,2,0,2.8L11.2,14L0.6,24.6C-0.2,25.4-0.2,26.6,0.6,27.4z"></path></g></symbol><symbol id="arrow-left-filled-circle" viewbox="0 0 24 24"><path d="M0 12c0 6.627 5.373 12 12 12s12-5.373 12-12-5.373-12-12-12-12 5.373-12 12zm7.58 0l5.988-5.995 1.414 1.416-4.574 4.579 4.574 4.59-1.414 1.416-5.988-6.006z"></path></symbol><symbol id="arrow-right-filled-circle" viewbox="0 0 24 24"><path d="M12 0c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm-1.568 18.005l-1.414-1.415 4.574-4.59-4.574-4.579 1.414-1.416 5.988 5.995-5.988 6.005z"></path></symbol><symbol id="arrow-up-filled-circle" viewbox="0 0 24 24"><path d="M12 0c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm0 7.58l5.995 5.988-1.416 1.414-4.579-4.574-4.59 4.574-1.416-1.414 6.006-5.988z"></path></symbol><symbol id="arrow-down-filled-circle" viewbox="0 0 24 24"><path d="M24 12c0-6.627-5.373-12-12-12s-12 5.373-12 12 5.373 12 12 12 12-5.373 12-12zm-18.005-1.568l1.415-1.414 4.59 4.574 4.579-4.574 1.416 1.414-5.995 5.988-6.005-5.988z"></path></symbol><symbol id="arrow-right-circle" width="24" height="24" viewbox="0 0 24 24"><path d="M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm2 12l-4.5 4.5 1.527 1.5 5.973-6-5.973-6-1.527 1.5 4.5 4.5z"></path></symbol><symbol id="arrow-next" viewbox="0 0 24 24"><path d="M5 3l3.057-3 11.943 12-11.943 12-3.057-3 9-9z"></path></symbol><symbol id="arrow-previous" viewbox="0 0 24 24"><path d="M16.67 0l2.83 2.829-9.339 9.175 9.339 9.167-2.83 2.829-12.17-11.996z"></path></symbol><symbol id="plus-circle"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24"><path d="M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm6 13h-5v5h-2v-5h-5v-2h5v-5h2v5h5v2z"></path></svg></symbol><symbol id="envelope" viewbox="0 0 24 24"><g><path d="M12 12.713l-11.985-9.713h23.97l-11.985 9.713zm0 2.574l-12-9.725v15.438h24v-15.438l-12 9.725z"></path></g></symbol><symbol id="envelope-open-solid"><svg viewbox="0 0 24 24"><path d="M.026 24l11.974-11.607 11.974 11.607h-23.948zm11.964-23.961l-11.99 8.725v12.476l7.352-7.127-5.653-4.113 10.291-7.488 10.309 7.488-5.655 4.108 7.356 7.132v-12.476l-12.01-8.725z"></path></svg></symbol><symbol id="envelope-open-outline"><svg viewbox="0 0 24 24"><path d="M11.99 0l-11.99 8.723v15.277h24v-15.277l-12.01-8.723zm.001 2.472l9.793 7.113-6.735 4.588-3.049-2.47-3.049 2.471-6.737-4.589 9.777-7.113zm-9.991 9.386l5.329 3.63-5.329 4.318v-7.948zm.474 10.142l9.526-7.723 9.526 7.723h-19.052zm19.526-2.194l-5.329-4.317 5.329-3.631v7.948z"></path></svg></symbol><symbol id="padlock"><svg viewbox="0 0 1792 1792"><path d="M640 768h512v-192q0-106-75-181t-181-75-181 75-75 181v192zm832 96v576q0 40-28 68t-68 28h-960q-40 0-68-28t-28-68v-576q0-40 28-68t68-28h32v-192q0-184 132-316t316-132 316 132 132 316v192h32q40 0 68 28t28 68z"></path></svg></symbol><symbol id="settings"><svg viewbox="0 0 24 24"><path d="M24 13.616v-3.232c-1.651-.587-2.694-.752-3.219-2.019v-.001c-.527-1.271.1-2.134.847-3.707l-2.285-2.285c-1.561.742-2.433 1.375-3.707.847h-.001c-1.269-.526-1.435-1.576-2.019-3.219h-3.232c-.582 1.635-.749 2.692-2.019 3.219h-.001c-1.271.528-2.132-.098-3.707-.847l-2.285 2.285c.745 1.568 1.375 2.434.847 3.707-.527 1.271-1.584 1.438-3.219 2.02v3.232c1.632.58 2.692.749 3.219 2.019.53 1.282-.114 2.166-.847 3.707l2.285 2.286c1.562-.743 2.434-1.375 3.707-.847h.001c1.27.526 1.436 1.579 2.019 3.219h3.232c.582-1.636.75-2.69 2.027-3.222h.001c1.262-.524 2.12.101 3.698.851l2.285-2.286c-.744-1.563-1.375-2.433-.848-3.706.527-1.271 1.588-1.44 3.221-2.021zm-12 2.384c-2.209 0-4-1.791-4-4s1.791-4 4-4 4 1.791 4 4-1.791 4-4 4z"></path></svg></symbol><symbol id="bell" viewbox="0 0 24 24"><g><path d="M15.137 3.945c-.644-.374-1.042-1.07-1.041-1.82v-.003c.001-1.172-.938-2.122-2.096-2.122s-2.097.95-2.097 2.122v.003c.001.751-.396 1.446-1.041 1.82-4.667 2.712-1.985 11.715-6.862 13.306v1.749h20v-1.749c-4.877-1.591-2.195-10.594-6.863-13.306zm-3.137-2.945c.552 0 1 .449 1 1 0 .552-.448 1-1 1s-1-.448-1-1c0-.551.448-1 1-1zm3 20c0 1.598-1.392 3-2.971 3s-3.029-1.402-3.029-3h6z"></path></g></symbol><symbol id="user_alt" viewbox="0 0 24 24"><g><path d="M20.822 18.096c-3.439-.794-6.64-1.49-5.09-4.418 4.72-8.912 1.251-13.678-3.732-13.678-5.082 0-8.464 4.949-3.732 13.678 1.597 2.945-1.725 3.641-5.09 4.418-3.073.71-3.188 2.236-3.178 4.904l.004 1h23.99l.004-.969c.012-2.688-.092-4.222-3.176-4.935z"></path></g></symbol><symbol id="broadband_speed_test" viewbox="0 0 24 24"><path d="M15.91 13.34l2.636-4.026-.454-.406-3.673 3.099c-.675-.138-1.402.068-1.894.618-.736.823-.665 2.088.159 2.824.824.736 2.088.665 2.824-.159.492-.55.615-1.295.402-1.95zm-3.91-10.646v-2.694h4v2.694c-1.439-.243-2.592-.238-4 0zm8.851 2.064l1.407-1.407 1.414 1.414-1.321 1.321c-.462-.484-.964-.927-1.5-1.328zm-18.851 4.242h8v2h-8v-2zm-2 4h8v2h-8v-2zm3 4h7v2h-7v-2zm21-3c0 5.523-4.477 10-10 10-2.79 0-5.3-1.155-7.111-3h3.28c1.138.631 2.439 1 3.831 1 4.411 0 8-3.589 8-8s-3.589-8-8-8c-1.392 0-2.693.369-3.831 1h-3.28c1.811-1.845 4.321-3 7.111-3 5.523 0 10 4.477 10 10z"></path></symbol><symbol id="paperclip" viewbox="0 0 24 24"><g><path d="M21.586 10.461l-10.05 10.075c-1.95 1.949-5.122 1.949-7.071 0s-1.95-5.122 0-7.072l10.628-10.585c1.17-1.17 3.073-1.17 4.243 0 1.169 1.17 1.17 3.072 0 4.242l-8.507 8.464c-.39.39-1.024.39-1.414 0s-.39-1.024 0-1.414l7.093-7.05-1.415-1.414-7.093 7.049c-1.172 1.172-1.171 3.073 0 4.244s3.071 1.171 4.242 0l8.507-8.464c.977-.977 1.464-2.256 1.464-3.536 0-2.769-2.246-4.999-5-4.999-1.28 0-2.559.488-3.536 1.465l-10.627 10.583c-1.366 1.368-2.05 3.159-2.05 4.951 0 3.863 3.13 7 7 7 1.792 0 3.583-.684 4.95-2.05l10.05-10.075-1.414-1.414z"></path></g></symbol><symbol id="book" viewbox="0 0 24 24"><g><path d="M5.495 4c-1.375 0-1.375-2 0-2h16.505v-2h-17c-1.657 0-3 1.343-3 3v18c0 1.657 1.343 3 3 3h17v-20h-16.505z"></path></g></symbol><symbol id="caret" viewbox="0 0 16 28"><g><path d="M0.6,27.4c0.8,0.8,2,0.8,2.8,0l12-12c0.8-0.8,0.8-2,0-2.8l-12-12C3,0.2,2.5,0,2,0C1.5,0,1,0.2,0.6,0.6 c-0.8,0.8-0.8,2,0,2.8L11.2,14L0.6,24.6C-0.2,25.4-0.2,26.6,0.6,27.4z"></path></g></symbol><symbol id="info" viewbox="0 0 24 24"><g><path d="M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm-.001 5.75c.69 0 1.251.56 1.251 1.25s-.561 1.25-1.251 1.25-1.249-.56-1.249-1.25.559-1.25 1.249-1.25zm2.001 12.25h-4v-1c.484-.179 1-.201 1-.735v-4.467c0-.534-.516-.618-1-.797v-1h3v6.265c0 .535.517.558 1 .735v.999z"></path></g></symbol><symbol id="mag-red" viewbox="0 0 26 26"><g><circle fill="none" stroke="#DE1400" stroke-miterlimit="10" cx="12.312" cy="12.312" r="10.804"></circle><line fill="none" stroke="#DE1400" stroke-miterlimit="10" x1="19.77" y1="19.77" x2="24.688" y2="24.688"></line></g></symbol><symbol id="close-gray" viewbox="0 0 26 26"><g><line fill="none" stroke="#768089" stroke-miterlimit="10" x1="1.426" y1="1.426" x2="24.688" y2="24.688"></line><line fill="none" stroke="#768089" stroke-miterlimit="10" x1="24.689" y1="1.426" x2="1.427" y2="24.688"></line></g></symbol><symbol id="info" viewbox="0 0 24 24"><path d="M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm-.001 5.75c.69 0 1.251.56 1.251 1.25s-.561 1.25-1.251 1.25-1.249-.56-1.249-1.25.559-1.25 1.249-1.25zm2.001 12.25h-4v-1c.484-.179 1-.201 1-.735v-4.467c0-.534-.516-.618-1-.797v-1h3v6.265c0 .535.517.558 1 .735v.999z"></path></symbol><symbol id="close" viewbox="0 0 28 28"><g><polygon points="28,1.9 26.1,0 14,12.1 1.9,0 0,1.9 12.1,14 0,26.1 1.9,28 14,15.9 26.1,28 28,26.1 15.9,14 "></polygon></g></symbol><symbol id="rss" viewbox="0 0 24 24"><path d="M6.503 20.752c0 1.794-1.456 3.248-3.251 3.248-1.796 0-3.252-1.454-3.252-3.248 0-1.794 1.456-3.248 3.252-3.248 1.795.001 3.251 1.454 3.251 3.248zm-6.503-12.572v4.811c6.05.062 10.96 4.966 11.022 11.009h4.817c-.062-8.71-7.118-15.758-15.839-15.82zm0-3.368c10.58.046 19.152 8.594 19.183 19.188h4.817c-.03-13.231-10.755-23.954-24-24v4.812z"></path></symbol><symbol id="rss-icon-alt" viewbox="0 0 24 24"><path d="M6.503 20.752c0 1.794-1.456 3.248-3.251 3.248-1.796 0-3.252-1.454-3.252-3.248 0-1.794 1.456-3.248 3.252-3.248 1.795.001 3.251 1.454 3.251 3.248zm-6.503-12.572v4.811c6.05.062 10.96 4.966 11.022 11.009h4.817c-.062-8.71-7.118-15.758-15.839-15.82zm0-3.368c10.58.046 19.152 8.594 19.183 19.188h4.817c-.03-13.231-10.755-23.954-24-24v4.812z"></path></symbol><symbol id="download" viewbox="0 0 24 24"><path d="M16 11h5l-9 10-9-10h5v-11h8v11zm1 11h-10v2h10v-2z"></path></symbol></svg> <svg class="svg-symbol"><symbol id="all" width="24" height="24" viewbox="0 0 24 24"><path d="M22 4h-20c-1.104 0-2 .896-2 2v12c0 1.104.896 2 2 2h20c1.104 0 2-.896 2-2v-12c0-1.104-.896-2-2-2zm0 13.5c0 .276-.224.5-.5.5h-19c-.276 0-.5-.224-.5-.5v-6.5h20v6.5zm0-9.5h-20v-1.5c0-.276.224-.5.5-.5h19c.276 0 .5.224.5.5v1.5zm-9 6h-9v-1h9v1zm-3 2h-6v-1h6v1zm10-2h-3v-1h3v1z"></path></symbol><symbol id="free" width="24" height="24" viewbox="0 0 24 24"><path d="M4 15h5v1h-5v-1zm8-1h-8v-1h8v1zm1.502 4h-11.002c-.276 0-.5-.224-.5-.5v-6.5h12.82c1.184-1.23 2.842-2 4.68-2 .886 0 1.729.179 2.5.501v-3.501c0-1.104-.896-2-2-2h-18c-1.104 0-2 .896-2 2v12c0 1.104.896 2 2 2h12.82c-.553-.576-1.006-1.251-1.318-2zm-11.502-11.5c0-.276.224-.5.5-.5h17c.276 0 .5.224.5.5v1.5h-18v-1.5zm22 9c0 2.485-2.017 4.5-4.5 4.5s-4.5-2.015-4.5-4.5 2.017-4.5 4.5-4.5 4.5 2.015 4.5 4.5zm-3.086-2.122l-1.414 1.414-1.414-1.414-.707.708 1.414 1.414-1.414 1.414.707.708 1.414-1.414 1.414 1.414.708-.708-1.414-1.414 1.414-1.414-.708-.708z"></path></symbol><symbol id="freetotry" width="24" height="24" viewbox="0 0 24 24"><path d="M19.5 11c-2.485 0-4.5 2.015-4.5 4.5s2.015 4.5 4.5 4.5 4.5-2.015 4.5-4.5-2.015-4.5-4.5-4.5zm-.469 6.484l-1.688-1.637.696-.697.991.94 2.116-2.169.696.696-2.811 2.867zm-15.031-2.484h5v1h-5v-1zm8-1h-8v-1h8v1zm1.502 4h-11.002c-.276 0-.5-.224-.5-.5v-6.5h12.82c1.184-1.23 2.842-2 4.68-2 .886 0 1.729.179 2.5.501v-3.501c0-1.104-.896-2-2-2h-18c-1.104 0-2 .896-2 2v12c0 1.104.896 2 2 2h12.82c-.553-.576-1.006-1.251-1.318-2zm-11.502-11.5c0-.276.224-.5.5-.5h17c.276 0 .5.224.5.5v1.5h-18v-1.5z"></path></symbol><symbol id="update" width="24" height="24" viewbox="0 0 24 24"><path d="M13.5 2c-5.629 0-10.212 4.436-10.475 10h-3.025l4.537 5.917 4.463-5.917h-2.975c.26-3.902 3.508-7 7.475-7 4.136 0 7.5 3.364 7.5 7.5s-3.364 7.5-7.5 7.5c-2.381 0-4.502-1.119-5.876-2.854l-1.847 2.449c1.919 2.088 4.664 3.405 7.723 3.405 5.798 0 10.5-4.702 10.5-10.5s-4.702-10.5-10.5-10.5z"></path></symbol></svg> <svg class="svg-symbol"><symbol id="2137" width="24" height="24" viewbox="0 0 24 24"><path d="M21 14.655l-5.799.908 3.393 6.917-3.111 1.52-3.413-6.982-4.07 3.651v-15.857l13 9.843zm-15-6.212c-1.19-.693-2-1.969-2-3.443 0-2.206 1.794-4 4-4 2.235 0 4.164 1.875 3.969 4.309l.928.703c.637-3.087-1.715-6.012-4.897-6.012-2.761 0-5 2.239-5 5 0 2.049 1.236 3.806 3 4.578v-1.135z"></path></symbol><symbol id="2010" width="24" height="24" viewbox="0 0 24 24"><path d="M5 19h-4v-8h4v8zm6 0h-4v-18h4v18zm6 0h-4v-12h4v12zm6 0h-4v-4h4v4zm1 2h-24v2h24v-2z"></path></symbol><symbol id="2152" width="24" height="24" viewbox="0 0 24 24"><path d="M10.252 23h-3.21c-.612 0-1.157-.427-1.354-1.007l-1.591-4.993h4.615l.918 3.171c.178.552.512 1.041.962 1.408.758.618.271 1.421-.34 1.421zm9.286-21.902c-1.522.617-4.525 3.739-8.252 4.639-.802 1.099-1.285 2.882-1.285 4.846 0 1.861.438 3.553 1.165 4.662 3.941.942 6.303 3.996 8.309 4.671 2.201.742 4.529-3.468 4.525-9.422-.003-5.959-2.471-10.202-4.462-9.396zm1.704 15.472c-.719 1.656-1.987 1.685-2.72.001-.436-1.002-.731-2.772-.892-3.961h.38c1.174 0 2.125-.954 2.125-2.131s-.951-2.132-2.125-2.132h-.39c.16-1.21.538-2.947.974-3.89.764-1.652 1.941-1.68 2.72-.001 1.315 2.838 1.368 8.794-.072 12.114zm-12.435-1.57h-4.371c-2.452 0-4.436-2.047-4.436-4.5s1.984-4.5 4.436-4.5h4.444c-.561 1.3-.876 2.887-.876 4.594 0 1.627.29 3.141.803 4.406z"></path></symbol><symbol id="18486" width="24" height="24" viewbox="0 0 24 24"><path d="M0 0v19h24v-19h-24zm22 17h-20v-15h20v15zm-6.599 4l2.599 3h-12l2.599-3h6.802z"></path></symbol><symbol id="2026" width="24" height="24" viewbox="0 0 24 24"><path d="M24 10.935v2.131l-8 3.947v-2.23l5.64-2.783-5.64-2.79v-2.223l8 3.948zm-16 3.848l-5.64-2.783 5.64-2.79v-2.223l-8 3.948v2.131l8 3.947v-2.23zm7.047-10.783h-2.078l-4.011 16h2.073l4.016-16z"></path></symbol><symbol id="2204" width="24" height="24" viewbox="0 0 24 24"><path d="M9 12c0-.552.448-1 1.001-1s.999.448.999 1-.446 1-.999 1-1.001-.448-1.001-1zm6.2 0l-1.7 2.6-1.3-1.6-3.2 4h10l-3.8-5zm5.8-7v-2h-21v15h2v-13h19zm3 2v14h-20v-14h20zm-2 2h-16v10h16v-10z"></path></symbol><symbol id="2007" width="24" height="24" viewbox="0 0 24 24"><path d="M12 0c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm0 22c-5.514 0-10-4.486-10-10s4.486-10 10-10 10 4.486 10 10-4.486 10-10 10zm-2-14h4v1h-4v-1zm0-1v-1h4v1h-4zm4 6h4l-6 6-6-6h4v-3h4v3z"></path></symbol><symbol id="2014" width="24" height="24" viewbox="0 0 24 24"><path d="M17 12.645v-2.289c-1.17-.417-1.907-.533-2.28-1.431-.373-.9.07-1.512.6-2.625l-1.618-1.619c-1.105.525-1.723.974-2.626.6-.9-.374-1.017-1.117-1.431-2.281h-2.29c-.412 1.158-.53 1.907-1.431 2.28h-.001c-.9.374-1.51-.07-2.625-.6l-1.617 1.619c.527 1.11.973 1.724.6 2.625-.375.901-1.123 1.019-2.281 1.431v2.289c1.155.412 1.907.531 2.28 1.431.376.908-.081 1.534-.6 2.625l1.618 1.619c1.107-.525 1.724-.974 2.625-.6h.001c.9.373 1.018 1.118 1.431 2.28h2.289c.412-1.158.53-1.905 1.437-2.282h.001c.894-.372 1.501.071 2.619.602l1.618-1.619c-.525-1.107-.974-1.723-.601-2.625.374-.899 1.126-1.019 2.282-1.43zm-8.5 1.689c-1.564 0-2.833-1.269-2.833-2.834s1.269-2.834 2.833-2.834 2.833 1.269 2.833 2.834-1.269 2.834-2.833 2.834zm15.5 4.205v-1.077c-.55-.196-.897-.251-1.073-.673-.176-.424.033-.711.282-1.236l-.762-.762c-.52.248-.811.458-1.235.283-.424-.175-.479-.525-.674-1.073h-1.076c-.194.545-.25.897-.674 1.073-.424.176-.711-.033-1.235-.283l-.762.762c.248.523.458.812.282 1.236-.176.424-.528.479-1.073.673v1.077c.544.193.897.25 1.073.673.177.427-.038.722-.282 1.236l.762.762c.521-.248.812-.458 1.235-.283.424.175.479.526.674 1.073h1.076c.194-.545.25-.897.676-1.074h.001c.421-.175.706.034 1.232.284l.762-.762c-.247-.521-.458-.812-.282-1.235s.529-.481 1.073-.674zm-4 .794c-.736 0-1.333-.597-1.333-1.333s.597-1.333 1.333-1.333 1.333.597 1.333 1.333-.597 1.333-1.333 1.333z"></path></symbol><symbol id="13572" width="24" height="24" viewbox="0 0 24 24"><path d="M5.495 2h16.505v-2h-17c-1.657 0-3 1.343-3 3v18c0 1.657 1.343 3 3 3h17v-20h-16.505c-1.375 0-1.375-2 0-2zm.505 4h14v16h-14v-16z"></path></symbol><symbol id="31709" width="24" height="24" viewbox="0 0 24 24"><path d="M12 5.173l2.335 4.817 5.305.732-3.861 3.71.942 5.27-4.721-2.524-4.721 2.525.942-5.27-3.861-3.71 5.305-.733 2.335-4.817zm0-4.586l-3.668 7.568-8.332 1.151 6.064 5.828-1.48 8.279 7.416-3.967 7.416 3.966-1.48-8.279 6.064-5.827-8.332-1.15-3.668-7.569z"></path></symbol><symbol id="35348" width="24" height="24" viewbox="0 0 24 24"><path d="M11.383 15.941l-3.758 8.059-.967-2.658-2.658.968 3.517-7.541c.678.216 1.137.162 1.849.162.744.513 1.072.844 2.017 1.01zm3.252-1.009c-.738.506-1.049.831-1.994 1.004l3.759 8.064.967-2.658 2.633.968-3.495-7.549c-.686.222-1.146.171-1.87.171zm-2.635-11.932c-2.205 0-4 1.795-4 4s1.795 4 4 4c2.206 0 4-1.794 4-4s-1.794-4-4-4zm6.926 5.278c.051.146.074.296.074.445 0 .449-.222.883-.615 1.156-1.256.87-1.09.651-1.562 2.067-.198.591-.77.99-1.414.99h-.004c-1.549-.005-1.279-.088-2.528.789-.262.183-.569.275-.877.275s-.615-.092-.876-.275c-1.249-.878-.98-.794-2.528-.789h-.004c-.645 0-1.216-.399-1.413-.99-.473-1.417-.311-1.198-1.562-2.067-.395-.274-.617-.708-.617-1.157 0-.148.024-.298.074-.444.483-1.411.484-1.139 0-2.555-.05-.147-.074-.297-.074-.445 0-.45.222-.883.616-1.157 1.251-.868 1.089-.648 1.562-2.067.197-.591.769-.99 1.413-.99h.004c1.545.005 1.271.095 2.528-.79.262-.182.569-.274.877-.274s.615.091.876.274c1.249.878.98.795 2.528.79h.004c.645 0 1.216.399 1.414.99.473 1.416.307 1.197 1.562 2.067.394.274.616.707.616 1.156 0 .148-.023.299-.074.445-.483 1.411-.485 1.139 0 2.556zm-1.926-1.278c0-2.761-2.238-5-5-5-2.761 0-5 2.239-5 5s2.239 5 5 5c2.762 0 5-2.238 5-5z"></path></symbol><symbol id="2012" width="24" height="24" viewbox="0 0 24 24"><path d="M19 2c1.654 0 3 1.346 3 3v14c0 1.654-1.346 3-3 3h-14c-1.654 0-3-1.346-3-3v-14c0-1.654 1.346-3 3-3h14zm0-2h-14c-2.762 0-5 2.239-5 5v14c0 2.761 2.238 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-9 9h-2v2h-2v-2h-2v-2h2v-2h2v2h2v2zm7-4c-.553 0-1 .448-1 1s.447 1 1 1 1-.448 1-1-.447-1-1-1zm0 4c-.553 0-1 .448-1 1s.447 1 1 1 1-.448 1-1-.447-1-1-1zm-2-2c-.553 0-1 .448-1 1s.447 1 1 1 1-.448 1-1-.447-1-1-1zm4 0c-.553 0-1 .448-1 1s.447 1 1 1 1-.448 1-1-.447-1-1-1zm-10 8c-1.104 0-2 .895-2 2s.896 2 2 2 2-.895 2-2-.896-2-2-2zm6 0c-1.104 0-2 .895-2 2s.896 2 2 2 2-.895 2-2-.896-2-2-2z"></path></symbol><symbol id="2016" width="24" height="24" viewbox="0 0 24 24"><path d="M0 21.398c5.504.456 3.533-5.392 8.626-5.445l2.206 1.841c.549 6.645-7.579 8.127-10.832 3.604zm16.878-8.538c1.713-2.687 7.016-11.698 7.016-11.698.423-.747-.515-1.528-1.17-.976 0 0-7.887 6.857-10.213 9.03-1.838 1.719-1.846 2.504-2.441 5.336l2.016 1.681c2.67-1.098 3.439-1.248 4.792-3.373z"></path></symbol><symbol id="2015" width="24" height="24" viewbox="0 0 24 24"><path d="M20 7.093v-5.093h-3v2.093l3 3zm4 5.907l-12-12-12 12h3v10h7v-5h4v5h7v-10h3zm-5 8h-3v-5h-8v5h-3v-10.26l7-6.912 7 6.99v10.182z"></path></symbol><symbol id="2184" x="0px" y="0px" width="24px" height="24px" viewbox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"><path d="M12,0C7.029,0,3,4.03,3,9s4.029,9,9,9c4.971,0,9-4.03,9-9S16.971,0,12,0z M16.298,15.137 c-0.079-0.395-0.177-0.783-0.299-1.166c0.673-0.607,0.646-1.647-0.054-2.162c0.436-1.739,0.457-3.636-0.002-5.465 c0.139-0.083,0.261-0.191,0.354-0.319c1.101,0.309,2.124,0.8,3.04,1.434C19.443,7.956,19.5,8.471,19.5,9 C19.5,11.537,18.23,13.779,16.298,15.137z M4.5,9c0-0.642,0.09-1.261,0.242-1.856c0.523-0.033,1.044-0.03,1.61,0.024l0.03,0.169 C5.691,7.918,5.07,8.583,4.518,9.342L4.5,9z M6.887,8.107c0.636,0.482,1.562,0.327,1.997-0.368c2.174,0.795,4.005,2.308,5.205,4.25 c-0.575,0.581-0.567,1.497,0.015,2.021c-0.512,0.924-1.162,1.758-1.919,2.48c-3.678,0.087-6.693-2.446-7.477-5.773 C5.285,9.731,6.022,8.848,6.887,8.107z M9.052,6.682c1.493-0.73,3.116-1.074,4.743-1.033c0.229,0.458,0.697,0.807,1.249,0.875h0.005 c0.417,1.618,0.438,3.354,0.021,5.025l-0.168,0.017C13.609,9.447,11.578,7.717,9.08,6.84L9.052,6.682z M13.598,16.325 c0.527-0.613,0.983-1.271,1.36-1.972l0.203-0.006c0.129,0.422,0.229,0.854,0.306,1.297C14.885,15.95,14.258,16.182,13.598,16.325z M18.926,6.126c-0.758-0.42-1.557-0.752-2.393-0.983c-0.081-0.746-0.78-1.368-1.59-1.362C14.529,3.017,14.02,2.3,13.427,1.64 C15.917,2.122,17.973,3.837,18.926,6.126z M14.07,4.095c-0.191,0.165-0.332,0.386-0.393,0.645c-1.842-0.022-3.585,0.395-5.137,1.174 C7.904,5.434,6.99,5.597,6.559,6.274C6.012,6.218,5.523,6.206,5.041,6.221C6.147,3.458,8.847,1.5,12,1.5h0.001 C12.823,2.245,13.525,3.12,14.07,4.095z"></path></symbol><symbol id="18544" width="24" height="24" viewbox="0 0 24 24"><path d="M23 0l-15.996 3.585v13.04c-2.979-.589-6.004 1.671-6.004 4.154 0 2.137 1.671 3.221 3.485 3.221 2.155 0 4.512-1.528 4.515-4.638v-10.9l12-2.459v8.624c-2.975-.587-6 1.664-6 4.141 0 2.143 1.715 3.232 3.521 3.232 2.14 0 4.476-1.526 4.479-4.636v-17.364z"></path></symbol><symbol id="2025" width="24" height="24" viewbox="0 0 24 24"><path d="M19.803 13.207l-.829 1.093-1.554-3.826c-.077-.189-.244-.306-.437-.306-.157 0-.356.084-.444.321l-1.356 3.664-1.872-8.759c-.062-.291-.288-.394-.462-.394-.203 0-.428.131-.473.424l-1.629 10.581-1.658-6.968c-.067-.282-.291-.382-.463-.382-.167 0-.374.092-.453.349l-1.453 4.753-1.07-2.53c-.078-.185-.245-.299-.436-.299-.154 0-.294.076-.385.209l-1.257 1.805-.087.058h-2.985c-.276 0-.5.224-.5.5s.224.5.5.5h3.284c.152 0 .296-.074.386-.206l.948-1.353 1.24 2.929c.079.187.241.299.433.299.211 0 .39-.138.455-.35l1.324-4.332 1.814 7.629c.068.283.282.384.46.384.203 0 .428-.131.473-.425l1.605-10.425 1.673 7.83c.058.272.277.395.467.395.202 0 .366-.12.441-.321l1.5-4.049 1.426 3.51c.077.189.245.306.438.306.152 0 .292-.075.382-.206l1.146-1.583.087-.046h3.026c.272 0 .492-.22.492-.492s-.22-.494-.492-.494h-3.322c-.151 0-.294.077-.383.207z"></path></symbol><symbol id="2027" width="24" height="24" viewbox="0 0 24 24"><path d="M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm-1.894 14.992c.485-.514 1.154-.832 1.894-.832s1.408.318 1.894.832l-1.894 2.008-1.894-2.008zm-.874-.927c.709-.751 1.688-1.215 2.768-1.215s2.059.465 2.768 1.216l1.164-1.236c-1.006-1.067-2.396-1.727-3.932-1.727s-2.926.66-3.932 1.727l1.164 1.235zm-2.038-2.163c1.23-1.304 2.929-2.11 4.806-2.11s3.576.807 4.806 2.111l1.194-1.267c-1.535-1.629-3.656-2.636-6-2.636s-4.465 1.007-6 2.636l1.194 1.266z"></path></symbol><symbol id="2164" width="24" height="24" viewbox="0 0 24 24"><path d="M5 19h-4v-8h4v8zm6 0h-4v-18h4v18zm6 0h-4v-12h4v12zm6 0h-4v-4h4v4zm1 2h-24v2h24v-2z"></path></symbol><symbol id="13571" width="24" height="24" fill-rule="evenodd" clip-rule="evenodd"><path d="M9 21h-9v-2h9v2zm6.695-2.88l-3.314-3.13-1.381 1.47 4.699 4.54 8.301-8.441-1.384-1.439-6.921 7zm-6.695-1.144h-9v-2h9v2zm8-3.976h-17v-2h17v2zm7-4h-24v-2h24v2zm0-4h-24v-2h24v2z"></path></symbol><symbol id="2019" width="24" height="24" fill-rule="evenodd" clip-rule="evenodd"><path d="M24 8.2c0-.318-.126-.623-.351-.849-.226-.225-.531-.351-.849-.351h-6.6c-.318 0-.623.126-.849.351-.225.226-.351.531-.351.849v13.6c0 .318.126.623.351.849.226.225.531.351.849.351h6.6c.318 0 .623-.126.849-.351.225-.226.351-.531.351-.849v-13.6zm-11 14.8h-8l2.599-3h5.401v3zm6.5-1c-.553 0-1-.448-1-1s.447-1 1-1c.552 0 .999.448.999 1s-.447 1-.999 1zm3.5-3v-9.024h-7v9.024h7zm-2-14h-2v-2h-17v13h11v2h-13v-17h21v4zm-.5 4c.276 0 .5-.224.5-.5s-.224-.5-.5-.5h-2c-.276 0-.5.224-.5.5s.224.5.5.5h2z"></path></symbol><symbol id="2023" width="24" height="24" viewbox="0 0 24 24"><path d="M10 16c0-1.104.896-2 2-2s2 .896 2 2c0 .738-.404 1.376-1 1.723v2.277h-2v-2.277c-.596-.347-1-.985-1-1.723zm11-6v14h-18v-14h3v-4c0-3.313 2.687-6 6-6s6 2.687 6 6v4h3zm-13 0h8v-4c0-2.206-1.795-4-4-4s-4 1.794-4 4v4zm11 2h-14v10h14v-10z"></path></symbol><symbol id="32471" width="24" height="24" viewbox="0 0 24 24"><path d="M10.452 2l8.271 8.265-5.431 5.279-8.292-8.314v-5.23h5.452zm.828-2h-8.28v8.058l10.271 10.296 8.302-8.07-10.293-10.284zm-1.72 6.559c-.585.585-1.535.585-2.12 0-.586-.584-.586-1.533 0-2.118.585-.585 1.535-.585 2.12 0 .586.584.586 1.533 0 2.118zm11.01 7.407l1.43 1.409-8.688 8.625-10.312-10.317v-2.833l10.349 10.291 7.221-7.175z"></path></symbol><symbol id="20419" width="24" height="24" fill-rule="evenodd" clip-rule="evenodd"><path d="M3.405 14.899c1.974 2.021 4.28 3.15 7.095 3.15 5.243 0 9.5-4.256 9.5-9.5 0-3.04-1.25-5.209-3.198-7.14l1.409-1.409c2.306 2.098 3.779 5.119 3.789 8.48.016 5.844-4.357 10.689-10 11.44v.08c0 1.875 1.526 3 3 3h1v1h-11v-1h1c1.499 0 3-1.151 3-3v-.071c-2.755-.351-5.208-1.679-7-3.626l1.405-1.404zm-1.405-6.299c0-4.695 3.805-8.5 8.5-8.5 4.688 0 8.5 3.799 8.5 8.5 0 4.695-3.806 8.499-8.5 8.499-4.695 0-8.5-3.806-8.5-8.499m8.883-7.064c-.163.005-.278.187-.404.291-.252.209-.897.619-1.257.494-.368-.126-1.155.468-1.281.473-.047.001.002-.45.253-.483-.109.016.883-.501.856-.609-.032-.128-1.982.582-1.895.725.041.065.211.065-.012.208-.127.077-.264.567-.384.567-.357.156-.38-.307-.777.29l-.634.256c-.94.998-1.591 2.264-1.827 3.67-.009.057.237.16.268.199.08.095.08.505.119.638.098.339.339.527.524.835.109.184.29.648.233.84.077-.126.759.578.883.724.293.346.52.763.043 1.104-.154.111.233.8.034.97l-.257.065c-.252.155-.138.536.016.696 1.288 1.347 3.103 2.186 5.114 2.186 3.907 0 7.075-3.168 7.075-7.075 0-.734-.125-1.474-.253-1.864-.04-.123-.134-.222-.254-.268-.182-.07-.948.422-1.063.18l-.405.005c-.085-.046-.321-.364-.429-.326-.219.08.336.683.487.763.142-.108.603-.329.703-.027.19.569-.522 1.193-.886 1.523-.544.491-.443-.319-.813-.604-.195-.149-.193-.468-.389-.578-.084-.047-.452-.468-.486-.564l-.002-.012.002.012-.013.105c-.067.052-.208-.189-.224-.227 0 .209.341.542.453.709.191.287.294.705.529.94.126.126.609.647.734.636l.645-.307c.456.108-1.073 2.271-1.218 2.538-.12.226.096.78.08 1.046-.021.306-.262.406-.491.572-.246.18-.188.528-.394.655-.366.226-.63.959-1.149.955-.154 0-.808.255-.894.005-.066-.181-.156-.319-.25-.498-.091-.175-.01-.357-.122-.512-.078-.108-.336-.352-.359-.48-.002-.109.083-.443.198-.502.163-.082.031-.324.011-.464-.034-.251-.189-.458-.376-.603-.275-.212-.132-.38-.068-.683 0-.144-.088-.333-.283-.277-.399.117-.277-.312-.568-.292-.21.014-.382.148-.577.206-.245.074-.496-.057-.738-.088-.997-.126-1.322-1.265-1.062-2.087l-.034-.488c.112-.25.341-.529.54-.718.112-.107.255-.08.387-.162.204-.128.207-.392.405-.553.284-.231.67-.226 1.041-.275.196-.027.946-.189 1.064-.043 0 .027.128.408-.002.407l-.012-.001.012.001c.306.027.736.528 1.023.409.15-.062.095-.522.403-.299.184.133 1.016.192 1.189.049.107-.088.167-.659.036-.723.082.082-.431.088-.48.069-.081-.03-.156.071-.282.026l-.013-.005c.039.015-.452-.262-.16-.475l-.382.076-.09.193c-.214.11-.376-.371-.456-.425-.082-.054-.718-.5-.545-.209l.559.556c-.028.018-.147-.202-.147-.041.037-.095.013.41-.074.245l.004-.189c0-.061-.161-.119-.193-.16-.088-.11-.324-.352-.451-.41-.035-.017-.541.061-.584.078l-.127.22c-.105.039-.203.089-.296.151l-.111.25c-.049.043-.542.206-.545.212.021-.053-.345-.121-.321-.227.027-.117.151-.482.119-.615-.034-.14.761.201.813-.167.02-.159.031-.345-.223-.372.048.006.492-.174.566-.255.103-.119.341-.314.513-.314.201 0 .157-.292.25-.436.093.038-.05.267.062.36-.008-.073.315.039.346.023.075-.04.485-.016.421-.21-.071-.196.036-.138.129-.179-.016.006.24-.438.284-.292-.03-.15-.298.052-.391.045-.216-.018-.125-.368-.043-.472.063-.081-.172-.18-.175-.025-.004.233-.221.444-.171.754.077.467-.521-.112-.573-.081-.198.12-.36-.151-.258-.315l.462-.337c.074-.126.159-.272.273-.368.379-.318.483-.063.861-.029.369.034.124.088.074.23-.049.135.203.183.29.07.049-.065.163-.229.211-.35.063-.157.638-.139.237-.38-.265-.157-1.42-.476-2.194-.476l-.007.001zm.427 4.351c-.025-.047.242-.071.289-.071.053.006-.137.319-.289.071m1.803-1.092c-.003-.104-.134-.201-.27-.022-.095.124-.078.312-.129.395-.075.124.401.24.401.123.018-.197.519-.045.617-.018.175.048.455-.16.149-.27-.253-.092-.385-.189-.407-.37 0 0 .134-.124.075-.117-.155.018-.436.556-.436.279m-3.327-1.084l.077-.021-.037.096c.061.11.016.175.006.235l-.105.065c-.038.047.182.054.185.06.008.024-.266.063-.215.121.067.097.583-.138.501-.124.159-.08.021-.089-.068-.135-.031-.152-.056-.387-.151-.482l.062-.071c-.146-.212-.255.256-.255.256m-.365.386c-.06.025-.12-.013-.061-.073l.062-.075-.006-.034.049-.062.051-.013.105-.073c.031.006.104.066.079.104l-.057.07c-.012.118-.132.117-.22.156h-.004.002"></path></symbol><symbol id="2018" width="24" height="24" viewbox="0 0 24 24"><path d="M10.187 9.125l1.831 1.832c.199.918-1.131 2.264-2.061 2.061l-1.832-1.832c-.083.284-.125.577-.125.871 0 .779.295 1.556.889 2.15.656.656 1.537.951 2.396.884.453-.034.899.131 1.222.452l2.033 2.034c.28.282.649.423 1.018.423.809 0 1.459-.663 1.442-1.472-.009-.358-.149-.714-.422-.988l-2.034-2.034c-.321-.322-.487-.769-.452-1.222.066-.858-.229-1.739-.885-2.395-.595-.595-1.372-.889-2.15-.889-.293 0-.586.042-.87.125zm5.841 7.417c0 .269-.219.486-.486.486-.269 0-.486-.218-.486-.486s.218-.485.486-.485.486.217.486.485zm-9.944-12.542c1.379 1.612 2.576 3 4.916 3h11v13h-20v-16h4.084zm.916-2h-7v20h24v-17h-13c-1.629 0-2.305-1.058-4-3z"></path></symbol><symbol id="13570" width="24" height="24" viewbox="0 0 24 24"><path d="M10 20v-6l5 3-5 3zm14-15.625l-.008-.042-1.008-4.333-21.169 4.196c-1.054.209-1.815 1.134-1.815 2.207v14.597c0 1.657 1.343 3 3 3h18c1.656 0 3-1.343 3-3v-14h-12.734l12.734-2.625zm-3.89-2.618l2.396 1.604-2.994.595-2.398-1.605 2.996-.594zm-5.897 1.169l2.399 1.606-2.993.595-2.402-1.607 2.996-.594zm-5.905 1.171l2.403 1.608-2.993.595-2.406-1.61 2.996-.593zm2.538 3.903l-2.039 2h-3.054l2.039-2h3.054zm8.978 0h3.054l-2.038 2h-3.055l2.039-2zm-6.012 0h3.053l-2.039 2h-3.053l2.039-2zm8.188 4v8.75c0 .69-.56 1.25-1.25 1.25h-17.5c-.69 0-1.25-.56-1.25-1.25v-8.75h20z"></path></symbol></svg> <div class="nav-ad-plus-leader placeholder"> <div data-ad="nav-ad-plus-leader" data-ad-container="612793177a63b" class="ad-nav-ad-plus-leader ad-slot skybox-closeBtn skybox-collapseBtn "> </div> </div> <header id="mainHeader" class="page-header"> <div id="secondary"> <div class="editions"> <ul> <li class="editions-dropdown"> <a aria-haspopup="true" class="arrow"> Edition: <span data-label="edition"></span> </a> <ul data-component="editionToggler" class="menu-editions"> <li> <a class="editionSwitch" data-edition="as" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-Editions", "pageType": "article"}"> Asia </a> </li> <li> <a class="editionSwitch" data-edition="au" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-Editions", "pageType": "article"}"> Australia </a> </li> <li> <a class="editionSwitch" data-edition="eu" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-Editions", "pageType": "article"}"> Europe </a> </li> <li> <a class="editionSwitch" data-edition="in" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-Editions", "pageType": "article"}"> India </a> </li> <li> <a class="editionSwitch" data-edition="uk" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-Editions", "pageType": "article"}"> United Kingdom </a> </li> <li> <a class="editionSwitch" data-edition="us" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-Editions", "pageType": "article"}"> United States </a> </li> <li class="subDiv"><span class="label">ZDNet around the globe:</span></li> <li class="subDiv"> <a href="https://web.archive.org/web/20210826133042/http://www.zdnet.fr/" target="_blank" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-Editions", "pageType": "article"}" rel="noopener noreferrer nofollow" data-component="externalLink"> ZDNet France </a> </li> <li class="subDiv"> <a href="https://web.archive.org/web/20210826133042/http://www.zdnet.de/" target="_blank" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-Editions", "pageType": "article"}" rel="noopener noreferrer nofollow" data-component="externalLink"> ZDNet Germany </a> </li> <li class="subDiv"> <a href="https://web.archive.org/web/20210826133042/http://www.zdnet.co.kr/" target="_blank" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-Editions", "pageType": "article"}" rel="noopener noreferrer nofollow" data-component="externalLink"> ZDNet Korea </a> </li> <li class="subDiv"> <a href="https://web.archive.org/web/20210826133042/http://japan.zdnet.com/" target="_blank" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-Editions", "pageType": "article"}" rel="noopener noreferrer"> ZDNet Japan </a> </li> </ul> </li> </ul> </div> </div> <div id="mainNav" class="fixation"> <div id="primary" data-component="smartSearch" data-smart-search-options="{"smartSearchXhr":"https:\/\/www.zdnet.com\/search\/xhr\/smart-search\/","trendingContentXhr":"https:\/\/www.zdnet.com\/search\/xhr\/smart-search-trending-content\/"}"> <a id="zdLogoLarge" title="ZDNet" href="https://web.archive.org/web/20210826133042/https://www.zdnet.com/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-Logo", "pageType": "article"}"> <svg class="svg-logo-header" viewbox="0 0 120 84" enable-background="new 0 0 120 84"> <lineargradient id="zdlogo" gradientunits="userSpaceOnUse" x1="38.9038" y1="-1.7476" x2="38.9038" y2="81.0522" gradienttransform="matrix(0.9997 0.025 -0.025 0.9997 4.1309 1.418)"> <stop offset="0" style="stop-color:#07111A;stop-opacity:0"></stop> <stop offset="0.7998" style="stop-color:#07111A"></stop> <stop offset="1" style="stop-color:#000000;stop-opacity:0"></stop> </lineargradient> <path opacity="0.4" fill="url(#zdlogo)" d="M81.783,59.255c1.078-0.467,1.573-1.732,1.106-2.81L59.259,2.28 c-0.467-1.077-1.733-1.573-2.811-1.102L2.281,24.8c-1.076,0.47-1.574,1.734-1.104,2.813l23.627,54.168 c0.472,1.075,1.736,1.571,2.813,1.103L81.783,59.255z"></path> <path fill="#DE1400" d="M75.949,56.728c0.919-0.399,1.343-1.479,0.943-2.398L56.731,8.114c-0.399-0.919-1.479-1.342-2.4-0.941 L8.116,27.329c-0.918,0.401-1.343,1.48-0.942,2.4l20.16,46.216c0.402,0.919,1.481,1.343,2.4,0.941L75.949,56.728z"></path> <path fill="#FFFFFF" d="M53.456,23.18H42.001v19.714h-13.74L41.573,23.18H21.364l-3.731,5.568h12.238l-13.38,19.714H43.77 l4.803-7.087V28.748h3.677c4.225,0,7.208,2.544,7.208,7.071c0,4.932-3.354,7.075-7.276,7.075h-2.904v5.568h4.178 c7.006,0,12.842-5.534,12.842-12.643S60.498,23.18,53.456,23.18z"></path> <path fill="#D4DEE4" d="M68.52,22.892h5.684l4.872,10.188c1.287,2.712,2.274,5.389,2.786,7.219c-0.185-1.978-0.366-5.241-0.403-7 L81.35,22.892h4.874v25.473H80.87l-4.359-9.751c-1.391-3.188-2.97-6.778-3.447-8.355c0.186,2.09,0.225,5.096,0.258,7.221 l0.147,10.886H68.52V22.892z"></path> <path fill="#D4DEE4" d="M102.745,43.38l1.906,2.933c-2.163,1.757-4.436,2.604-7.074,2.604c-5.388,0-8.869-3.812-8.869-9.714 c0-3.371,0.695-5.608,2.344-7.442c1.541-1.722,3.41-2.53,5.902-2.53c2.161,0,4.216,0.734,5.423,1.983 c1.722,1.758,2.493,4.287,2.493,8.211c0,0.4,0,0.546,0,1.133H94.02v0.148c0,2.893,1.432,4.544,3.961,4.544 C99.667,45.25,101.242,44.627,102.745,43.38z M94.096,36.966h5.682v-0.219c0-1.392-0.147-2.126-0.588-2.824 c-0.479-0.732-1.174-1.1-2.163-1.1c-1.867,0-2.931,1.466-2.931,4.07V36.966z"></path> <path fill="#D4DEE4" d="M117.733,29.564l-1.244,3.258h-3.153v9.57c0,2.382,0.44,3.007,2.127,3.007c0.439,0,0.878-0.114,1.76-0.37 l0.623,2.931c-1.429,0.589-2.714,0.846-3.995,0.846c-2.492,0-4.51-1.101-5.059-2.748c-0.293-0.808-0.33-1.176-0.33-2.897V32.822 h-1.869v-3.187h1.869c0-1.832,0-3.077,0.186-4.47l4.981-1.247c-0.186,1.721-0.293,3.739-0.293,5.645H117.733z"></path> </svg> </a> <div class="searchLarge"> <a data-item="trigger" class="searchTrigger hide-text">Search</a> <div class="dropDown"> <div class="container search-overlay-container"> <form class="headerSearch active" method="get" action="/web/20210826133042/https://www.zdnet.com/search/"> <div class="box"> <label for="search-field" class="hidden">What are you looking for?</label> <input type="search" id="search-field" title="query" autocomplete="off" placeholder="What are you looking for?" tabindex="1" name="q" value="" class="search-expand smart-search-input"> <button type="submit" class="search-button" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-Search", "pageType": "article"}"> <svg class=" mag-red"> <use xlink:href="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/#mag-red"></use> </svg> <span class="search-go">Go</span> </button> </div> </form> <div class="smart-search-results"> <span class="closeDropdown screen-large" data-item="close"> <svg class=" close-gray"> <use xlink:href="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/#close-gray"></use> </svg> </span> <div class="smart-search-results-list"></div> <div class="smart-search-trending-content"></div> </div> </div> </div> </div> <nav class="primaryNav" data-component="headerNav"> <ul class="navList"> <li class="alpha"><a href="/web/20210826133042/https://www.zdnet.com/video/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-TopicNav", "pageType": "article"}"> Videos </a></li><li class="beta"><a href="/web/20210826133042/https://www.zdnet.com/topic/windows-10/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-TopicNav", "pageType": "article"}"> Windows 10 </a></li><li class="gamma"><a href="/web/20210826133042/https://www.zdnet.com/topic/5g/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-TopicNav", "pageType": "article"}"> 5G </a></li><li class="delta"><a href="/web/20210826133042/https://www.zdnet.com/article/best-vpn/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-TopicNav", "pageType": "article"}"> Best VPNs </a></li><li class="epsilon"><a href="/web/20210826133042/https://www.zdnet.com/topic/cloud/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-TopicNav", "pageType": "article"}"> Cloud </a></li><li class=""><a href="/web/20210826133042/https://www.zdnet.com/topic/security/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-TopicNav", "pageType": "article"}"> Security </a></li><li class=""><a href="/web/20210826133042/https://www.zdnet.com/topic/artificial-intelligence/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-TopicNav", "pageType": "article"}"> AI </a></li><li class="hasDrop"><a class="arrow moreText">more</a><ul class="menu-topics"><li class="alphaDrop"><a href="/web/20210826133042/https://www.zdnet.com/topic/working-from-home-the-future-of-business-is-remote/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-MoreMenu", "pageType": "article"}"> Working from Home </a></li><li class=""><a href="/web/20210826133042/https://www.zdnet.com/topic/innovation/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-MoreMenu", "pageType": "article"}"> Innovation </a></li><li class=""><a href="/web/20210826133042/https://www.zdnet.com/article/best-web-hosting-providers-services-in-2020-dreamhost-bluehost-wix-wordpress/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-MoreMenu", "pageType": "article"}"> Best Web Hosting </a></li><li class=""><a href="/web/20210826133042/https://www.zdnet.com/topic/zdnet-recommends/" target=""_blank"" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-MoreMenu", "pageType": "article"}"> ZDNet Recommends </a></li><li class=""><a href="/web/20210826133042/https://www.zdnet.com/article/get-the-tonya-hall-innovation-show-as-a-zdnet-podcast/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-MoreMenu", "pageType": "article"}"> Tonya Hall Show </a></li><li class=""><a href="/web/20210826133042/https://www.zdnet.com/topic/executive-guides/" executive guides data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-MoreMenu", "pageType": "article"}"> Executive Guides </a></li><li class=""><a href="https://web.archive.org/web/20210826133042/https://academy.zdnet.com/" target=""_blank"" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-MoreMenu", "pageType": "article"}"> ZDNet Academy </a></li><li class="seeAll"><a href="/web/20210826133042/https://www.zdnet.com/topic/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-MoreMenu", "pageType": "article"}"> See All Topics </a></li><li class="subDiv"><a href="//web.archive.org/web/20210826133042/https://downloads.zdnet.com/" data-download-link="'true'" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "header-more-downloads", "pageType": "article"}"> Downloads </a></li><li class="subDiv"><a href="/web/20210826133042/https://www.zdnet.com/reviews/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "header-more-reviews", "pageType": "article"}"> Reviews </a></li><li class="subDiv"><a href="/web/20210826133042/https://www.zdnet.com/pictures/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "header-more-galleries", "pageType": "article"}"> Galleries </a></li><li class="subDiv"><a href="/web/20210826133042/https://www.zdnet.com/video/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "header-more-videos", "pageType": "article"}"> Videos </a></li></ul></li><li><a href="/web/20210826133042/https://www.zdnet.com/newsletters/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-Newsletter", "pageType": "article"}" class="linkAlt" data-vanity-rewritten="true">Newsletters</a></li><li><a href="/web/20210826133042/https://www.zdnet.com/blog/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-AllWriters", "pageType": "article"}" class="linkAlt">All Writers</a></li><li class="user-dropdown"><a class="linkAlt" data-authentication="{"appId":1101,"position":"Header"}"><span class="zduser"><svg class=" user_alt"><use xlink:href="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/#user_alt"></use></svg></span></a><span class="loggedIn"><ul class="menu-user"><li><a href="https://web.archive.org/web/20210826133042/https://www.zdnet.com/members/preferences/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "header-personicon-manage", "pageType": "article"}" rel="nofollow">Preferences</a></li><li><a href="https://web.archive.org/web/20210826133042/https://www.zdnet.com/members/community/" rel="nofollow">Community</a></li><li><a href="https://web.archive.org/web/20210826133042/https://www.zdnet.com/members/newsletters/" rel="nofollow">Newsletters</a></li><li><a href="https://web.archive.org/web/20210826133042/https://www.zdnet.com/user/logout/" data-omniture-track="trackLogout" data-omniture-track-data="{"moduleInfo": "header-personicon", "pageType": "article"}" rel="nofollow" data-user-action="logout">Log Out</a></li></ul></span></li> </ul> <ul class="navListMobile"> <li class="backgroundLogo"> <a id="zdLogoSmall" href="https://web.archive.org/web/20210826133042/https://www.zdnet.com/" title="ZDNet"> <svg class="svg-logo-header" viewbox="0 0 120 84" enable-background="new 0 0 120 84"> <lineargradient id="zdlogo" gradientunits="userSpaceOnUse" x1="38.9038" y1="-1.7476" x2="38.9038" y2="81.0522" gradienttransform="matrix(0.9997 0.025 -0.025 0.9997 4.1309 1.418)"> <stop offset="0" style="stop-color:#07111A;stop-opacity:0"></stop> <stop offset="0.7998" style="stop-color:#07111A"></stop> <stop offset="1" style="stop-color:#000000;stop-opacity:0"></stop> </lineargradient> <path opacity="0.4" fill="url(#zdlogo)" d="M81.783,59.255c1.078-0.467,1.573-1.732,1.106-2.81L59.259,2.28 c-0.467-1.077-1.733-1.573-2.811-1.102L2.281,24.8c-1.076,0.47-1.574,1.734-1.104,2.813l23.627,54.168 c0.472,1.075,1.736,1.571,2.813,1.103L81.783,59.255z"></path> <path fill="#DE1400" d="M75.949,56.728c0.919-0.399,1.343-1.479,0.943-2.398L56.731,8.114c-0.399-0.919-1.479-1.342-2.4-0.941 L8.116,27.329c-0.918,0.401-1.343,1.48-0.942,2.4l20.16,46.216c0.402,0.919,1.481,1.343,2.4,0.941L75.949,56.728z"></path> <path fill="#FFFFFF" d="M53.456,23.18H42.001v19.714h-13.74L41.573,23.18H21.364l-3.731,5.568h12.238l-13.38,19.714H43.77 l4.803-7.087V28.748h3.677c4.225,0,7.208,2.544,7.208,7.071c0,4.932-3.354,7.075-7.276,7.075h-2.904v5.568h4.178 c7.006,0,12.842-5.534,12.842-12.643S60.498,23.18,53.456,23.18z"></path> <path fill="#D4DEE4" d="M68.52,22.892h5.684l4.872,10.188c1.287,2.712,2.274,5.389,2.786,7.219c-0.185-1.978-0.366-5.241-0.403-7 L81.35,22.892h4.874v25.473H80.87l-4.359-9.751c-1.391-3.188-2.97-6.778-3.447-8.355c0.186,2.09,0.225,5.096,0.258,7.221 l0.147,10.886H68.52V22.892z"></path> <path fill="#D4DEE4" d="M102.745,43.38l1.906,2.933c-2.163,1.757-4.436,2.604-7.074,2.604c-5.388,0-8.869-3.812-8.869-9.714 c0-3.371,0.695-5.608,2.344-7.442c1.541-1.722,3.41-2.53,5.902-2.53c2.161,0,4.216,0.734,5.423,1.983 c1.722,1.758,2.493,4.287,2.493,8.211c0,0.4,0,0.546,0,1.133H94.02v0.148c0,2.893,1.432,4.544,3.961,4.544 C99.667,45.25,101.242,44.627,102.745,43.38z M94.096,36.966h5.682v-0.219c0-1.392-0.147-2.126-0.588-2.824 c-0.479-0.732-1.174-1.1-2.163-1.1c-1.867,0-2.931,1.466-2.931,4.07V36.966z"></path> <path fill="#D4DEE4" d="M117.733,29.564l-1.244,3.258h-3.153v9.57c0,2.382,0.44,3.007,2.127,3.007c0.439,0,0.878-0.114,1.76-0.37 l0.623,2.931c-1.429,0.589-2.714,0.846-3.995,0.846c-2.492,0-4.51-1.101-5.059-2.748c-0.293-0.808-0.33-1.176-0.33-2.897V32.822 h-1.869v-3.187h1.869c0-1.832,0-3.077,0.186-4.47l4.981-1.247c-0.186,1.721-0.293,3.739-0.293,5.645H117.733z"></path> </svg> </a> </li> <li class="searchMobileWrapper"> <a data-item="trigger" class="search-trigger"> <svg viewbox="0 0 16 16"><g><path class="st1" d="M15.9,14.3l-3.5-3.5c0.7-1.1,1.1-2.4,1.1-3.8c0-3.8-3-6.9-6.7-6.9C3,0,0,3.1,0,6.9s3,6.9,6.7,6.9 c1.6,0,3-0.5,4.1-1.5l3.5,3.5c0.1,0.1,0.2,0.1,0.3,0.1c0,0,0,0,0,0c0.1,0,0.3-0.1,0.3-0.2l0.8-0.9C16,14.8,16,14.5,15.9,14.3z M6.7,11.6c-2.6,0-4.6-2.1-4.6-4.7s2.1-4.7,4.6-4.7c2.6,0,4.6,2.1,4.6,4.7S9.3,11.6,6.7,11.6z"></path></g></svg> </a> <ul class="dropDown forSearch"> <li> <div class="searchSmall"> <div class="container search-overlay-container"> <form class="headerSearch active" method="get" action="/web/20210826133042/https://www.zdnet.com/search/"> <div class="box"> <label for="search-field" class="hidden">What are you looking for?</label> <input type="search" id="search-field" title="query" autocomplete="off" placeholder="What are you looking for?" tabindex="1" name="q" value="" class="search-expand smart-search-input"> <button type="submit" class="search-button" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-Search", "pageType": "article"}"> <svg class=" mag-red"> <use xlink:href="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/#mag-red"></use> </svg> <span class="search-go">Go</span> </button> </div> </form> <div class="smart-search-results"> <span class="closeDropdown screen-large" data-item="close"> <svg class=" close-gray"> <use xlink:href="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/#close-gray"></use> </svg> </span> <div class="smart-search-results-list"></div> <div class="smart-search-trending-content"></div> </div> </div> </div> </li> </ul> <span class="closeDropdown screen-small" data-item="close"> <svg class=" close-gray"> <use xlink:href="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/#close-gray"></use> </svg> </span> </li> <li data-component="dropdown"> <a data-item="trigger">Menu</a> <ul class="dropDown mobileLinks"> <li class="alpha"> <a href="/web/20210826133042/https://www.zdnet.com/video/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-TopicNav", "pageType": "article"}"> Videos </a> </li> <li class="beta"> <a href="/web/20210826133042/https://www.zdnet.com/topic/windows-10/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-TopicNav", "pageType": "article"}"> Windows 10 </a> </li> <li class="gamma"> <a href="/web/20210826133042/https://www.zdnet.com/topic/5g/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-TopicNav", "pageType": "article"}"> 5G </a> </li> <li class="delta"> <a href="/web/20210826133042/https://www.zdnet.com/article/best-vpn/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-TopicNav", "pageType": "article"}"> Best VPNs </a> </li> <li class="epsilon"> <a href="/web/20210826133042/https://www.zdnet.com/topic/cloud/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-TopicNav", "pageType": "article"}"> Cloud </a> </li> <li class=""> <a href="/web/20210826133042/https://www.zdnet.com/topic/security/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-TopicNav", "pageType": "article"}"> Security </a> </li> <li class=""> <a href="/web/20210826133042/https://www.zdnet.com/topic/artificial-intelligence/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-TopicNav", "pageType": "article"}"> AI </a> </li> <li class="alphaDrop"> <a href="/web/20210826133042/https://www.zdnet.com/topic/working-from-home-the-future-of-business-is-remote/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-MoreMenu", "pageType": "article"}"> Working from Home </a> </li> <li class=""> <a href="/web/20210826133042/https://www.zdnet.com/topic/innovation/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-MoreMenu", "pageType": "article"}"> Innovation </a> </li> <li class=""> <a href="/web/20210826133042/https://www.zdnet.com/article/best-web-hosting-providers-services-in-2020-dreamhost-bluehost-wix-wordpress/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-MoreMenu", "pageType": "article"}"> Best Web Hosting </a> </li> <li class=""> <a href="/web/20210826133042/https://www.zdnet.com/topic/zdnet-recommends/" target=""_blank"" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-MoreMenu", "pageType": "article"}"> ZDNet Recommends </a> </li> <li class=""> <a href="/web/20210826133042/https://www.zdnet.com/article/get-the-tonya-hall-innovation-show-as-a-zdnet-podcast/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-MoreMenu", "pageType": "article"}"> Tonya Hall Show </a> </li> <li class=""> <a href="/web/20210826133042/https://www.zdnet.com/topic/executive-guides/" executive guides data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-MoreMenu", "pageType": "article"}"> Executive Guides </a> </li> <li class=""> <a href="https://web.archive.org/web/20210826133042/https://academy.zdnet.com/" target=""_blank"" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-MoreMenu", "pageType": "article"}"> ZDNet Academy </a> </li> <li class="seeAll"> <a href="/web/20210826133042/https://www.zdnet.com/topic/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-MoreMenu", "pageType": "article"}"> See All Topics </a> </li> <li class="subDiv"> <a href="//web.archive.org/web/20210826133042/https://downloads.zdnet.com/" data-download-link="'true'" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "header-more-downloads", "pageType": "article"}"> Downloads </a> </li> <li class="subDiv"> <a href="/web/20210826133042/https://www.zdnet.com/reviews/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "header-more-reviews", "pageType": "article"}"> Reviews </a> </li> <li class="subDiv"> <a href="/web/20210826133042/https://www.zdnet.com/pictures/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "header-more-galleries", "pageType": "article"}"> Galleries </a> </li> <li class="subDiv"> <a href="/web/20210826133042/https://www.zdnet.com/video/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "header-more-videos", "pageType": "article"}"> Videos </a> </li> </ul> </li> <li class="loggedOut"> <a class="zd-user" data-authentication="{"appId":1101,"position":"Header"}"> <span class="zduser"> <svg class=" user_alt"> <use xlink:href="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/#user_alt"></use> </svg> </span> </a> </li> <li class="loggedIn" data-component="dropdown"> <a class="zd-user" data-item="trigger"> <span class="zduser"> <svg class=" user_alt"> <use xlink:href="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/#user_alt"></use> </svg> </span> </a> <ul class="dropDown"> <li> <span class="loggedIn"> <ul class="menu-user"> <li><a href="https://web.archive.org/web/20210826133042/https://www.zdnet.com/members/preferences/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "header-personicon-manage", "pageType": "article"}" rel="nofollow">Preferences</a></li> <li><a href="https://web.archive.org/web/20210826133042/https://www.zdnet.com/members/community/" rel="nofollow">Community</a></li> <li><a href="https://web.archive.org/web/20210826133042/https://www.zdnet.com/members/newsletters/" rel="nofollow">Newsletters</a></li> <li><a href="https://web.archive.org/web/20210826133042/https://www.zdnet.com/user/logout/" data-omniture-track="trackLogout" data-omniture-track-data="{"moduleInfo": "header-personicon", "pageType": "article"}" rel="nofollow" data-user-action="logout">Log Out</a></li> </ul> </span> </li> </ul> </li> <li data-component="dropdown"> <a data-item="trigger">us</a> <div class="dropDown"> <ul data-component="editionToggler" class="menu-editions"> <li> <a class="editionSwitch" data-edition="as" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-Editions", "pageType": "article"}"> Asia </a> </li> <li> <a class="editionSwitch" data-edition="au" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-Editions", "pageType": "article"}"> Australia </a> </li> <li> <a class="editionSwitch" data-edition="eu" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-Editions", "pageType": "article"}"> Europe </a> </li> <li> <a class="editionSwitch" data-edition="in" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-Editions", "pageType": "article"}"> India </a> </li> <li> <a class="editionSwitch" data-edition="uk" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-Editions", "pageType": "article"}"> United Kingdom </a> </li> <li> <a class="editionSwitch" data-edition="us" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-Editions", "pageType": "article"}"> United States </a> </li> <li class="subDiv"><span class="label">ZDNet around the globe:</span></li> <li class="subDiv"> <a href="https://web.archive.org/web/20210826133042/http://www.zdnet.fr/" target="_blank" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-Editions", "pageType": "article"}" rel="noopener noreferrer nofollow" data-component="externalLink"> ZDNet France </a> </li> <li class="subDiv"> <a href="https://web.archive.org/web/20210826133042/http://www.zdnet.de/" target="_blank" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-Editions", "pageType": "article"}" rel="noopener noreferrer nofollow" data-component="externalLink"> ZDNet Germany </a> </li> <li class="subDiv"> <a href="https://web.archive.org/web/20210826133042/http://www.zdnet.co.kr/" target="_blank" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-Editions", "pageType": "article"}" rel="noopener noreferrer nofollow" data-component="externalLink"> ZDNet Korea </a> </li> <li class="subDiv"> <a href="https://web.archive.org/web/20210826133042/http://japan.zdnet.com/" target="_blank" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Header-Editions", "pageType": "article"}" rel="noopener noreferrer"> ZDNet Japan </a> </li> </ul> </div> </li> </ul></nav> </div> </div> </header> <div data-item-id="e1658703-f6e3-4739-a035-21412d635fa5"> <div class="breaking-news-container"> <div class="breaking-news-placeholder" data-component="loadAsync" data-load-async-options="{"url":"\/components\/breaking-news\/xhr\/","replace":true,"data":{"slug":"breaking-news-banner"}}"></div> </div> <div class="topContent container"> <div class="row"> <div class="row"> <div class="col-12"> <header class="storyHeader article"> <div data-nosnippet="true" class="commerce-disclaimer"> Our editors pick the products and services we write about. When you buy through our links, ZDNet may earn a commission. </div> <h1>Best smart thermostat 2021: Save energy efficiently</h1> <p class="summary">Make your home smarter, automated, and more energy-efficient by getting one of the best smart thermostats on the market.</p> </header> </div> </div> </div> </div> <div id="main" data-article-num="1"> <div class="contentWrapper "> <div class="container "> <div class="row"> <div class="row"> <div class="col-12"> <div class="row"> <div class="row"> <div class="col-12"> <div class="row"> <div class="col-8"> <article> <script type="application/ld+json">{ "@context": "https:\/\/web.archive.org\/web\/20210826133042\/http:\/\/schema.org", "@type": "NewsArticle", "headline": "Best smart thermostat 2021: Save energy efficiently", "description": "Make your home smarter, automated, and more energy-efficient by getting one of the best smart thermostats on the market.", "datePublished": "2021-08-25 14:43:00", "dateModified": "2021-08-25 14:43:00", "image": [ { "@type": "ImageObject", "url": "https:\/\/web.archive.org\/web\/20210826133042\/https:\/\/www.zdnet.com\/a\/hub\/i\/r\/2021\/08\/17\/5b19cf71-9442-47c2-9491-edf107c51126\/thumbnail\/1200x900\/025ff32c66d8b3848197d1e7dded9ed9\/best-smart-thermostat.jpg", "width": 1200, "height": 900 }, { "@type": "ImageObject", "url": "https:\/\/web.archive.org\/web\/20210826133042\/https:\/\/www.zdnet.com\/a\/hub\/i\/r\/2021\/08\/17\/5b19cf71-9442-47c2-9491-edf107c51126\/thumbnail\/1200x675\/8401532f1e3d3c2db91d880b0f1d9748\/best-smart-thermostat.jpg", "width": 1200, "height": 675 }, { "@type": "ImageObject", "url": "https:\/\/web.archive.org\/web\/20210826133042\/https:\/\/www.zdnet.com\/a\/hub\/i\/r\/2021\/08\/17\/5b19cf71-9442-47c2-9491-edf107c51126\/thumbnail\/1200x1200\/aa6d2c92d1dabe6cded91c86a702e38b\/best-smart-thermostat.jpg", "width": 1200, "height": 1200 } ], "thumbnailUrl": "https:\/\/web.archive.org\/web\/20210826133042\/https:\/\/www.zdnet.com\/a\/hub\/i\/r\/2021\/08\/17\/5b19cf71-9442-47c2-9491-edf107c51126\/thumbnail\/270x203\/6e7b03aeae3dccd0dc18bbc75f3469c1\/best-smart-thermostat.jpg", "author": [ { "@type": "Person", "name": "AJ Dellinger" } ], "publisher": { "@type": "Organization", "name": "ZDNet", "url": "https:\/\/web.archive.org\/web\/20210826133042\/https:\/\/www.zdnet.com\/", "logo": { "@type": "ImageObject", "url": "https:\/\/web.archive.org\/web\/20210826133042\/https:\/\/www.zdnet.com\/a\/fly\/bundles\/zdnetcss\/images\/core\/logo.png", "width": 120, "height": 84 } }, "mainEntityOfPage": { "@type": "WebPage", "@id": "https:\/\/web.archive.org\/web\/20210826133042\/https:\/\/www.zdnet.com\/article\/best-smart-thermostat\/" } }</script> <script type="application/ld+json">{"@context":"https:\/\/web.archive.org\/web\/20210826133042\/https:\/\/schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"How to pick the best smart thermostat for you?","acceptedAnswer":{"@type":"Answer","text":"<p>Picking the best smart thermostat for you is going to depend on what you need in your home. If you'd like to go hands-off and let the thermostat learn your routine and automate the heating and cooling situation, go with a solution like the Google Nest Learning Thermostat or the Ecobee SmartThermostat with Voice Control.\u00a0<\/p><p>If automation is less important than total control, then you may be better off going with a simpler smart thermostat. A solution like the Wyze Thermostat or the Honeywell Home T5 Smart Thermostat lets you maintain total control over your home environment, even when you're away from home.<\/p><p>If you want control over every element of your home, consider the Honeywell Home T9 Smart Thermostat. With its expandable sensor system, including one that comes with the device, it gives you even more information about your home and lets you control every element of it in nearly every room.<\/p>"}},{"@type":"Question","name":"Is a smart thermostat worth the price?","acceptedAnswer":{"@type":"Answer","text":"<p>Yes, in most situations, a smart thermostat is worth the price. While the upfront investment can feel steep, even the most basic automation features will often end up saving you a considerable amount of money in the long run. It will pay for itself over time by reducing energy costs.<\/p>"}},{"@type":"Question","name":"What is the difference between a smart thermostat and a Wi-Fi thermostat?","acceptedAnswer":{"@type":"Answer","text":"<p>A smart thermostat has automation features that help you manage your energy consumption, typically by reducing your energy usage when you are away. A Wi-Fi thermostat is internet-connected and may give you the ability to control it from your phone, but it often lacks automated tools and can't always be controlled when you are away from home.<\/p>"}},{"@type":"Question","name":"Can I install a smart thermostat in my home?","acceptedAnswer":{"@type":"Answer","text":"<p>Most home heating and cooling systems are compatible with smart thermostats. In some cases, you may have to purchase an adapter or kit to install it. This is especially true of older homes.\u00a0<\/p><p>Check the compatibility of the thermostat to make sure it will work with your home before you purchase it.<\/p>"}},{"@type":"Question","name":"Are there alternatives worth considering?","acceptedAnswer":{"@type":"Answer","text":"<p>There are many smart thermostats on the market, so there is almost certainly one that will work best for your home.\u00a0<\/p><p>Consider these alternatives:<\/p><ul><li>Emerson Sensi Touch Wi-Fi Smart Thermostat - <a href=\"https:\/\/www.amazon.com\/dp\/B01N3CEUDH\/?tag=zdnet-deals-20\">$167.99 from Amazon<\/a><\/li><li>Lyric Round Smart Thermostat - <a href=\"https:\/\/www.amazon.com\/dp\/B01FTNDGRG\/?tag=zdnet-deals-20\">$166 from Amazon<\/a><\/li><\/ul>"}}]}</script> <div class="hide" data-digioh="{"topic":"Hardware"}"></div> <div class="share-bar-wrapper"> <div class="social-links" data-component="shareBar" data-share-bar-options="{"title":"Best smart thermostat 2021: Save energy efficiently","description":"Make your home smarter, automated, and more energy-efficient by getting one of the best smart thermostats on the market.","author":{"socialProfiles":{"facebookProfile":null,"facebookPage":null,"twitter":null,"googlePlus":null,"instagram":null}},"location":"top","url":"https:\/\/www.zdnet.com\/article\/best-smart-thermostat\/"}"> <ul> <li class="comments"> <a href="#comments-e1658703-f6e3-4739-a035-21412d635fa5" data-location="topsharebar-comment" title="Comment"> <svg class=" comment-bubble"> <use xlink:href="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/#comment-bubble"></use> </svg> </a> </li> <li class="linkedin"> <a class="social-share" data-popup="linkedin" data-location="topsharebar-linkedin-share" title="LinkedIn"> <svg class=" linkedin"> <use xlink:href="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/#linkedin"></use> </svg> </a> </li> <li class="flipboard"> <a class="social-share" data-popup="flipboard" data-location="topsharebar-flipboard-share" title="Flipboard"> <svg class=" flipboard"> <use xlink:href="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/#flipboard"></use> </svg> </a> </li> <li class="facebook"> <a class="social-share" data-popup="facebook" data-location="topsharebar-fb-like" title="Facebook"> <svg class=" facebook"> <use xlink:href="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/#facebook"></use> </svg> </a> </li> <li class="twitter"> <a class="social-share" data-popup="twitter" data-location="topsharebar-twitter-tweet" title="Twitter"> <svg class=" twitter"> <use xlink:href="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/#twitter"></use> </svg> </a> </li> <li class="email"> <a title="Email" data-component="emailContact" data-email-contact-options="{"trackClickText":"email-friend-submit","isDesktopGallery":false,"modalAsync":{"url":"\/user\/email-friend\/xhr\/","requestData":{"contentTitle":"Best smart thermostat 2021: Save energy efficiently","contentUrl":"https:\/\/www.zdnet.com\/article\/best-smart-thermostat\/"}}}"> <svg class=" envelope"> <use xlink:href="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/#envelope"></use> </svg> </a> </li> <li class="divider"> </ul> </div> <div class="author-avatars"> <a rel="author" href="/web/20210826133042/https://www.zdnet.com/meet-the-team/" class="thumb" data-vanity-rewritten="true"> <span class="img "><img src="https://web.archive.org/web/20210826133042im_/https://www.zdnet.com/a/hub/i/r/2021/08/10/63ded998-9d38-4205-b022-1d88f0be6847/thumbnail/40x40/7e1d264aed369849454ce42b4895f87c/dellinger-2.jpg" class="" alt="AJ Dellinger" height="40" width="40"></span> </a> </div> <div class="byline"> <p class="meta"> By <a rel="author" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "byline-author", "pageType": "article"}" href="/web/20210826133042/https://www.zdnet.com/meet-the-team/" data-vanity-rewritten="true"> <span>AJ Dellinger</span> </a> | <time datetime="2021-08-25 14:43:00">August 25, 2021 -- 14:43 GMT (07:43 PDT)</time> | Topic: <a href="/web/20210826133042/https://www.zdnet.com/topic/hardware/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "byline-topic", "pageType": "article"}">Hardware</a> </p> </div> <script type="application/ld+json">{ "@context": "https:\/\/web.archive.org\/web\/20210826133042\/https:\/\/schema.org", "@type": "BreadcrumbList", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Topic", "item": "https:\/\/web.archive.org\/web\/20210826133042\/https:\/\/www.zdnet.com\/topic\/" }, { "@type": "ListItem", "position": 2, "name": "Hardware", "item": "https:\/\/web.archive.org\/web\/20210826133042\/https:\/\/www.zdnet.com\/topic\/hardware\/" }, { "@type": "ListItem", "position": 3, "name": "Best smart thermostat 2021: Save energy efficiently" } ] }</script> </div> <div class="storyBody" data-component="lazyloadImages"> <div> <script type="application/ld+json">{"@context":"https:\/\/web.archive.org\/web\/20210826133042\/http:\/\/schema.org","@type":"ItemList","numberOfItems":5,"url":"https:\/\/web.archive.org\/web\/20210826133042\/https:\/\/www.zdnet.com\/article\/best-smart-thermostat\/","itemListElement":[{"@type":"ListItem","position":1,"name":"Ecobee SmartThermostat with Voice Control","item":{"@type":"Product","name":"Ecobee SmartThermostat with Voice Control","url":"https:\/\/web.archive.org\/web\/20210826133042\/https:\/\/www.zdnet.com\/article\/best-smart-thermostat\/#listicle-3ca64b26-2451-4662-b3fa-bf2e29521cae","description":"Specs: 3.5-inch full-color LCD touchscreen | Voice support (Alexa) | Works with Apple HomeKit, Amazon Alexa, Samsung SmartThings, IFTTT | It might not be the brand name or product that you most associate with smart thermostats, but there is no question that the Ecobee SmartThermostat with Voice Control is one of the best smart thermostats available. A big reason for that is the ease and simplicity with which this smart thermostat integrates into your home. Lots of smart thermostats offer some form of voice control through apps or other devices, but the Ecobee SmartThermostat with Voice Control offers it right out of the box and right from the thermostat itself. Amazon Alexa is built-in and equipped to handle all kinds of commands to adjust your heating and air conditioning. It can also handle commands for reading the news, playing music, or making calls. The Ecobee SmartThermostat with Voice Control can be a true hub of your home. Then there is the ability to manage your home's environment, which is the most important aspect of any thermostat. Ecobee estimates that with energy-efficient features like its eco+ mode, along with the ability to schedule heating and cooling cycles, you'll be able to save as much as 26% of your standard energy costs. This thermostat is also compatible with up to 32 smart sensors that can automatically gauge conditions around the house and tell if you're home, and adjust the temperature based on that information. It would be nice if other voice control options like Apple's Siri or Google Assistant were built into this smart speaker, but they are supported through app-based interfaces. You only get one sensor included with this thermostat, but that will be more than enough to get you started and save you money. Pros: Amazon Alexa built-in Smart scheduling features Expandable with sensors Cons: Only one sensor comes with the thermostat Support for other voice assistants through app only...","brand":{"@type":"Thing","name":"Ecobee"},"image":{"@type":"ImageObject","url":"https:\/\/web.archive.org\/web\/20210826133042\/https:\/\/www.zdnet.com\/a\/hub\/i\/r\/2021\/08\/25\/a3287138-3d28-4350-9a2f-29368f98b319\/thumbnail\/1200x900\/fdb846e7f17f2160d639047149cc9509\/ecobee-smartthermostat-with-voice-control-review-best-smart-thermostat.jpg","width":1200,"height":900},"offers":{"@type":"Offer","price":247.64,"priceCurrency":"USD","url":"https:\/\/web.archive.org\/web\/20210826133042\/https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/dp\/B07NQT85FC?tag=zd-buy-button-20&linkCode=ogi&th=1&psc=1&ascsubtag=__COM_CLICK_ID__%7C-%7Cdtp"}}},{"@type":"ListItem","position":2,"name":"Google Nest Learning Thermostat","url":"https:\/\/web.archive.org\/web\/20210826133042\/https:\/\/www.zdnet.com\/article\/best-smart-thermostat\/#listicle-644a0a40-26e1-44fb-aea0-54955a9ba6aa","image":{"@type":"ImageObject","url":"https:\/\/web.archive.org\/web\/20210826133042\/https:\/\/www.zdnet.com\/a\/hub\/i\/r\/2021\/08\/25\/ecd512d6-b90a-44b4-b9d0-f3fe2decbee8\/thumbnail\/1200x900\/fd51f12880403446df9f4aa40f131ac1\/google-nest-learning-thermostat-review-best-smart-thermostat.png","width":1200,"height":900}},{"@type":"ListItem","position":3,"name":"Honeywell Home T5 Smart Thermostat","item":{"@type":"Product","name":"Honeywell T5+ Smart Thermostat - thermostat","url":"https:\/\/web.archive.org\/web\/20210826133042\/https:\/\/www.zdnet.com\/article\/best-smart-thermostat\/#listicle-137faefa-6a45-4761-89a6-44aa4db0d786","description":"Specs: 3.5-inch touchscreen display | Voice support (Siri) | Works with Amazon Alexa, Apple HomeKit, Google Assistant, IFTTT | Smart thermostats have a reputation for being expensive. They don't have to break your bank, though. The Honeywell Home T5 Smart Thermostat proves that. It's a budget-friendly option, but it doesn't skimp on the features that you would expect out of high-end smart thermostats. The Honeywell Home T5 Smart Thermostat integrates easily into basically any smart home platform. This means it will work with your favorite voice assistant, whether it is through a smart home app or a smart speaker. You'll just have to set it up. It also can become a part of your routines. Do you have smart lights that turn on before you get in the door? The Honeywell Home T5 Smart Thermostat can be set to change the temperature before you arrive, as well. This smart thermostat isn't quite as smart as others that learn your schedule -- instead, you'll have to set it up manually, though geofencing technology does know when you're coming and going, so it can adjust based on what you tell it to do if you're out of the house. You can also maintain control at all times over the device through your smart home app of choice. The Honeywell Home T5 Smart Thermostat is not the most stylish smart thermostat on the market and visually leaves a bit to be desired. But if you're more interested in function than aesthetics and you're on a budget, you won't be disappointed by how well this smart thermostat gets the job done. Pros: Works with most smart home platforms Geofencing knows when you come and go Affordable Cons: Doesn't learn your schedule It is not the most visually appealing...","brand":{"@type":"Thing","name":"Honeywell, Inc."},"image":{"@type":"ImageObject","url":"https:\/\/web.archive.org\/web\/20210826133042\/https:\/\/www.zdnet.com\/a\/hub\/i\/r\/2021\/08\/25\/5cac030b-8256-417d-b4bf-30f33d33ae6b\/thumbnail\/1200x900\/799474abff6872e05b39742ee27693c4\/honeywell-home-t5-smart-thermostat-review-best-smart-thermostat.jpg","width":1200,"height":900},"offers":{"@type":"Offer","price":134.98,"priceCurrency":"USD","url":"https:\/\/web.archive.org\/web\/20210826133042\/https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/dp\/B07FSHXV56\/ref=asc_df_B07FSHXV561629802800000?tag=zd-buy-button-20&creative=395261&creativeASIN=B07FSHXV56&linkCode=asn&ascsubtag=__COM_CLICK_ID__%7C-%7Cdtp"}}},{"@type":"ListItem","position":4,"name":"Honeywell Home T9 Smart Thermostat","item":{"@type":"Product","name":"Resideo Honeywell Home T9 Smart Thermostat","url":"https:\/\/web.archive.org\/web\/20210826133042\/https:\/\/www.zdnet.com\/article\/best-smart-thermostat\/#listicle-44327371-d3d7-40f8-a0f8-5946eef35758","description":"Specs: 3.5-inch color touchscreen display | Voice support (Amazon Alexa, Google Assistant, and Microsoft Cortana) | Works with Samsung SmartThings, Vera, Amazon Alexa, Google Home | Think of the Honeywell Home T9 Smart Thermostat as the smarter upgrade to the budget-friendly T5 model. It's a bit more expensive, but it gets upgrades across the board when it comes to automation, function, and visual appeal. The Honeywell Home T9 Smart Thermostat extends its understanding of what is happening in your home by introducing sensors that you can place around your home. These sensors detect all kinds of information that help to inform the device. They can detect motion, temperature, and humidity. All the data that these sensors gather help to inform the thermostat, adjusting the temperature in your home and working to make sure that each room is set to the ideal conditions. In terms of integrating into your existing smart home ecosystem, the Honeywell Home T9 Smart Thermostat offers plenty of variety -- though surprisingly less than the T5 provides. There is no Apple HomeKit support, so you won't be able to use Siri or control this device through your Apple HomeKit app. But there is support for Google Assistant and Amazon Alexa, along with Microsoft Cortana. The Honeywell Home T9 Smart Thermostat still isn't quite as smart as other thermostats on the market, as it doesn't pick up on your schedule over time. But the sensors help, and it comes with one in the box to get you started. Pros: Expandable sensors Integrates into a smart home Geofencing knows when you come and leave Cons: It doesn't work with Apple HomeKit Doesn't learn your schedule over time...","brand":{"@type":"Thing","name":"Resideo"},"image":{"@type":"ImageObject","url":"https:\/\/web.archive.org\/web\/20210826133042\/https:\/\/www.zdnet.com\/a\/hub\/i\/r\/2021\/08\/25\/ff9d698f-11f3-4738-aa1b-e5bc00108d73\/thumbnail\/1200x900\/09261d23d2e0ea1a579a19a20287d3e0\/honeywell-home-t9-smart-thermostat-review-best-smart-thermostat.jpg","width":1200,"height":900},"offers":{"@type":"Offer","price":130,"priceCurrency":"USD","url":"https:\/\/web.archive.org\/web\/20210826133042\/https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/dp\/B07N849J21?tag=zd-buy-button-20&linkCode=ogi&th=1&psc=1&ascsubtag=__COM_CLICK_ID__%7C-%7Cdtp"}}},{"@type":"ListItem","position":5,"name":"Wyze Thermostat","url":"https:\/\/web.archive.org\/web\/20210826133042\/https:\/\/www.zdnet.com\/article\/best-smart-thermostat\/#listicle-752abaeb-67e7-4b13-af1c-adb3831b9b1c","image":{"@type":"ImageObject","url":"https:\/\/web.archive.org\/web\/20210826133042\/https:\/\/www.zdnet.com\/a\/hub\/i\/r\/2021\/08\/25\/39db8f0b-3343-494a-adef-0ae908ad2c94\/thumbnail\/1200x900\/742e7d4726f71f06ba3163262c1101ac\/wyze-thermostat-review-best-smart-thermostat.jpg","width":1200,"height":900}}]}</script> </div> <ul class="listicle-precap" data-component="showHide"> <li class="listicle-precap-item listicle-3ca64b26-2451-4662-b3fa-bf2e29521cae"> <div class="precap-hed"> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/dp/B07NQT85FC?tag=zd-buy-button-20&linkCode=ogi&th=1&psc=1&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Ecobee SmartThermostat with Voice Control","productId":"47edca45-f0c2-4bd6-ab61-b508ec046297","merchantName":"Amazon","leadProdPrice":24764,"text":"Ecobee SmartThermostat with Voice Control","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/dp\/B07NQT85FC?tag=zd-buy-button-20&linkCode=ogi&th=1&psc=1&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"mlst","formatType":"LINK","location":"LIST","position":1,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"precap-headline"}}" rel="noopener noreferrer nofollow"> Ecobee SmartThermostat with Voice Control </a> </div> <div class="precap-sub-hed"> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/dp/B07NQT85FC?tag=zd-buy-button-20&linkCode=ogi&th=1&psc=1&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Ecobee SmartThermostat with Voice Control","productId":"47edca45-f0c2-4bd6-ab61-b508ec046297","merchantName":"Amazon","leadProdPrice":24764,"text":"The best option on the market","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/dp\/B07NQT85FC?tag=zd-buy-button-20&linkCode=ogi&th=1&psc=1&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"mlst","formatType":"LINK","location":"LIST","position":1,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"precap-headline"}}" rel="noopener noreferrer nofollow"> The best option on the market </a> </div> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/dp/B07NQT85FC?tag=zd-buy-button-20&linkCode=ogi&th=1&psc=1&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Ecobee SmartThermostat with Voice Control","productId":"47edca45-f0c2-4bd6-ab61-b508ec046297","merchantName":"Amazon","leadProdPrice":24764,"text":"","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/dp\/B07NQT85FC?tag=zd-buy-button-20&linkCode=ogi&th=1&psc=1&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"mlst","formatType":"IMAGE","location":"LIST","position":1,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"precap-image"}}" rel="noopener noreferrer nofollow"><span class="img "><img src="https://web.archive.org/web/20210826133042im_/https://www.zdnet.com/a/hub/i/r/2021/08/25/a3287138-3d28-4350-9a2f-29368f98b319/thumbnail/70x70/005ba7b14e5a2c46324e5b65d976875b/ecobee-smartthermostat-with-voice-control-review-best-smart-thermostat.jpg" class="" alt="ecobee-smartthermostat-with-voice-control-review-best-smart-thermostat.jpg" height="70" width="70"></span></a> <div class="links"> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/dp/B07NQT85FC?tag=zd-buy-button-20&linkCode=ogi&th=1&psc=1&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link cta" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Ecobee SmartThermostat with Voice Control","productId":"47edca45-f0c2-4bd6-ab61-b508ec046297","merchantName":"Amazon","leadProdPrice":247.64,"text":"$248 at Amazon","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/dp\/B07NQT85FC?tag=zd-buy-button-20&linkCode=ogi&th=1&psc=1&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"mlst","formatType":"BUTTON","location":"LIST","position":1,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"precap-buy-button"}}" rel="noopener noreferrer nofollow"> $248 at Amazon </a> <a class="see-details" href="#listicle-3ca64b26-2451-4662-b3fa-bf2e29521cae" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "precap-see-details", "pageType": "article"}" data-component="jumpTo"> Jump to details </a> </div> </li> <li class="listicle-precap-item listicle-644a0a40-26e1-44fb-aea0-54955a9ba6aa"> <div class="precap-hed"> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/Nest-T3007ES-Thermostat-Temperature-Generation/dp/B0131RG6VK?tag=zd-buy-button-20&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Google Nest Learning Thermostat","productId":"","merchantName":"Amazon","leadProdPrice":"228","text":"Google Nest Learning Thermostat","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/Nest-T3007ES-Thermostat-Temperature-Generation\/dp\/B0131RG6VK?tag=zd-buy-button-20&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"manual","formatType":"LINK","location":"LIST","position":2,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"precap-headline"}}" rel="noopener noreferrer nofollow"> Google Nest Learning Thermostat </a> </div> <div class="precap-sub-hed"> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/Nest-T3007ES-Thermostat-Temperature-Generation/dp/B0131RG6VK?tag=zd-buy-button-20&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Google Nest Learning Thermostat","productId":"","merchantName":"Amazon","leadProdPrice":"228","text":"The best-known smart thermostat","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/Nest-T3007ES-Thermostat-Temperature-Generation\/dp\/B0131RG6VK?tag=zd-buy-button-20&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"manual","formatType":"LINK","location":"LIST","position":2,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"precap-headline"}}" rel="noopener noreferrer nofollow"> The best-known smart thermostat </a> </div> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/Nest-T3007ES-Thermostat-Temperature-Generation/dp/B0131RG6VK?tag=zd-buy-button-20&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Google Nest Learning Thermostat","productId":"","merchantName":"Amazon","leadProdPrice":"228","text":"","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/Nest-T3007ES-Thermostat-Temperature-Generation\/dp\/B0131RG6VK?tag=zd-buy-button-20&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"manual","formatType":"IMAGE","location":"LIST","position":2,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"precap-image"}}" rel="noopener noreferrer nofollow"><span class="img "><img src="https://web.archive.org/web/20210826133042im_/https://www.zdnet.com/a/hub/i/r/2021/08/25/ecd512d6-b90a-44b4-b9d0-f3fe2decbee8/thumbnail/70x70/722a2c2652ecc1898701ea52d02a7138/google-nest-learning-thermostat-review-best-smart-thermostat.png" class="" alt="google-nest-learning-thermostat-review-best-smart-thermostat.png" height="70" width="70"></span></a> <div class="links"> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/Nest-T3007ES-Thermostat-Temperature-Generation/dp/B0131RG6VK?tag=zd-buy-button-20&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link cta" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Google Nest Learning Thermostat","productId":"","merchantName":"Amazon","leadProdPrice":"228","text":"$228 at Amazon","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/Nest-T3007ES-Thermostat-Temperature-Generation\/dp\/B0131RG6VK?tag=zd-buy-button-20&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"manual","formatType":"BUTTON","location":"LIST","position":2,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"precap-buy-button"}}" rel="noopener noreferrer nofollow"> $228 at Amazon </a> <a class="see-details" href="#listicle-644a0a40-26e1-44fb-aea0-54955a9ba6aa" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "precap-see-details", "pageType": "article"}" data-component="jumpTo"> Jump to details </a> </div> </li> <li class="listicle-precap-item listicle-137faefa-6a45-4761-89a6-44aa4db0d786"> <div class="precap-hed"> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/dp/B07FSHXV56/ref=asc_df_B07FSHXV561629802800000?tag=zd-buy-button-20&creative=395261&creativeASIN=B07FSHXV56&linkCode=asn&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Honeywell Home T5 Smart Thermostat","productId":"922e9250-4af5-4910-aed3-79286c9ddba7","merchantName":"Amazon","leadProdPrice":13498,"text":"Honeywell Home T5 Smart Thermostat","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/dp\/B07FSHXV56\/ref=asc_df_B07FSHXV561629802800000?tag=zd-buy-button-20&creative=395261&creativeASIN=B07FSHXV56&linkCode=asn&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"mlst","formatType":"LINK","location":"LIST","position":3,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"precap-headline"}}" rel="noopener noreferrer nofollow"> Honeywell Home T5 Smart Thermostat </a> </div> <div class="precap-sub-hed"> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/dp/B07FSHXV56/ref=asc_df_B07FSHXV561629802800000?tag=zd-buy-button-20&creative=395261&creativeASIN=B07FSHXV56&linkCode=asn&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Honeywell Home T5 Smart Thermostat","productId":"922e9250-4af5-4910-aed3-79286c9ddba7","merchantName":"Amazon","leadProdPrice":13498,"text":"Best budget option","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/dp\/B07FSHXV56\/ref=asc_df_B07FSHXV561629802800000?tag=zd-buy-button-20&creative=395261&creativeASIN=B07FSHXV56&linkCode=asn&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"mlst","formatType":"LINK","location":"LIST","position":3,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"precap-headline"}}" rel="noopener noreferrer nofollow"> Best budget option </a> </div> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/dp/B07FSHXV56/ref=asc_df_B07FSHXV561629802800000?tag=zd-buy-button-20&creative=395261&creativeASIN=B07FSHXV56&linkCode=asn&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Honeywell Home T5 Smart Thermostat","productId":"922e9250-4af5-4910-aed3-79286c9ddba7","merchantName":"Amazon","leadProdPrice":13498,"text":"","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/dp\/B07FSHXV56\/ref=asc_df_B07FSHXV561629802800000?tag=zd-buy-button-20&creative=395261&creativeASIN=B07FSHXV56&linkCode=asn&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"mlst","formatType":"IMAGE","location":"LIST","position":3,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"precap-image"}}" rel="noopener noreferrer nofollow"><span class="img "><img src="https://web.archive.org/web/20210826133042im_/https://www.zdnet.com/a/hub/i/r/2021/08/25/5cac030b-8256-417d-b4bf-30f33d33ae6b/thumbnail/70x70/63702f6adef12b0dfe2f7d849078f1db/honeywell-home-t5-smart-thermostat-review-best-smart-thermostat.jpg" class="" alt="honeywell-home-t5-smart-thermostat-review-best-smart-thermostat.jpg" height="70" width="70"></span></a> <div class="links"> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/dp/B07FSHXV56/ref=asc_df_B07FSHXV561629802800000?tag=zd-buy-button-20&creative=395261&creativeASIN=B07FSHXV56&linkCode=asn&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link cta" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Honeywell Home T5 Smart Thermostat","productId":"922e9250-4af5-4910-aed3-79286c9ddba7","merchantName":"Amazon","leadProdPrice":134.98,"text":"$135 at Amazon","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/dp\/B07FSHXV56\/ref=asc_df_B07FSHXV561629802800000?tag=zd-buy-button-20&creative=395261&creativeASIN=B07FSHXV56&linkCode=asn&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"mlst","formatType":"BUTTON","location":"LIST","position":3,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"precap-buy-button"}}" rel="noopener noreferrer nofollow"> $135 at Amazon </a> <a class="see-details" href="#listicle-137faefa-6a45-4761-89a6-44aa4db0d786" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "precap-see-details", "pageType": "article"}" data-component="jumpTo"> Jump to details </a> </div> </li> <li class="listicle-precap-item listicle-44327371-d3d7-40f8-a0f8-5946eef35758"> <div class="precap-hed"> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/dp/B07N849J21?tag=zd-buy-button-20&linkCode=ogi&th=1&psc=1&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Honeywell Home T9 Smart Thermostat","productId":"1c8eda75-a3bb-4961-9dae-92a6f649cb70","merchantName":"Amazon","leadProdPrice":13000,"text":"Honeywell Home T9 Smart Thermostat","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/dp\/B07N849J21?tag=zd-buy-button-20&linkCode=ogi&th=1&psc=1&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"mlst","formatType":"LINK","location":"LIST","position":4,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"precap-headline"}}" rel="noopener noreferrer nofollow"> Honeywell Home T9 Smart Thermostat </a> </div> <div class="precap-sub-hed"> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/dp/B07N849J21?tag=zd-buy-button-20&linkCode=ogi&th=1&psc=1&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Honeywell Home T9 Smart Thermostat","productId":"1c8eda75-a3bb-4961-9dae-92a6f649cb70","merchantName":"Amazon","leadProdPrice":13000,"text":"Best for total control","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/dp\/B07N849J21?tag=zd-buy-button-20&linkCode=ogi&th=1&psc=1&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"mlst","formatType":"LINK","location":"LIST","position":4,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"precap-headline"}}" rel="noopener noreferrer nofollow"> Best for total control </a> </div> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/dp/B07N849J21?tag=zd-buy-button-20&linkCode=ogi&th=1&psc=1&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Honeywell Home T9 Smart Thermostat","productId":"1c8eda75-a3bb-4961-9dae-92a6f649cb70","merchantName":"Amazon","leadProdPrice":13000,"text":"","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/dp\/B07N849J21?tag=zd-buy-button-20&linkCode=ogi&th=1&psc=1&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"mlst","formatType":"IMAGE","location":"LIST","position":4,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"precap-image"}}" rel="noopener noreferrer nofollow"><span class="img "><img src="https://web.archive.org/web/20210826133042im_/https://www.zdnet.com/a/hub/i/r/2021/08/25/ff9d698f-11f3-4738-aa1b-e5bc00108d73/thumbnail/70x70/7fe1ae12134e1f6ab1374ca19c1a0153/honeywell-home-t9-smart-thermostat-review-best-smart-thermostat.jpg" class="" alt="honeywell-home-t9-smart-thermostat-review-best-smart-thermostat.jpg" height="70" width="70"></span></a> <div class="links"> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/dp/B07N849J21?tag=zd-buy-button-20&linkCode=ogi&th=1&psc=1&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link cta" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Honeywell Home T9 Smart Thermostat","productId":"1c8eda75-a3bb-4961-9dae-92a6f649cb70","merchantName":"Amazon","leadProdPrice":130,"text":"$130 at Amazon","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/dp\/B07N849J21?tag=zd-buy-button-20&linkCode=ogi&th=1&psc=1&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"mlst","formatType":"BUTTON","location":"LIST","position":4,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"precap-buy-button"}}" rel="noopener noreferrer nofollow"> $130 at Amazon </a> <a class="see-details" href="#listicle-44327371-d3d7-40f8-a0f8-5946eef35758" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "precap-see-details", "pageType": "article"}" data-component="jumpTo"> Jump to details </a> </div> </li> <li class="listicle-precap-item listicle-752abaeb-67e7-4b13-af1c-adb3831b9b1c"> <div class="precap-hed"> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/WYZE-Thermostat-Control-Google-Assistant/dp/B08W1V9YB3/?tag=zd-buy-button-20&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Wyze Thermostat","productId":"","merchantName":"Amazon","leadProdPrice":"120","text":"Wyze Thermostat","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/WYZE-Thermostat-Control-Google-Assistant\/dp\/B08W1V9YB3\/?tag=zd-buy-button-20&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"manual","formatType":"LINK","location":"LIST","position":5,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"precap-headline"}}" rel="noopener noreferrer nofollow"> Wyze Thermostat </a> </div> <div class="precap-sub-hed"> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/WYZE-Thermostat-Control-Google-Assistant/dp/B08W1V9YB3/?tag=zd-buy-button-20&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Wyze Thermostat","productId":"","merchantName":"Amazon","leadProdPrice":"120","text":"Most intuitive option","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/WYZE-Thermostat-Control-Google-Assistant\/dp\/B08W1V9YB3\/?tag=zd-buy-button-20&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"manual","formatType":"LINK","location":"LIST","position":5,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"precap-headline"}}" rel="noopener noreferrer nofollow"> Most intuitive option </a> </div> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/WYZE-Thermostat-Control-Google-Assistant/dp/B08W1V9YB3/?tag=zd-buy-button-20&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Wyze Thermostat","productId":"","merchantName":"Amazon","leadProdPrice":"120","text":"","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/WYZE-Thermostat-Control-Google-Assistant\/dp\/B08W1V9YB3\/?tag=zd-buy-button-20&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"manual","formatType":"IMAGE","location":"LIST","position":5,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"precap-image"}}" rel="noopener noreferrer nofollow"><span class="img "><img src="https://web.archive.org/web/20210826133042im_/https://www.zdnet.com/a/hub/i/r/2021/08/25/39db8f0b-3343-494a-adef-0ae908ad2c94/thumbnail/70x70/02c2be1f9daf5df48efb88dc4d377c6b/wyze-thermostat-review-best-smart-thermostat.jpg" class="" alt="wyze-thermostat-review-best-smart-thermostat.jpg" height="70" width="70"></span></a> <div class="links"> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/WYZE-Thermostat-Control-Google-Assistant/dp/B08W1V9YB3/?tag=zd-buy-button-20&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link cta" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Wyze Thermostat","productId":"","merchantName":"Amazon","leadProdPrice":"120","text":"$120 at Amazon","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/WYZE-Thermostat-Control-Google-Assistant\/dp\/B08W1V9YB3\/?tag=zd-buy-button-20&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"manual","formatType":"BUTTON","location":"LIST","position":5,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"precap-buy-button"}}" rel="noopener noreferrer nofollow"> $120 at Amazon </a> <a class="see-details" href="#listicle-752abaeb-67e7-4b13-af1c-adb3831b9b1c" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "precap-see-details", "pageType": "article"}" data-component="jumpTo"> Jump to details </a> </div> </li> </ul> <p>Do you find yourself constantly tweaking your thermostat to find a temperature that you're comfortable at? Does the prospect of coming home to a sweltering house make you keep the air conditioner running all day long? Are you dreading your monthly energy bill because you know that you're spending more than you need to be? </p><p>There are lots of reasons to get a smart thermostat, from comfort to control to conservation. They are great tools for keeping your home at the ideal temperature for you and anyone else who occupies your home. They are also an ideal option to help cut down on your monthly energy bill by operating more efficiently and energy-saving. </p><p>Take a look at your newsfeed, or just take a look outside, and you'll notice that the weather is getting more and more extreme. Hotter summer days, colder winter nights, and lots of wild swings and waves of weather can throw your day and your thermostat for a loop. You can't control the weather outside your walls, but you sure can manage how it feels inside. Smart thermostats make that possible. </p><p>So what is the best smart thermostat for you? Well, that all depends on what kind of features you're looking for, what kind of control you prefer, and what your smart home ecosystem already has. We've compiled some of the best smart thermostats on the market, and we'll walk you through which will suit your home. </p><div id="listicle-3ca64b26-2451-4662-b3fa-bf2e29521cae" class="shortcode listicle listicle-3ca64b26-2451-4662-b3fa-bf2e29521cae"> <h2> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/dp/B07NQT85FC?tag=zd-buy-button-20&linkCode=ogi&th=1&psc=1&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Ecobee SmartThermostat with Voice Control","productId":"47edca45-f0c2-4bd6-ab61-b508ec046297","merchantName":"Amazon","leadProdPrice":24764,"text":"Ecobee SmartThermostat with Voice Control","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/dp\/B07NQT85FC?tag=zd-buy-button-20&linkCode=ogi&th=1&psc=1&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"mlst","formatType":"LINK","location":"LINKS","position":1,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"listicle-headline"}}" rel="noopener noreferrer nofollow"> Ecobee SmartThermostat with Voice Control </a> </h2> <h3> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/dp/B07NQT85FC?tag=zd-buy-button-20&linkCode=ogi&th=1&psc=1&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Ecobee SmartThermostat with Voice Control","productId":"47edca45-f0c2-4bd6-ab61-b508ec046297","merchantName":"Amazon","leadProdPrice":24764,"text":"The best option on the market","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/dp\/B07NQT85FC?tag=zd-buy-button-20&linkCode=ogi&th=1&psc=1&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"mlst","formatType":"LINK","location":"LINKS","position":1,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"listicle-headline"}}" rel="noopener noreferrer nofollow"> The best option on the market </a> </h3> <figure class="alignright"> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/dp/B07NQT85FC?tag=zd-buy-button-20&linkCode=ogi&th=1&psc=1&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Ecobee SmartThermostat with Voice Control","productId":"47edca45-f0c2-4bd6-ab61-b508ec046297","merchantName":"Amazon","leadProdPrice":24764,"text":"","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/dp\/B07NQT85FC?tag=zd-buy-button-20&linkCode=ogi&th=1&psc=1&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"mlst","formatType":"IMAGE","location":"LINKS","position":1,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"listicle-image"}}" rel="noopener noreferrer nofollow"><span class="img alignright"><img src="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/" class="lazy" alt="ecobee-smartthermostat-with-voice-control-review-best-smart-thermostat.jpg" height="208" width="370" data-original="https://web.archive.org/web/20210826133042/https://www.zdnet.com/a/hub/i/r/2021/08/25/a3287138-3d28-4350-9a2f-29368f98b319/resize/370x208/10fa35b7c13e63e43e67d529d09c4e57/ecobee-smartthermostat-with-voice-control-review-best-smart-thermostat.jpg"></span><noscript><span class="img alignright"><img src="https://web.archive.org/web/20210826133042im_/https://www.zdnet.com/a/hub/i/r/2021/08/25/a3287138-3d28-4350-9a2f-29368f98b319/resize/370x208/10fa35b7c13e63e43e67d529d09c4e57/ecobee-smartthermostat-with-voice-control-review-best-smart-thermostat.jpg" class="" alt="ecobee-smartthermostat-with-voice-control-review-best-smart-thermostat.jpg" height="208" width="370"></span></noscript></a> <figcaption> <span class="credit">Amazon</span> </figcaption> </figure> <hr><p><strong>Specs:聽</strong>3.5-inch full-color LCD touchscreen | Voice support (Alexa) |聽Works with Apple HomeKit, Amazon Alexa, Samsung SmartThings, IFTTT |聽</p><hr><p>It might not be the brand name or product that you most associate with smart thermostats, but there is no question that the Ecobee SmartThermostat with Voice Control is one of the best smart thermostats available. A big reason for that is the ease and simplicity with which this smart thermostat integrates into your home. </p><p>Lots of smart thermostats offer some form of voice control through apps or other devices, but the Ecobee SmartThermostat with Voice Control offers it right out of the box and right from the thermostat itself. Amazon Alexa is built-in and equipped to handle all kinds of commands to adjust your heating and air conditioning. It can also handle commands for reading the news, playing music, or making calls. The Ecobee SmartThermostat with Voice Control can be a true hub of your home. </p><p>Then there is the ability to manage your home's environment, which is the most important aspect of any thermostat. Ecobee estimates that with energy-efficient features like its eco+ mode, along with the ability to schedule heating and cooling cycles, you'll be able to save as much as 26% of your standard energy costs. This thermostat is also compatible with up to 32 smart sensors that can automatically gauge conditions around the house and tell if you're home, and adjust the temperature based on that information. </p><p>It would be nice if other voice control options like Apple's Siri or Google Assistant were built into this smart speaker, but they are supported through app-based interfaces. You only get one sensor included with this thermostat, but that will be more than enough to get you started and save you money. </p><p><strong>Pros</strong>: </p><ul><li>Amazon Alexa built-in</li><li>Smart scheduling features</li><li>Expandable with sensors</li></ul><p></p><p><strong>Cons</strong>: </p><ul><li>Only one sensor comes with the thermostat</li><li>Support for other voice assistants through app only</li></ul> <div class="listicle-buy-btns"> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/dp/B07NQT85FC?tag=zd-buy-button-20&linkCode=ogi&th=1&psc=1&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link btn btn-primary btn-block" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Ecobee SmartThermostat with Voice Control","productId":"47edca45-f0c2-4bd6-ab61-b508ec046297","merchantName":"Amazon","leadProdPrice":247.64,"text":"$248 at Amazon","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/dp\/B07NQT85FC?tag=zd-buy-button-20&linkCode=ogi&th=1&psc=1&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"mlst","formatType":"BUTTON","location":"LINKS","position":1,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"listicle-buy-button"}}" rel="noopener noreferrer nofollow"> $248 at Amazon </a> <a href="https://web.archive.org/web/20210826133042/https://goto.walmart.com/c/159047/568844/9383?veh=aff&sourceid=imp_000011112222333344&u=https%3A%2F%2Fwww.walmart.com%2Fip%2F822962935&subId1=zd-__COM_CLICK_ID__-dtp" target="_blank" class="lead-link btn btn-primary btn-block" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":false,"trackingData":{"productName":"Ecobee SmartThermostat with Voice Control","productId":"47edca45-f0c2-4bd6-ab61-b508ec046297","merchantName":"Walmart","leadProdPrice":249,"text":"$249 at Walmart","leadDestUrl":"https:\/\/goto.walmart.com\/c\/159047\/568844\/9383?veh=aff&sourceid=imp_000011112222333344&u=https%3A%2F%2Fwww.walmart.com%2Fip%2F822962935&subId1=zd-__COM_CLICK_ID__-dtp","leadType":"mlst","formatType":"BUTTON","location":"LINKS","position":1,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"listicle-buy-button"}}" rel="noopener noreferrer nofollow"> $249 at Walmart </a> <a href="https://web.archive.org/web/20210826133042/https://shop-links.co/link/?url=https%3A%2F%2Fbestbuy.7tiv.net%2Fc%2F376373%2F633495%2F10014%3Fprodsku%3D6339170%26u%3Dhttp%253A%252F%252Fwww.bestbuy.com%252Fsite%252F-%252F6339170.p%253Fcmp%253DRMX&publisher_slug=cnet&article_name=cnet&exclusive=1&u1=zd-__COM_CLICK_ID__-dtp" target="_blank" class="lead-link btn btn-primary btn-block" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":false,"trackingData":{"productName":"Ecobee SmartThermostat with Voice Control","productId":"47edca45-f0c2-4bd6-ab61-b508ec046297","merchantName":"Best Buy","leadProdPrice":249.99,"text":"$250 at Best Buy","leadDestUrl":"https:\/\/shop-links.co\/link\/?url=https%3A%2F%2Fbestbuy.7tiv.net%2Fc%2F376373%2F633495%2F10014%3Fprodsku%3D6339170%26u%3Dhttp%253A%252F%252Fwww.bestbuy.com%252Fsite%252F-%252F6339170.p%253Fcmp%253DRMX&publisher_slug=cnet&article_name=cnet&exclusive=1&u1=zd-__COM_CLICK_ID__-dtp","leadType":"mlst","formatType":"BUTTON","location":"LINKS","position":1,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"listicle-buy-button"}}" rel="noopener noreferrer nofollow"> $250 at Best Buy </a> </div> </div><div id="listicle-644a0a40-26e1-44fb-aea0-54955a9ba6aa" class="shortcode listicle listicle-644a0a40-26e1-44fb-aea0-54955a9ba6aa"> <h2> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/Nest-T3007ES-Thermostat-Temperature-Generation/dp/B0131RG6VK?tag=zd-buy-button-20&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Google Nest Learning Thermostat","productId":"","merchantName":"Amazon","leadProdPrice":"228","text":"Google Nest Learning Thermostat","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/Nest-T3007ES-Thermostat-Temperature-Generation\/dp\/B0131RG6VK?tag=zd-buy-button-20&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"manual","formatType":"LINK","location":"LINKS","position":2,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"listicle-headline"}}" rel="noopener noreferrer nofollow"> Google Nest Learning Thermostat </a> </h2> <h3> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/Nest-T3007ES-Thermostat-Temperature-Generation/dp/B0131RG6VK?tag=zd-buy-button-20&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Google Nest Learning Thermostat","productId":"","merchantName":"Amazon","leadProdPrice":"228","text":"The best-known smart thermostat","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/Nest-T3007ES-Thermostat-Temperature-Generation\/dp\/B0131RG6VK?tag=zd-buy-button-20&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"manual","formatType":"LINK","location":"LINKS","position":2,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"listicle-headline"}}" rel="noopener noreferrer nofollow"> The best-known smart thermostat </a> </h3> <figure class="alignright"> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/Nest-T3007ES-Thermostat-Temperature-Generation/dp/B0131RG6VK?tag=zd-buy-button-20&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Google Nest Learning Thermostat","productId":"","merchantName":"Amazon","leadProdPrice":"228","text":"","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/Nest-T3007ES-Thermostat-Temperature-Generation\/dp\/B0131RG6VK?tag=zd-buy-button-20&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"manual","formatType":"IMAGE","location":"LINKS","position":2,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"listicle-image"}}" rel="noopener noreferrer nofollow"><span class="img alignright"><img src="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/" class="lazy" alt="google-nest-learning-thermostat-review-best-smart-thermostat.png" height="208" width="370" data-original="https://web.archive.org/web/20210826133042/https://www.zdnet.com/a/hub/i/r/2021/08/25/ecd512d6-b90a-44b4-b9d0-f3fe2decbee8/resize/370x208/79fd8900d430818954e9cf29185441bc/google-nest-learning-thermostat-review-best-smart-thermostat.png"></span><noscript><span class="img alignright"><img src="https://web.archive.org/web/20210826133042im_/https://www.zdnet.com/a/hub/i/r/2021/08/25/ecd512d6-b90a-44b4-b9d0-f3fe2decbee8/resize/370x208/79fd8900d430818954e9cf29185441bc/google-nest-learning-thermostat-review-best-smart-thermostat.png" class="" alt="google-nest-learning-thermostat-review-best-smart-thermostat.png" height="208" width="370"></span></noscript></a> <figcaption> <span class="credit">Google</span> </figcaption> </figure> <hr><p><strong>Specs</strong>: 3.3-inch full-color display |聽Voice support (Google Assistant) |聽Works with IFTTT, Amazon Alexa, Samsung SmartThings</p><hr><p>Without question, the Google Nest is the most well-known smart thermostat. It's not hard to see why. It has an unmistakable design that you would recognize anywhere and is easy to interact with. It's one of the most essential tools of a smart home, and it more than gets the job done for most people.</p><p>The latest offering, the Google Nest Learning Thermostat, goes heavy on the smart learning features to help you save money while controlling the temperature in your home. According to Google, the thermostat can pay for itself in under two years simply by tweaking the way that you heat and cool your house. That's good, as it's one of the more expensive smart thermostats in terms of up-front cost -- but if you can swing it, you'll get your money back on the back end.</p><p>The Nest Learning thermostats offer some nice touches that make you both feel at home and in total control. It lights up when you walk into the room and gives you pertinent information about the current conditions. But it's doing more than just greeting you -- it's learning your schedule. The Nest Learning Thermostat can start to automatically adapt to your life, knowing when you're home and when you're away and modifying the temperatures in the house based on the season. Google claims that after a week, it should be able to program itself to your personal schedule.</p><p>You'll be able to control your Google Nest Learning Thermostat from anywhere using the Nest app. You'll also be able to integrate it into your smart home and communicate with it using voice commands by setting up the Google Home app. The lack of direct voice control is a bit disappointing, but the Google Nest's interface is intuitive and easy to use. The fact that you can largely go hands-off in setting up a schedule as it learns your routine makes it even better.</p><p><strong>Pros</strong>:</p><ul><li>Intuitive controls</li><li>Automatically learns your schedule</li><li>Control with Nest app or Google Home</li></ul><p></p><p><strong>Cons</strong>:</p><ul><li>No direct voice control on the device</li><li>Expensive up-front cost</li></ul> <div class="listicle-buy-btns"> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/Nest-T3007ES-Thermostat-Temperature-Generation/dp/B0131RG6VK?tag=zd-buy-button-20&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link btn btn-primary btn-block" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Google Nest Learning Thermostat","productId":"","merchantName":"Amazon","leadProdPrice":"228","text":"$228 at Amazon","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/Nest-T3007ES-Thermostat-Temperature-Generation\/dp\/B0131RG6VK?tag=zd-buy-button-20&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"manual","formatType":"BUTTON","location":"LINKS","position":2,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"listicle-buy-button"}}" rel="noopener noreferrer nofollow"> $228 at Amazon </a> </div> </div><div id="listicle-137faefa-6a45-4761-89a6-44aa4db0d786" class="shortcode listicle listicle-137faefa-6a45-4761-89a6-44aa4db0d786"> <h2> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/dp/B07FSHXV56/ref=asc_df_B07FSHXV561629802800000?tag=zd-buy-button-20&creative=395261&creativeASIN=B07FSHXV56&linkCode=asn&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Honeywell Home T5 Smart Thermostat","productId":"922e9250-4af5-4910-aed3-79286c9ddba7","merchantName":"Amazon","leadProdPrice":13498,"text":"Honeywell Home T5 Smart Thermostat","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/dp\/B07FSHXV56\/ref=asc_df_B07FSHXV561629802800000?tag=zd-buy-button-20&creative=395261&creativeASIN=B07FSHXV56&linkCode=asn&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"mlst","formatType":"LINK","location":"LINKS","position":3,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"listicle-headline"}}" rel="noopener noreferrer nofollow"> Honeywell Home T5 Smart Thermostat </a> </h2> <h3> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/dp/B07FSHXV56/ref=asc_df_B07FSHXV561629802800000?tag=zd-buy-button-20&creative=395261&creativeASIN=B07FSHXV56&linkCode=asn&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Honeywell Home T5 Smart Thermostat","productId":"922e9250-4af5-4910-aed3-79286c9ddba7","merchantName":"Amazon","leadProdPrice":13498,"text":"Best budget option","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/dp\/B07FSHXV56\/ref=asc_df_B07FSHXV561629802800000?tag=zd-buy-button-20&creative=395261&creativeASIN=B07FSHXV56&linkCode=asn&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"mlst","formatType":"LINK","location":"LINKS","position":3,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"listicle-headline"}}" rel="noopener noreferrer nofollow"> Best budget option </a> </h3> <figure class="alignright"> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/dp/B07FSHXV56/ref=asc_df_B07FSHXV561629802800000?tag=zd-buy-button-20&creative=395261&creativeASIN=B07FSHXV56&linkCode=asn&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Honeywell Home T5 Smart Thermostat","productId":"922e9250-4af5-4910-aed3-79286c9ddba7","merchantName":"Amazon","leadProdPrice":13498,"text":"","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/dp\/B07FSHXV56\/ref=asc_df_B07FSHXV561629802800000?tag=zd-buy-button-20&creative=395261&creativeASIN=B07FSHXV56&linkCode=asn&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"mlst","formatType":"IMAGE","location":"LINKS","position":3,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"listicle-image"}}" rel="noopener noreferrer nofollow"><span class="img alignright"><img src="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/" class="lazy" alt="honeywell-home-t5-smart-thermostat-review-best-smart-thermostat.jpg" height="208" width="370" data-original="https://web.archive.org/web/20210826133042/https://www.zdnet.com/a/hub/i/r/2021/08/25/5cac030b-8256-417d-b4bf-30f33d33ae6b/resize/370x208/10aa499da8ddc3626215e1dc5ef06970/honeywell-home-t5-smart-thermostat-review-best-smart-thermostat.jpg"></span><noscript><span class="img alignright"><img src="https://web.archive.org/web/20210826133042im_/https://www.zdnet.com/a/hub/i/r/2021/08/25/5cac030b-8256-417d-b4bf-30f33d33ae6b/resize/370x208/10aa499da8ddc3626215e1dc5ef06970/honeywell-home-t5-smart-thermostat-review-best-smart-thermostat.jpg" class="" alt="honeywell-home-t5-smart-thermostat-review-best-smart-thermostat.jpg" height="208" width="370"></span></noscript></a> <figcaption> <span class="credit">Amazon</span> </figcaption> </figure> <hr><p><strong>Specs</strong>: 3.5-inch touchscreen display |聽Voice support (Siri) |聽Works with Amazon Alexa, Apple HomeKit, Google Assistant, IFTTT |聽</p><hr><p>Smart thermostats have a reputation for being expensive. They don't have to break your bank, though. The Honeywell Home T5 Smart Thermostat proves that. It's a budget-friendly option, but it doesn't skimp on the features that you would expect out of high-end smart thermostats.</p><p>The Honeywell Home T5 Smart Thermostat integrates easily into basically any smart home platform. This means it will work with your favorite voice assistant, whether it is through a smart home app or a smart speaker. You'll just have to set it up. It also can become a part of your routines. Do you have smart lights that turn on before you get in the door? The Honeywell Home T5 Smart Thermostat can be set to change the temperature before you arrive, as well.</p><p>This smart thermostat isn't quite as smart as others that learn your schedule -- instead, you'll have to set it up manually, though geofencing technology does know when you're coming and going, so it can adjust based on what you tell it to do if you're out of the house. You can also maintain control at all times over the device through your smart home app of choice.聽</p><p>The Honeywell Home T5 Smart Thermostat is not the most stylish smart thermostat on the market and visually leaves a bit to be desired. But if you're more interested in function than aesthetics and you're on a budget, you won't be disappointed by how well this smart thermostat gets the job done.</p><p><strong>Pros</strong>:</p><ul><li>Works with most smart home platforms</li><li>Geofencing knows when you come and go</li><li>Affordable</li></ul><p></p><p><strong>Cons</strong>:</p><ul><li>Doesn't learn your schedule</li><li>It is not the most visually appealing</li></ul> <div class="listicle-buy-btns"> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/dp/B07FSHXV56/ref=asc_df_B07FSHXV561629802800000?tag=zd-buy-button-20&creative=395261&creativeASIN=B07FSHXV56&linkCode=asn&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link btn btn-primary btn-block" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Honeywell Home T5 Smart Thermostat","productId":"922e9250-4af5-4910-aed3-79286c9ddba7","merchantName":"Amazon","leadProdPrice":134.98,"text":"$135 at Amazon","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/dp\/B07FSHXV56\/ref=asc_df_B07FSHXV561629802800000?tag=zd-buy-button-20&creative=395261&creativeASIN=B07FSHXV56&linkCode=asn&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"mlst","formatType":"BUTTON","location":"LINKS","position":3,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"listicle-buy-button"}}" rel="noopener noreferrer nofollow"> $135 at Amazon </a> </div> </div><div id="listicle-44327371-d3d7-40f8-a0f8-5946eef35758" class="shortcode listicle listicle-44327371-d3d7-40f8-a0f8-5946eef35758"> <h2> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/dp/B07N849J21?tag=zd-buy-button-20&linkCode=ogi&th=1&psc=1&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Honeywell Home T9 Smart Thermostat","productId":"1c8eda75-a3bb-4961-9dae-92a6f649cb70","merchantName":"Amazon","leadProdPrice":13000,"text":"Honeywell Home T9 Smart Thermostat","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/dp\/B07N849J21?tag=zd-buy-button-20&linkCode=ogi&th=1&psc=1&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"mlst","formatType":"LINK","location":"LINKS","position":4,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"listicle-headline"}}" rel="noopener noreferrer nofollow"> Honeywell Home T9 Smart Thermostat </a> </h2> <h3> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/dp/B07N849J21?tag=zd-buy-button-20&linkCode=ogi&th=1&psc=1&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Honeywell Home T9 Smart Thermostat","productId":"1c8eda75-a3bb-4961-9dae-92a6f649cb70","merchantName":"Amazon","leadProdPrice":13000,"text":"Best for total control","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/dp\/B07N849J21?tag=zd-buy-button-20&linkCode=ogi&th=1&psc=1&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"mlst","formatType":"LINK","location":"LINKS","position":4,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"listicle-headline"}}" rel="noopener noreferrer nofollow"> Best for total control </a> </h3> <figure class="alignright"> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/dp/B07N849J21?tag=zd-buy-button-20&linkCode=ogi&th=1&psc=1&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Honeywell Home T9 Smart Thermostat","productId":"1c8eda75-a3bb-4961-9dae-92a6f649cb70","merchantName":"Amazon","leadProdPrice":13000,"text":"","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/dp\/B07N849J21?tag=zd-buy-button-20&linkCode=ogi&th=1&psc=1&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"mlst","formatType":"IMAGE","location":"LINKS","position":4,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"listicle-image"}}" rel="noopener noreferrer nofollow"><span class="img alignright"><img src="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/" class="lazy" alt="honeywell-home-t9-smart-thermostat-review-best-smart-thermostat.jpg" height="208" width="370" data-original="https://web.archive.org/web/20210826133042/https://www.zdnet.com/a/hub/i/r/2021/08/25/ff9d698f-11f3-4738-aa1b-e5bc00108d73/resize/370x208/1677dd9ae4252efb9bf3fd3e6027998e/honeywell-home-t9-smart-thermostat-review-best-smart-thermostat.jpg"></span><noscript><span class="img alignright"><img src="https://web.archive.org/web/20210826133042im_/https://www.zdnet.com/a/hub/i/r/2021/08/25/ff9d698f-11f3-4738-aa1b-e5bc00108d73/resize/370x208/1677dd9ae4252efb9bf3fd3e6027998e/honeywell-home-t9-smart-thermostat-review-best-smart-thermostat.jpg" class="" alt="honeywell-home-t9-smart-thermostat-review-best-smart-thermostat.jpg" height="208" width="370"></span></noscript></a> <figcaption> <span class="credit">Amazon</span> </figcaption> </figure> <hr><p><strong>Specs</strong>: 3.5-inch color touchscreen display |聽Voice support (Amazon Alexa, Google Assistant, and Microsoft Cortana) |聽Works with Samsung SmartThings, Vera, Amazon Alexa, Google Home |聽</p><hr><p>Think of the Honeywell Home T9 Smart Thermostat as the smarter upgrade to the budget-friendly T5 model. It's a bit more expensive, but it gets upgrades across the board when it comes to automation, function, and visual appeal.</p><p>The Honeywell Home T9 Smart Thermostat extends its understanding of what is happening in your home by introducing sensors that you can place around your home. These sensors detect all kinds of information that help to inform the device. They can detect motion, temperature, and humidity. All the data that these sensors gather help to inform the thermostat, adjusting the temperature in your home and working to make sure that each room is set to the ideal conditions.</p><p>In terms of integrating into your existing smart home ecosystem, the Honeywell Home T9 Smart Thermostat offers plenty of variety -- though surprisingly less than the T5 provides. There is no Apple HomeKit support, so you won't be able to use Siri or control this device through your Apple HomeKit app. But there is support for Google Assistant and Amazon Alexa, along with Microsoft Cortana.</p><p>The Honeywell Home T9 Smart Thermostat still isn't quite as smart as other thermostats on the market, as it doesn't pick up on your schedule over time. But the sensors help, and it comes with one in the box to get you started.聽</p><p><strong>Pros</strong>:</p><ul><li>Expandable sensors</li><li>Integrates into a smart home</li><li>Geofencing knows when you come and leave</li></ul><p></p><p><strong>Cons</strong>:</p><ul><li>It doesn't work with Apple HomeKit</li><li>Doesn't learn your schedule over time</li></ul> <div class="listicle-buy-btns"> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/dp/B07N849J21?tag=zd-buy-button-20&linkCode=ogi&th=1&psc=1&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link btn btn-primary btn-block" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Honeywell Home T9 Smart Thermostat","productId":"1c8eda75-a3bb-4961-9dae-92a6f649cb70","merchantName":"Amazon","leadProdPrice":130,"text":"$130 at Amazon","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/dp\/B07N849J21?tag=zd-buy-button-20&linkCode=ogi&th=1&psc=1&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"mlst","formatType":"BUTTON","location":"LINKS","position":4,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"listicle-buy-button"}}" rel="noopener noreferrer nofollow"> $130 at Amazon </a> </div> </div><div id="listicle-752abaeb-67e7-4b13-af1c-adb3831b9b1c" class="shortcode listicle listicle-752abaeb-67e7-4b13-af1c-adb3831b9b1c"> <h2> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/WYZE-Thermostat-Control-Google-Assistant/dp/B08W1V9YB3/?tag=zd-buy-button-20&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Wyze Thermostat","productId":"","merchantName":"Amazon","leadProdPrice":"120","text":"Wyze Thermostat","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/WYZE-Thermostat-Control-Google-Assistant\/dp\/B08W1V9YB3\/?tag=zd-buy-button-20&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"manual","formatType":"LINK","location":"LINKS","position":5,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"listicle-headline"}}" rel="noopener noreferrer nofollow"> Wyze Thermostat </a> </h2> <h3> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/WYZE-Thermostat-Control-Google-Assistant/dp/B08W1V9YB3/?tag=zd-buy-button-20&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Wyze Thermostat","productId":"","merchantName":"Amazon","leadProdPrice":"120","text":"Most intuitive option","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/WYZE-Thermostat-Control-Google-Assistant\/dp\/B08W1V9YB3\/?tag=zd-buy-button-20&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"manual","formatType":"LINK","location":"LINKS","position":5,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"listicle-headline"}}" rel="noopener noreferrer nofollow"> Most intuitive option </a> </h3> <figure class="alignright"> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/WYZE-Thermostat-Control-Google-Assistant/dp/B08W1V9YB3/?tag=zd-buy-button-20&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Wyze Thermostat","productId":"","merchantName":"Amazon","leadProdPrice":"120","text":"","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/WYZE-Thermostat-Control-Google-Assistant\/dp\/B08W1V9YB3\/?tag=zd-buy-button-20&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"manual","formatType":"IMAGE","location":"LINKS","position":5,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"listicle-image"}}" rel="noopener noreferrer nofollow"><span class="img alignright"><img src="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/" class="lazy" alt="wyze-thermostat-review-best-smart-thermostat.jpg" height="208" width="370" data-original="https://web.archive.org/web/20210826133042/https://www.zdnet.com/a/hub/i/r/2021/08/25/39db8f0b-3343-494a-adef-0ae908ad2c94/resize/370x208/b772fab9236e6fc96db2ba642eccbc7b/wyze-thermostat-review-best-smart-thermostat.jpg"></span><noscript><span class="img alignright"><img src="https://web.archive.org/web/20210826133042im_/https://www.zdnet.com/a/hub/i/r/2021/08/25/39db8f0b-3343-494a-adef-0ae908ad2c94/resize/370x208/b772fab9236e6fc96db2ba642eccbc7b/wyze-thermostat-review-best-smart-thermostat.jpg" class="" alt="wyze-thermostat-review-best-smart-thermostat.jpg" height="208" width="370"></span></noscript></a> <figcaption> <span class="credit">Wyze</span> </figcaption> </figure> <hr><p><strong>Specs</strong>: 2.5-inch display |聽Voice support (Amazon Alexa, Google Assistant) | Works with Google Assistant, Amazon Alexa, Samsung SmartThings, IFTTT |</p><hr><p>If simplicity is a priority for you, you'll be hard-pressed to find a more suitable option than the Wyze Thermostat. One of the newer devices on the market, this smart thermostat puts a premium on intuitive features while keeping much of the automated functionality you'd expect from a smart thermostat.</p><p>The Wyze Thermostat features a built-in motion sensor that knows when you're home and when you go, so it can adjust the temperature for you. On top of that, it'll track your comings and goings and make recommendations in the accompanying Wyze app that will help you with energy-saving. While you can make changes from the app from anywhere, a simple dial on the device also lets you make immediate changes in the home.</p><p>This thermostat also includes the ability to set a seven-day schedule, so each day reflects your day-to-day life. While it doesn't necessarily do the kind of automating that other alternatives do, it does give you plenty of control that reflects your schedule.聽</p><p>This smart thermostat integrates into smart homes, is compatible with Google Home and Amazon Alexa, and you'll be able to use voice controls to manage your home that way. It lacks Apple HomeKit support, but if you use any other smart home ecosystem, you should be able to make it work.</p><p><strong>Pros</strong>:</p><ul><li>Simple design</li><li>Recommendations for energy saving</li><li>Seven-day scheduling</li></ul><p></p><p><strong>Cons</strong>:</p><ul><li>Light on automation</li><li>No Apple HomeKit support</li></ul> <div class="listicle-buy-btns"> <a href="https://web.archive.org/web/20210826133042/https://assoc-redirect.amazon.com/g/r/https://www.amazon.com/WYZE-Thermostat-Control-Google-Assistant/dp/B08W1V9YB3/?tag=zd-buy-button-20&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp" target="_blank" class="lead-link btn btn-primary btn-block" data-component="leadsTracker" data-leads-tracker-options="{"isListicle":true,"isAmazon":true,"trackingData":{"productName":"Wyze Thermostat","productId":"","merchantName":"Amazon","leadProdPrice":"120","text":"$120 at Amazon","leadDestUrl":"https:\/\/assoc-redirect.amazon.com\/g\/r\/https:\/\/www.amazon.com\/WYZE-Thermostat-Control-Google-Assistant\/dp\/B08W1V9YB3\/?tag=zd-buy-button-20&ascsubtag=__COM_CLICK_ID__%7C__VIEW_GUID__%7Cdtp","leadType":"manual","formatType":"BUTTON","location":"LINKS","position":5,"pageId":"e1658703-f6e3-4739-a035-21412d635fa5","linkLocation":"listicle-buy-button"}}" rel="noopener noreferrer nofollow"> $120 at Amazon </a> </div> </div><div id="listicle-3f49840a-bcf3-4525-bd81-56e6b7f4fdc8" class="shortcode listicle listicle-3f49840a-bcf3-4525-bd81-56e6b7f4fdc8"> <h2> How to pick the best smart thermostat for you? </h2> <p>Picking the best smart thermostat for you is going to depend on what you need in your home. If you'd like to go hands-off and let the thermostat learn your routine and automate the heating and cooling situation, go with a solution like the Google Nest Learning Thermostat or the Ecobee SmartThermostat with Voice Control.聽</p><p>If automation is less important than total control, then you may be better off going with a simpler smart thermostat. A solution like the Wyze Thermostat or the Honeywell Home T5 Smart Thermostat lets you maintain total control over your home environment, even when you're away from home.</p><p>If you want control over every element of your home, consider the Honeywell Home T9 Smart Thermostat. With its expandable sensor system, including one that comes with the device, it gives you even more information about your home and lets you control every element of it in nearly every room.</p> <div class="listicle-buy-btns"> </div> </div><div id="listicle-146d3899-9b36-4b3b-9d2c-2674c2229de5" class="shortcode listicle listicle-146d3899-9b36-4b3b-9d2c-2674c2229de5"> <h2> Is a smart thermostat worth the price? </h2> <p>Yes, in most situations, a smart thermostat is worth the price. While the upfront investment can feel steep, even the most basic automation features will often end up saving you a considerable amount of money in the long run. It will pay for itself over time by reducing energy costs.</p> <div class="listicle-buy-btns"> </div> </div><div id="listicle-c353fba3-43e3-4a6c-a23c-75f39a617fcb" class="shortcode listicle listicle-c353fba3-43e3-4a6c-a23c-75f39a617fcb"> <h2> What is the difference between a smart thermostat and a Wi-Fi thermostat? </h2> <p>A smart thermostat has automation features that help you manage your energy consumption, typically by reducing your energy usage when you are away. A Wi-Fi thermostat is internet-connected and may give you the ability to control it from your phone, but it often lacks automated tools and can't always be controlled when you are away from home.</p> <div class="listicle-buy-btns"> </div> </div><div id="listicle-67ea2814-a403-46f4-8f62-5ebedea8cc76" class="shortcode listicle listicle-67ea2814-a403-46f4-8f62-5ebedea8cc76"> <h2> Can I install a smart thermostat in my home? </h2> <p>Most home heating and cooling systems are compatible with smart thermostats. In some cases, you may have to purchase an adapter or kit to install it. This is especially true of older homes.聽</p><p>Check the compatibility of the thermostat to make sure it will work with your home before you purchase it.</p> <div class="listicle-buy-btns"> </div> </div><div id="listicle-905925c1-0667-4ea1-8577-93696c420f9d" class="shortcode listicle listicle-905925c1-0667-4ea1-8577-93696c420f9d"> <h2> Are there alternatives worth considering? </h2> <p>There are many smart thermostats on the market, so there is almost certainly one that will work best for your home.聽</p><p>Consider these alternatives:</p><ul><li>Emerson Sensi Touch Wi-Fi Smart Thermostat - <a href="https://web.archive.org/web/20210826133042/https://www.amazon.com/dp/B01N3CEUDH/?tag=zdnet-deals-20" rel="noopener noreferrer nofollow" target="_blank" data-component="externalLink">$167.99 from Amazon</a></li><li>Lyric Round Smart Thermostat - <a href="https://web.archive.org/web/20210826133042/https://www.amazon.com/dp/B01FTNDGRG/?tag=zdnet-deals-20" rel="noopener noreferrer nofollow" target="_blank" data-component="externalLink">$166 from Amazon</a></li></ul> <div class="listicle-buy-btns"> </div> </div><div data-shortcode></div> <div class="relatedContent alignNone"> <h3 class="heading"> <span class="int">ZDNet Recommends</span> </h3> <ul> <li> <a href="https://web.archive.org/web/20210826133042/https://www.zdnet.com/article/best-internet-speed-test/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "pinbox", "pageType": "article"}">The best internet speed tests</a> </li> <li> <a href="https://web.archive.org/web/20210826133042/https://www.zdnet.com/article/best-browser-for-privacy/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "pinbox", "pageType": "article"}">The best browsers for privacy</a> </li> <li> <a href="https://web.archive.org/web/20210826133042/https://www.zdnet.com/article/best-windows-laptop/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "pinbox", "pageType": "article"}">The best Windows 10 laptops</a> </li> <li> <a href="https://web.archive.org/web/20210826133042/https://www.zdnet.com/article/10-best-smartphones/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "pinbox", "pageType": "article"}">The best phones to buy now</a> </li> <li> <a href="https://web.archive.org/web/20210826133042/https://www.zdnet.com/article/best-cloud-storage/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "pinbox", "pageType": "article"}">The best cloud storage services</a> </li> <li> <a href="https://web.archive.org/web/20210826133042/https://www.zdnet.com/article/best-vpn/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "pinbox", "pageType": "article"}">The best VPN services</a> </li> <li> <a href="https://web.archive.org/web/20210826133042/https://www.zdnet.com/article/best-android-smartwatch/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "pinbox", "pageType": "article"}">The best smartwatches for Android users</a> </li> <li> <a href="https://web.archive.org/web/20210826133042/https://www.zdnet.com/article/best-mac/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "pinbox", "pageType": "article"}">Which Mac is right for you?</a> </li> <li> <a href="https://web.archive.org/web/20210826133042/https://www.zdnet.com/article/best-ipad/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "pinbox", "pageType": "article"}">Which iPad model is right for you?</a> </li> <li> <a href="https://web.archive.org/web/20210826133042/https://www.zdnet.com/article/best-iphone/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "pinbox", "pageType": "article"}">Which iPhone model is right for you?</a> </li> </ul> </div> <h2><br></h2> </div> <div id="myfinance-bottom" data-component="myFinanceWidget"></div> <section class="related-topics"> <h3>Related Topics:</h3> <a href="/web/20210826133042/https://www.zdnet.com/topic/networking/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "article_related_topic", "pageType": "article"}"> Networking </a> <a href="/web/20210826133042/https://www.zdnet.com/topic/pcs/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "article_related_topic", "pageType": "article"}"> PCs </a> <a href="/web/20210826133042/https://www.zdnet.com/topic/servers/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "article_related_topic", "pageType": "article"}"> Servers </a> <a href="/web/20210826133042/https://www.zdnet.com/topic/storage/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "article_related_topic", "pageType": "article"}"> Storage </a> <a href="/web/20210826133042/https://www.zdnet.com/topic/data-centers/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "article_related_topic", "pageType": "article"}"> Data Centers </a> </section> <div class="share-bar-wrapper"> <div class="social-links" data-component="shareBar" data-share-bar-options="{"title":"Best smart thermostat 2021: Save energy efficiently","description":"Make your home smarter, automated, and more energy-efficient by getting one of the best smart thermostats on the market.","author":{"socialProfiles":{"facebookProfile":null,"facebookPage":null,"twitter":null,"googlePlus":null,"instagram":null}},"location":"bottom","url":"https:\/\/www.zdnet.com\/article\/best-smart-thermostat\/"}"> <ul> <li class="comments"> <a href="#comments-e1658703-f6e3-4739-a035-21412d635fa5" data-location="bottomsharebar-comment" title="Comment"> <svg class=" comment-bubble"> <use xlink:href="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/#comment-bubble"></use> </svg> </a> </li> <li class="linkedin"> <a class="social-share" data-popup="linkedin" data-location="bottomsharebar-linkedin-share" title="LinkedIn"> <svg class=" linkedin"> <use xlink:href="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/#linkedin"></use> </svg> </a> </li> <li class="flipboard"> <a class="social-share" data-popup="flipboard" data-location="bottomsharebar-flipboard-share" title="Flipboard"> <svg class=" flipboard"> <use xlink:href="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/#flipboard"></use> </svg> </a> </li> <li class="facebook"> <a class="social-share" data-popup="facebook" data-location="bottomsharebar-fb-like" title="Facebook"> <svg class=" facebook"> <use xlink:href="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/#facebook"></use> </svg> </a> </li> <li class="twitter"> <a class="social-share" data-popup="twitter" data-location="bottomsharebar-twitter-tweet" title="Twitter"> <svg class=" twitter"> <use xlink:href="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/#twitter"></use> </svg> </a> </li> <li class="email"> <a title="Email" data-component="emailContact" data-email-contact-options="{"trackClickText":"email-friend-submit","isDesktopGallery":false,"modalAsync":{"url":"\/user\/email-friend\/xhr\/","requestData":{"contentTitle":"Best smart thermostat 2021: Save energy efficiently","contentUrl":"https:\/\/www.zdnet.com\/article\/best-smart-thermostat\/"}}}"> <svg class=" envelope"> <use xlink:href="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/#envelope"></use> </svg> </a> </li> <li class="divider"> </ul> </div> <div class="author-avatars"> <a rel="author" href="/web/20210826133042/https://www.zdnet.com/meet-the-team/" class="thumb" data-vanity-rewritten="true"> <span class="img "><img src="https://web.archive.org/web/20210826133042im_/https://www.zdnet.com/a/hub/i/r/2021/08/10/63ded998-9d38-4205-b022-1d88f0be6847/thumbnail/40x40/7e1d264aed369849454ce42b4895f87c/dellinger-2.jpg" class="" alt="AJ Dellinger" height="40" width="40"></span> </a> </div> <div class="byline"> <p class="meta"> By <a rel="author" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "byline-author", "pageType": "article"}" href="/web/20210826133042/https://www.zdnet.com/meet-the-team/" data-vanity-rewritten="true"> <span>AJ Dellinger</span> </a> | <time datetime="2021-08-25 14:43:00">August 25, 2021 -- 14:43 GMT (07:43 PDT)</time> | Topic: <a href="/web/20210826133042/https://www.zdnet.com/topic/hardware/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "byline-topic", "pageType": "article"}">Hardware</a> </p> </div> </div> </article> <div id="postComments" data-component="disqusLoader" data-disqus-loader-options="{"conversationId":"e1658703-f6e3-4739-a035-21412d635fa5"}"> <a class="btn btn-primary btn-block center" data-social="disqus-ondemand" data-item="trigger" href="#comments-show-e1658703-f6e3-4739-a035-21412d635fa5"> <svg class=" comment-bubble"> <use xlink:href="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/#comment-bubble"></use> </svg> Show Comments </a> <!-- General comments --> <div id="comments-e1658703-f6e3-4739-a035-21412d635fa5" class="postComments"> <div class="disqus-container collapsed" id="comments-show-e1658703-f6e3-4739-a035-21412d635fa5"> <div class="disqus-details"> <div class="disqus-login-button loggedOut"> <a class="btn btn-primary" data-authentication="{"appId":1109,"position":"comments"}">LOG IN TO COMMENT</a> </div> <div class="disqus-user-dropdown loggedIn"> <span class="disqus-username" id="disqusUsername-e1658703-f6e3-4739-a035-21412d635fa5" data-user-var="userName"></span> <ul class="menu-disqus-user"> <li><a href="/web/20210826133042/https://www.zdnet.com/members/preferences/">My Profile</a></li> <li><a href="/web/20210826133042/https://www.zdnet.com/user/logout/">Log Out</a></li> </ul> </div> <span class="disqus-faq-guidlines"> | <a href="/web/20210826133042/https://www.zdnet.com/article/zdnet-community-guidelines/" target="_blank">Community Guidelines</a> </span> </div> <div id="disqusContainer-e1658703-f6e3-4739-a035-21412d635fa5"> <a name="zdnet_core.anchor.comments"></a> <h3> <span>Join Discussion</span> </h3> <div data-social="disqus" data-id="e1658703-f6e3-4739-a035-21412d635fa5" data-title="Best smart thermostat 2021: Save energy efficiently" data-url="https://web.archive.org/web/20210826133042oe_/https://www.zdnet.com/article/best-smart-thermostat/"></div> </div> <div class="add-comment loggedOut"> <a class="btn btn-primary" data-authentication="{"appId":1109,"position":"comments"}">Add Your Comment</a> </div> <div class="add-comment loggedIn"> <a class="btn btn-primary" href="#comments-e1658703-f6e3-4739-a035-21412d635fa5">Add Your Comment</a> </div> </div> </div> </div> </div> <div class="col-4"> <section class="mpu placeholder" data-component="medusaContentRecommendation" data-medusa-content-recommendation-options="{"promo":"promo_zd_recommendation_top_mpu_desktop","spot":"content-top-mpu"}"> <div data-ad="mpu-plus-top" data-ad-container="612793177a63b" class="ad-mpu-plus-top ad-slot "> </div> </section> <section class="module related-stories" data-component="["lazyloadImages"]"> <h2 class="heading"> <span class="int">More from AJ Dellinger</span> </h2> <div class="box"> <ul> <li> <div> <a class="thumb" title="Best laptop backpack 2021: Take your laptop anywhere" href="/web/20210826133042/https://www.zdnet.com/article/best-laptop-backpack/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "more-from-author", "pageType": "article"}"> <figure class=" img"><span class="img "><img src="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/" class="lazy" alt="" height="128" width="170" data-original="https://web.archive.org/web/20210826133042/https://www.zdnet.com/a/hub/i/r/2021/08/12/ab59d3c5-a5c7-4e29-9ad9-30312af58b7e/thumbnail/170x128/691e471849b1ae2e36267b944009c6a0/image.jpg"></span><noscript><span class="img "><img src="https://web.archive.org/web/20210826133042im_/https://www.zdnet.com/a/hub/i/r/2021/08/12/ab59d3c5-a5c7-4e29-9ad9-30312af58b7e/thumbnail/170x128/691e471849b1ae2e36267b944009c6a0/image.jpg" class="" alt="" height="128" width="170"></span></noscript></figure> </a> </div> <div class="content"> <p class="topicName">Hardware</p> <p><a href="/web/20210826133042/https://www.zdnet.com/article/best-laptop-backpack/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "more-from-author", "pageType": "article"}">Best laptop backpack 2021: Take your laptop anywhere</a></p> </div> </li> </ul> </div> </section> <div class="newsletter-terms-of-service-3550"> <div class="authentication"> <div class="modal-backdrop fixed show"></div> <a class="close" data-action="close"> <svg viewbox="0 0 28 28"> <polygon points="28,1.9 26.1,0 14,12.1 1.9,0 0,1.9 12.1,14 0,26.1 1.9,28 14,15.9 26.1,28 28,26.1 15.9,14 "></polygon> </svg> </a> <form class="modal fixed show"> <div class="_start active"> <div class="info"> <p class="description">Please review our terms of service to complete your newsletter subscription.</p> </div> <label class="terms all-tos"> <input type="checkbox" name="user[tos]" required="required" value="1"> <span class="checkbox"></span> <span class="terms-of-service"> <p>By registering, you agree to the <a href="https://web.archive.org/web/20210826133042/https://redventures.com/CMG-terms-of-use.html" target="_blank" rel="noopener noreferrer nofollow" data-component="externalLink">Terms of Use</a> and acknowledge the data practices outlined in the <a href="https://web.archive.org/web/20210826133042/https://redventures.com/privacy-policy.html" target="_blank" rel="noopener noreferrer nofollow" data-component="externalLink">Privacy Policy</a>.</p> <p>You will also receive a complimentary subscription to the ZDNet's Tech Update Today and ZDNet Announcement newsletters. You may unsubscribe from these newsletters at any time.</p> </span> </label> <label class="terms gdpr-tos"> <input type="checkbox" name="user[firstPartyOptIn]" value="1"> <span class="checkbox"></span> <span class="terms-of-service"> <p>You agree to receive updates, alerts, and promotions from the CBS family of companies - including ZDNet鈥檚 Tech Update Today and ZDNet Announcement newsletters. You may unsubscribe at any time.</p> </span> </label> <label class="terms gdpr-tos"> <span class="terms-of-service"> <p> By signing up, you agree to receive the selected newsletter(s) which you may unsubscribe from at any time. You also agree to the <a href="https://web.archive.org/web/20210826133042/https://redventures.com/CMG-terms-of-use.html" target="_blank" rel="noopener noreferrer nofollow" data-component="externalLink">Terms of Use</a> and acknowledge the data collection and usage practices outlined in our <a href="https://web.archive.org/web/20210826133042/https://redventures.com/privacy-policy.html" target="_blank" rel="noopener noreferrer nofollow" data-component="externalLink">Privacy Policy</a>. </p> </span> </label> <button>Continue</button> <div class="alert-error"> <div class="required-error"> <div class="warning-label"></div> </div> </div> </div> </form> </div> </div> <div id="newsletter-widget-2473" data-component="newsletterWidget" data-newsletter-widget-options="{"errorMessage":"Something has gone awry. Please contact <a href=\u0022https:\/\/support.zdnet.com\u0022><b>customer service<\/b><\/a> to confirm your request.","position":"newsletter-sub-widget","selector":".newsletter-terms-of-service-3550"}"> <section class="keepUp"> <h2 class="heading"><span class="int">Newsletters</span></h2> <div class="box"> <div class="newsletters"> <div id="widget-1542" data-component="loadNewsletterAsync" data-load-newsletter-async-options="{"loggedUrl":"\/newsletter\/xhr\/widget\/","loginUrl":"\/newsletter\/xhr\/widget-login\/","data":{"topic":"hardware"}}"> </div> </div> <span class="loggedOut"> <a href="/web/20210826133042/https://www.zdnet.com/newsletters/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "newsletter-seeall", "pageType": "article"}" class="btn-circle" data-vanity-rewritten="true"> <div class="btn-circle-text"> <span>See</span> All </div> </a> </span> <span class="loggedIn"> <a href="/web/20210826133042/https://www.zdnet.com/members/newsletters/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "newsletter-seeall", "pageType": "article"}" class="btn-circle"> <div class="btn-circle-text"> <span>See</span> All </div> </a> </span> </div> </section> </div> <section class="mpu" data-component="medusaContentRecommendation" data-medusa-content-recommendation-options="{"promo":"promo_zd_recommendation_middle_mpu_desktop","spot":"content-middle-mpu"}"> <div data-ad="mpu-middle" data-ad-container="612793177a63b" class="ad-mpu-middle ad-slot "> </div> </section> <div id="uid-670127006" data-component="medusaAsync" data-medusa-async-options="{"url":"\/leadgen\/xhr\/right-rail\/","data":{"promo":2150,"count":3,"topic_door_v2":"control","route":"article_single"},"template":"right-rail"}"> </div> <section class="module related-stories"> <h2 class="heading"> <span class="int">Related Stories</span> </h2> <div class="related-stories-carousel" data-front-door-carousel-options="{"autoAdvanceSpeed":0,"autoResizeContainer":true}" data-component="["frontDoorCarousel","lazyloadImages"]"> <ul class="carousel-pagination"> <li class="arrow previous-item" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "related-stories-prev", "pageType": "article"}"> <svg viewbox="0 0 16 28"><g><path d="M0.6,27.4c0.8,0.8,2,0.8,2.8,0l12-12c0.8-0.8,0.8-2,0-2.8l-12-12C3,0.2,2.5,0,2,0C1.5,0,1,0.2,0.6,0.6 c-0.8,0.8-0.8,2,0,2.8L11.2,14L0.6,24.6C-0.2,25.4-0.2,26.6,0.6,27.4z"></path></g></svg> </li> <span class="page-number">1</span> of <span class="page-total">3</span> <li class="arrow next-item" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "related-stories-next", "pageType": "article"}"> <svg viewbox="0 0 16 28"><g><path d="M0.6,27.4c0.8,0.8,2,0.8,2.8,0l12-12c0.8-0.8,0.8-2,0-2.8l-12-12C3,0.2,2.5,0,2,0C1.5,0,1,0.2,0.6,0.6 c-0.8,0.8-0.8,2,0,2.8L11.2,14L0.6,24.6C-0.2,25.4-0.2,26.6,0.6,27.4z"></path></g></svg> </li> </ul> <div class="item active"> <ul> <li> <div> <a class="thumb" title="Are you about to lose all the data on your Mac?" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "related-stories", "pageType": "article"}" href="/web/20210826133042/https://www.zdnet.com/article/are-you-about-to-lose-all-the-data-on-your-mac/"> <figure class=" img"><span class="img "><img src="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/" class="lazy" alt="" height="128" width="170" data-original="https://web.archive.org/web/20210826133042/https://www.zdnet.com/a/hub/i/r/2020/05/19/ee94de5a-f02c-42ed-8899-780dc4576fe2/thumbnail/170x128/931d74587f9692397a9fc808ed8d1bd7/istock-857213750.jpg"></span><noscript><span class="img "><img src="https://web.archive.org/web/20210826133042im_/https://www.zdnet.com/a/hub/i/r/2020/05/19/ee94de5a-f02c-42ed-8899-780dc4576fe2/thumbnail/170x128/931d74587f9692397a9fc808ed8d1bd7/istock-857213750.jpg" class="" alt="" height="128" width="170"></span></noscript></figure> </a> </div> <div class="content"> <p> <a data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "related-stories", "pageType": "article"}" href="/web/20210826133042/https://www.zdnet.com/article/are-you-about-to-lose-all-the-data-on-your-mac/">Are you about to lose all the data on your Mac?</a> </p> <p class="dek"> Your data can be lost in the blink of an eye. Here's how to get a heads up before it happens. </p> </div> </li> <li> <div> <a class="thumb" title="Quantum computers could read all your encrypted data. This 'quantum-safe' VPN aims to stop that" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "related-stories", "pageType": "article"}" href="/web/20210826133042/https://www.zdnet.com/article/quantum-computers-could-read-all-our-encrypted-data-this-quantum-safe-vpn-is-trying-to-prevent-that/"> <figure class=" img"><span class="img "><img src="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/" class="lazy" alt="" height="128" width="170" data-original="https://web.archive.org/web/20210826133042/https://www.zdnet.com/a/hub/i/r/2021/08/26/75ad71de-ed73-4110-a434-2ec9e761c465/thumbnail/170x128/16d5055bd03197b9ec64f7dc2a34c9e3/gettyimages-1130383535.jpg"></span><noscript><span class="img "><img src="https://web.archive.org/web/20210826133042im_/https://www.zdnet.com/a/hub/i/r/2021/08/26/75ad71de-ed73-4110-a434-2ec9e761c465/thumbnail/170x128/16d5055bd03197b9ec64f7dc2a34c9e3/gettyimages-1130383535.jpg" class="" alt="" height="128" width="170"></span></noscript></figure> </a> </div> <div class="content"> <p> <a data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "related-stories", "pageType": "article"}" href="/web/20210826133042/https://www.zdnet.com/article/quantum-computers-could-read-all-our-encrypted-data-this-quantum-safe-vpn-is-trying-to-prevent-that/">Quantum computers could read all your encrypted data. This 'quantum-safe' VPN aims to stop that</a> </p> <p class="dek"> Verizon has successfully deployed a VPN across the Atlantic that could withstand quantum attacks. </p> </div> </li> <li> <div> <a class="thumb" title="Razer reverses loss to post $31 million six-month net profit" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "related-stories", "pageType": "article"}" href="/web/20210826133042/https://www.zdnet.com/article/razer-reverses-loss-to-post-31-million-six-month-net-profit/"> <figure class=" img"><span class="img "><img src="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/" class="lazy" alt="" height="128" width="170" data-original="https://web.archive.org/web/20210826133042/https://www.zdnet.com/a/hub/i/r/2021/08/26/f7ce91c9-cb25-41ed-874f-59b5be7ec50d/thumbnail/170x128/bcefa729e4340de79e1b4bfa68cab507/razer-lappy.png"></span><noscript><span class="img "><img src="https://web.archive.org/web/20210826133042im_/https://www.zdnet.com/a/hub/i/r/2021/08/26/f7ce91c9-cb25-41ed-874f-59b5be7ec50d/thumbnail/170x128/bcefa729e4340de79e1b4bfa68cab507/razer-lappy.png" class="" alt="" height="128" width="170"></span></noscript></figure> </a> </div> <div class="content"> <p> <a data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "related-stories", "pageType": "article"}" href="/web/20210826133042/https://www.zdnet.com/article/razer-reverses-loss-to-post-31-million-six-month-net-profit/">Razer reverses loss to post $31 million six-month net profit</a> </p> <p class="dek"> Razer has returned from its $17.7 million half-year loss last year, driven by its hardware division, which brought in $677 million in revenue. </p> </div> </li> </ul> </div> <div class="item"> <ul> <li> <div> <a class="thumb" title="Best security camera 2021: Secure your home or office" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "related-stories", "pageType": "article"}" href="/web/20210826133042/https://www.zdnet.com/article/best-security-camera/"> <figure class=" img"><span class="img "><img src="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/" class="lazy" alt="" height="128" width="170" data-original="https://web.archive.org/web/20210826133042/https://www.zdnet.com/a/hub/i/r/2021/08/25/d2c7a038-d569-4605-9246-c6a7a0748352/thumbnail/170x128/0ca188f75774620bbf009f9c1a47e29b/image-10.jpg"></span><noscript><span class="img "><img src="https://web.archive.org/web/20210826133042im_/https://www.zdnet.com/a/hub/i/r/2021/08/25/d2c7a038-d569-4605-9246-c6a7a0748352/thumbnail/170x128/0ca188f75774620bbf009f9c1a47e29b/image-10.jpg" class="" alt="" height="128" width="170"></span></noscript></figure> </a> </div> <div class="content"> <p> <a data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "related-stories", "pageType": "article"}" href="/web/20210826133042/https://www.zdnet.com/article/best-security-camera/">Best security camera 2021: Secure your home or office</a> </p> <p class="dek"> Storage, flexibility, quality recording, and easy installation are some of the important factors to consider when deciding on a work-safe security system. Our top picks for commercial ... </p> </div> </li> <li> <div> <a class="thumb" title="US PC market grows 17% in Q2 2021 as notebook popularity booms" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "related-stories", "pageType": "article"}" href="/web/20210826133042/https://www.zdnet.com/article/us-pc-market-grows-17-in-q2-2021-as-notebook-popularity-booms/"> <figure class=" img"><span class="img "><img src="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/" class="lazy" alt="" height="128" width="170" data-original="https://web.archive.org/web/20210826133042/https://www.zdnet.com/a/hub/i/r/2021/01/19/bebc2523-1ebd-448c-bad1-4a90cd0af557/thumbnail/170x128/9cafb3ac3ecb4ea71502e7b4df81732a/istock-1198252560.jpg"></span><noscript><span class="img "><img src="https://web.archive.org/web/20210826133042im_/https://www.zdnet.com/a/hub/i/r/2021/01/19/bebc2523-1ebd-448c-bad1-4a90cd0af557/thumbnail/170x128/9cafb3ac3ecb4ea71502e7b4df81732a/istock-1198252560.jpg" class="" alt="" height="128" width="170"></span></noscript></figure> </a> </div> <div class="content"> <p> <a data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "related-stories", "pageType": "article"}" href="/web/20210826133042/https://www.zdnet.com/article/us-pc-market-grows-17-in-q2-2021-as-notebook-popularity-booms/">US PC market grows 17% in Q2 2021 as notebook popularity booms</a> </p> <p class="dek"> About 36.8 million units were shipped in the US for Q2, according to analysts at Canalys. </p> </div> </li> <li> <div> <a class="thumb" title="Best security system 2021: Protect your home & office" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "related-stories", "pageType": "article"}" href="/web/20210826133042/https://www.zdnet.com/article/best-security-system/"> <figure class=" img"><span class="img "><img src="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/" class="lazy" alt="" height="128" width="170" data-original="https://web.archive.org/web/20210826133042/https://www.zdnet.com/a/hub/i/r/2020/08/28/e0659127-a2cc-464f-9fc1-f8971dd722c0/thumbnail/170x128/d8a45a100eccfb8bff79335c16fa9bfe/2.jpg"></span><noscript><span class="img "><img src="https://web.archive.org/web/20210826133042im_/https://www.zdnet.com/a/hub/i/r/2020/08/28/e0659127-a2cc-464f-9fc1-f8971dd722c0/thumbnail/170x128/d8a45a100eccfb8bff79335c16fa9bfe/2.jpg" class="" alt="" height="128" width="170"></span></noscript></figure> </a> </div> <div class="content"> <p> <a data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "related-stories", "pageType": "article"}" href="/web/20210826133042/https://www.zdnet.com/article/best-security-system/">Best security system 2021: Protect your home & office</a> </p> <p class="dek"> ZDNet has brought together the best options on the market this year, from DIY kits to full smart home setups. </p> </div> </li> </ul> </div> <div class="item"> <ul> <li> <div> <a class="thumb" title="Apple just won a patent for a dual-screen, wireless charging MacBook" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "related-stories", "pageType": "article"}" href="/web/20210826133042/https://www.zdnet.com/article/apple-wins-us-patent-for-dual-screen-wireless-charging-macbook/"> <figure class=" img"><span class="img "><img src="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/" class="lazy" alt="" height="128" width="170" data-original="https://web.archive.org/web/20210826133042/https://www.zdnet.com/a/hub/i/r/2020/11/16/37e33024-2892-4bb7-9d21-6ac6f7544def/thumbnail/170x128/9ba7d47b318de62ea8b7255775f80624/apple-macbook-pro-m1-2020-5.jpg"></span><noscript><span class="img "><img src="https://web.archive.org/web/20210826133042im_/https://www.zdnet.com/a/hub/i/r/2020/11/16/37e33024-2892-4bb7-9d21-6ac6f7544def/thumbnail/170x128/9ba7d47b318de62ea8b7255775f80624/apple-macbook-pro-m1-2020-5.jpg" class="" alt="" height="128" width="170"></span></noscript></figure> </a> </div> <div class="content"> <p> <a data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "related-stories", "pageType": "article"}" href="/web/20210826133042/https://www.zdnet.com/article/apple-wins-us-patent-for-dual-screen-wireless-charging-macbook/">Apple just won a patent for a dual-screen, wireless charging MacBook</a> </p> <p class="dek"> Apple's newly won patent means it could ditch the physical keyboard and build iPhone and iPad touch features, and wireless charging, into its MacBooks. ... </p> </div> </li> <li> <div> <a class="thumb" title="Samsung Galaxy Buds 2 review: Packed with features" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "related-stories", "pageType": "article"}" href="/web/20210826133042/https://www.zdnet.com/product/samsung-galaxy-buds-2/"> <figure class=" img"><span class="img "><img src="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/" class="lazy" alt="" height="128" width="170" data-original="https://web.archive.org/web/20210826133042/https://www.zdnet.com/a/hub/i/r/2021/08/10/0eb88ac6-1337-483c-9d1c-4f2fae9f860c/thumbnail/170x128/cad6f2f27da536a75dbdc81b81b11724/03-03-lifestyle-galaxybuds2-lavender-olive-h.jpg"></span><noscript><span class="img "><img src="https://web.archive.org/web/20210826133042im_/https://www.zdnet.com/a/hub/i/r/2021/08/10/0eb88ac6-1337-483c-9d1c-4f2fae9f860c/thumbnail/170x128/cad6f2f27da536a75dbdc81b81b11724/03-03-lifestyle-galaxybuds2-lavender-olive-h.jpg" class="" alt="" height="128" width="170"></span></noscript></figure> </a> </div> <div class="content"> <p> <a data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "related-stories", "pageType": "article"}" href="/web/20210826133042/https://www.zdnet.com/product/samsung-galaxy-buds-2/">Samsung Galaxy Buds 2 review: Packed with features</a> </p> <p class="dek"> </p> </div> </li> <li> <div> <a class="thumb" title="How to run Intel Windows apps on an M1 Mac" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "related-stories", "pageType": "article"}" href="/web/20210826133042/https://www.zdnet.com/article/how-to-run-intel-windows-apps-on-an-m1-mac/"> <figure class=" img"><span class="img "><img src="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/" class="lazy" alt="" height="128" width="170" data-original="https://web.archive.org/web/20210826133042/https://www.zdnet.com/a/hub/i/r/2021/08/25/96fc3e1c-9e32-405c-9e28-f7f819a45625/thumbnail/170x128/35d744ed96530e242c5305216809e517/m1-macbook-air.jpg"></span><noscript><span class="img "><img src="https://web.archive.org/web/20210826133042im_/https://www.zdnet.com/a/hub/i/r/2021/08/25/96fc3e1c-9e32-405c-9e28-f7f819a45625/thumbnail/170x128/35d744ed96530e242c5305216809e517/m1-macbook-air.jpg" class="" alt="" height="128" width="170"></span></noscript></figure> </a> </div> <div class="content"> <p> <a data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "related-stories", "pageType": "article"}" href="/web/20210826133042/https://www.zdnet.com/article/how-to-run-intel-windows-apps-on-an-m1-mac/">How to run Intel Windows apps on an M1 Mac</a> </p> <p class="dek"> I tested a 2005 x86 version of Palm Desktop on an Arm version of Windows on an M1 Apple Silicon Mac. But seriously, folks: You can go ahead and enjoy running x86 Windows applications on ... </p> </div> </li> </ul> </div> </div> </section> <div class="sticky-wrapper"> <section class="mpu scrolling-mpu" data-component="medusaContentRecommendation" data-medusa-content-recommendation-options="{"promo":"promo_zd_recommendation_bottom_mpu_desktop","spot":"content-bottom-mpu"}"> <div data-ad="mpu-bottom" data-ad-container="612793177a63b" class="ad-mpu-bottom ad-slot "> </div> </section> </div> </div> </div> </div> </div> <div class="row"> <div class="col-12"> <section class="leader leader-bottom" data-component="medusaContentRecommendation" data-medusa-content-recommendation-options="{"promo":"promo_zd_recommendation_bottom_leaderboard_desktop","spot":"content-bottom-leaderboard"}"> <div data-ad="leader-plus-bottom" data-ad-container="612793177a63b" class="ad-leader-plus-bottom ad-slot "> </div> </section> <div data-waypoint="e1658703-f6e3-4739-a035-21412d635fa5" data-component="magnet" data-magnet-options="{"data":[{"id":"9ca77949-b94e-4ce9-929a-83f2d175b954","title":"Technology News, Analysis, Comments and Product Reviews for IT Professionals | ZDNet","description":"ZDNet\u0027s breaking news, analysis, and research keeps business technology professionals in touch with the latest IT trends, issues and events.","slug":"homepage","ajaxUrl":"https:\/\/www.zdnet.com\/homepage\/xhr\/","url":"https:\/\/www.zdnet.com\/","refresh":false}],"currentItem":[{"id":"e1658703-f6e3-4739-a035-21412d635fa5","title":"Best smart thermostat 2021: Save energy efficiently","description":"Make your home smarter, automated, and more energy-efficient by getting one of the best smart thermostats on the market.","slug":"best-smart-thermostat","ajaxUrl":"https:\/\/www.zdnet.com\/article\/best-smart-thermostat\/xhr\/","url":"https:\/\/www.zdnet.com\/article\/best-smart-thermostat\/","refresh":false}]}"></div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> <footer role="contentinfo" class="footer-main"> <div class="container"> <div class="row"> <div class="col-6 siteHighlights"> <script type="application/ld+json">{ "@context": "https:\/\/web.archive.org\/web\/20210826133042\/http:\/\/schema.org", "@type": "Organization", "url": "https:\/\/web.archive.org\/web\/20210826133042\/https:\/\/www.zdnet.com\/", "contactPoint": [ { "@type": "ContactPoint", "telephone": "+1-415-344-2000", "contactType": "customer service" } ], "sameAs": [ "https:\/\/web.archive.org\/web\/20210826133042\/https:\/\/www.facebook.com\/ZDNet\/", "https:\/\/web.archive.org\/web\/20210826133042\/https:\/\/twitter.com\/zdnet", "https:\/\/web.archive.org\/web\/20210826133042\/https:\/\/www.linkedin.com\/company\/zdnet-com", "https:\/\/web.archive.org\/web\/20210826133042\/https:\/\/www.youtube.com\/channel\/UCr9QWb5RKLfaunjKHJZAdQQ" ] }</script> <a id="zd-logo" href="https://web.archive.org/web/20210826133042/https://www.zdnet.com/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "footer_zdlogo", "pageType": "article"}">ZDNet</a> <div class="connect"> <div class="connect-label">Connect with us</div> <div class="social-links-wrapper"> <a class="circle" target="_blank" rel="noopener noreferrer" href="https://web.archive.org/web/20210826133042/https://www.facebook.com/ZDNet/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "footer_fb", "pageType": "article"}" data-component="externalLink"> <svg viewbox="0 0 15.2 32"> <g> <path d="M15.2,11.1H9.6V7c0-1.2,1.3-1.5,1.9-1.5c0.6,0,3.6,0,3.6,0V0L11,0C5.4,0,4.1,4.1,4.1,6.7v4.4H0v5.6h4.1 c0,7.3,0,15.2,0,15.2h5.5c0,0,0-8.1,0-15.2h4.7L15.2,11.1z"></path> </g> </svg> </a> <a class="circle" target="_blank" rel="noopener noreferrer" href="https://web.archive.org/web/20210826133042/https://twitter.com/zdnet" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "footer_twitter", "pageType": "article"}" data-component="externalLink"> <svg viewbox="0 0 32.5 28.4"> <g> <path d="M32.5,3.4c-0.5,0.3-2.2,1-3.7,1.1c1-0.6,2.4-2.4,2.8-3.9c-0.9,0.6-3.1,1.6-4.2,1.6c0,0,0,0,0,0 C26.1,0.9,24.4,0,22.5,0c-3.7,0-6.7,3.2-6.7,7.2c0,0.6,0.1,1.1,0.2,1.6h0C11,8.7,5.1,6,1.8,1.3c-2,3.8-0.3,8,2,9.5 c-0.8,0.1-2.2-0.1-2.9-0.8c0,2.5,1.1,5.8,5.2,7c-0.8,0.5-2.2,0.3-2.8,0.2c0.2,2.1,3,4.9,6,4.9c-1.1,1.3-4.7,3.8-9.3,3 c3.1,2,6.7,3.2,10.5,3.2c10.8,0,19.2-9.4,18.7-21.1c0,0,0,0,0,0c0,0,0-0.1,0-0.1c0,0,0-0.1,0-0.1C30.2,6.4,31.5,5.1,32.5,3.4z"></path> </g> </svg> </a> <a class="circle" target="_blank" rel="noopener noreferrer nofollow" href="https://web.archive.org/web/20210826133042/https://www.linkedin.com/company/zdnet-com" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "footer_linkedin", "pageType": "article"}" data-component="externalLink"> <svg viewbox="0 0 31.9 32"> <g> <path d="M24,8c-5.1,0.1-7.7,3.8-8,4V8h-6v24h6V18c0-0.5,1.3-4.6,6-4c2.5,0.2,3.9,3.5,4,4v14l6,0V15.4 C31.7,13,30.5,8.1,24,8z M0,32h6V8H0V32z M3,0C1.3,0,0,1.3,0,3s1.3,3,3,3c1.7,0,3-1.3,3-3S4.7,0,3,0z"></path> </g> </svg> </a> <a class="circle youtube" target="_blank" rel="noopener noreferrer" href="https://web.archive.org/web/20210826133042/https://www.youtube.com/channel/UCr9QWb5RKLfaunjKHJZAdQQ" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "footer_yt", "pageType": "article"}" data-component="externalLink"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24"><path d="M4.652 0h1.44l.988 3.702.916-3.702h1.454l-1.665 5.505v3.757h-1.431v-3.757l-1.702-5.505zm6.594 2.373c-1.119 0-1.861.74-1.861 1.835v3.349c0 1.204.629 1.831 1.861 1.831 1.022 0 1.826-.683 1.826-1.831v-3.349c0-1.069-.797-1.835-1.826-1.835zm.531 5.127c0 .372-.19.646-.532.646-.351 0-.554-.287-.554-.646v-3.179c0-.374.172-.651.529-.651.39 0 .557.269.557.651v3.179zm4.729-5.07v5.186c-.155.194-.5.512-.747.512-.271 0-.338-.186-.338-.46v-5.238h-1.27v5.71c0 .675.206 1.22.887 1.22.384 0 .918-.2 1.468-.853v.754h1.27v-6.831h-1.27zm2.203 13.858c-.448 0-.541.315-.541.763v.659h1.069v-.66c.001-.44-.092-.762-.528-.762zm-4.703.04c-.084.043-.167.109-.25.198v4.055c.099.106.194.182.287.229.197.1.485.107.619-.067.07-.092.105-.241.105-.449v-3.359c0-.22-.043-.386-.129-.5-.147-.193-.42-.214-.632-.107zm4.827-5.195c-2.604-.177-11.066-.177-13.666 0-2.814.192-3.146 1.892-3.167 6.367.021 4.467.35 6.175 3.167 6.367 2.6.177 11.062.177 13.666 0 2.814-.192 3.146-1.893 3.167-6.367-.021-4.467-.35-6.175-3.167-6.367zm-12.324 10.686h-1.363v-7.54h-1.41v-1.28h4.182v1.28h-1.41v7.54zm4.846 0h-1.21v-.718c-.223.265-.455.467-.696.605-.652.374-1.547.365-1.547-.955v-5.438h1.209v4.988c0 .262.063.438.322.438.236 0 .564-.303.711-.487v-4.939h1.21v6.506zm4.657-1.348c0 .805-.301 1.431-1.106 1.431-.443 0-.812-.162-1.149-.583v.5h-1.221v-8.82h1.221v2.84c.273-.333.644-.608 1.076-.608.886 0 1.18.749 1.18 1.631v3.609zm4.471-1.752h-2.314v1.228c0 .488.042.91.528.91.511 0 .541-.344.541-.91v-.452h1.245v.489c0 1.253-.538 2.013-1.813 2.013-1.155 0-1.746-.842-1.746-2.013v-2.921c0-1.129.746-1.914 1.837-1.914 1.161 0 1.721.738 1.721 1.914v1.656z"></path></svg> </a> </div> </div> <p class="copyright">漏 2021 ZDNET, A RED VENTURES COMPANY. ALL RIGHTS RESERVED. <a href="https://web.archive.org/web/20210826133042/https://redventures.com/privacy-policy.html" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "footer_TOS", "pageType": "article"}" rel="nofollow noopener noreferrer" target="_blank" data-component="externalLink">Privacy Policy</a> | <a class="ot-sdk-show-settings" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "footer_TOS", "pageType": "article"}" rel="nofollow noopener" target="_blank">Cookie Settings</a> | <a href="/web/20210826133042/https://www.zdnet.com/advertise/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "footer_TOS", "pageType": "article"}" rel="nofollow" target="_blank" data-vanity-rewritten="true">Advertise</a> | <a href="https://web.archive.org/web/20210826133042/https://redventures.com/CMG-terms-of-use.html" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "footer_TOS", "pageType": "article"}" rel="nofollow noopener noreferrer" target="_blank" data-component="externalLink">Terms of Use</a> </p> </div> <div class="col-2 alpha"> <ul> <li><a href="https://web.archive.org/web/20210826133042/https://www.zdnet.com/topic/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "footer_topic", "pageType": "article"}">Topics</a></li> <li><a href="https://web.archive.org/web/20210826133042/https://www.zdnet.com/pictures/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "footer_galleries", "pageType": "article"}">Galleries</a></li> <li><a href="https://web.archive.org/web/20210826133042/https://www.zdnet.com/video/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "footer_videos", "pageType": "article"}">Videos</a></li> <li><a href="https://web.archive.org/web/20210826133042/http://narratives.zdnet.com/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "footer_sponsored", "pageType": "article"}">Sponsored Narratives</a></li> <li><a href="https://web.archive.org/web/20210826133042/https://privacyportal.onetrust.com/webform/79ba7c84-ebc2-4740-8d11-bf1cc4501e59/ae88e03f-2b16-4276-9980-27124ba4b2c1" rel="noopener noreferrer nofollow" target="_blank" data-component="externalLink">Do Not Sell My Information</a></li> </ul> </div> <div class="col-2 beta"> <ul> <li><a href="/web/20210826133042/https://www.zdnet.com/about/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "footer-links", "pageType": "article"}" data-vanity-rewritten="true">About ZDNet</a></li> <li><a href="/web/20210826133042/https://www.zdnet.com/meet-the-team/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "footer-links", "pageType": "article"}" data-vanity-rewritten="true">Meet The Team</a></li> <li><a href="https://web.archive.org/web/20210826133042/https://www.zdnet.com/blog/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "footer_authors", "pageType": "article"}">All Authors</a></li> <li><a href="/web/20210826133042/https://www.zdnet.com/rssfeeds/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "footer-links", "pageType": "article"}" data-vanity-rewritten="true">RSS Feeds</a></li> <li><a href="/web/20210826133042/https://www.zdnet.com/sitemap/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "footer-links", "pageType": "article"}" data-vanity-rewritten="true">Site Map</a></li> <li><a href="/web/20210826133042/https://www.zdnet.com/reprints/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "footer-links", "pageType": "article"}" data-vanity-rewritten="true">Reprint Policy</a></li> </ul> </div> <div class="col-2 gamma"> <ul> <li class="loggedIn"> <a href="https://web.archive.org/web/20210826133042/https://www.zdnet.com/members/preferences/" rel="nofollow">Manage</a> | <a href="https://web.archive.org/web/20210826133042/https://www.zdnet.com/user/logout/" rel="nofollow" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "trackLogout", "pageType": "article"}">Log Out</a> <span class="zduser"> <svg class=" user_alt"> <use xlink:href="/web/20210826133042im_/https://www.zdnet.com/article/best-smart-thermostat/#user_alt"></use> </svg> </span> </li> <li class="loggedOut"> <a data-authentication="{"appId":1101,"position":"footer","redirect":"https:\/\/www.zdnet.com\/members\/preferences\/"}" rel="nofollow">Join</a> | <a data-authentication="{"appId":1101,"position":"footer"}" rel="nofollow">Log In</a> </li> <li class="loggedOut"> <a href="/web/20210826133042/https://www.zdnet.com/about/" rel="nofollow" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "Footer-Services", "pageType": "article"}" data-vanity-rewritten="true">Membership</a> </li> <li><a href="/web/20210826133042/https://www.zdnet.com/newsletters/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "footer_newsletter", "pageType": "article"}" data-vanity-rewritten="true">Newsletters</a></li> <li><a href="https://web.archive.org/web/20210826133042/https://support.zdnet.com/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "footer_assistance", "pageType": "article"}">Site Assistance</a></li> <li><a href="https://web.archive.org/web/20210826133042/https://academy.zdnet.com/" data-omniture-track="moduleClick" data-omniture-track-data="{"moduleInfo": "footer_academy", "pageType": "article"}">ZDNet Academy</a></li> </ul> </div> </div> </div> </footer> <script> // Source: https://gist.github.com/jcxplorer/823878/ // Licence: Public Domain function UUIDv4 (){var b="",a,c;for(a=0;32>a;a++){c=16*Math.random()|0;if(8==a||12==a||16==a||20==a)b+="-";b+=(12==a?4:16==a?c&3|8:c).toString(16)}return b}; var __tealium_data_guid = UUIDv4(), utag_data = {"isEnabled":true,"articleAuthorId":["b8bbed42-666a-452f-851a-53b974d52259"],"articleAuthorName":["aj dellinger"],"articleId":"e1658703-f6e3-4739-a035-21412d635fa5","articlePubDate":"2021-08-25 14:43:00","articleTitle":"best smart thermostat 2021: save energy efficiently","articleType":"content_article","collectionId":[],"collectionName":[],"deviceType":"desktop","isDev":"0","pageType":"article","siteHier":["hardware","networking","reviews","best lists","zdnet recommends"],"siteSection":"editorial","siteType":"responsive web","topicId":["10666ed8-ec91-11e3-95d2-02911863765e","10e2a445-ec91-11e3-95d2-02911863765e","112a7545-ec91-11e3-95d2-02911863765e","af36937c-c95c-4bf0-9c02-831f70ad9a0c","f1f7db06-c6f9-4e80-8187-60ad48f035a1"],"topicName":["hardware","networking","reviews","best lists","zdnet recommends"],"buyingCycle":"compare","siteId":2,"bkSiteId":3330,"limit":4,"articleSubType":"best-list","collectionSlug":[],"assetCompany":["google","amazon","apple","samsung","honeywell, inc.","microsoft"],"rsid":"cnetzdnetglobalsite","siteName":"zdnet","tealium":{"profile":"zdnet","env":"prod"}}; utag_data.pageViewGuid = __tealium_data_guid; </script> <script async data-main="https://www.zdnet.com/a/fly/982281-fly/js/main.default.js" src="https://web.archive.org/web/20210826133042js_/https://www.zdnet.com/a/fly/js/libs/require-2.1.2.js"></script> </body> </html> <!-- FILE ARCHIVED ON 13:30:42 Aug 26, 2021 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 16:06:26 Nov 30, 2024. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). --> <!-- playback timings (ms): captures_list: 0.551 exclusion.robots: 0.026 exclusion.robots.policy: 0.016 esindex: 0.011 cdx.remote: 19.367 LoadShardBlock: 133.063 (3) PetaboxLoader3.datanode: 126.524 (4) PetaboxLoader3.resolve: 3132.857 (2) load_resource: 3162.613 -->