1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3974],{53974:function(e,t,n){n.d(t,{S1:function(){return o},Vd:function(){return u},ZZ:function(){return l},b:function(){return i},iP:function(){return c}});var r=n(2265);function u(e){let t=r.useRef(null),n=r.useRef(e);return r.useLayoutEffect(()=>{n.current=e}),r.useEffect(()=>{let e=e=>{let r=t.current;r&&!r.contains(e.target)&&n.current(e)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e)}},[]),t}function l(e={}){let[t,n]=r.useState({loading:!0,accuracy:null,altitude:null,altitudeAccuracy:null,heading:null,latitude:null,longitude:null,speed:null,timestamp:null,error:null}),u=r.useRef(e);return r.useEffect(()=>{let e=({coords:e,timestamp:t})=>{n({loading:!1,timestamp:t,latitude:e.latitude,longitude:e.longitude,altitude:e.altitude,accuracy:e.accuracy,altitudeAccuracy:e.altitudeAccuracy,heading:e.heading,speed:e.speed})},t=e=>{n(t=>({...t,loading:!1,error:e}))};navigator.geolocation.getCurrentPosition(e,t,u.current);let r=navigator.geolocation.watchPosition(e,t,u.current);return()=>{navigator.geolocation.clearWatch(r)}},[]),t}function o(e={}){let{threshold:t=1,root:n=null,rootMargin:u="0px"}=e,[l,o]=r.useState(null),i=r.useRef(null);return[r.useCallback(e=>{if(i.current&&(i.current.disconnect(),i.current=null),e?.nodeType===Node.ELEMENT_NODE){let r=new IntersectionObserver(([e])=>{o(e)},{threshold:t,root:n,rootMargin:u});r.observe(e),i.current=r}},[t,n,u]),l]}function i(){let[e,t]=r.useState({x:null,y:null}),n=r.useCallback((...e)=>{if("object"==typeof e[0])window.scrollTo(e[0]);else if("number"==typeof e[0]&&"number"==typeof e[1])window.scrollTo(e[0],e[1]);else throw Error("Invalid arguments passed to scrollTo. See here for more info. https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollTo")},[]);return r.useLayoutEffect(()=>{let e=()=>{t({x:window.scrollX,y:window.scrollY})};return e(),window.addEventListener("scroll",e),()=>{window.removeEventListener("scroll",e)}},[]),[e,n]}function c(){let[e,t]=r.useState({width:null,height:null});return r.useLayoutEffect(()=>{let e=()=>{t({width:window.innerWidth,height:window.innerHeight})};return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}},[]),e}}}]);
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.