1!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="221d9837-45e4-467b-b352-753bd27f55d7",e._sentryDebugIdIdentifier="sentry-dbid-221d9837-45e4-467b-b352-753bd27f55d7")}catch(e){}}(),(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3185],{1476:function(e,t,n){Promise.resolve().then(n.t.bind(n,7960,23)),Promise.resolve().then(n.bind(n,8094)),Promise.resolve().then(n.bind(n,9113)),Promise.resolve().then(n.bind(n,9197)),Promise.resolve().then(n.bind(n,1952)),Promise.resolve().then(n.t.bind(n,8003,23))},8094:function(e,t,n){"use strict";n.d(t,{PageViewTracker:function(){return u}});var r=n(7437),i=n(9376),o=n(2265),a=n(3548),s=n(279);function c(){let e=(0,i.usePathname)(),t=(0,i.useSearchParams)(),n=(0,o.useRef)(Date.now()),r=(0,o.useRef)(0),c=(0,o.useRef)(null);return(0,o.useEffect)(()=>{var i;let o=n.current,u=r.current,l=c.current,d="".concat(e).concat((null==t?void 0:t.toString())?"?".concat(t.toString()):"");l&&l!==d&&(0,a.j)("page_left",{properties:{path:l,duration_ms:Date.now()-o,max_scroll_pct:u}}),(0,a.j)("page_view",{articleSlug:function(e){let t=e.match(/^\/articles\/([a-z0-9-]+)\/?$/);return t?t[1]:null}(e),properties:{path:d,referrer:document.referrer||void 0,section:null!==(i="/"===e?"home":e.startsWith("/articles")?"article":e.startsWith("/deep-dives")?"deep_dive":e.startsWith("/labs")?"lab":e.startsWith("/funnies")?"funnies":"/tag/startups"===e?"startups":"/tag/data"===e?"data":e.startsWith("/tag/")?"tag":e.startsWith("/startups")?"startups":e.startsWith("/data")?"data":"/benchmarks"===e?"benchmarks":"/mobile"===e?"mobile_landing":"/saved"===e?"saved":e.startsWith("/control-9k2x")?"admin":"/play/cook"===e?"play_cook":"/play/timed"===e?"play_timed":e.startsWith("/play/category")?"play_category":"/play/1v1"===e||e.startsWith("/play/1v1/")?"play_1v1":e.startsWith("/play")?"play":null)&&void 0!==i?i:void 0,...(0,s.S)(null==t?void 0:t.toString())}}),c.current=d,n.current=Date.now(),r.current=0},[e,t]),(0,o.useEffect)(()=>{function e(){let e=document.documentElement,t=e.scrollHeight-e.clientHeight;if(t<=0)return;let n=Math.min(100,Math.round(e.scrollTop/t*100));n>r.current&&(r.current=n)}return window.addEventListener("scroll",e,{passive:!0}),()=>window.removeEventListener("scroll",e)},[]),(0,o.useEffect)(()=>
1{function e(){let e=c.current;e&&(0,a.j)("page_left",{properties:{path:e,duration_ms:Date.now()-n.current,max_scroll_pct:r.current}})}return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[]),null}function u(){return(0,r.jsx)(o.Suspense,{fallback:null,children:(0,r.jsx)(c,{})})}},9113:function(e,t,n){"use strict";n.d(t,{PostHogProvider:function(){return o}});var r=n(2265),i=n(6214);function o(){return(0,r.useEffect)(()=>{let e="phc_JAuMDhycVtjhIdXnaEskIjLcxFQLvZJy6vw6RjuYBbT";if(!e||window.location.pathname.startsWith("/control-9k2x"))return;let t=null;try{t=window.localStorage.getItem("ftnews:analytics-anon")}catch(e){}i.ZP.init(e,{api_host:"https://us.i.posthog.com",autocapture:!1,capture_pageview:!1,capture_pageleave:!1,session_recording:{maskAllInputs:!0},loaded:e=>{t&&e.identify(t)}})},[]),null}},279:function(e,t,n){"use strict";n.d(t,{S:function(){return i}});let r=["utm_source","utm_medium","utm_campaign"];function i(e){let t;if(!e)return{};try{t=new URLSearchParams(e.startsWith("?")?e.slice(1):e)}catch(e){return{}}let n={};for(let e of r){var i;let r=null===(i=t.get(e))||void 0===i?void 0:i.trim();r&&(n[e]=r.slice(0,200))}return n}},3548:function(e,t,n){"use strict";n.d(t,{j:function(){return a}});let r="/api/events";function i(){return"undefined"!=typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():"".concat(Date.now().toString(36),"-").concat(Math.random().toString(36).slice(2,10))}function o(e,t){if(!e)return i();try{let n=e.getItem(t);if(n)return n;let r=i();return e.setItem(t,r),r}catch(e){return i()}}function a(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};try{var n,i;let a=JSON.stringify({event_name:e,article_slug:null!==(n=t.articleSlug)&&void 0!==n?n:null,properties:null!==(i=t.properties)&&void 0!==i?i:{},session_id:o(window.sessionStorage,"ftnews:analytics-session"),anon_id:o(window.localStorage,"ftnews:analytics-anon"),surface:"web"});if("undefined"!=typeof navigator&&"function"==typeof navigator.sendBeacon){let e=new Blob([a],{type:"application/json"});if(navigator.sendBeacon(r,e))return}fetch(r,{method:"POST",headers:{"Content-Type":"application/json"},body:a,keepalive:!0}).catch(()=>{})}catch(e){}}},9376:function(e,t,n){"use strict";var r=n(5475);n.o(r,"useParams")&&n.d(t,{useParams:function(){return r.useParams}}),n.o(r,"usePathname")&&n.d(t,{usePathname:function(){return r.usePathname}}),n.o(r,"useRouter")&&n.d(t,{useRouter:function(){return r.useRouter}}),n.o(r,"useSearchParams")&&n.d(t,{useSearchParams:function(){return r.useSearchParams}})},3515:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{cancelIdleCallback:function(){return r},requestIdleCallback:function(){return n}});let n="undefined"!=typeof self&&self.requestIdleCallback&&self.requestIdleCallback.bind(window)||function(e){let t=Date.now();return self.setTimeout(function(){e({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-t))}})},1)},r="undefined"!=typeof self&&self.cancelIdleCallback&&self.cancelIdleCallback.bind(window)||function(e){return clearTimeout(e)};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},7960:function(){},9197:function(e,t,n){"use strict";n.d(t,{Analytics:function(){return h}});var r=n(2265),i=n(9376),o=n(257),a=()=>{window.va||(window.va=function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];window.vaq||(window.vaq=[]),window.vaq.push(t)})};function s(){return"undefined"!=typeof window}function c(){return"production"}function u(){return"development"===((s()?window.vam:c())||"production")}function l(e){return new RegExp("/".concat(e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"(?=[/?#]|$)"))}function d(e){return e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/")?e:"/".concat(e)}function f(e){return(0,r.useEffect)(()=>{var t;e.beforeSend&&(null==(t=window.va)||t.call(window,"beforeSend",e.beforeSend))},[e.beforeSend]),(0,r.useEffect)(()=>{var t,n;!function(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{debug:!0},n=arguments.length>1?arguments[1]:void 0;if(!s())return;let{beforeSend:r,src:i,dataset:o}=function(e,t){var n,r;let i=e;if(t)try{i={...null==(n=JSON.parse(t))?void 0:n.analytics,...e}}catch(e){}!function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"auto";if("auto"===e){window.vam=c();return}window.vam=e}(i.mode);
1let o={sdkn:"@vercel/analytics"+(i.framework?"/".concat(i.framework):""),sdkv:"2.0.1"};return i.disableAutoTrack&&(o.disableAutoTrack="1"),i.viewEndpoint&&(o.viewEndpoint=d(i.viewEndpoint)),i.eventEndpoint&&(o.eventEndpoint=d(i.eventEndpoint)),i.sessionEndpoint&&(o.sessionEndpoint=d(i.sessionEndpoint)),u()&&!1===i.debug&&(o.debug="false"),i.dsn&&(o.dsn=i.dsn),i.endpoint?o.endpoint=i.endpoint:i.basePath&&(o.endpoint=d("".concat(i.basePath,"/insights"))),{beforeSend:i.beforeSend,src:(r=i).scriptSrc?d(r.scriptSrc):u()?"https://va.vercel-scripts.com/v1/script.debug.js":r.basePath?d("".concat(r.basePath,"/insights/script.js")):"/_vercel/insights/script.js",dataset:o}}(t,n);if(a(),r&&(null==(e=window.va)||e.call(window,"beforeSend",r)),document.head.querySelector('script[src*="'.concat(i,'"]')))return;let l=document.createElement("script");for(let[e,t]of(l.src=i,Object.entries(o)))l.dataset[e]=t;l.defer=!0,l.onerror=()=>{let e=u()?"Please check if any ad blockers are enabled and try again.":"Be sure to enable Web Analytics for your project and deploy again. See https://vercel.com/docs/analytics/quickstart for more information.";console.log("[Vercel Web Analytics] Failed to load script from ".concat(i,". ").concat(e))},document.head.appendChild(l)}({framework:e.framework||"react",basePath:null!==(t=e.basePath)&&void 0!==t?t:function(){if(void 0!==o&&void 0!==o.env)return o.env.REACT_APP_VERCEL_OBSERVABILITY_BASEPATH}(),...void 0!==e.route&&{disableAutoTrack:!0},...e},null!==(n=e.configString)&&void 0!==n?n:function(){if(void 0!==o&&void 0!==o.env)return o.env.REACT_APP_VERCEL_OBSERVABILITY_CLIENT_CONFIG}())},[]),(0,r.useEffect)(()=>{e.route&&e.path&&function(e){var t;let{route:n,path:r}=e;null==(t=window.va)||t.call(window,"pageview",{route:n,path:r})}({route:e.route,path:e.path})},[e.route,e.path]),null}var p=()=>{let e=(0,i.useParams)(),t=(0,i.useSearchParams)(),n=(0,i.usePathname)();return e?{route:function(e,t){if(!e||!t)return e;let n=e;try{let e=Object.entries(t);for(let[t,r]of e)if(!Array.isArray(r)){let e=l(r);e.test(n)&&(n=n.replace(e,"/[".concat(t,"]")))}for(let[t,r]of e)if(Array.isArray(r)){let e=l(r.join("/"));e.test(n)&&(n=n.replace(e,"/[...".concat(t,"]")))}return n}catch(t){return e}}(n,Object.keys(e).length?e:Object.fromEntries(t.entries())),path:n}:{route:null,path:n}};function v(e){let{route:t,path:n}=p();return r.createElement(f,{path:n,route:t,...e,basePath:function(){if(void 0!==o&&void 0!==o.env)return o.env.NEXT_PUBLIC_VERCEL_OBSERVABILITY_BASEPATH}
1(),configString:function(){if(void 0!==o&&void 0!==o.env)return'{"analytics":{"scriptSrc":"14561c2816481121/script.js","viewEndpoint":"14561c2816481121/view","eventEndpoint":"14561c2816481121/event","sessionEndpoint":"14561c2816481121/session"},"speedInsights":{"scriptSrc":"7726c76f9ce7ce72/script.js","endpoint":"7726c76f9ce7ce72/vitals"}}'}(),framework:"next"})}function h(e){return r.createElement(r.Suspense,{fallback:null},r.createElement(v,{...e}))}},1952:function(e,t,n){"use strict";n.d(t,{SpeedInsights:function(){return p}});var r=n(2265),i=n(9376),o=n(257),a=()=>{window.si||(window.si=function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];window.siq=window.siq||[],window.siq.push(t)})};function s(){return false}function c(e){return new RegExp("/".concat(e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"(?=[/?#]|$)"))}function u(e){return e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/")?e:"/".concat(e)}function l(e){(0,r.useEffect)(()=>{var t;e.beforeSend&&(null==(t=window.si)||t.call(window,"beforeSend",e.beforeSend))},[e.beforeSend]);let t=(0,r.useRef)(null);return(0,r.useEffect)(()=>{if(!t.current){var n,r,i;let s=function(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;if(!("undefined"!=typeof window)||null===t.route)return null;a();let{beforeSend:r,src:i,dataset:o}=function(e,t){var n,r;let i=e;if(t)try{i={...null==(n=JSON.parse(t))?void 0:n.speedInsights,...e}}catch(e){}let o={sdkn:"@vercel/speed-insights"+(i.framework?"/".concat(i.framework):""),sdkv:"2.0.0"};return i.sampleRate&&(o.sampleRate=i.sampleRate.toString()),i.route&&(o.route=i.route),i.dsn&&(o.dsn=i.dsn),i.endpoint?o.endpoint=u(i.endpoint):i.basePath&&(o.endpoint=u("".concat(i.basePath,"/speed-insights/vitals"))),{src:(r=i).scriptSrc?u(r.scriptSrc):r.dsn?"https://va.vercel-scripts.com/v1/speed-insights/script.js":r.basePath?u("".concat(r.basePath,"/speed-insights/script.js")):"/_vercel/speed-insights/script.js",beforeSend:i.beforeSend,dataset:o}}(t,n);if(document.head.querySelector('script[src*="'.concat(i,'"]')))return null;r&&(null==(e=window.si)||e.call(window,"beforeSend",r));let s=document.createElement("script");for(let[e,t]of(s.src=i,s.defer=!0,Object.entries(o)))s.dataset[e]=t;return s.onerror=()=>{console.log("[Vercel Speed Insights] Failed to load script from ".concat(i,". Please check if any content blockers are enabled and try again."))},document.head.appendChild(s),{setRoute:e=>{s.dataset.route=null!=e?e:void 0}}}({framework:null!==(n=e.framework)&&void 0!==n?n:"react",basePath:null!==(r=e.basePath)&&void 0!==r?r:function(){if(void 0!==o&&void 0!==o.env)return o.env.REACT_APP_VERCEL_OBSERVABILITY_BASEPATH}(),...e},null!==(i=e.configString)&&void 0!==i?i:function(){if(void 0!==o&&void 0!==o.env)return o.env.REACT_APP_VERCEL_OBSERVABILITY_CLIENT_CONFIG}());s&&(t.current=s.setRoute)}},[e]),(0,r.useEffect)(()=>{t.current&&e.route&&t.current(e.route)},[e.route]),null}var d=()=>{let e=(0,i.useParams)(),t=(0,i.useSearchParams)()||new URLSearchParams,n=(0,i.usePathname)();return e?function(e,t){if(!e||!t)return e;let n=e;try{let e=Object.entries(t);for(let[t,r]of e)if(!Array.isArray(r)){let e=c(r);e.test(n)&&(n=n.replace(e,"/[".concat(t,"]")))}for(let[t,r]of e)if(Array.isArray(r)){let e=c(r.join("/"));e.test(n)&&(n=n.replace(e,"/[...".concat(t,"]")))}return n}catch(t){return e}}(n,Object.keys(e).length?e:Object.fromEntries(t.entries())):null};function f(e){let t=d();return r.createElement(l,{route:t,...e,framework:"next",basePath:function(){if(void 0!==o&&void 0!==o.env)return o.env.NEXT_PUBLIC_VERCEL_OBSERVABILITY_BASEPATH}
1(),configString:function(){if(void 0!==o&&void 0!==o.env)return'{"analytics":{"scriptSrc":"14561c2816481121/script.js","viewEndpoint":"14561c2816481121/view","eventEndpoint":"14561c2816481121/event","sessionEndpoint":"14561c2816481121/session"},"speedInsights":{"scriptSrc":"7726c76f9ce7ce72/script.js","endpoint":"7726c76f9ce7ce72/vitals"}}'}()})}function p(e){return r.createElement(r.Suspense,{fallback:null},r.createElement(f,{...e}))}}},function(e){e.O(0,[8466,8310,8950,3840,5972,5878,8003,2971,248,1744],function(){return e(e.s=1476)}),_N_E=e.O()}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.