@directo/adunit 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- var e={d:(t,n)=>{for(var a in n)e.o(n,a)&&!e.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:n[a]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{debug:()=>Td,error:()=>Md,fatal:()=>Rd,fmt:()=>xd,info:()=>Cd,trace:()=>Ed,warn:()=>Id});var n={};e.r(n),e.d(n,{count:()=>Od,distribution:()=>Pd,gauge:()=>Dd});var a={};e.r(a),e.d(a,{BrowserClient:()=>or,MULTIPLEXED_TRANSPORT_EXTRA_KEY:()=>Au,OpenFeatureIntegrationHook:()=>mw,SDK_VERSION:()=>c,SEMANTIC_ATTRIBUTE_SENTRY_OP:()=>Ze,SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN:()=>Qe,SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE:()=>Ke,SEMANTIC_ATTRIBUTE_SENTRY_SOURCE:()=>Ge,Scope:()=>Ce,WINDOW:()=>Qs,addBreadcrumb:()=>_r,addEventProcessor:()=>An,addIntegration:()=>yo,breadcrumbsIntegration:()=>Wr,browserApiErrorsIntegration:()=>Jr,browserProfilingIntegration:()=>cw,browserSessionIntegration:()=>Xr,browserTracingIntegration:()=>bb,buildLaunchDarklyFlagUsedHandler:()=>pw,captureConsoleIntegration:()=>Pu,captureEvent:()=>vn,captureException:()=>bn,captureFeedback:()=>qi,captureMessage:()=>wn,captureSession:()=>Ln,chromeStackLineParser:()=>wi,close:()=>In,consoleLoggingIntegration:()=>Fu,contextLinesIntegration:()=>fm,continueTrace:()=>Zu,createConsolaReporter:()=>ul,createLangChainCallbackHandler:()=>mp,createTransport:()=>_s,createUserFeedbackEnvelope:()=>tm,dedupeIntegration:()=>To,defaultRequestInstrumentationOptions:()=>Qy,defaultStackLineParsers:()=>Ii,defaultStackParser:()=>Mi,diagnoseSdkConnectivity:()=>bw,endSession:()=>Dn,eventFiltersIntegration:()=>vo,eventFromException:()=>Ys,eventFromMessage:()=>Gs,exceptionFromError:()=>Us,extraErrorDataIntegration:()=>hp,featureFlagsIntegration:()=>_p,feedbackAsyncIntegration:()=>Mu,feedbackIntegration:()=>Ru,feedbackSyncIntegration:()=>Ru,flush:()=>Cn,forceLoad:()=>Ui,functionToStringIntegration:()=>Eo,geckoStackLineParser:()=>ji,getActiveSpan:()=>Xt,getClient:()=>Ue,getCurrentScope:()=>Pe,getDefaultIntegrations:()=>$i,getFeedback:()=>oc,getGlobalScope:()=>Ne,getIsolationScope:()=>Le,getReplay:()=>ry,getRootSpan:()=>Kt,getSpanDescendants:()=>Gt,getSpanStatusFromHttpCode:()=>St,getTraceData:()=>jp,globalHandlersIntegration:()=>oi,graphqlClientIntegration:()=>Sm,growthbookIntegration:()=>kw,httpClientIntegration:()=>cm,httpContextIntegration:()=>ui,inboundFiltersIntegration:()=>_o,init:()=>Fi,instrumentAnthropicAiClient:()=>Pp,instrumentGoogleGenAIClient:()=>Vp,instrumentLangGraph:()=>Xp,instrumentOpenAiClient:()=>dd,instrumentOutgoingRequests:()=>eb,instrumentSupabaseClient:()=>_d,isEnabled:()=>Rn,isInitialized:()=>Mn,lastEventId:()=>Tn,launchDarklyIntegration:()=>lw,lazyLoadIntegration:()=>Iu,linkedErrorsIntegration:()=>hi,logger:()=>t,makeBrowserOfflineTransport:()=>Db,makeFetchTransport:()=>Ni,makeMultiplexedTransport:()=>Du,metrics:()=>n,moduleMetadataIntegration:()=>Ud,onLoad:()=>Bi,openFeatureIntegration:()=>dw,opera10StackLineParser:()=>Ei,opera11StackLineParser:()=>Ci,parameterize:()=>Sd,registerSpanErrorInstrumentation:()=>qd,registerWebWorker:()=>_w,replayCanvasIntegration:()=>Ly,replayIntegration:()=>ay,reportPageLoaded:()=>Eb,reportingObserverIntegration:()=>sm,rewriteFramesIntegration:()=>Jd,sendFeedback:()=>Gi,setActiveSpanInBrowser:()=>Tb,setContext:()=>_n,setCurrentClient:()=>Ro,setExtra:()=>Sn,setExtras:()=>jn,setHttpStatus:()=>xt,setMeasurement:()=>qu,setTag:()=>zn,setTags:()=>xn,setUser:()=>En,showReportDialog:()=>nm,spanToBaggageHeader:()=>sn,spanToJSON:()=>qt,spanToTraceHeader:()=>$t,spotlightBrowserIntegration:()=>uw,startBrowserTracingNavigationSpan:()=>vb,startBrowserTracingPageLoadSpan:()=>wb,startInactiveSpan:()=>Xu,startNewTrace:()=>tl,startSession:()=>On,startSpan:()=>Gu,startSpanManual:()=>Ku,statsigIntegration:()=>yw,supabaseIntegration:()=>jd,suppressTracing:()=>el,thirdPartyErrorFilterIntegration:()=>Yd,uiProfiler:()=>em,unleashIntegration:()=>hw,updateSpanName:()=>Qt,webWorkerIntegration:()=>ww,winjsStackLineParser:()=>xi,withActiveSpan:()=>Qu,withIsolationScope:()=>Fe,withScope:()=>$e,zodErrorsIntegration:()=>Qd});class o extends Error{source;constructor(e,t){super(e),this.name="ApiError",this.source=t}}class s extends o{constructor(e){super(`Fetch error: ${e.message}`,e)}}class r extends o{status;statusText;response;constructor(e){const{status:t,statusText:n}=e;super(`Status error (${t}): ${n}`),this.status=t,this.statusText=n,this.response=e}}class i extends o{response;constructor(e,t){const[n,a]="string"==typeof t?[t,void 0]:[t.message,t];super(`Response body error: ${n}`,a),this.response=e}}const c="10.29.0",u=globalThis;function l(){return p(u),u}function p(e){const t=e.__SENTRY__=e.__SENTRY__||{};return t.version=t.version||c,t[c]=t[c]||{}}function d(e,t,n=u){const a=n.__SENTRY__=n.__SENTRY__||{},o=a[c]=a[c]||{};return o[e]||(o[e]=t())}const m="undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__,h=Object.prototype.toString;function g(e){switch(h.call(e)){case"[object Error]":case"[object Exception]":case"[object DOMException]":case"[object WebAssembly.Exception]":return!0;default:return x(e,Error)}}function f(e,t){return h.call(e)===`[object ${t}]`}function k(e){return f(e,"ErrorEvent")}function y(e){return f(e,"DOMError")}function b(e){return f(e,"String")}function w(e){return"object"==typeof e&&null!==e&&"__sentry_template_string__"in e&&"__sentry_template_values__"in e}function v(e){return null===e||w(e)||"object"!=typeof e&&"function"!=typeof e}function _(e){return f(e,"Object")}function j(e){return"undefined"!=typeof Event&&x(e,Event)}function S(e){return Boolean(e?.then&&"function"==typeof e.then)}function x(e,t){try{return e instanceof t}catch{return!1}}function z(e){return!("object"!=typeof e||null===e||!(e.__isVue||e._isVue||e.__v_isVNode))}function E(e){return"undefined"!=typeof Request&&x(e,Request)}const T=u,C=80;function I(e,t={}){if(!e)return"<unknown>";try{let n=e;const a=5,o=[];let s=0,r=0;const i=" > ",c=i.length;let u;const l=Array.isArray(t)?t:t.keyAttrs,p=!Array.isArray(t)&&t.maxStringLength||C;for(;n&&s++<a&&(u=M(n,l),!("html"===u||s>1&&r+o.length*c+u.length>=p));)o.push(u),r+=u.length,n=n.parentNode;return o.reverse().join(i)}catch{return"<unknown>"}}function M(e,t){const n=e,a=[];if(!n?.tagName)return"";if(T.HTMLElement&&n instanceof HTMLElement&&n.dataset){if(n.dataset.sentryComponent)return n.dataset.sentryComponent;if(n.dataset.sentryElement)return n.dataset.sentryElement}a.push(n.tagName.toLowerCase());const o=t?.length?t.filter(e=>n.getAttribute(e)).map(e=>[e,n.getAttribute(e)]):null;if(o?.length)o.forEach(e=>{a.push(`[${e[0]}="${e[1]}"]`)});else{n.id&&a.push(`#${n.id}`);const e=n.className;if(e&&b(e)){const t=e.split(/\s+/);for(const e of t)a.push(`.${e}`)}}const s=["aria-label","type","name","title","alt"];for(const e of s){const t=n.getAttribute(e);t&&a.push(`[${e}="${t}"]`)}return a.join("")}function R(){try{return T.document.location.href}catch{return""}}function A(e){if(!T.HTMLElement)return null;let t=e;for(let e=0;e<5;e++){if(!t)return null;if(t instanceof HTMLElement){if(t.dataset.sentryComponent)return t.dataset.sentryComponent;if(t.dataset.sentryElement)return t.dataset.sentryElement}t=t.parentNode}return null}const O=["debug","info","warn","error","log","assert","trace"],D={};function P(e){if(!("console"in u))return e();const t=u.console,n={},a=Object.keys(D);a.forEach(e=>{const a=D[e];n[e]=t[e],t[e]=a});try{return e()}finally{a.forEach(e=>{t[e]=n[e]})}}function L(){return $().enabled}function N(e,...t){m&&L()&&P(()=>{u.console[e](`Sentry Logger [${e}]:`,...t)})}function $(){return m?d("loggerSettings",()=>({enabled:!1})):{enabled:!1}}const F={enable:function(){$().enabled=!0},disable:function(){$().enabled=!1},isEnabled:L,log:function(...e){N("log",...e)},warn:function(...e){N("warn",...e)},error:function(...e){N("error",...e)}};function U(e,t,n){if(!(t in e))return;const a=e[t];if("function"!=typeof a)return;const o=n(a);"function"==typeof o&&q(o,a);try{e[t]=o}catch{m&&F.log(`Failed to replace method "${t}" in object`,e)}}function B(e,t,n){try{Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0})}catch{m&&F.log(`Failed to add non-enumerable property "${t}" to object`,e)}}function q(e,t){try{const n=t.prototype||{};e.prototype=t.prototype=n,B(e,"__sentry_original__",t)}catch{}}function H(e){return e.__sentry_original__}function W(e){if(g(e))return{message:e.message,name:e.name,stack:e.stack,...J(e)};if(j(e)){const t={type:e.type,target:V(e.target),currentTarget:V(e.currentTarget),...J(e)};return"undefined"!=typeof CustomEvent&&x(e,CustomEvent)&&(t.detail=e.detail),t}return e}function V(e){try{return"undefined"!=typeof Element&&x(e,Element)?I(e):Object.prototype.toString.call(e)}catch{return"<unknown>"}}function J(e){if("object"==typeof e&&null!==e){const t={};for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t}return{}}const Y=50,G="?",K=/\(error: (.*)\)/,X=/captureMessage|captureException/;function Z(...e){const t=e.sort((e,t)=>e[0]-t[0]).map(e=>e[1]);return(e,n=0,a=0)=>{const o=[],s=e.split("\n");for(let e=n;e<s.length;e++){let n=s[e];n.length>1024&&(n=n.slice(0,1024));const r=K.test(n)?n.replace(K,"$1"):n;if(!r.match(/\S*Error: /)){for(const e of t){const t=e(r);if(t){o.push(t);break}}if(o.length>=Y+a)break}}return function(e){if(!e.length)return[];const t=Array.from(e);return/sentryWrapped/.test(Q(t).function||"")&&t.pop(),t.reverse(),X.test(Q(t).function||"")&&(t.pop(),X.test(Q(t).function||"")&&t.pop()),t.slice(0,Y).map(e=>({...e,filename:e.filename||Q(t).filename,function:e.function||G}))}(o.slice(a))}}function Q(e){return e[e.length-1]||{}}const ee="<anonymous>";function te(e){try{return e&&"function"==typeof e&&e.name||ee}catch{return ee}}function ne(e){const t=e.exception;if(t){const e=[];try{return t.values.forEach(t=>{t.stacktrace.frames&&e.push(...t.stacktrace.frames)}),e}catch{return}}}function ae(e){return"__v_isVNode"in e&&e.__v_isVNode?"[VueVNode]":"[VueViewModel]"}function oe(e,t=0){return"string"!=typeof e||0===t||e.length<=t?e:`${e.slice(0,t)}...`}function se(e,t){let n=e;const a=n.length;if(a<=150)return n;t>a&&(t=a);let o=Math.max(t-60,0);o<5&&(o=0);let s=Math.min(o+140,a);return s>a-5&&(s=a),s===a&&(o=Math.max(s-140,0)),n=n.slice(o,s),o>0&&(n=`'{snip} ${n}`),s<a&&(n+=" {snip}"),n}function re(e,t){if(!Array.isArray(e))return"";const n=[];for(let t=0;t<e.length;t++){const a=e[t];try{z(a)?n.push(ae(a)):n.push(String(a))}catch{n.push("[value cannot be serialized]")}}return n.join(t)}function ie(e,t,n=!1){return!!b(e)&&(f(t,"RegExp")?t.test(e):!!b(t)&&(n?e===t:e.includes(t)))}function ce(e,t=[],n=!1){return t.some(t=>ie(e,t,n))}let ue;function le(e=function(){const e=u;return e.crypto||e.msCrypto}()){try{if(e?.randomUUID)return e.randomUUID().replace(/-/g,"")}catch{}return ue||(ue=[1e7]+1e3+4e3+8e3+1e11),ue.replace(/[018]/g,e=>(e^(16*Math.random()&15)>>e/4).toString(16))}function pe(e){return e.exception?.values?.[0]}function de(e){const{message:t,event_id:n}=e;if(t)return t;const a=pe(e);return a?a.type&&a.value?`${a.type}: ${a.value}`:a.type||a.value||n||"<unknown>":n||"<unknown>"}function me(e,t,n){const a=e.exception=e.exception||{},o=a.values=a.values||[],s=o[0]=o[0]||{};s.value||(s.value=t||""),s.type||(s.type=n||"Error")}function he(e,t){const n=pe(e);if(!n)return;const a=n.mechanism;if(n.mechanism={type:"generic",handled:!0,...a,...t},t&&"data"in t){const e={...a?.data,...t.data};n.mechanism.data=e}}function ge(e){if(function(e){try{return e.__sentry_captured__}catch{}}(e))return!0;try{B(e,"__sentry_captured__",!0)}catch{}return!1}const fe=1e3;function ke(){return Date.now()/fe}let ye,be;function we(){return(ye??(ye=function(){const{performance:e}=u;if(!e?.now||!e.timeOrigin)return ke;const t=e.timeOrigin;return()=>(t+e.now())/fe}()))()}function ve(){return be||(be=function(){const{performance:e}=u;if(!e?.now)return[void 0,"none"];const t=36e5,n=e.now(),a=Date.now(),o=e.timeOrigin?Math.abs(e.timeOrigin+n-a):t,s=o<t,r=e.timing?.navigationStart,i="number"==typeof r?Math.abs(r+n-a):t;return s||i<t?o<=i?[e.timeOrigin,"timeOrigin"]:[r,"navigationStart"]:[a,"dateNow"]}()),be[0]}function _e(e,t={}){if(t.user&&(!e.ipAddress&&t.user.ip_address&&(e.ipAddress=t.user.ip_address),e.did||t.did||(e.did=t.user.id||t.user.email||t.user.username)),e.timestamp=t.timestamp||we(),t.abnormal_mechanism&&(e.abnormal_mechanism=t.abnormal_mechanism),t.ignoreDuration&&(e.ignoreDuration=t.ignoreDuration),t.sid&&(e.sid=32===t.sid.length?t.sid:le()),void 0!==t.init&&(e.init=t.init),!e.did&&t.did&&(e.did=`${t.did}`),"number"==typeof t.started&&(e.started=t.started),e.ignoreDuration)e.duration=void 0;else if("number"==typeof t.duration)e.duration=t.duration;else{const t=e.timestamp-e.started;e.duration=t>=0?t:0}t.release&&(e.release=t.release),t.environment&&(e.environment=t.environment),!e.ipAddress&&t.ipAddress&&(e.ipAddress=t.ipAddress),!e.userAgent&&t.userAgent&&(e.userAgent=t.userAgent),"number"==typeof t.errors&&(e.errors=t.errors),t.status&&(e.status=t.status)}function je(e,t,n=2){if(!t||"object"!=typeof t||n<=0)return t;if(e&&0===Object.keys(t).length)return e;const a={...e};for(const e in t)Object.prototype.hasOwnProperty.call(t,e)&&(a[e]=je(a[e],t[e],n-1));return a}function Se(){return le()}function xe(){return le().substring(16)}const ze="_sentrySpan";function Ee(e,t){t?B(e,ze,t):delete e[ze]}function Te(e){return e[ze]}class Ce{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._attributes={},this._extra={},this._contexts={},this._sdkProcessingMetadata={},this._propagationContext={traceId:Se(),sampleRand:Math.random()}}clone(){const e=new Ce;return e._breadcrumbs=[...this._breadcrumbs],e._tags={...this._tags},e._attributes={...this._attributes},e._extra={...this._extra},e._contexts={...this._contexts},this._contexts.flags&&(e._contexts.flags={values:[...this._contexts.flags.values]}),e._user=this._user,e._level=this._level,e._session=this._session,e._transactionName=this._transactionName,e._fingerprint=this._fingerprint,e._eventProcessors=[...this._eventProcessors],e._attachments=[...this._attachments],e._sdkProcessingMetadata={...this._sdkProcessingMetadata},e._propagationContext={...this._propagationContext},e._client=this._client,e._lastEventId=this._lastEventId,Ee(e,Te(this)),e}setClient(e){this._client=e}setLastEventId(e){this._lastEventId=e}getClient(){return this._client}lastEventId(){return this._lastEventId}addScopeListener(e){this._scopeListeners.push(e)}addEventProcessor(e){return this._eventProcessors.push(e),this}setUser(e){return this._user=e||{email:void 0,id:void 0,ip_address:void 0,username:void 0},this._session&&_e(this._session,{user:e}),this._notifyScopeListeners(),this}getUser(){return this._user}setTags(e){return this._tags={...this._tags,...e},this._notifyScopeListeners(),this}setTag(e,t){return this.setTags({[e]:t})}setAttributes(e){return this._attributes={...this._attributes,...e},this._notifyScopeListeners(),this}setAttribute(e,t){return this.setAttributes({[e]:t})}removeAttribute(e){return e in this._attributes&&(delete this._attributes[e],this._notifyScopeListeners()),this}setExtras(e){return this._extra={...this._extra,...e},this._notifyScopeListeners(),this}setExtra(e,t){return this._extra={...this._extra,[e]:t},this._notifyScopeListeners(),this}setFingerprint(e){return this._fingerprint=e,this._notifyScopeListeners(),this}setLevel(e){return this._level=e,this._notifyScopeListeners(),this}setTransactionName(e){return this._transactionName=e,this._notifyScopeListeners(),this}setContext(e,t){return null===t?delete this._contexts[e]:this._contexts[e]=t,this._notifyScopeListeners(),this}setSession(e){return e?this._session=e:delete this._session,this._notifyScopeListeners(),this}getSession(){return this._session}update(e){if(!e)return this;const t="function"==typeof e?e(this):e,n=t instanceof Ce?t.getScopeData():_(t)?e:void 0,{tags:a,attributes:o,extra:s,user:r,contexts:i,level:c,fingerprint:u=[],propagationContext:l}=n||{};return this._tags={...this._tags,...a},this._attributes={...this._attributes,...o},this._extra={...this._extra,...s},this._contexts={...this._contexts,...i},r&&Object.keys(r).length&&(this._user=r),c&&(this._level=c),u.length&&(this._fingerprint=u),l&&(this._propagationContext=l),this}clear(){return this._breadcrumbs=[],this._tags={},this._attributes={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._session=void 0,Ee(this,void 0),this._attachments=[],this.setPropagationContext({traceId:Se(),sampleRand:Math.random()}),this._notifyScopeListeners(),this}addBreadcrumb(e,t){const n="number"==typeof t?t:100;if(n<=0)return this;const a={timestamp:ke(),...e,message:e.message?oe(e.message,2048):e.message};return this._breadcrumbs.push(a),this._breadcrumbs.length>n&&(this._breadcrumbs=this._breadcrumbs.slice(-n),this._client?.recordDroppedEvent("buffer_overflow","log_item")),this._notifyScopeListeners(),this}getLastBreadcrumb(){return this._breadcrumbs[this._breadcrumbs.length-1]}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(e){return this._attachments.push(e),this}clearAttachments(){return this._attachments=[],this}getScopeData(){return{breadcrumbs:this._breadcrumbs,attachments:this._attachments,contexts:this._contexts,tags:this._tags,attributes:this._attributes,extra:this._extra,user:this._user,level:this._level,fingerprint:this._fingerprint||[],eventProcessors:this._eventProcessors,propagationContext:this._propagationContext,sdkProcessingMetadata:this._sdkProcessingMetadata,transactionName:this._transactionName,span:Te(this)}}setSDKProcessingMetadata(e){return this._sdkProcessingMetadata=je(this._sdkProcessingMetadata,e,2),this}setPropagationContext(e){return this._propagationContext=e,this}getPropagationContext(){return this._propagationContext}captureException(e,t){const n=t?.event_id||le();if(!this._client)return m&&F.warn("No client configured on scope - will not capture exception!"),n;const a=new Error("Sentry syntheticException");return this._client.captureException(e,{originalException:e,syntheticException:a,...t,event_id:n},this),n}captureMessage(e,t,n){const a=n?.event_id||le();if(!this._client)return m&&F.warn("No client configured on scope - will not capture message!"),a;const o=n?.syntheticException??new Error(e);return this._client.captureMessage(e,t,{originalException:e,syntheticException:o,...n,event_id:a},this),a}captureEvent(e,t){const n=t?.event_id||le();return this._client?(this._client.captureEvent(e,{...t,event_id:n},this),n):(m&&F.warn("No client configured on scope - will not capture event!"),n)}_notifyScopeListeners(){this._notifyingListeners||(this._notifyingListeners=!0,this._scopeListeners.forEach(e=>{e(this)}),this._notifyingListeners=!1)}}class Ie{constructor(e,t){let n,a;n=e||new Ce,a=t||new Ce,this._stack=[{scope:n}],this._isolationScope=a}withScope(e){const t=this._pushScope();let n;try{n=e(t)}catch(e){throw this._popScope(),e}return S(n)?n.then(e=>(this._popScope(),e),e=>{throw this._popScope(),e}):(this._popScope(),n)}getClient(){return this.getStackTop().client}getScope(){return this.getStackTop().scope}getIsolationScope(){return this._isolationScope}getStackTop(){return this._stack[this._stack.length-1]}_pushScope(){const e=this.getScope().clone();return this._stack.push({client:this.getClient(),scope:e}),e}_popScope(){return!(this._stack.length<=1||!this._stack.pop())}}function Me(){const e=p(l());return e.stack=e.stack||new Ie(d("defaultCurrentScope",()=>new Ce),d("defaultIsolationScope",()=>new Ce))}function Re(e){return Me().withScope(e)}function Ae(e,t){const n=Me();return n.withScope(()=>(n.getStackTop().scope=e,t(e)))}function Oe(e){return Me().withScope(()=>e(Me().getIsolationScope()))}function De(e){const t=p(e);return t.acs?t.acs:{withIsolationScope:Oe,withScope:Re,withSetScope:Ae,withSetIsolationScope:(e,t)=>Oe(t),getCurrentScope:()=>Me().getScope(),getIsolationScope:()=>Me().getIsolationScope()}}function Pe(){return De(l()).getCurrentScope()}function Le(){return De(l()).getIsolationScope()}function Ne(){return d("globalScope",()=>new Ce)}function $e(...e){const t=De(l());if(2===e.length){const[n,a]=e;return n?t.withSetScope(n,a):t.withScope(a)}return t.withScope(e[0])}function Fe(...e){const t=De(l());if(2===e.length){const[n,a]=e;return n?t.withSetIsolationScope(n,a):t.withIsolationScope(a)}return t.withIsolationScope(e[0])}function Ue(){return Pe().getClient()}function Be(e){const t=e.getPropagationContext(),{traceId:n,parentSpanId:a,propagationSpanId:o}=t,s={trace_id:n,span_id:o||xe()};return a&&(s.parent_span_id=a),s}const qe="production";function He(e){return new Ve(t=>{t(e)})}function We(e){return new Ve((t,n)=>{n(e)})}class Ve{constructor(e){this._state=0,this._handlers=[],this._runExecutor(e)}then(e,t){return new Ve((n,a)=>{this._handlers.push([!1,t=>{if(e)try{n(e(t))}catch(e){a(e)}else n(t)},e=>{if(t)try{n(t(e))}catch(e){a(e)}else a(e)}]),this._executeHandlers()})}catch(e){return this.then(e=>e,e)}finally(e){return new Ve((t,n)=>{let a,o;return this.then(t=>{o=!1,a=t,e&&e()},t=>{o=!0,a=t,e&&e()}).then(()=>{o?n(a):t(a)})})}_executeHandlers(){if(0===this._state)return;const e=this._handlers.slice();this._handlers=[],e.forEach(e=>{e[0]||(1===this._state&&e[1](this._value),2===this._state&&e[2](this._value),e[0]=!0)})}_runExecutor(e){const t=(e,t)=>{0===this._state&&(S(t)?t.then(n,a):(this._state=e,this._value=t,this._executeHandlers()))},n=e=>{t(1,e)},a=e=>{t(2,e)};try{e(n,a)}catch(e){a(e)}}}function Je(e,t,n,a=0){try{const o=Ye(t,n,e,a);return S(o)?o:He(o)}catch(e){return We(e)}}function Ye(e,t,n,a){const o=n[a];if(!e||!o)return e;const s=o({...e},t);return m&&null===s&&F.log(`Event processor "${o.id||"?"}" dropped event`),S(s)?s.then(e=>Ye(e,t,n,a+1)):Ye(s,t,n,a+1)}const Ge="sentry.source",Ke="sentry.sample_rate",Xe="sentry.previous_trace_sample_rate",Ze="sentry.op",Qe="sentry.origin",et="sentry.idle_span_finish_reason",tt="sentry.measurement_unit",nt="sentry.measurement_value",at="sentry.custom_span_name",ot="sentry.profile_id",st="sentry.exclusive_time",rt="sentry.link.type",it="sentry-",ct=/^sentry-/,ut=8192;function lt(e){const t=function(e){if(e&&(b(e)||Array.isArray(e)))return Array.isArray(e)?e.reduce((e,t)=>{const n=dt(t);return Object.entries(n).forEach(([t,n])=>{e[t]=n}),e},{}):dt(e)}(e);if(!t)return;const n=Object.entries(t).reduce((e,[t,n])=>(t.match(ct)&&(e[t.slice(it.length)]=n),e),{});return Object.keys(n).length>0?n:void 0}function pt(e){if(e)return function(e){if(0!==Object.keys(e).length)return Object.entries(e).reduce((e,[t,n],a)=>{const o=`${encodeURIComponent(t)}=${encodeURIComponent(n)}`,s=0===a?o:`${e},${o}`;return s.length>ut?(m&&F.warn(`Not adding key: ${t} with val: ${n} to baggage header due to exceeding baggage size limits.`),e):s},"")}(Object.entries(e).reduce((e,[t,n])=>(n&&(e[`${it}${t}`]=n),e),{}))}function dt(e){return e.split(",").map(e=>{const t=e.indexOf("=");return-1===t?[]:[e.slice(0,t),e.slice(t+1)].map(e=>{try{return decodeURIComponent(e.trim())}catch{return}})}).reduce((e,[t,n])=>(t&&n&&(e[t]=n),e),{})}const mt=/^o(\d+)\./,ht=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)([\w.-]+)(?::(\d+))?\/(.+)/;function gt(e,t=!1){const{host:n,path:a,pass:o,port:s,projectId:r,protocol:i,publicKey:c}=e;return`${i}://${c}${t&&o?`:${o}`:""}@${n}${s?`:${s}`:""}/${a?`${a}/`:a}${r}`}function ft(e){const t=ht.exec(e);if(!t)return void P(()=>{console.error(`Invalid Sentry Dsn: ${e}`)});const[n,a,o="",s="",r="",i=""]=t.slice(1);let c="",u=i;const l=u.split("/");if(l.length>1&&(c=l.slice(0,-1).join("/"),u=l.pop()),u){const e=u.match(/^\d+/);e&&(u=e[0])}return kt({host:s,pass:o,path:c,projectId:u,port:r,protocol:n,publicKey:a})}function kt(e){return{protocol:e.protocol,publicKey:e.publicKey||"",pass:e.pass||"",host:e.host,port:e.port||"",path:e.path||"",projectId:e.projectId}}function yt(e){const t=e.getOptions(),{host:n}=e.getDsn()||{};let a;return t.orgId?a=String(t.orgId):n&&(a=function(e){const t=e.match(mt);return t?.[1]}(n)),a}function bt(e){const t="string"==typeof e?ft(e):kt(e);if(t&&function(e){if(!m)return!0;const{port:t,projectId:n,protocol:a}=e;return!(["protocol","publicKey","host","projectId"].find(t=>!e[t]&&(F.error(`Invalid Sentry Dsn: ${t} missing`),!0))||(n.match(/^\d+$/)?function(e){return"http"===e||"https"===e}(a)?t&&isNaN(parseInt(t,10))&&(F.error(`Invalid Sentry Dsn: Invalid port ${t}`),1):(F.error(`Invalid Sentry Dsn: Invalid protocol ${a}`),1):(F.error(`Invalid Sentry Dsn: Invalid projectId ${n}`),1)))}(t))return t}function wt(e){if("boolean"==typeof __SENTRY_TRACING__&&!__SENTRY_TRACING__)return!1;const t=e||Ue()?.getOptions();return!(!t||null==t.tracesSampleRate&&!t.tracesSampler)}const vt=0,_t=1,jt=2;function St(e){if(e<400&&e>=100)return{code:_t};if(e>=400&&e<500)switch(e){case 401:return{code:jt,message:"unauthenticated"};case 403:return{code:jt,message:"permission_denied"};case 404:return{code:jt,message:"not_found"};case 409:return{code:jt,message:"already_exists"};case 413:return{code:jt,message:"failed_precondition"};case 429:return{code:jt,message:"resource_exhausted"};case 499:return{code:jt,message:"cancelled"};default:return{code:jt,message:"invalid_argument"}}if(e>=500&&e<600)switch(e){case 501:return{code:jt,message:"unimplemented"};case 503:return{code:jt,message:"unavailable"};case 504:return{code:jt,message:"deadline_exceeded"};default:return{code:jt,message:"internal_error"}}return{code:jt,message:"internal_error"}}function xt(e,t){e.setAttribute("http.response.status_code",t);const n=St(t);"unknown_error"!==n.message&&e.setStatus(n)}const zt="_sentryScope",Et="_sentryIsolationScope";function Tt(e){if(e){if("object"==typeof e&&"deref"in e&&"function"==typeof e.deref)try{return e.deref()}catch{return}return e}}function Ct(e){const t=e;return{scope:t[zt],isolationScope:Tt(t[Et])}}function It(e){if("boolean"==typeof e)return Number(e);const t="string"==typeof e?parseFloat(e):e;return"number"!=typeof t||isNaN(t)||t<0||t>1?void 0:t}const Mt=new RegExp("^[ \\t]*([0-9a-f]{32})?-?([0-9a-f]{16})?-?([01])?[ \\t]*$");function Rt(e,t){const n=function(e){if(!e)return;const t=e.match(Mt);if(!t)return;let n;return"1"===t[3]?n=!0:"0"===t[3]&&(n=!1),{traceId:t[1],parentSampled:n,parentSpanId:t[2]}}(e),a=lt(t);if(!n?.traceId)return{traceId:Se(),sampleRand:Math.random()};const o=function(e,t){const n=It(t?.sample_rand);if(void 0!==n)return n;const a=It(t?.sample_rate);return a&&void 0!==e?.parentSampled?e.parentSampled?Math.random()*a:a+Math.random()*(1-a):Math.random()}(n,a);a&&(a.sample_rand=o.toString());const{traceId:s,parentSpanId:r,parentSampled:i}=n;return{traceId:s,parentSpanId:r,sampled:i,dsc:a||{},sampleRand:o}}function At(e=Se(),t=xe(),n){let a="";return void 0!==n&&(a=n?"-1":"-0"),`${e}-${t}${a}`}function Ot(e=Se(),t=xe(),n){return`00-${e}-${t}-${n?"01":"00"}`}const Dt=1;let Pt=!1;function Lt(e){const{spanId:t,traceId:n}=e.spanContext(),{data:a,op:o,parent_span_id:s,status:r,origin:i,links:c}=qt(e);return{parent_span_id:s,span_id:t,trace_id:n,data:a,op:o,status:r,origin:i,links:c}}function Nt(e){const{spanId:t,traceId:n,isRemote:a}=e.spanContext(),o=a?t:qt(e).parent_span_id,s=Ct(e).scope;return{parent_span_id:o,span_id:a?s?.getPropagationContext().propagationSpanId||xe():t,trace_id:n}}function $t(e){const{traceId:t,spanId:n}=e.spanContext();return At(t,n,Ht(e))}function Ft(e){return e&&e.length>0?e.map(({context:{spanId:e,traceId:t,traceFlags:n,...a},attributes:o})=>({span_id:e,trace_id:t,sampled:n===Dt,attributes:o,...a})):void 0}function Ut(e){return"number"==typeof e?Bt(e):Array.isArray(e)?e[0]+e[1]/1e9:e instanceof Date?Bt(e.getTime()):we()}function Bt(e){return e>9999999999?e/1e3:e}function qt(e){if(function(e){return"function"==typeof e.getSpanJSON}(e))return e.getSpanJSON();const{spanId:t,traceId:n}=e.spanContext();if(function(e){const t=e;return!!(t.attributes&&t.startTime&&t.name&&t.endTime&&t.status)}(e)){const{attributes:a,startTime:o,name:s,endTime:r,status:i,links:c}=e;return{span_id:t,trace_id:n,data:a,description:s,parent_span_id:"parentSpanId"in e?e.parentSpanId:"parentSpanContext"in e?e.parentSpanContext?.spanId:void 0,start_timestamp:Ut(o),timestamp:Ut(r)||void 0,status:Wt(i),op:a[Ze],origin:a[Qe],links:Ft(c)}}return{span_id:t,trace_id:n,start_timestamp:0,data:{}}}function Ht(e){const{traceFlags:t}=e.spanContext();return t===Dt}function Wt(e){if(e&&e.code!==vt)return e.code===_t?"ok":e.message||"internal_error"}const Vt="_sentryChildSpans",Jt="_sentryRootSpan";function Yt(e,t){const n=e[Jt]||e;B(t,Jt,n),e[Vt]?e[Vt].add(t):B(e,Vt,new Set([t]))}function Gt(e){const t=new Set;return function e(n){if(!t.has(n)&&Ht(n)){t.add(n);const a=n[Vt]?Array.from(n[Vt]):[];for(const t of a)e(t)}}(e),Array.from(t)}function Kt(e){return e[Jt]||e}function Xt(){const e=De(l());return e.getActiveSpan?e.getActiveSpan():Te(Pe())}function Zt(){Pt||(P(()=>{console.warn("[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly or use `ignoreSpans`.")}),Pt=!0)}function Qt(e,t){e.updateName(t),e.setAttributes({[Ge]:"custom",[at]:t})}const en="_frozenDsc";function tn(e,t){B(e,en,t)}function nn(e,t){const n=t.getOptions(),{publicKey:a}=t.getDsn()||{},o={environment:n.environment||qe,release:n.release,public_key:a,trace_id:e,org_id:yt(t)};return t.emit("createDsc",o),o}function an(e,t){const n=t.getPropagationContext();return n.dsc||nn(n.traceId,e)}function on(e){const t=Ue();if(!t)return{};const n=Kt(e),a=qt(n),o=a.data,s=n.spanContext().traceState,r=s?.get("sentry.sample_rate")??o[Ke]??o[Xe];function i(e){return"number"!=typeof r&&"string"!=typeof r||(e.sample_rate=`${r}`),e}const c=n[en];if(c)return i(c);const u=s?.get("sentry.dsc"),l=u&&lt(u);if(l)return i(l);const p=nn(e.spanContext().traceId,t),d=o[Ge],m=a.description;return"url"!==d&&m&&(p.transaction=m),wt()&&(p.sampled=String(Ht(n)),p.sample_rand=s?.get("sentry.sample_rand")??Ct(n).scope?.getPropagationContext().sampleRand.toString()),i(p),t.emit("createDsc",p,n),p}function sn(e){return pt(on(e))}function rn(e,t){const{extra:n,tags:a,user:o,contexts:s,level:r,sdkProcessingMetadata:i,breadcrumbs:c,fingerprint:u,eventProcessors:l,attachments:p,propagationContext:d,transactionName:m,span:h}=t;cn(e,"extra",n),cn(e,"tags",a),cn(e,"user",o),cn(e,"contexts",s),e.sdkProcessingMetadata=je(e.sdkProcessingMetadata,i,2),r&&(e.level=r),m&&(e.transactionName=m),h&&(e.span=h),c.length&&(e.breadcrumbs=[...e.breadcrumbs,...c]),u.length&&(e.fingerprint=[...e.fingerprint,...u]),l.length&&(e.eventProcessors=[...e.eventProcessors,...l]),p.length&&(e.attachments=[...e.attachments,...p]),e.propagationContext={...e.propagationContext,...d}}function cn(e,t,n){e[t]=je(e[t],n,1)}let un,ln,pn,dn;function mn(e){const t=u._sentryDebugIds,n=u._debugIds;if(!t&&!n)return{};const a=t?Object.keys(t):[],o=n?Object.keys(n):[];if(dn&&a.length===ln&&o.length===pn)return dn;ln=a.length,pn=o.length,dn={},un||(un={});const s=(t,n)=>{for(const a of t){const t=n[a],o=un?.[a];if(o&&dn&&t)dn[o[0]]=t,un&&(un[a]=[o[0],t]);else if(t){const n=e(a);for(let e=n.length-1;e>=0;e--){const o=n[e],s=o?.filename;if(s&&dn&&un){dn[s]=t,un[a]=[s,t];break}}}}};return t&&s(a,t),n&&s(o,n),dn}function hn(e,t=100,n=1/0){try{return fn("",e,t,n)}catch(e){return{ERROR:`**non-serializable** (${e})`}}}function gn(e,t=3,n=102400){const a=hn(e,t);return o=a,function(e){return~-encodeURI(e).split(/%..|./).length}(JSON.stringify(o))>n?gn(e,t-1,n):a;var o}function fn(e,t,n=1/0,a=1/0,o=function(){const e=new WeakSet;return[function(t){return!!e.has(t)||(e.add(t),!1)},function(t){e.delete(t)}]}()){const[s,r]=o;if(null==t||["boolean","string"].includes(typeof t)||"number"==typeof t&&Number.isFinite(t))return t;const i=function(e,t){try{if("domain"===e&&t&&"object"==typeof t&&t._events)return"[Domain]";if("domainEmitter"===e)return"[DomainEmitter]";if("undefined"!=typeof global&&t===global)return"[Global]";if("undefined"!=typeof window&&t===window)return"[Window]";if("undefined"!=typeof document&&t===document)return"[Document]";if(z(t))return ae(t);if(_(n=t)&&"nativeEvent"in n&&"preventDefault"in n&&"stopPropagation"in n)return"[SyntheticEvent]";if("number"==typeof t&&!Number.isFinite(t))return`[${t}]`;if("function"==typeof t)return`[Function: ${te(t)}]`;if("symbol"==typeof t)return`[${String(t)}]`;if("bigint"==typeof t)return`[BigInt: ${String(t)}]`;const a=function(e){const t=Object.getPrototypeOf(e);return t?.constructor?t.constructor.name:"null prototype"}(t);return/^HTML(\w*)Element$/.test(a)?`[HTMLElement: ${a}]`:`[object ${a}]`}catch(e){return`**non-serializable** (${e})`}var n}(e,t);if(!i.startsWith("[object "))return i;if(t.__sentry_skip_normalization__)return t;const c="number"==typeof t.__sentry_override_normalization_depth__?t.__sentry_override_normalization_depth__:n;if(0===c)return i.replace("object ","");if(s(t))return"[Circular ~]";const u=t;if(u&&"function"==typeof u.toJSON)try{return fn("",u.toJSON(),c-1,a,o)}catch{}const l=Array.isArray(t)?[]:{};let p=0;const d=W(t);for(const e in d){if(!Object.prototype.hasOwnProperty.call(d,e))continue;if(p>=a){l[e]="[MaxProperties ~]";break}const t=d[e];l[e]=fn(e,t,c-1,a,o),p++}return r(t),l}function kn(e,t,n,a,o,s){const{normalizeDepth:r=3,normalizeMaxBreadth:i=1e3}=e,c={...t,event_id:t.event_id||n.event_id||le(),timestamp:t.timestamp||ke()},u=n.integrations||e.integrations.map(e=>e.name);!function(e,t){const{environment:n,release:a,dist:o,maxValueLength:s}=t;e.environment=e.environment||n||qe,!e.release&&a&&(e.release=a),!e.dist&&o&&(e.dist=o);const r=e.request;r?.url&&s&&(r.url=oe(r.url,s)),s&&e.exception?.values?.forEach(e=>{e.value&&(e.value=oe(e.value,s))})}(c,e),function(e,t){t.length>0&&(e.sdk=e.sdk||{},e.sdk.integrations=[...e.sdk.integrations||[],...t])}(c,u),o&&o.emit("applyFrameMetadata",t),void 0===t.type&&function(e,t){const n=mn(t);e.exception?.values?.forEach(e=>{e.stacktrace?.frames?.forEach(e=>{e.filename&&(e.debug_id=n[e.filename])})})}(c,e.stackParser);const l=function(e,t){if(!t)return e;const n=e?e.clone():new Ce;return n.update(t),n}(a,n.captureContext);n.mechanism&&he(c,n.mechanism);const p=o?o.getEventProcessors():[],d=Ne().getScopeData();s&&rn(d,s.getScopeData()),l&&rn(d,l.getScopeData());const m=[...n.attachments||[],...d.attachments];return m.length&&(n.attachments=m),function(e,t){const{fingerprint:n,span:a,breadcrumbs:o,sdkProcessingMetadata:s}=t;!function(e,t){const{extra:n,tags:a,user:o,contexts:s,level:r,transactionName:i}=t;Object.keys(n).length&&(e.extra={...n,...e.extra}),Object.keys(a).length&&(e.tags={...a,...e.tags}),Object.keys(o).length&&(e.user={...o,...e.user}),Object.keys(s).length&&(e.contexts={...s,...e.contexts}),r&&(e.level=r),i&&"transaction"!==e.type&&(e.transaction=i)}(e,t),a&&function(e,t){e.contexts={trace:Nt(t),...e.contexts},e.sdkProcessingMetadata={dynamicSamplingContext:on(t),...e.sdkProcessingMetadata};const n=qt(Kt(t)).description;n&&!e.transaction&&"transaction"===e.type&&(e.transaction=n)}(e,a),function(e,t){e.fingerprint=e.fingerprint?Array.isArray(e.fingerprint)?e.fingerprint:[e.fingerprint]:[],t&&(e.fingerprint=e.fingerprint.concat(t)),e.fingerprint.length||delete e.fingerprint}(e,n),function(e,t){const n=[...e.breadcrumbs||[],...t];e.breadcrumbs=n.length?n:void 0}(e,o),function(e,t){e.sdkProcessingMetadata={...e.sdkProcessingMetadata,...t}}(e,s)}(c,d),Je([...p,...d.eventProcessors],c,n).then(e=>(e&&function(e){const t={};if(e.exception?.values?.forEach(e=>{e.stacktrace?.frames?.forEach(e=>{e.debug_id&&(e.abs_path?t[e.abs_path]=e.debug_id:e.filename&&(t[e.filename]=e.debug_id),delete e.debug_id)})}),0===Object.keys(t).length)return;e.debug_meta=e.debug_meta||{},e.debug_meta.images=e.debug_meta.images||[];const n=e.debug_meta.images;Object.entries(t).forEach(([e,t])=>{n.push({type:"sourcemap",code_file:e,debug_id:t})})}(e),"number"==typeof r&&r>0?function(e,t,n){if(!e)return null;const a={...e,...e.breadcrumbs&&{breadcrumbs:e.breadcrumbs.map(e=>({...e,...e.data&&{data:hn(e.data,t,n)}}))},...e.user&&{user:hn(e.user,t,n)},...e.contexts&&{contexts:hn(e.contexts,t,n)},...e.extra&&{extra:hn(e.extra,t,n)}};return e.contexts?.trace&&a.contexts&&(a.contexts.trace=e.contexts.trace,e.contexts.trace.data&&(a.contexts.trace.data=hn(e.contexts.trace.data,t,n))),e.spans&&(a.spans=e.spans.map(e=>({...e,...e.data&&{data:hn(e.data,t,n)}}))),e.contexts?.flags&&a.contexts&&(a.contexts.flags=hn(e.contexts.flags,3,n)),a}(e,r,i):e))}const yn=["user","level","extra","contexts","tags","fingerprint","propagationContext"];function bn(e,t){return Pe().captureException(e,function(e){if(e)return function(e){return e instanceof Ce||"function"==typeof e}(e)||function(e){return Object.keys(e).some(e=>yn.includes(e))}(e)?{captureContext:e}:e}(t))}function wn(e,t){const n="string"==typeof t?t:void 0,a="string"!=typeof t?{captureContext:t}:void 0;return Pe().captureMessage(e,n,a)}function vn(e,t){return Pe().captureEvent(e,t)}function _n(e,t){Le().setContext(e,t)}function jn(e){Le().setExtras(e)}function Sn(e,t){Le().setExtra(e,t)}function xn(e){Le().setTags(e)}function zn(e,t){Le().setTag(e,t)}function En(e){Le().setUser(e)}function Tn(){return Le().lastEventId()}async function Cn(e){const t=Ue();return t?t.flush(e):(m&&F.warn("Cannot flush events. No client defined."),Promise.resolve(!1))}async function In(e){const t=Ue();return t?t.close(e):(m&&F.warn("Cannot flush events and disable SDK. No client defined."),Promise.resolve(!1))}function Mn(){return!!Ue()}function Rn(){const e=Ue();return!1!==e?.getOptions().enabled&&!!e?.getTransport()}function An(e){Le().addEventProcessor(e)}function On(e){const t=Le(),n=Pe(),{userAgent:a}=u.navigator||{},o=function(e){const t=we(),n={sid:le(),init:!0,timestamp:t,started:t,duration:0,status:"ok",errors:0,ignoreDuration:!1,toJSON:()=>function(e){return{sid:`${e.sid}`,init:e.init,started:new Date(1e3*e.started).toISOString(),timestamp:new Date(1e3*e.timestamp).toISOString(),status:e.status,errors:e.errors,did:"number"==typeof e.did||"string"==typeof e.did?`${e.did}`:void 0,duration:e.duration,abnormal_mechanism:e.abnormal_mechanism,attrs:{release:e.release,environment:e.environment,ip_address:e.ipAddress,user_agent:e.userAgent}}}(n)};return e&&_e(n,e),n}({user:n.getUser()||t.getUser(),...a&&{userAgent:a},...e}),s=t.getSession();return"ok"===s?.status&&_e(s,{status:"exited"}),Dn(),t.setSession(o),o}function Dn(){const e=Le(),t=Pe().getSession()||e.getSession();t&&function(e){let t={};"ok"===e.status&&(t={status:"exited"}),_e(e,t)}(t),Pn(),e.setSession()}function Pn(){const e=Le(),t=Ue(),n=e.getSession();n&&t&&t.captureSession(n)}function Ln(e=!1){e?Dn():Pn()}function Nn(e){throw new Error(`Non-never value at runtime: ${e}`)}function $n(e,t,n,a){void 0===n?e.searchParams[a](t,"undefined"):null===n?e.searchParams[a](t,"null"):"boolean"==typeof n?e.searchParams[a](t,n?"true":"false"):"number"==typeof n?e.searchParams[a](t,n.toString(10)):"string"==typeof n?e.searchParams[a](t,n):"object"==typeof n?e.searchParams[a](t,JSON.stringify(n)):Nn(n)}async function Fn(e,t){try{return await fetch(e,t)}catch(e){if(e instanceof TypeError)throw new s(e);throw e}}class Un{body;constructor(e){this.body=e}static Json(e){return new Un({type:"json",json:e})}static B64Json(e){return new Un({type:"b64json",json:e})}static String(e){return new Un({type:"string",string:e})}getContentType(){switch(this.body.type){case"json":return"application/json";case"b64json":case"string":return"text/plain";default:Nn(this.body)}}getSerialized(){switch(this.body.type){case"json":return JSON.stringify(this.body.json);case"b64json":return e=JSON.stringify(this.body.json),function(e){const t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";let n="",a=0;for(;a+2<e.length;a+=3){const o=e[a]<<16|e[a+1]<<8|e[a+2];n+=t[o>>>18&63]+t[o>>>12&63]+t[o>>>6&63]+t[63&o]}if(a<e.length){const o=e[a]<<16|(a+1<e.length?e[a+1]:0)<<8;n+=t[o>>>18&63]+t[o>>>12&63]+(a+1<e.length?t[o>>>6&63]:"=")+"="}return n}((new TextEncoder).encode(e));case"string":return this.body.string;default:Nn(this.body)}var e}}function Bn(e){return new Promise(t=>{setTimeout(t,e)})}function qn(e,{backoffMultiplier:t=1,retryAfter:n=null}={}){if(n){const e=function(e){const t=function(e){const t=function(e){const t=e.trim();return/^[+-]?\d+$/.test(t)?parseInt(t,10):null}(e);return null===t||t<0?null:t}(e);if(null!==t)return 1e3*t;const n=Date.parse(e);return isNaN(n)?null:n-Date.now()}(n);if(null!==e)return Math.max(Math.min(e,1e4),500)}return Math.min(500*Math.pow(2,e),1e4)*t*(1+.1*(2*Math.random()-1))}class Hn{name="JsonBodyParser";async parse(e){try{return e.json()}catch(t){throw new i(e,t instanceof Error?t:"Failed to parse JSON")}}checkContentType(e){return e?.includes("application/json")??!1}}class Wn{name="VoidBodyParser";async parse(e){}checkContentType(e){return!0}}async function Vn(e,t,n,a,o){if(e.status>=200&&e.status<300){const{parser:n,ignoreContentTypeHeader:a=!1}=t??{},o=e.headers.get("Content-Type");if(!a&&!n.checkContentType(o))throw new i(e,`Did not expect Content-Type "${o}" for parser ${n.name}`);return t.parser.parse(e)}if(n>=5)throw new r(e);if(401===e.status&&o)return o(n+1);if(429===e.status||503===e.status){const t=qn(n+2,{backoffMultiplier:2,retryAfter:e.headers.get("Retry-After")});return await Bn(t),a(n+3)}if(e.status>=400&&e.status<=499)throw new r(e);{const e=qn(n);return await Bn(e),a(n+1)}}class Jn{rootUrl;appVersion;truesignEndpoint;tsToken=null;injectInto;partnerKey;constructor(e,t){this.truesignEndpoint=t?.truesignEndpoint,this.rootUrl=e,this.injectInto=t.injectInto??"query",this.appVersion=t.appVersion,this.partnerKey=t.partnerKey}async createTSToken(){try{const e={signal:AbortSignal.timeout(1e3)},t=await fetch(`https://edge.truesign.ai/v2/${this.truesignEndpoint}`,{...e}),n=await t.json();return this.tsToken=n.token,this.tsToken||"no-token"}catch(e){return console.error("Unable to request authentication token",e),this.tsToken="unauthenticated",this.tsToken}}async getTsToken(){return this.tsToken?this.tsToken:await this.createTSToken()}buildUrl(e){return new URL(`${this.rootUrl}${e}`)}async applyQueryParams(e,t){return function(e,t){const n=new URL(e);for(const[e,a]of Object.entries(t))if(Array.isArray(a)){n.searchParams.delete(e);for(const t of a)$n(n,e,t,"append")}else $n(n,e,a,"set");return n}(e,{...t,..."query"===this.injectInto?{...this.truesignEndpoint?{tsToken:await this.getTsToken()}:{},...this.partnerKey?{partnerKey:this.partnerKey}:{},appVersion:this.appVersion}:{}})}async applyHeaders(e){const t=new Headers(e);return"headers"===this.injectInto&&(this.truesignEndpoint&&t.set("X-TS-Token",await this.getTsToken()),this.partnerKey&&t.set("X-Partner-Key",this.partnerKey),t.set("X-App-Version",this.appVersion)),t}async get(e,{params:t={},request:n={},parser:a=new Hn,ignoreContentTypeHeader:o}={}){const s=this.buildUrl(e),r=await this.applyQueryParams(s,t),i=await this.applyHeaders(n?.headers);return this._get(r,0,{...n,headers:i},{parser:a,ignoreContentTypeHeader:o})}async _get(e,t,n,a){try{return Vn(await Fn(e,{...n,body:void 0,method:"GET"}),a,t,t=>this._get(e,t,n,a),this.truesignEndpoint?async t=>{await this.createTSToken();const o=await this.applyQueryParams(e),s=await this.applyHeaders(n.headers);return this._get(o,t,{...n,headers:s},a)}:null)}catch(t){throw console.error(`Error on get ${e.origin}${e.pathname}`,t),t}}async post(e,{params:t={},body:n=null,request:a={},parser:o=new Wn,ignoreContentTypeHeader:s}={}){const r=this.buildUrl(e),i=await this.applyQueryParams(r,t),c=await this.applyHeaders(a?.headers);n&&!c.has("Content-Type")&&c.set("Content-Type",n.getContentType());const u=n?n.getSerialized():null;return this._post(i,u,0,{...a,headers:c},{parser:o,ignoreContentTypeHeader:s})}async _post(e,t,n,a,o){try{return Vn(await Fn(e,{...a,body:t,method:"POST"}),o,n,n=>this._post(e,t,n,a,o),this.truesignEndpoint?async n=>{await this.createTSToken();const s=await this.applyQueryParams(e),r=await this.applyHeaders(a.headers);return this._post(s,t,n,{...a,headers:r},o)}:null)}catch(t){throw console.error(`Error on post ${e.origin}${e.pathname}`,t),t}}}class Yn{apiService=null;rootUrl;options;constructor(e,t){this.rootUrl=e,this.options=t,this.apiService=null}initialize(e){if(this.apiService)throw new Error("APIService already initialized");this.apiService=new Jn(this.rootUrl,{...this.options,...e})}get(){if(!this.apiService)throw new Error("APIService not initialized");return this.apiService}}const Gn=new Yn("https://api.getdirecto.com",{truesignEndpoint:"1558123949",injectInto:"headers"});Gn.get.bind(Gn);const Kn=new Yn("https://events.getdirecto.com",{truesignEndpoint:"80298941"}),Xn=Kn.get.bind(Kn),Zn=new Yn("https://vio-wrapper-api-cd-6981968610.europe-west4.run.app",{truesignEndpoint:"1678801807",injectInto:"headers"}),Qn=Zn.get.bind(Zn),ea=new Yn("https://rateshops.getdirecto.com",{truesignEndpoint:"1010119886",injectInto:"headers"});ea.get.bind(ea);const ta=new Yn("https://htmlql-6981968610.europe-west4.run.app",{truesignEndpoint:"465050282"});ta.get.bind(ta);const na="DIRECTO_CORE_BACKGROUND_CONFIG",aa="local";let oa=null;const sa=e=>{oa=e,chrome.storage[aa].set({[na]:e})};function ra(e,t=2){const n="0".repeat(t)+e;return n.slice(n.length-t,n.length)}class ia{year;month;day;constructor(e,t,n){this.year=e,this.month=t,this.day=n}static unsafe_new(e,t,n){if(isNaN(e)||isNaN(t)||isNaN(n))throw new Error(`Invalid date: ${e}-${t}-${n}`);const a=new ia(e,t,n),o=a.unsafe_toDate();if(isNaN(o.getTime())||o.getFullYear()!==e||o.getMonth()+1!==t||o.getDate()!==n)throw new Error(`Invalid date: ${e}-${t}-${n}`);return a}static new(e,t,n){try{return ia.unsafe_new(e,t,n)}catch{return null}}static today(){return ia.unsafe_fromDate(new Date)}static unsafe_fromRaw(e){return ia.unsafe_new(e.year,e.month,e.day)}static fromRaw(e){return ia.new(e.year,e.month,e.day)}static unsafe_fromDate(e){if(isNaN(e.getTime()))throw new Error("Invalid Date object");return ia.unsafe_new(e.getFullYear(),e.getMonth()+1,e.getDate())}static fromDate(e){try{return ia.unsafe_fromDate(e)}catch{return null}}static tryFromSlashDDMMYY(e){const t=e.match(/^(?<dd>\d{2})\/(?<mm>\d{2})\/(?<yy>\d{2})$/);if(!t)return null;const{dd:n,mm:a,yy:o}=t.groups;return ia.new(2e3+parseInt(o,10),parseInt(a,10),parseInt(n,10))}static tryFromSlashDMY(e){const t=e.match(/^(?<d>\d{1,2})\/(?<m>\d{1,2})\/(?<y>\d{1,2})$/);if(!t)return null;const{d:n,m:a,y:o}=t.groups;return ia.new(2e3+parseInt(o,10),parseInt(a,10),parseInt(n,10))}static tryFromDashYYYYMMDD(e){const t=e.match(/^(?<yyyy>\d{4})-(?<mm>\d{2})-(?<dd>\d{2})$/);if(!t)return null;const{yyyy:n,mm:a,dd:o}=t.groups;return ia.new(parseInt(n,10),parseInt(a,10),parseInt(o,10))}static tryFromDashDDMMYYYY(e){const t=e.match(/^(?<dd>\d{2})-(?<mm>\d{2})-(?<yyyy>\d{4})$/);if(!t)return null;const{dd:n,mm:a,yyyy:o}=t.groups;return ia.new(parseInt(o,10),parseInt(a,10),parseInt(n,10))}static tryFromSlashDDMMYYYY(e){const t=e.match(/^(?<dd>\d{2})\/(?<mm>\d{2})\/(?<yyyy>\d{4})$/);if(!t)return null;const{yyyy:n,mm:a,dd:o}=t.groups;return ia.new(parseInt(n,10),parseInt(a,10),parseInt(o,10))}static tryFromSlashMMDDYYYY(e){const t=e.match(/^(?<mm>\d{2})\/(?<dd>\d{2})\/(?<yyyy>\d{4})$/);if(!t)return null;const{yyyy:n,mm:a,dd:o}=t.groups;return ia.new(parseInt(n,10),parseInt(a,10),parseInt(o,10))}toDashYYYYMMDD(){return`${ra(this.year,4)}-${ra(this.month)}-${ra(this.day)}`}unsafe_toDate(){return function(e,t,n){const a=new Date;return a.setFullYear(e,t,n),a.setHours(0,0,0,0),a}(this.year,this.month-1,this.day)}}const ca="userUUID",ua="local";async function la(){let{[ca]:e}=await chrome.storage[ua].get(ca);return e||(e=crypto.randomUUID(),await chrome.storage[ua].set({[ca]:e})),e}async function pa(){if(void 0!==chrome.identity?.getProfileUserInfo){const e=await chrome.identity.getProfileUserInfo({accountStatus:chrome.identity.AccountStatus.ANY});return{id:e.id||await la(),email:e.email}}return{id:await la(),email:""}}const da="directoSessionInfo",ma="session";async function ha(){const{[da]:e}=await chrome.storage[ma].get(da),t=Date.now();if(e?.sessionId&&e.lastTimestamp&&t-e.lastTimestamp<144e5)return chrome.storage[ma].set({[da]:{...e,lastTimestamp:t}}),e.sessionId;const n=`${(await pa()).id}-${a=new Date(t),`${a.getUTCFullYear()}${ra(a.getUTCMonth())+1}${ra(a.getUTCDate())}-${ra(a.getUTCHours())}${ra(a.getUTCMinutes())}`}`;var a;return chrome.storage[ma].set({[da]:{sessionId:n,lastTimestamp:t}}),n}function ga(e){switch(e){case"local":return chrome.storage.local;case"session":return chrome.storage.session;default:Nn(e)}}function fa(e,t,n={}){const{area:a="local"}=n,o=ga(a);o.get(e,n=>{const a=n[e]||[],s=new Set(a);s.add(t),o.set({[e]:Array.from(s.values())})})}function ka(e,t,n={}){return new Promise(a=>{const{dropIfPresent:o=!1,area:s="local"}=n,r=ga(s);r.get(e,n=>{const s=n[e]||[],i=new Set(s),c=i.has(t);c&&o&&(i.delete(t),r.set({[e]:Array.from(i.values())})),a(c)})})}function ya(e,t,n,a={}){const{area:o="local"}=a,s=ga(o);s.get(e,a=>{const o=a[e]||[],r=new Map(o);r.set(t,n),s.set({[e]:Array.from(r.entries())})})}function ba(e,t,n={}){const{dropIfPresent:a=!1,area:o="local"}=n;return new Promise(n=>{const s=ga(o);s.get(e,o=>{const r=o[e]||[],i=new Map(r),c=i.get(t);c&&a&&setTimeout(()=>{i.delete(t),s.set({[e]:Array.from(i.entries())})},5e3),n(c)})})}const wa="crossSellWasChecked",va="session",_a=({crossSellId:e,tabId:t})=>`${e}-${t}`;function ja(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Sa,xa,za=function(){if(xa)return Sa;xa=1;const e=2147483647,t=36,n=/^xn--/,a=/[^\0-\x7F]/,o=/[\x2E\u3002\uFF0E\uFF61]/g,s={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},r=Math.floor,i=String.fromCharCode;function c(e){throw new RangeError(s[e])}function u(e,t){const n=e.split("@");let a="";n.length>1&&(a=n[0]+"@",e=n[1]);const s=function(e,t){const n=[];let a=e.length;for(;a--;)n[a]=t(e[a]);return n}((e=e.replace(o,".")).split("."),t).join(".");return a+s}function l(e){const t=[];let n=0;const a=e.length;for(;n<a;){const o=e.charCodeAt(n++);if(o>=55296&&o<=56319&&n<a){const a=e.charCodeAt(n++);56320==(64512&a)?t.push(((1023&o)<<10)+(1023&a)+65536):(t.push(o),n--)}else t.push(o)}return t}const p=function(e){return e>=48&&e<58?e-48+26:e>=65&&e<91?e-65:e>=97&&e<123?e-97:t},d=function(e,t){return e+22+75*(e<26)-((0!=t)<<5)},m=function(e,n,a){let o=0;for(e=a?r(e/700):e>>1,e+=r(e/n);e>455;o+=t)e=r(e/35);return r(o+36*e/(e+38))},h=function(n){const a=[],o=n.length;let s=0,i=128,u=72,l=n.lastIndexOf("-");l<0&&(l=0);for(let e=0;e<l;++e)n.charCodeAt(e)>=128&&c("not-basic"),a.push(n.charCodeAt(e));for(let d=l>0?l+1:0;d<o;){const l=s;for(let a=1,i=t;;i+=t){d>=o&&c("invalid-input");const l=p(n.charCodeAt(d++));l>=t&&c("invalid-input"),l>r((e-s)/a)&&c("overflow"),s+=l*a;const m=i<=u?1:i>=u+26?26:i-u;if(l<m)break;const h=t-m;a>r(e/h)&&c("overflow"),a*=h}const h=a.length+1;u=m(s-l,h,0==l),r(s/h)>e-i&&c("overflow"),i+=r(s/h),s%=h,a.splice(s++,0,i)}return String.fromCodePoint(...a)},g=function(n){const a=[],o=(n=l(n)).length;let s=128,u=0,p=72;for(const e of n)e<128&&a.push(i(e));const h=a.length;let g=h;for(h&&a.push("-");g<o;){let o=e;for(const e of n)e>=s&&e<o&&(o=e);const l=g+1;o-s>r((e-u)/l)&&c("overflow"),u+=(o-s)*l,s=o;for(const o of n)if(o<s&&++u>e&&c("overflow"),o===s){let e=u;for(let n=t;;n+=t){const o=n<=p?1:n>=p+26?26:n-p;if(e<o)break;const s=e-o,c=t-o;a.push(i(d(o+s%c,0))),e=r(s/c)}a.push(i(d(e,0))),p=m(u,l,g===h),u=0,++g}++u,++s}return a.join("")};return Sa={version:"2.3.1",ucs2:{decode:l,encode:e=>String.fromCodePoint(...e)},decode:h,encode:g,toASCII:function(e){return u(e,function(e){return a.test(e)?"xn--"+g(e):e})},toUnicode:function(e){return u(e,function(e){return n.test(e)?h(e.slice(4).toLowerCase()):e})}},Sa}();const Ea=ja(za),Ta=["ac","com.ac","edu.ac","gov.ac","mil.ac","net.ac","org.ac","ad","ae","ac.ae","co.ae","gov.ae","mil.ae","net.ae","org.ae","sch.ae","aero","airline.aero","airport.aero","accident-investigation.aero","accident-prevention.aero","aerobatic.aero","aeroclub.aero","aerodrome.aero","agents.aero","air-surveillance.aero","air-traffic-control.aero","aircraft.aero","airtraffic.aero","ambulance.aero","association.aero","author.aero","ballooning.aero","broker.aero","caa.aero","cargo.aero","catering.aero","certification.aero","championship.aero","charter.aero","civilaviation.aero","club.aero","conference.aero","consultant.aero","consulting.aero","control.aero","council.aero","crew.aero","design.aero","dgca.aero","educator.aero","emergency.aero","engine.aero","engineer.aero","entertainment.aero","equipment.aero","exchange.aero","express.aero","federation.aero","flight.aero","freight.aero","fuel.aero","gliding.aero","government.aero","groundhandling.aero","group.aero","hanggliding.aero","homebuilt.aero","insurance.aero","journal.aero","journalist.aero","leasing.aero","logistics.aero","magazine.aero","maintenance.aero","marketplace.aero","media.aero","microlight.aero","modelling.aero","navigation.aero","parachuting.aero","paragliding.aero","passenger-association.aero","pilot.aero","press.aero","production.aero","recreation.aero","repbody.aero","res.aero","research.aero","rotorcraft.aero","safety.aero","scientist.aero","services.aero","show.aero","skydiving.aero","software.aero","student.aero","taxi.aero","trader.aero","trading.aero","trainer.aero","union.aero","workinggroup.aero","works.aero","af","com.af","edu.af","gov.af","net.af","org.af","ag","co.ag","com.ag","net.ag","nom.ag","org.ag","ai","com.ai","net.ai","off.ai","org.ai","al","com.al","edu.al","gov.al","mil.al","net.al","org.al","am","co.am","com.am","commune.am","net.am","org.am","ao","co.ao","ed.ao","edu.ao","gov.ao","gv.ao","it.ao","og.ao","org.ao","pb.ao","aq","ar","bet.ar","com.ar","coop.ar","edu.ar","gob.ar","gov.ar","int.ar","mil.ar","musica.ar","mutual.ar","net.ar","org.ar","senasa.ar","tur.ar","arpa","e164.arpa","home.arpa","in-addr.arpa","ip6.arpa","iris.arpa","uri.arpa","urn.arpa","as","gov.as","asia","at","ac.at","sth.ac.at","co.at","gv.at","or.at","au","asn.au","com.au","edu.au","gov.au","id.au","net.au","org.au","conf.au","oz.au","act.au","nsw.au","nt.au","qld.au","sa.au","tas.au","vic.au","wa.au","act.edu.au","catholic.edu.au","nsw.edu.au","nt.edu.au","qld.edu.au","sa.edu.au","tas.edu.au","vic.edu.au","wa.edu.au","qld.gov.au","sa.gov.au","tas.gov.au","vic.gov.au","wa.gov.au","schools.nsw.edu.au","aw","com.aw","ax","az","biz.az","com.az","edu.az","gov.az","info.az","int.az","mil.az","name.az","net.az","org.az","pp.az","pro.az","ba","com.ba","edu.ba","gov.ba","mil.ba","net.ba","org.ba","bb","biz.bb","co.bb","com.bb","edu.bb","gov.bb","info.bb","net.bb","org.bb","store.bb","tv.bb","*.bd","be","ac.be","bf","gov.bf","bg","0.bg","1.bg","2.bg","3.bg","4.bg","5.bg","6.bg","7.bg","8.bg","9.bg","a.bg","b.bg","c.bg","d.bg","e.bg","f.bg","g.bg","h.bg","i.bg","j.bg","k.bg","l.bg","m.bg","n.bg","o.bg","p.bg","q.bg","r.bg","s.bg","t.bg","u.bg","v.bg","w.bg","x.bg","y.bg","z.bg","bh","com.bh","edu.bh","gov.bh","net.bh","org.bh","bi","co.bi","com.bi","edu.bi","or.bi","org.bi","biz","bj","africa.bj","agro.bj","architectes.bj","assur.bj","avocats.bj","co.bj","com.bj","eco.bj","econo.bj","edu.bj","info.bj","loisirs.bj","money.bj","net.bj","org.bj","ote.bj","restaurant.bj","resto.bj","tourism.bj","univ.bj","bm","com.bm","edu.bm","gov.bm","net.bm","org.bm","bn","com.bn","edu.bn","gov.bn","net.bn","org.bn","bo","com.bo","edu.bo","gob.bo","int.bo","mil.bo","net.bo","org.bo","tv.bo","web.bo","academia.bo","agro.bo","arte.bo","blog.bo","bolivia.bo","ciencia.bo","cooperativa.bo","democracia.bo","deporte.bo","ecologia.bo","economia.bo","empresa.bo","indigena.bo","industria.bo","info.bo","medicina.bo","movimiento.bo","musica.bo","natural.bo","nombre.bo","noticias.bo","patria.bo","plurinacional.bo","politica.bo","profesional.bo","pueblo.bo","revista.bo","salud.bo","tecnologia.bo","tksat.bo","transporte.bo","wiki.bo","br","9guacu.br","abc.br","adm.br","adv.br","agr.br","aju.br","am.br","anani.br","aparecida.br","app.br","arq.br","art.br","ato.br","b.br","barueri.br","belem.br","bet.br","bhz.br","bib.br","bio.br","blog.br","bmd.br","boavista.br","bsb.br","campinagrande.br","campinas.br","caxias.br","cim.br","cng.br","cnt.br","com.br","contagem.br","coop.br","coz.br","cri.br","cuiaba.br","curitiba.br","def.br","des.br","det.br","dev.br","ecn.br","eco.br","edu.br","emp.br","enf.br","eng.br","esp.br","etc.br","eti.br","far.br","feira.br","flog.br","floripa.br","fm.br","fnd.br","fortal.br","fot.br","foz.br","fst.br","g12.br","geo.br","ggf.br","goiania.br","gov.br","ac.gov.br","al.gov.br","am.gov.br","ap.gov.br","ba.gov.br","ce.gov.br","df.gov.br","es.gov.br","go.gov.br","ma.gov.br","mg.gov.br","ms.gov.br","mt.gov.br","pa.gov.br","pb.gov.br","pe.gov.br","pi.gov.br","pr.gov.br","rj.gov.br","rn.gov.br","ro.gov.br","rr.gov.br","rs.gov.br","sc.gov.br","se.gov.br","sp.gov.br","to.gov.br","gru.br","imb.br","ind.br","inf.br","jab.br","jampa.br","jdf.br","joinville.br","jor.br","jus.br","leg.br","leilao.br","lel.br","log.br","londrina.br","macapa.br","maceio.br","manaus.br","maringa.br","mat.br","med.br","mil.br","morena.br","mp.br","mus.br","natal.br","net.br","niteroi.br","*.nom.br","not.br","ntr.br","odo.br","ong.br","org.br","osasco.br","palmas.br","poa.br","ppg.br","pro.br","psc.br","psi.br","pvh.br","qsl.br","radio.br","rec.br","recife.br","rep.br","ribeirao.br","rio.br","riobranco.br","riopreto.br","salvador.br","sampa.br","santamaria.br","santoandre.br","saobernardo.br","saogonca.br","seg.br","sjc.br","slg.br","slz.br","sorocaba.br","srv.br","taxi.br","tc.br","tec.br","teo.br","the.br","tmp.br","trd.br","tur.br","tv.br","udi.br","vet.br","vix.br","vlog.br","wiki.br","zlg.br","bs","com.bs","edu.bs","gov.bs","net.bs","org.bs","bt","com.bt","edu.bt","gov.bt","net.bt","org.bt","bv","bw","co.bw","org.bw","by","gov.by","mil.by","com.by","of.by","bz","co.bz","com.bz","edu.bz","gov.bz","net.bz","org.bz","ca","ab.ca","bc.ca","mb.ca","nb.ca","nf.ca","nl.ca","ns.ca","nt.ca","nu.ca","on.ca","pe.ca","qc.ca","sk.ca","yk.ca","gc.ca","cat","cc","cd","gov.cd","cf","cg","ch","ci","ac.ci","aéroport.ci","asso.ci","co.ci","com.ci","ed.ci","edu.ci","go.ci","gouv.ci","int.ci","net.ci","or.ci","org.ci","*.ck","!www.ck","cl","co.cl","gob.cl","gov.cl","mil.cl","cm","co.cm","com.cm","gov.cm","net.cm","cn","ac.cn","com.cn","edu.cn","gov.cn","mil.cn","net.cn","org.cn","公司.cn","網絡.cn","网络.cn","ah.cn","bj.cn","cq.cn","fj.cn","gd.cn","gs.cn","gx.cn","gz.cn","ha.cn","hb.cn","he.cn","hi.cn","hk.cn","hl.cn","hn.cn","jl.cn","js.cn","jx.cn","ln.cn","mo.cn","nm.cn","nx.cn","qh.cn","sc.cn","sd.cn","sh.cn","sn.cn","sx.cn","tj.cn","tw.cn","xj.cn","xz.cn","yn.cn","zj.cn","co","com.co","edu.co","gov.co","mil.co","net.co","nom.co","org.co","com","coop","cr","ac.cr","co.cr","ed.cr","fi.cr","go.cr","or.cr","sa.cr","cu","com.cu","edu.cu","gob.cu","inf.cu","nat.cu","net.cu","org.cu","cv","com.cv","edu.cv","id.cv","int.cv","net.cv","nome.cv","org.cv","publ.cv","cw","com.cw","edu.cw","net.cw","org.cw","cx","gov.cx","cy","ac.cy","biz.cy","com.cy","ekloges.cy","gov.cy","ltd.cy","mil.cy","net.cy","org.cy","press.cy","pro.cy","tm.cy","cz","de","dj","dk","dm","co.dm","com.dm","edu.dm","gov.dm","net.dm","org.dm","do","art.do","com.do","edu.do","gob.do","gov.do","mil.do","net.do","org.do","sld.do","web.do","dz","art.dz","asso.dz","com.dz","edu.dz","gov.dz","net.dz","org.dz","pol.dz","soc.dz","tm.dz","ec","com.ec","edu.ec","fin.ec","gob.ec","gov.ec","info.ec","k12.ec","med.ec","mil.ec","net.ec","org.ec","pro.ec","edu","ee","aip.ee","com.ee","edu.ee","fie.ee","gov.ee","lib.ee","med.ee","org.ee","pri.ee","riik.ee","eg","ac.eg","com.eg","edu.eg","eun.eg","gov.eg","info.eg","me.eg","mil.eg","name.eg","net.eg","org.eg","sci.eg","sport.eg","tv.eg","*.er","es","com.es","edu.es","gob.es","nom.es","org.es","et","biz.et","com.et","edu.et","gov.et","info.et","name.et","net.et","org.et","eu","fi","aland.fi","fj","ac.fj","biz.fj","com.fj","gov.fj","info.fj","mil.fj","name.fj","net.fj","org.fj","pro.fj","*.fk","fm","com.fm","edu.fm","net.fm","org.fm","fo","fr","asso.fr","com.fr","gouv.fr","nom.fr","prd.fr","tm.fr","avoues.fr","cci.fr","greta.fr","huissier-justice.fr","ga","gb","gd","edu.gd","gov.gd","ge","com.ge","edu.ge","gov.ge","net.ge","org.ge","pvt.ge","school.ge","gf","gg","co.gg","net.gg","org.gg","gh","com.gh","edu.gh","gov.gh","mil.gh","org.gh","gi","com.gi","edu.gi","gov.gi","ltd.gi","mod.gi","org.gi","gl","co.gl","com.gl","edu.gl","net.gl","org.gl","gm","gn","ac.gn","com.gn","edu.gn","gov.gn","net.gn","org.gn","gov","gp","asso.gp","com.gp","edu.gp","mobi.gp","net.gp","org.gp","gq","gr","com.gr","edu.gr","gov.gr","net.gr","org.gr","gs","gt","com.gt","edu.gt","gob.gt","ind.gt","mil.gt","net.gt","org.gt","gu","com.gu","edu.gu","gov.gu","guam.gu","info.gu","net.gu","org.gu","web.gu","gw","gy","co.gy","com.gy","edu.gy","gov.gy","net.gy","org.gy","hk","com.hk","edu.hk","gov.hk","idv.hk","net.hk","org.hk","个人.hk","個人.hk","公司.hk","政府.hk","敎育.hk","教育.hk","箇人.hk","組織.hk","組织.hk","網絡.hk","網络.hk","组織.hk","组织.hk","网絡.hk","网络.hk","hm","hn","com.hn","edu.hn","gob.hn","mil.hn","net.hn","org.hn","hr","com.hr","from.hr","iz.hr","name.hr","ht","adult.ht","art.ht","asso.ht","com.ht","coop.ht","edu.ht","firm.ht","gouv.ht","info.ht","med.ht","net.ht","org.ht","perso.ht","pol.ht","pro.ht","rel.ht","shop.ht","hu","2000.hu","agrar.hu","bolt.hu","casino.hu","city.hu","co.hu","erotica.hu","erotika.hu","film.hu","forum.hu","games.hu","hotel.hu","info.hu","ingatlan.hu","jogasz.hu","konyvelo.hu","lakas.hu","media.hu","news.hu","org.hu","priv.hu","reklam.hu","sex.hu","shop.hu","sport.hu","suli.hu","szex.hu","tm.hu","tozsde.hu","utazas.hu","video.hu","id","ac.id","biz.id","co.id","desa.id","go.id","mil.id","my.id","net.id","or.id","ponpes.id","sch.id","web.id","ie","gov.ie","il","ac.il","co.il","gov.il","idf.il","k12.il","muni.il","net.il","org.il","ישראל","אקדמיה.ישראל","ישוב.ישראל","צהל.ישראל","ממשל.ישראל","im","ac.im","co.im","ltd.co.im","plc.co.im","com.im","net.im","org.im","tt.im","tv.im","in","5g.in","6g.in","ac.in","ai.in","am.in","bihar.in","biz.in","business.in","ca.in","cn.in","co.in","com.in","coop.in","cs.in","delhi.in","dr.in","edu.in","er.in","firm.in","gen.in","gov.in","gujarat.in","ind.in","info.in","int.in","internet.in","io.in","me.in","mil.in","net.in","nic.in","org.in","pg.in","post.in","pro.in","res.in","travel.in","tv.in","uk.in","up.in","us.in","info","int","eu.int","io","co.io","com.io","edu.io","gov.io","mil.io","net.io","nom.io","org.io","iq","com.iq","edu.iq","gov.iq","mil.iq","net.iq","org.iq","ir","ac.ir","co.ir","gov.ir","id.ir","net.ir","org.ir","sch.ir","ایران.ir","ايران.ir","is","it","edu.it","gov.it","abr.it","abruzzo.it","aosta-valley.it","aostavalley.it","bas.it","basilicata.it","cal.it","calabria.it","cam.it","campania.it","emilia-romagna.it","emiliaromagna.it","emr.it","friuli-v-giulia.it","friuli-ve-giulia.it","friuli-vegiulia.it","friuli-venezia-giulia.it","friuli-veneziagiulia.it","friuli-vgiulia.it","friuliv-giulia.it","friulive-giulia.it","friulivegiulia.it","friulivenezia-giulia.it","friuliveneziagiulia.it","friulivgiulia.it","fvg.it","laz.it","lazio.it","lig.it","liguria.it","lom.it","lombardia.it","lombardy.it","lucania.it","mar.it","marche.it","mol.it","molise.it","piedmont.it","piemonte.it","pmn.it","pug.it","puglia.it","sar.it","sardegna.it","sardinia.it","sic.it","sicilia.it","sicily.it","taa.it","tos.it","toscana.it","trentin-sud-tirol.it","trentin-süd-tirol.it","trentin-sudtirol.it","trentin-südtirol.it","trentin-sued-tirol.it","trentin-suedtirol.it","trentino.it","trentino-a-adige.it","trentino-aadige.it","trentino-alto-adige.it","trentino-altoadige.it","trentino-s-tirol.it","trentino-stirol.it","trentino-sud-tirol.it","trentino-süd-tirol.it","trentino-sudtirol.it","trentino-südtirol.it","trentino-sued-tirol.it","trentino-suedtirol.it","trentinoa-adige.it","trentinoaadige.it","trentinoalto-adige.it","trentinoaltoadige.it","trentinos-tirol.it","trentinostirol.it","trentinosud-tirol.it","trentinosüd-tirol.it","trentinosudtirol.it","trentinosüdtirol.it","trentinosued-tirol.it","trentinosuedtirol.it","trentinsud-tirol.it","trentinsüd-tirol.it","trentinsudtirol.it","trentinsüdtirol.it","trentinsued-tirol.it","trentinsuedtirol.it","tuscany.it","umb.it","umbria.it","val-d-aosta.it","val-daosta.it","vald-aosta.it","valdaosta.it","valle-aosta.it","valle-d-aosta.it","valle-daosta.it","valleaosta.it","valled-aosta.it","valledaosta.it","vallee-aoste.it","vallée-aoste.it","vallee-d-aoste.it","vallée-d-aoste.it","valleeaoste.it","valléeaoste.it","valleedaoste.it","valléedaoste.it","vao.it","vda.it","ven.it","veneto.it","ag.it","agrigento.it","al.it","alessandria.it","alto-adige.it","altoadige.it","an.it","ancona.it","andria-barletta-trani.it","andria-trani-barletta.it","andriabarlettatrani.it","andriatranibarletta.it","ao.it","aosta.it","aoste.it","ap.it","aq.it","aquila.it","ar.it","arezzo.it","ascoli-piceno.it","ascolipiceno.it","asti.it","at.it","av.it","avellino.it","ba.it","balsan.it","balsan-sudtirol.it","balsan-südtirol.it","balsan-suedtirol.it","bari.it","barletta-trani-andria.it","barlettatraniandria.it","belluno.it","benevento.it","bergamo.it","bg.it","bi.it","biella.it","bl.it","bn.it","bo.it","bologna.it","bolzano.it","bolzano-altoadige.it","bozen.it","bozen-sudtirol.it","bozen-südtirol.it","bozen-suedtirol.it","br.it","brescia.it","brindisi.it","bs.it","bt.it","bulsan.it","bulsan-sudtirol.it","bulsan-südtirol.it","bulsan-suedtirol.it","bz.it","ca.it","cagliari.it","caltanissetta.it","campidano-medio.it","campidanomedio.it","campobasso.it","carbonia-iglesias.it","carboniaiglesias.it","carrara-massa.it","carraramassa.it","caserta.it","catania.it","catanzaro.it","cb.it","ce.it","cesena-forli.it","cesena-forlì.it","cesenaforli.it","cesenaforlì.it","ch.it","chieti.it","ci.it","cl.it","cn.it","co.it","como.it","cosenza.it","cr.it","cremona.it","crotone.it","cs.it","ct.it","cuneo.it","cz.it","dell-ogliastra.it","dellogliastra.it","en.it","enna.it","fc.it","fe.it","fermo.it","ferrara.it","fg.it","fi.it","firenze.it","florence.it","fm.it","foggia.it","forli-cesena.it","forlì-cesena.it","forlicesena.it","forlìcesena.it","fr.it","frosinone.it","ge.it","genoa.it","genova.it","go.it","gorizia.it","gr.it","grosseto.it","iglesias-carbonia.it","iglesiascarbonia.it","im.it","imperia.it","is.it","isernia.it","kr.it","la-spezia.it","laquila.it","laspezia.it","latina.it","lc.it","le.it","lecce.it","lecco.it","li.it","livorno.it","lo.it","lodi.it","lt.it","lu.it","lucca.it","macerata.it","mantova.it","massa-carrara.it","massacarrara.it","matera.it","mb.it","mc.it","me.it","medio-campidano.it","mediocampidano.it","messina.it","mi.it","milan.it","milano.it","mn.it","mo.it","modena.it","monza.it","monza-brianza.it","monza-e-della-brianza.it","monzabrianza.it","monzaebrianza.it","monzaedellabrianza.it","ms.it","mt.it","na.it","naples.it","napoli.it","no.it","novara.it","nu.it","nuoro.it","og.it","ogliastra.it","olbia-tempio.it","olbiatempio.it","or.it","oristano.it","ot.it","pa.it","padova.it","padua.it","palermo.it","parma.it","pavia.it","pc.it","pd.it","pe.it","perugia.it","pesaro-urbino.it","pesarourbino.it","pescara.it","pg.it","pi.it","piacenza.it","pisa.it","pistoia.it","pn.it","po.it","pordenone.it","potenza.it","pr.it","prato.it","pt.it","pu.it","pv.it","pz.it","ra.it","ragusa.it","ravenna.it","rc.it","re.it","reggio-calabria.it","reggio-emilia.it","reggiocalabria.it","reggioemilia.it","rg.it","ri.it","rieti.it","rimini.it","rm.it","rn.it","ro.it","roma.it","rome.it","rovigo.it","sa.it","salerno.it","sassari.it","savona.it","si.it","siena.it","siracusa.it","so.it","sondrio.it","sp.it","sr.it","ss.it","südtirol.it","suedtirol.it","sv.it","ta.it","taranto.it","te.it","tempio-olbia.it","tempioolbia.it","teramo.it","terni.it","tn.it","to.it","torino.it","tp.it","tr.it","trani-andria-barletta.it","trani-barletta-andria.it","traniandriabarletta.it","tranibarlettaandria.it","trapani.it","trento.it","treviso.it","trieste.it","ts.it","turin.it","tv.it","ud.it","udine.it","urbino-pesaro.it","urbinopesaro.it","va.it","varese.it","vb.it","vc.it","ve.it","venezia.it","venice.it","verbania.it","vercelli.it","verona.it","vi.it","vibo-valentia.it","vibovalentia.it","vicenza.it","viterbo.it","vr.it","vs.it","vt.it","vv.it","je","co.je","net.je","org.je","*.jm","jo","agri.jo","ai.jo","com.jo","edu.jo","eng.jo","fm.jo","gov.jo","mil.jo","net.jo","org.jo","per.jo","phd.jo","sch.jo","tv.jo","jobs","jp","ac.jp","ad.jp","co.jp","ed.jp","go.jp","gr.jp","lg.jp","ne.jp","or.jp","aichi.jp","akita.jp","aomori.jp","chiba.jp","ehime.jp","fukui.jp","fukuoka.jp","fukushima.jp","gifu.jp","gunma.jp","hiroshima.jp","hokkaido.jp","hyogo.jp","ibaraki.jp","ishikawa.jp","iwate.jp","kagawa.jp","kagoshima.jp","kanagawa.jp","kochi.jp","kumamoto.jp","kyoto.jp","mie.jp","miyagi.jp","miyazaki.jp","nagano.jp","nagasaki.jp","nara.jp","niigata.jp","oita.jp","okayama.jp","okinawa.jp","osaka.jp","saga.jp","saitama.jp","shiga.jp","shimane.jp","shizuoka.jp","tochigi.jp","tokushima.jp","tokyo.jp","tottori.jp","toyama.jp","wakayama.jp","yamagata.jp","yamaguchi.jp","yamanashi.jp","三重.jp","京都.jp","佐賀.jp","兵庫.jp","北海道.jp","千葉.jp","和歌山.jp","埼玉.jp","大分.jp","大阪.jp","奈良.jp","宮城.jp","宮崎.jp","富山.jp","山口.jp","山形.jp","山梨.jp","岐阜.jp","岡山.jp","岩手.jp","島根.jp","広島.jp","徳島.jp","愛媛.jp","愛知.jp","新潟.jp","東京.jp","栃木.jp","沖縄.jp","滋賀.jp","熊本.jp","石川.jp","神奈川.jp","福井.jp","福岡.jp","福島.jp","秋田.jp","群馬.jp","茨城.jp","長崎.jp","長野.jp","青森.jp","静岡.jp","香川.jp","高知.jp","鳥取.jp","鹿児島.jp","*.kawasaki.jp","!city.kawasaki.jp","*.kitakyushu.jp","!city.kitakyushu.jp","*.kobe.jp","!city.kobe.jp","*.nagoya.jp","!city.nagoya.jp","*.sapporo.jp","!city.sapporo.jp","*.sendai.jp","!city.sendai.jp","*.yokohama.jp","!city.yokohama.jp","aisai.aichi.jp","ama.aichi.jp","anjo.aichi.jp","asuke.aichi.jp","chiryu.aichi.jp","chita.aichi.jp","fuso.aichi.jp","gamagori.aichi.jp","handa.aichi.jp","hazu.aichi.jp","hekinan.aichi.jp","higashiura.aichi.jp","ichinomiya.aichi.jp","inazawa.aichi.jp","inuyama.aichi.jp","isshiki.aichi.jp","iwakura.aichi.jp","kanie.aichi.jp","kariya.aichi.jp","kasugai.aichi.jp","kira.aichi.jp","kiyosu.aichi.jp","komaki.aichi.jp","konan.aichi.jp","kota.aichi.jp","mihama.aichi.jp","miyoshi.aichi.jp","nishio.aichi.jp","nisshin.aichi.jp","obu.aichi.jp","oguchi.aichi.jp","oharu.aichi.jp","okazaki.aichi.jp","owariasahi.aichi.jp","seto.aichi.jp","shikatsu.aichi.jp","shinshiro.aichi.jp","shitara.aichi.jp","tahara.aichi.jp","takahama.aichi.jp","tobishima.aichi.jp","toei.aichi.jp","togo.aichi.jp","tokai.aichi.jp","tokoname.aichi.jp","toyoake.aichi.jp","toyohashi.aichi.jp","toyokawa.aichi.jp","toyone.aichi.jp","toyota.aichi.jp","tsushima.aichi.jp","yatomi.aichi.jp","akita.akita.jp","daisen.akita.jp","fujisato.akita.jp","gojome.akita.jp","hachirogata.akita.jp","happou.akita.jp","higashinaruse.akita.jp","honjo.akita.jp","honjyo.akita.jp","ikawa.akita.jp","kamikoani.akita.jp","kamioka.akita.jp","katagami.akita.jp","kazuno.akita.jp","kitaakita.akita.jp","kosaka.akita.jp","kyowa.akita.jp","misato.akita.jp","mitane.akita.jp","moriyoshi.akita.jp","nikaho.akita.jp","noshiro.akita.jp","odate.akita.jp","oga.akita.jp","ogata.akita.jp","semboku.akita.jp","yokote.akita.jp","yurihonjo.akita.jp","aomori.aomori.jp","gonohe.aomori.jp","hachinohe.aomori.jp","hashikami.aomori.jp","hiranai.aomori.jp","hirosaki.aomori.jp","itayanagi.aomori.jp","kuroishi.aomori.jp","misawa.aomori.jp","mutsu.aomori.jp","nakadomari.aomori.jp","noheji.aomori.jp","oirase.aomori.jp","owani.aomori.jp","rokunohe.aomori.jp","sannohe.aomori.jp","shichinohe.aomori.jp","shingo.aomori.jp","takko.aomori.jp","towada.aomori.jp","tsugaru.aomori.jp","tsuruta.aomori.jp","abiko.chiba.jp","asahi.chiba.jp","chonan.chiba.jp","chosei.chiba.jp","choshi.chiba.jp","chuo.chiba.jp","funabashi.chiba.jp","futtsu.chiba.jp","hanamigawa.chiba.jp","ichihara.chiba.jp","ichikawa.chiba.jp","ichinomiya.chiba.jp","inzai.chiba.jp","isumi.chiba.jp","kamagaya.chiba.jp","kamogawa.chiba.jp","kashiwa.chiba.jp","katori.chiba.jp","katsuura.chiba.jp","kimitsu.chiba.jp","kisarazu.chiba.jp","kozaki.chiba.jp","kujukuri.chiba.jp","kyonan.chiba.jp","matsudo.chiba.jp","midori.chiba.jp","mihama.chiba.jp","minamiboso.chiba.jp","mobara.chiba.jp","mutsuzawa.chiba.jp","nagara.chiba.jp","nagareyama.chiba.jp","narashino.chiba.jp","narita.chiba.jp","noda.chiba.jp","oamishirasato.chiba.jp","omigawa.chiba.jp","onjuku.chiba.jp","otaki.chiba.jp","sakae.chiba.jp","sakura.chiba.jp","shimofusa.chiba.jp","shirako.chiba.jp","shiroi.chiba.jp","shisui.chiba.jp","sodegaura.chiba.jp","sosa.chiba.jp","tako.chiba.jp","tateyama.chiba.jp","togane.chiba.jp","tohnosho.chiba.jp","tomisato.chiba.jp","urayasu.chiba.jp","yachimata.chiba.jp","yachiyo.chiba.jp","yokaichiba.chiba.jp","yokoshibahikari.chiba.jp","yotsukaido.chiba.jp","ainan.ehime.jp","honai.ehime.jp","ikata.ehime.jp","imabari.ehime.jp","iyo.ehime.jp","kamijima.ehime.jp","kihoku.ehime.jp","kumakogen.ehime.jp","masaki.ehime.jp","matsuno.ehime.jp","matsuyama.ehime.jp","namikata.ehime.jp","niihama.ehime.jp","ozu.ehime.jp","saijo.ehime.jp","seiyo.ehime.jp","shikokuchuo.ehime.jp","tobe.ehime.jp","toon.ehime.jp","uchiko.ehime.jp","uwajima.ehime.jp","yawatahama.ehime.jp","echizen.fukui.jp","eiheiji.fukui.jp","fukui.fukui.jp","ikeda.fukui.jp","katsuyama.fukui.jp","mihama.fukui.jp","minamiechizen.fukui.jp","obama.fukui.jp","ohi.fukui.jp","ono.fukui.jp","sabae.fukui.jp","sakai.fukui.jp","takahama.fukui.jp","tsuruga.fukui.jp","wakasa.fukui.jp","ashiya.fukuoka.jp","buzen.fukuoka.jp","chikugo.fukuoka.jp","chikuho.fukuoka.jp","chikujo.fukuoka.jp","chikushino.fukuoka.jp","chikuzen.fukuoka.jp","chuo.fukuoka.jp","dazaifu.fukuoka.jp","fukuchi.fukuoka.jp","hakata.fukuoka.jp","higashi.fukuoka.jp","hirokawa.fukuoka.jp","hisayama.fukuoka.jp","iizuka.fukuoka.jp","inatsuki.fukuoka.jp","kaho.fukuoka.jp","kasuga.fukuoka.jp","kasuya.fukuoka.jp","kawara.fukuoka.jp","keisen.fukuoka.jp","koga.fukuoka.jp","kurate.fukuoka.jp","kurogi.fukuoka.jp","kurume.fukuoka.jp","minami.fukuoka.jp","miyako.fukuoka.jp","miyama.fukuoka.jp","miyawaka.fukuoka.jp","mizumaki.fukuoka.jp","munakata.fukuoka.jp","nakagawa.fukuoka.jp","nakama.fukuoka.jp","nishi.fukuoka.jp","nogata.fukuoka.jp","ogori.fukuoka.jp","okagaki.fukuoka.jp","okawa.fukuoka.jp","oki.fukuoka.jp","omuta.fukuoka.jp","onga.fukuoka.jp","onojo.fukuoka.jp","oto.fukuoka.jp","saigawa.fukuoka.jp","sasaguri.fukuoka.jp","shingu.fukuoka.jp","shinyoshitomi.fukuoka.jp","shonai.fukuoka.jp","soeda.fukuoka.jp","sue.fukuoka.jp","tachiarai.fukuoka.jp","tagawa.fukuoka.jp","takata.fukuoka.jp","toho.fukuoka.jp","toyotsu.fukuoka.jp","tsuiki.fukuoka.jp","ukiha.fukuoka.jp","umi.fukuoka.jp","usui.fukuoka.jp","yamada.fukuoka.jp","yame.fukuoka.jp","yanagawa.fukuoka.jp","yukuhashi.fukuoka.jp","aizubange.fukushima.jp","aizumisato.fukushima.jp","aizuwakamatsu.fukushima.jp","asakawa.fukushima.jp","bandai.fukushima.jp","date.fukushima.jp","fukushima.fukushima.jp","furudono.fukushima.jp","futaba.fukushima.jp","hanawa.fukushima.jp","higashi.fukushima.jp","hirata.fukushima.jp","hirono.fukushima.jp","iitate.fukushima.jp","inawashiro.fukushima.jp","ishikawa.fukushima.jp","iwaki.fukushima.jp","izumizaki.fukushima.jp","kagamiishi.fukushima.jp","kaneyama.fukushima.jp","kawamata.fukushima.jp","kitakata.fukushima.jp","kitashiobara.fukushima.jp","koori.fukushima.jp","koriyama.fukushima.jp","kunimi.fukushima.jp","miharu.fukushima.jp","mishima.fukushima.jp","namie.fukushima.jp","nango.fukushima.jp","nishiaizu.fukushima.jp","nishigo.fukushima.jp","okuma.fukushima.jp","omotego.fukushima.jp","ono.fukushima.jp","otama.fukushima.jp","samegawa.fukushima.jp","shimogo.fukushima.jp","shirakawa.fukushima.jp","showa.fukushima.jp","soma.fukushima.jp","sukagawa.fukushima.jp","taishin.fukushima.jp","tamakawa.fukushima.jp","tanagura.fukushima.jp","tenei.fukushima.jp","yabuki.fukushima.jp","yamato.fukushima.jp","yamatsuri.fukushima.jp","yanaizu.fukushima.jp","yugawa.fukushima.jp","anpachi.gifu.jp","ena.gifu.jp","gifu.gifu.jp","ginan.gifu.jp","godo.gifu.jp","gujo.gifu.jp","hashima.gifu.jp","hichiso.gifu.jp","hida.gifu.jp","higashishirakawa.gifu.jp","ibigawa.gifu.jp","ikeda.gifu.jp","kakamigahara.gifu.jp","kani.gifu.jp","kasahara.gifu.jp","kasamatsu.gifu.jp","kawaue.gifu.jp","kitagata.gifu.jp","mino.gifu.jp","minokamo.gifu.jp","mitake.gifu.jp","mizunami.gifu.jp","motosu.gifu.jp","nakatsugawa.gifu.jp","ogaki.gifu.jp","sakahogi.gifu.jp","seki.gifu.jp","sekigahara.gifu.jp","shirakawa.gifu.jp","tajimi.gifu.jp","takayama.gifu.jp","tarui.gifu.jp","toki.gifu.jp","tomika.gifu.jp","wanouchi.gifu.jp","yamagata.gifu.jp","yaotsu.gifu.jp","yoro.gifu.jp","annaka.gunma.jp","chiyoda.gunma.jp","fujioka.gunma.jp","higashiagatsuma.gunma.jp","isesaki.gunma.jp","itakura.gunma.jp","kanna.gunma.jp","kanra.gunma.jp","katashina.gunma.jp","kawaba.gunma.jp","kiryu.gunma.jp","kusatsu.gunma.jp","maebashi.gunma.jp","meiwa.gunma.jp","midori.gunma.jp","minakami.gunma.jp","naganohara.gunma.jp","nakanojo.gunma.jp","nanmoku.gunma.jp","numata.gunma.jp","oizumi.gunma.jp","ora.gunma.jp","ota.gunma.jp","shibukawa.gunma.jp","shimonita.gunma.jp","shinto.gunma.jp","showa.gunma.jp","takasaki.gunma.jp","takayama.gunma.jp","tamamura.gunma.jp","tatebayashi.gunma.jp","tomioka.gunma.jp","tsukiyono.gunma.jp","tsumagoi.gunma.jp","ueno.gunma.jp","yoshioka.gunma.jp","asaminami.hiroshima.jp","daiwa.hiroshima.jp","etajima.hiroshima.jp","fuchu.hiroshima.jp","fukuyama.hiroshima.jp","hatsukaichi.hiroshima.jp","higashihiroshima.hiroshima.jp","hongo.hiroshima.jp","jinsekikogen.hiroshima.jp","kaita.hiroshima.jp","kui.hiroshima.jp","kumano.hiroshima.jp","kure.hiroshima.jp","mihara.hiroshima.jp","miyoshi.hiroshima.jp","naka.hiroshima.jp","onomichi.hiroshima.jp","osakikamijima.hiroshima.jp","otake.hiroshima.jp","saka.hiroshima.jp","sera.hiroshima.jp","seranishi.hiroshima.jp","shinichi.hiroshima.jp","shobara.hiroshima.jp","takehara.hiroshima.jp","abashiri.hokkaido.jp","abira.hokkaido.jp","aibetsu.hokkaido.jp","akabira.hokkaido.jp","akkeshi.hokkaido.jp","asahikawa.hokkaido.jp","ashibetsu.hokkaido.jp","ashoro.hokkaido.jp","assabu.hokkaido.jp","atsuma.hokkaido.jp","bibai.hokkaido.jp","biei.hokkaido.jp","bifuka.hokkaido.jp","bihoro.hokkaido.jp","biratori.hokkaido.jp","chippubetsu.hokkaido.jp","chitose.hokkaido.jp","date.hokkaido.jp","ebetsu.hokkaido.jp","embetsu.hokkaido.jp","eniwa.hokkaido.jp","erimo.hokkaido.jp","esan.hokkaido.jp","esashi.hokkaido.jp","fukagawa.hokkaido.jp","fukushima.hokkaido.jp","furano.hokkaido.jp","furubira.hokkaido.jp","haboro.hokkaido.jp","hakodate.hokkaido.jp","hamatonbetsu.hokkaido.jp","hidaka.hokkaido.jp","higashikagura.hokkaido.jp","higashikawa.hokkaido.jp","hiroo.hokkaido.jp","hokuryu.hokkaido.jp","hokuto.hokkaido.jp","honbetsu.hokkaido.jp","horokanai.hokkaido.jp","horonobe.hokkaido.jp","ikeda.hokkaido.jp","imakane.hokkaido.jp","ishikari.hokkaido.jp","iwamizawa.hokkaido.jp","iwanai.hokkaido.jp","kamifurano.hokkaido.jp","kamikawa.hokkaido.jp","kamishihoro.hokkaido.jp","kamisunagawa.hokkaido.jp","kamoenai.hokkaido.jp","kayabe.hokkaido.jp","kembuchi.hokkaido.jp","kikonai.hokkaido.jp","kimobetsu.hokkaido.jp","kitahiroshima.hokkaido.jp","kitami.hokkaido.jp","kiyosato.hokkaido.jp","koshimizu.hokkaido.jp","kunneppu.hokkaido.jp","kuriyama.hokkaido.jp","kuromatsunai.hokkaido.jp","kushiro.hokkaido.jp","kutchan.hokkaido.jp","kyowa.hokkaido.jp","mashike.hokkaido.jp","matsumae.hokkaido.jp","mikasa.hokkaido.jp","minamifurano.hokkaido.jp","mombetsu.hokkaido.jp","moseushi.hokkaido.jp","mukawa.hokkaido.jp","muroran.hokkaido.jp","naie.hokkaido.jp","nakagawa.hokkaido.jp","nakasatsunai.hokkaido.jp","nakatombetsu.hokkaido.jp","nanae.hokkaido.jp","nanporo.hokkaido.jp","nayoro.hokkaido.jp","nemuro.hokkaido.jp","niikappu.hokkaido.jp","niki.hokkaido.jp","nishiokoppe.hokkaido.jp","noboribetsu.hokkaido.jp","numata.hokkaido.jp","obihiro.hokkaido.jp","obira.hokkaido.jp","oketo.hokkaido.jp","okoppe.hokkaido.jp","otaru.hokkaido.jp","otobe.hokkaido.jp","otofuke.hokkaido.jp","otoineppu.hokkaido.jp","oumu.hokkaido.jp","ozora.hokkaido.jp","pippu.hokkaido.jp","rankoshi.hokkaido.jp","rebun.hokkaido.jp","rikubetsu.hokkaido.jp","rishiri.hokkaido.jp","rishirifuji.hokkaido.jp","saroma.hokkaido.jp","sarufutsu.hokkaido.jp","shakotan.hokkaido.jp","shari.hokkaido.jp","shibecha.hokkaido.jp","shibetsu.hokkaido.jp","shikabe.hokkaido.jp","shikaoi.hokkaido.jp","shimamaki.hokkaido.jp","shimizu.hokkaido.jp","shimokawa.hokkaido.jp","shinshinotsu.hokkaido.jp","shintoku.hokkaido.jp","shiranuka.hokkaido.jp","shiraoi.hokkaido.jp","shiriuchi.hokkaido.jp","sobetsu.hokkaido.jp","sunagawa.hokkaido.jp","taiki.hokkaido.jp","takasu.hokkaido.jp","takikawa.hokkaido.jp","takinoue.hokkaido.jp","teshikaga.hokkaido.jp","tobetsu.hokkaido.jp","tohma.hokkaido.jp","tomakomai.hokkaido.jp","tomari.hokkaido.jp","toya.hokkaido.jp","toyako.hokkaido.jp","toyotomi.hokkaido.jp","toyoura.hokkaido.jp","tsubetsu.hokkaido.jp","tsukigata.hokkaido.jp","urakawa.hokkaido.jp","urausu.hokkaido.jp","uryu.hokkaido.jp","utashinai.hokkaido.jp","wakkanai.hokkaido.jp","wassamu.hokkaido.jp","yakumo.hokkaido.jp","yoichi.hokkaido.jp","aioi.hyogo.jp","akashi.hyogo.jp","ako.hyogo.jp","amagasaki.hyogo.jp","aogaki.hyogo.jp","asago.hyogo.jp","ashiya.hyogo.jp","awaji.hyogo.jp","fukusaki.hyogo.jp","goshiki.hyogo.jp","harima.hyogo.jp","himeji.hyogo.jp","ichikawa.hyogo.jp","inagawa.hyogo.jp","itami.hyogo.jp","kakogawa.hyogo.jp","kamigori.hyogo.jp","kamikawa.hyogo.jp","kasai.hyogo.jp","kasuga.hyogo.jp","kawanishi.hyogo.jp","miki.hyogo.jp","minamiawaji.hyogo.jp","nishinomiya.hyogo.jp","nishiwaki.hyogo.jp","ono.hyogo.jp","sanda.hyogo.jp","sannan.hyogo.jp","sasayama.hyogo.jp","sayo.hyogo.jp","shingu.hyogo.jp","shinonsen.hyogo.jp","shiso.hyogo.jp","sumoto.hyogo.jp","taishi.hyogo.jp","taka.hyogo.jp","takarazuka.hyogo.jp","takasago.hyogo.jp","takino.hyogo.jp","tamba.hyogo.jp","tatsuno.hyogo.jp","toyooka.hyogo.jp","yabu.hyogo.jp","yashiro.hyogo.jp","yoka.hyogo.jp","yokawa.hyogo.jp","ami.ibaraki.jp","asahi.ibaraki.jp","bando.ibaraki.jp","chikusei.ibaraki.jp","daigo.ibaraki.jp","fujishiro.ibaraki.jp","hitachi.ibaraki.jp","hitachinaka.ibaraki.jp","hitachiomiya.ibaraki.jp","hitachiota.ibaraki.jp","ibaraki.ibaraki.jp","ina.ibaraki.jp","inashiki.ibaraki.jp","itako.ibaraki.jp","iwama.ibaraki.jp","joso.ibaraki.jp","kamisu.ibaraki.jp","kasama.ibaraki.jp","kashima.ibaraki.jp","kasumigaura.ibaraki.jp","koga.ibaraki.jp","miho.ibaraki.jp","mito.ibaraki.jp","moriya.ibaraki.jp","naka.ibaraki.jp","namegata.ibaraki.jp","oarai.ibaraki.jp","ogawa.ibaraki.jp","omitama.ibaraki.jp","ryugasaki.ibaraki.jp","sakai.ibaraki.jp","sakuragawa.ibaraki.jp","shimodate.ibaraki.jp","shimotsuma.ibaraki.jp","shirosato.ibaraki.jp","sowa.ibaraki.jp","suifu.ibaraki.jp","takahagi.ibaraki.jp","tamatsukuri.ibaraki.jp","tokai.ibaraki.jp","tomobe.ibaraki.jp","tone.ibaraki.jp","toride.ibaraki.jp","tsuchiura.ibaraki.jp","tsukuba.ibaraki.jp","uchihara.ibaraki.jp","ushiku.ibaraki.jp","yachiyo.ibaraki.jp","yamagata.ibaraki.jp","yawara.ibaraki.jp","yuki.ibaraki.jp","anamizu.ishikawa.jp","hakui.ishikawa.jp","hakusan.ishikawa.jp","kaga.ishikawa.jp","kahoku.ishikawa.jp","kanazawa.ishikawa.jp","kawakita.ishikawa.jp","komatsu.ishikawa.jp","nakanoto.ishikawa.jp","nanao.ishikawa.jp","nomi.ishikawa.jp","nonoichi.ishikawa.jp","noto.ishikawa.jp","shika.ishikawa.jp","suzu.ishikawa.jp","tsubata.ishikawa.jp","tsurugi.ishikawa.jp","uchinada.ishikawa.jp","wajima.ishikawa.jp","fudai.iwate.jp","fujisawa.iwate.jp","hanamaki.iwate.jp","hiraizumi.iwate.jp","hirono.iwate.jp","ichinohe.iwate.jp","ichinoseki.iwate.jp","iwaizumi.iwate.jp","iwate.iwate.jp","joboji.iwate.jp","kamaishi.iwate.jp","kanegasaki.iwate.jp","karumai.iwate.jp","kawai.iwate.jp","kitakami.iwate.jp","kuji.iwate.jp","kunohe.iwate.jp","kuzumaki.iwate.jp","miyako.iwate.jp","mizusawa.iwate.jp","morioka.iwate.jp","ninohe.iwate.jp","noda.iwate.jp","ofunato.iwate.jp","oshu.iwate.jp","otsuchi.iwate.jp","rikuzentakata.iwate.jp","shiwa.iwate.jp","shizukuishi.iwate.jp","sumita.iwate.jp","tanohata.iwate.jp","tono.iwate.jp","yahaba.iwate.jp","yamada.iwate.jp","ayagawa.kagawa.jp","higashikagawa.kagawa.jp","kanonji.kagawa.jp","kotohira.kagawa.jp","manno.kagawa.jp","marugame.kagawa.jp","mitoyo.kagawa.jp","naoshima.kagawa.jp","sanuki.kagawa.jp","tadotsu.kagawa.jp","takamatsu.kagawa.jp","tonosho.kagawa.jp","uchinomi.kagawa.jp","utazu.kagawa.jp","zentsuji.kagawa.jp","akune.kagoshima.jp","amami.kagoshima.jp","hioki.kagoshima.jp","isa.kagoshima.jp","isen.kagoshima.jp","izumi.kagoshima.jp","kagoshima.kagoshima.jp","kanoya.kagoshima.jp","kawanabe.kagoshima.jp","kinko.kagoshima.jp","kouyama.kagoshima.jp","makurazaki.kagoshima.jp","matsumoto.kagoshima.jp","minamitane.kagoshima.jp","nakatane.kagoshima.jp","nishinoomote.kagoshima.jp","satsumasendai.kagoshima.jp","soo.kagoshima.jp","tarumizu.kagoshima.jp","yusui.kagoshima.jp","aikawa.kanagawa.jp","atsugi.kanagawa.jp","ayase.kanagawa.jp","chigasaki.kanagawa.jp","ebina.kanagawa.jp","fujisawa.kanagawa.jp","hadano.kanagawa.jp","hakone.kanagawa.jp","hiratsuka.kanagawa.jp","isehara.kanagawa.jp","kaisei.kanagawa.jp","kamakura.kanagawa.jp","kiyokawa.kanagawa.jp","matsuda.kanagawa.jp","minamiashigara.kanagawa.jp","miura.kanagawa.jp","nakai.kanagawa.jp","ninomiya.kanagawa.jp","odawara.kanagawa.jp","oi.kanagawa.jp","oiso.kanagawa.jp","sagamihara.kanagawa.jp","samukawa.kanagawa.jp","tsukui.kanagawa.jp","yamakita.kanagawa.jp","yamato.kanagawa.jp","yokosuka.kanagawa.jp","yugawara.kanagawa.jp","zama.kanagawa.jp","zushi.kanagawa.jp","aki.kochi.jp","geisei.kochi.jp","hidaka.kochi.jp","higashitsuno.kochi.jp","ino.kochi.jp","kagami.kochi.jp","kami.kochi.jp","kitagawa.kochi.jp","kochi.kochi.jp","mihara.kochi.jp","motoyama.kochi.jp","muroto.kochi.jp","nahari.kochi.jp","nakamura.kochi.jp","nankoku.kochi.jp","nishitosa.kochi.jp","niyodogawa.kochi.jp","ochi.kochi.jp","okawa.kochi.jp","otoyo.kochi.jp","otsuki.kochi.jp","sakawa.kochi.jp","sukumo.kochi.jp","susaki.kochi.jp","tosa.kochi.jp","tosashimizu.kochi.jp","toyo.kochi.jp","tsuno.kochi.jp","umaji.kochi.jp","yasuda.kochi.jp","yusuhara.kochi.jp","amakusa.kumamoto.jp","arao.kumamoto.jp","aso.kumamoto.jp","choyo.kumamoto.jp","gyokuto.kumamoto.jp","kamiamakusa.kumamoto.jp","kikuchi.kumamoto.jp","kumamoto.kumamoto.jp","mashiki.kumamoto.jp","mifune.kumamoto.jp","minamata.kumamoto.jp","minamioguni.kumamoto.jp","nagasu.kumamoto.jp","nishihara.kumamoto.jp","oguni.kumamoto.jp","ozu.kumamoto.jp","sumoto.kumamoto.jp","takamori.kumamoto.jp","uki.kumamoto.jp","uto.kumamoto.jp","yamaga.kumamoto.jp","yamato.kumamoto.jp","yatsushiro.kumamoto.jp","ayabe.kyoto.jp","fukuchiyama.kyoto.jp","higashiyama.kyoto.jp","ide.kyoto.jp","ine.kyoto.jp","joyo.kyoto.jp","kameoka.kyoto.jp","kamo.kyoto.jp","kita.kyoto.jp","kizu.kyoto.jp","kumiyama.kyoto.jp","kyotamba.kyoto.jp","kyotanabe.kyoto.jp","kyotango.kyoto.jp","maizuru.kyoto.jp","minami.kyoto.jp","minamiyamashiro.kyoto.jp","miyazu.kyoto.jp","muko.kyoto.jp","nagaokakyo.kyoto.jp","nakagyo.kyoto.jp","nantan.kyoto.jp","oyamazaki.kyoto.jp","sakyo.kyoto.jp","seika.kyoto.jp","tanabe.kyoto.jp","uji.kyoto.jp","ujitawara.kyoto.jp","wazuka.kyoto.jp","yamashina.kyoto.jp","yawata.kyoto.jp","asahi.mie.jp","inabe.mie.jp","ise.mie.jp","kameyama.mie.jp","kawagoe.mie.jp","kiho.mie.jp","kisosaki.mie.jp","kiwa.mie.jp","komono.mie.jp","kumano.mie.jp","kuwana.mie.jp","matsusaka.mie.jp","meiwa.mie.jp","mihama.mie.jp","minamiise.mie.jp","misugi.mie.jp","miyama.mie.jp","nabari.mie.jp","shima.mie.jp","suzuka.mie.jp","tado.mie.jp","taiki.mie.jp","taki.mie.jp","tamaki.mie.jp","toba.mie.jp","tsu.mie.jp","udono.mie.jp","ureshino.mie.jp","watarai.mie.jp","yokkaichi.mie.jp","furukawa.miyagi.jp","higashimatsushima.miyagi.jp","ishinomaki.miyagi.jp","iwanuma.miyagi.jp","kakuda.miyagi.jp","kami.miyagi.jp","kawasaki.miyagi.jp","marumori.miyagi.jp","matsushima.miyagi.jp","minamisanriku.miyagi.jp","misato.miyagi.jp","murata.miyagi.jp","natori.miyagi.jp","ogawara.miyagi.jp","ohira.miyagi.jp","onagawa.miyagi.jp","osaki.miyagi.jp","rifu.miyagi.jp","semine.miyagi.jp","shibata.miyagi.jp","shichikashuku.miyagi.jp","shikama.miyagi.jp","shiogama.miyagi.jp","shiroishi.miyagi.jp","tagajo.miyagi.jp","taiwa.miyagi.jp","tome.miyagi.jp","tomiya.miyagi.jp","wakuya.miyagi.jp","watari.miyagi.jp","yamamoto.miyagi.jp","zao.miyagi.jp","aya.miyazaki.jp","ebino.miyazaki.jp","gokase.miyazaki.jp","hyuga.miyazaki.jp","kadogawa.miyazaki.jp","kawaminami.miyazaki.jp","kijo.miyazaki.jp","kitagawa.miyazaki.jp","kitakata.miyazaki.jp","kitaura.miyazaki.jp","kobayashi.miyazaki.jp","kunitomi.miyazaki.jp","kushima.miyazaki.jp","mimata.miyazaki.jp","miyakonojo.miyazaki.jp","miyazaki.miyazaki.jp","morotsuka.miyazaki.jp","nichinan.miyazaki.jp","nishimera.miyazaki.jp","nobeoka.miyazaki.jp","saito.miyazaki.jp","shiiba.miyazaki.jp","shintomi.miyazaki.jp","takaharu.miyazaki.jp","takanabe.miyazaki.jp","takazaki.miyazaki.jp","tsuno.miyazaki.jp","achi.nagano.jp","agematsu.nagano.jp","anan.nagano.jp","aoki.nagano.jp","asahi.nagano.jp","azumino.nagano.jp","chikuhoku.nagano.jp","chikuma.nagano.jp","chino.nagano.jp","fujimi.nagano.jp","hakuba.nagano.jp","hara.nagano.jp","hiraya.nagano.jp","iida.nagano.jp","iijima.nagano.jp","iiyama.nagano.jp","iizuna.nagano.jp","ikeda.nagano.jp","ikusaka.nagano.jp","ina.nagano.jp","karuizawa.nagano.jp","kawakami.nagano.jp","kiso.nagano.jp","kisofukushima.nagano.jp","kitaaiki.nagano.jp","komagane.nagano.jp","komoro.nagano.jp","matsukawa.nagano.jp","matsumoto.nagano.jp","miasa.nagano.jp","minamiaiki.nagano.jp","minamimaki.nagano.jp","minamiminowa.nagano.jp","minowa.nagano.jp","miyada.nagano.jp","miyota.nagano.jp","mochizuki.nagano.jp","nagano.nagano.jp","nagawa.nagano.jp","nagiso.nagano.jp","nakagawa.nagano.jp","nakano.nagano.jp","nozawaonsen.nagano.jp","obuse.nagano.jp","ogawa.nagano.jp","okaya.nagano.jp","omachi.nagano.jp","omi.nagano.jp","ookuwa.nagano.jp","ooshika.nagano.jp","otaki.nagano.jp","otari.nagano.jp","sakae.nagano.jp","sakaki.nagano.jp","saku.nagano.jp","sakuho.nagano.jp","shimosuwa.nagano.jp","shinanomachi.nagano.jp","shiojiri.nagano.jp","suwa.nagano.jp","suzaka.nagano.jp","takagi.nagano.jp","takamori.nagano.jp","takayama.nagano.jp","tateshina.nagano.jp","tatsuno.nagano.jp","togakushi.nagano.jp","togura.nagano.jp","tomi.nagano.jp","ueda.nagano.jp","wada.nagano.jp","yamagata.nagano.jp","yamanouchi.nagano.jp","yasaka.nagano.jp","yasuoka.nagano.jp","chijiwa.nagasaki.jp","futsu.nagasaki.jp","goto.nagasaki.jp","hasami.nagasaki.jp","hirado.nagasaki.jp","iki.nagasaki.jp","isahaya.nagasaki.jp","kawatana.nagasaki.jp","kuchinotsu.nagasaki.jp","matsuura.nagasaki.jp","nagasaki.nagasaki.jp","obama.nagasaki.jp","omura.nagasaki.jp","oseto.nagasaki.jp","saikai.nagasaki.jp","sasebo.nagasaki.jp","seihi.nagasaki.jp","shimabara.nagasaki.jp","shinkamigoto.nagasaki.jp","togitsu.nagasaki.jp","tsushima.nagasaki.jp","unzen.nagasaki.jp","ando.nara.jp","gose.nara.jp","heguri.nara.jp","higashiyoshino.nara.jp","ikaruga.nara.jp","ikoma.nara.jp","kamikitayama.nara.jp","kanmaki.nara.jp","kashiba.nara.jp","kashihara.nara.jp","katsuragi.nara.jp","kawai.nara.jp","kawakami.nara.jp","kawanishi.nara.jp","koryo.nara.jp","kurotaki.nara.jp","mitsue.nara.jp","miyake.nara.jp","nara.nara.jp","nosegawa.nara.jp","oji.nara.jp","ouda.nara.jp","oyodo.nara.jp","sakurai.nara.jp","sango.nara.jp","shimoichi.nara.jp","shimokitayama.nara.jp","shinjo.nara.jp","soni.nara.jp","takatori.nara.jp","tawaramoto.nara.jp","tenkawa.nara.jp","tenri.nara.jp","uda.nara.jp","yamatokoriyama.nara.jp","yamatotakada.nara.jp","yamazoe.nara.jp","yoshino.nara.jp","aga.niigata.jp","agano.niigata.jp","gosen.niigata.jp","itoigawa.niigata.jp","izumozaki.niigata.jp","joetsu.niigata.jp","kamo.niigata.jp","kariwa.niigata.jp","kashiwazaki.niigata.jp","minamiuonuma.niigata.jp","mitsuke.niigata.jp","muika.niigata.jp","murakami.niigata.jp","myoko.niigata.jp","nagaoka.niigata.jp","niigata.niigata.jp","ojiya.niigata.jp","omi.niigata.jp","sado.niigata.jp","sanjo.niigata.jp","seiro.niigata.jp","seirou.niigata.jp","sekikawa.niigata.jp","shibata.niigata.jp","tagami.niigata.jp","tainai.niigata.jp","tochio.niigata.jp","tokamachi.niigata.jp","tsubame.niigata.jp","tsunan.niigata.jp","uonuma.niigata.jp","yahiko.niigata.jp","yoita.niigata.jp","yuzawa.niigata.jp","beppu.oita.jp","bungoono.oita.jp","bungotakada.oita.jp","hasama.oita.jp","hiji.oita.jp","himeshima.oita.jp","hita.oita.jp","kamitsue.oita.jp","kokonoe.oita.jp","kuju.oita.jp","kunisaki.oita.jp","kusu.oita.jp","oita.oita.jp","saiki.oita.jp","taketa.oita.jp","tsukumi.oita.jp","usa.oita.jp","usuki.oita.jp","yufu.oita.jp","akaiwa.okayama.jp","asakuchi.okayama.jp","bizen.okayama.jp","hayashima.okayama.jp","ibara.okayama.jp","kagamino.okayama.jp","kasaoka.okayama.jp","kibichuo.okayama.jp","kumenan.okayama.jp","kurashiki.okayama.jp","maniwa.okayama.jp","misaki.okayama.jp","nagi.okayama.jp","niimi.okayama.jp","nishiawakura.okayama.jp","okayama.okayama.jp","satosho.okayama.jp","setouchi.okayama.jp","shinjo.okayama.jp","shoo.okayama.jp","soja.okayama.jp","takahashi.okayama.jp","tamano.okayama.jp","tsuyama.okayama.jp","wake.okayama.jp","yakage.okayama.jp","aguni.okinawa.jp","ginowan.okinawa.jp","ginoza.okinawa.jp","gushikami.okinawa.jp","haebaru.okinawa.jp","higashi.okinawa.jp","hirara.okinawa.jp","iheya.okinawa.jp","ishigaki.okinawa.jp","ishikawa.okinawa.jp","itoman.okinawa.jp","izena.okinawa.jp","kadena.okinawa.jp","kin.okinawa.jp","kitadaito.okinawa.jp","kitanakagusuku.okinawa.jp","kumejima.okinawa.jp","kunigami.okinawa.jp","minamidaito.okinawa.jp","motobu.okinawa.jp","nago.okinawa.jp","naha.okinawa.jp","nakagusuku.okinawa.jp","nakijin.okinawa.jp","nanjo.okinawa.jp","nishihara.okinawa.jp","ogimi.okinawa.jp","okinawa.okinawa.jp","onna.okinawa.jp","shimoji.okinawa.jp","taketomi.okinawa.jp","tarama.okinawa.jp","tokashiki.okinawa.jp","tomigusuku.okinawa.jp","tonaki.okinawa.jp","urasoe.okinawa.jp","uruma.okinawa.jp","yaese.okinawa.jp","yomitan.okinawa.jp","yonabaru.okinawa.jp","yonaguni.okinawa.jp","zamami.okinawa.jp","abeno.osaka.jp","chihayaakasaka.osaka.jp","chuo.osaka.jp","daito.osaka.jp","fujiidera.osaka.jp","habikino.osaka.jp","hannan.osaka.jp","higashiosaka.osaka.jp","higashisumiyoshi.osaka.jp","higashiyodogawa.osaka.jp","hirakata.osaka.jp","ibaraki.osaka.jp","ikeda.osaka.jp","izumi.osaka.jp","izumiotsu.osaka.jp","izumisano.osaka.jp","kadoma.osaka.jp","kaizuka.osaka.jp","kanan.osaka.jp","kashiwara.osaka.jp","katano.osaka.jp","kawachinagano.osaka.jp","kishiwada.osaka.jp","kita.osaka.jp","kumatori.osaka.jp","matsubara.osaka.jp","minato.osaka.jp","minoh.osaka.jp","misaki.osaka.jp","moriguchi.osaka.jp","neyagawa.osaka.jp","nishi.osaka.jp","nose.osaka.jp","osakasayama.osaka.jp","sakai.osaka.jp","sayama.osaka.jp","sennan.osaka.jp","settsu.osaka.jp","shijonawate.osaka.jp","shimamoto.osaka.jp","suita.osaka.jp","tadaoka.osaka.jp","taishi.osaka.jp","tajiri.osaka.jp","takaishi.osaka.jp","takatsuki.osaka.jp","tondabayashi.osaka.jp","toyonaka.osaka.jp","toyono.osaka.jp","yao.osaka.jp","ariake.saga.jp","arita.saga.jp","fukudomi.saga.jp","genkai.saga.jp","hamatama.saga.jp","hizen.saga.jp","imari.saga.jp","kamimine.saga.jp","kanzaki.saga.jp","karatsu.saga.jp","kashima.saga.jp","kitagata.saga.jp","kitahata.saga.jp","kiyama.saga.jp","kouhoku.saga.jp","kyuragi.saga.jp","nishiarita.saga.jp","ogi.saga.jp","omachi.saga.jp","ouchi.saga.jp","saga.saga.jp","shiroishi.saga.jp","taku.saga.jp","tara.saga.jp","tosu.saga.jp","yoshinogari.saga.jp","arakawa.saitama.jp","asaka.saitama.jp","chichibu.saitama.jp","fujimi.saitama.jp","fujimino.saitama.jp","fukaya.saitama.jp","hanno.saitama.jp","hanyu.saitama.jp","hasuda.saitama.jp","hatogaya.saitama.jp","hatoyama.saitama.jp","hidaka.saitama.jp","higashichichibu.saitama.jp","higashimatsuyama.saitama.jp","honjo.saitama.jp","ina.saitama.jp","iruma.saitama.jp","iwatsuki.saitama.jp","kamiizumi.saitama.jp","kamikawa.saitama.jp","kamisato.saitama.jp","kasukabe.saitama.jp","kawagoe.saitama.jp","kawaguchi.saitama.jp","kawajima.saitama.jp","kazo.saitama.jp","kitamoto.saitama.jp","koshigaya.saitama.jp","kounosu.saitama.jp","kuki.saitama.jp","kumagaya.saitama.jp","matsubushi.saitama.jp","minano.saitama.jp","misato.saitama.jp","miyashiro.saitama.jp","miyoshi.saitama.jp","moroyama.saitama.jp","nagatoro.saitama.jp","namegawa.saitama.jp","niiza.saitama.jp","ogano.saitama.jp","ogawa.saitama.jp","ogose.saitama.jp","okegawa.saitama.jp","omiya.saitama.jp","otaki.saitama.jp","ranzan.saitama.jp","ryokami.saitama.jp","saitama.saitama.jp","sakado.saitama.jp","satte.saitama.jp","sayama.saitama.jp","shiki.saitama.jp","shiraoka.saitama.jp","soka.saitama.jp","sugito.saitama.jp","toda.saitama.jp","tokigawa.saitama.jp","tokorozawa.saitama.jp","tsurugashima.saitama.jp","urawa.saitama.jp","warabi.saitama.jp","yashio.saitama.jp","yokoze.saitama.jp","yono.saitama.jp","yorii.saitama.jp","yoshida.saitama.jp","yoshikawa.saitama.jp","yoshimi.saitama.jp","aisho.shiga.jp","gamo.shiga.jp","higashiomi.shiga.jp","hikone.shiga.jp","koka.shiga.jp","konan.shiga.jp","kosei.shiga.jp","koto.shiga.jp","kusatsu.shiga.jp","maibara.shiga.jp","moriyama.shiga.jp","nagahama.shiga.jp","nishiazai.shiga.jp","notogawa.shiga.jp","omihachiman.shiga.jp","otsu.shiga.jp","ritto.shiga.jp","ryuoh.shiga.jp","takashima.shiga.jp","takatsuki.shiga.jp","torahime.shiga.jp","toyosato.shiga.jp","yasu.shiga.jp","akagi.shimane.jp","ama.shimane.jp","gotsu.shimane.jp","hamada.shimane.jp","higashiizumo.shimane.jp","hikawa.shimane.jp","hikimi.shimane.jp","izumo.shimane.jp","kakinoki.shimane.jp","masuda.shimane.jp","matsue.shimane.jp","misato.shimane.jp","nishinoshima.shimane.jp","ohda.shimane.jp","okinoshima.shimane.jp","okuizumo.shimane.jp","shimane.shimane.jp","tamayu.shimane.jp","tsuwano.shimane.jp","unnan.shimane.jp","yakumo.shimane.jp","yasugi.shimane.jp","yatsuka.shimane.jp","arai.shizuoka.jp","atami.shizuoka.jp","fuji.shizuoka.jp","fujieda.shizuoka.jp","fujikawa.shizuoka.jp","fujinomiya.shizuoka.jp","fukuroi.shizuoka.jp","gotemba.shizuoka.jp","haibara.shizuoka.jp","hamamatsu.shizuoka.jp","higashiizu.shizuoka.jp","ito.shizuoka.jp","iwata.shizuoka.jp","izu.shizuoka.jp","izunokuni.shizuoka.jp","kakegawa.shizuoka.jp","kannami.shizuoka.jp","kawanehon.shizuoka.jp","kawazu.shizuoka.jp","kikugawa.shizuoka.jp","kosai.shizuoka.jp","makinohara.shizuoka.jp","matsuzaki.shizuoka.jp","minamiizu.shizuoka.jp","mishima.shizuoka.jp","morimachi.shizuoka.jp","nishiizu.shizuoka.jp","numazu.shizuoka.jp","omaezaki.shizuoka.jp","shimada.shizuoka.jp","shimizu.shizuoka.jp","shimoda.shizuoka.jp","shizuoka.shizuoka.jp","susono.shizuoka.jp","yaizu.shizuoka.jp","yoshida.shizuoka.jp","ashikaga.tochigi.jp","bato.tochigi.jp","haga.tochigi.jp","ichikai.tochigi.jp","iwafune.tochigi.jp","kaminokawa.tochigi.jp","kanuma.tochigi.jp","karasuyama.tochigi.jp","kuroiso.tochigi.jp","mashiko.tochigi.jp","mibu.tochigi.jp","moka.tochigi.jp","motegi.tochigi.jp","nasu.tochigi.jp","nasushiobara.tochigi.jp","nikko.tochigi.jp","nishikata.tochigi.jp","nogi.tochigi.jp","ohira.tochigi.jp","ohtawara.tochigi.jp","oyama.tochigi.jp","sakura.tochigi.jp","sano.tochigi.jp","shimotsuke.tochigi.jp","shioya.tochigi.jp","takanezawa.tochigi.jp","tochigi.tochigi.jp","tsuga.tochigi.jp","ujiie.tochigi.jp","utsunomiya.tochigi.jp","yaita.tochigi.jp","aizumi.tokushima.jp","anan.tokushima.jp","ichiba.tokushima.jp","itano.tokushima.jp","kainan.tokushima.jp","komatsushima.tokushima.jp","matsushige.tokushima.jp","mima.tokushima.jp","minami.tokushima.jp","miyoshi.tokushima.jp","mugi.tokushima.jp","nakagawa.tokushima.jp","naruto.tokushima.jp","sanagochi.tokushima.jp","shishikui.tokushima.jp","tokushima.tokushima.jp","wajiki.tokushima.jp","adachi.tokyo.jp","akiruno.tokyo.jp","akishima.tokyo.jp","aogashima.tokyo.jp","arakawa.tokyo.jp","bunkyo.tokyo.jp","chiyoda.tokyo.jp","chofu.tokyo.jp","chuo.tokyo.jp","edogawa.tokyo.jp","fuchu.tokyo.jp","fussa.tokyo.jp","hachijo.tokyo.jp","hachioji.tokyo.jp","hamura.tokyo.jp","higashikurume.tokyo.jp","higashimurayama.tokyo.jp","higashiyamato.tokyo.jp","hino.tokyo.jp","hinode.tokyo.jp","hinohara.tokyo.jp","inagi.tokyo.jp","itabashi.tokyo.jp","katsushika.tokyo.jp","kita.tokyo.jp","kiyose.tokyo.jp","kodaira.tokyo.jp","koganei.tokyo.jp","kokubunji.tokyo.jp","komae.tokyo.jp","koto.tokyo.jp","kouzushima.tokyo.jp","kunitachi.tokyo.jp","machida.tokyo.jp","meguro.tokyo.jp","minato.tokyo.jp","mitaka.tokyo.jp","mizuho.tokyo.jp","musashimurayama.tokyo.jp","musashino.tokyo.jp","nakano.tokyo.jp","nerima.tokyo.jp","ogasawara.tokyo.jp","okutama.tokyo.jp","ome.tokyo.jp","oshima.tokyo.jp","ota.tokyo.jp","setagaya.tokyo.jp","shibuya.tokyo.jp","shinagawa.tokyo.jp","shinjuku.tokyo.jp","suginami.tokyo.jp","sumida.tokyo.jp","tachikawa.tokyo.jp","taito.tokyo.jp","tama.tokyo.jp","toshima.tokyo.jp","chizu.tottori.jp","hino.tottori.jp","kawahara.tottori.jp","koge.tottori.jp","kotoura.tottori.jp","misasa.tottori.jp","nanbu.tottori.jp","nichinan.tottori.jp","sakaiminato.tottori.jp","tottori.tottori.jp","wakasa.tottori.jp","yazu.tottori.jp","yonago.tottori.jp","asahi.toyama.jp","fuchu.toyama.jp","fukumitsu.toyama.jp","funahashi.toyama.jp","himi.toyama.jp","imizu.toyama.jp","inami.toyama.jp","johana.toyama.jp","kamiichi.toyama.jp","kurobe.toyama.jp","nakaniikawa.toyama.jp","namerikawa.toyama.jp","nanto.toyama.jp","nyuzen.toyama.jp","oyabe.toyama.jp","taira.toyama.jp","takaoka.toyama.jp","tateyama.toyama.jp","toga.toyama.jp","tonami.toyama.jp","toyama.toyama.jp","unazuki.toyama.jp","uozu.toyama.jp","yamada.toyama.jp","arida.wakayama.jp","aridagawa.wakayama.jp","gobo.wakayama.jp","hashimoto.wakayama.jp","hidaka.wakayama.jp","hirogawa.wakayama.jp","inami.wakayama.jp","iwade.wakayama.jp","kainan.wakayama.jp","kamitonda.wakayama.jp","katsuragi.wakayama.jp","kimino.wakayama.jp","kinokawa.wakayama.jp","kitayama.wakayama.jp","koya.wakayama.jp","koza.wakayama.jp","kozagawa.wakayama.jp","kudoyama.wakayama.jp","kushimoto.wakayama.jp","mihama.wakayama.jp","misato.wakayama.jp","nachikatsuura.wakayama.jp","shingu.wakayama.jp","shirahama.wakayama.jp","taiji.wakayama.jp","tanabe.wakayama.jp","wakayama.wakayama.jp","yuasa.wakayama.jp","yura.wakayama.jp","asahi.yamagata.jp","funagata.yamagata.jp","higashine.yamagata.jp","iide.yamagata.jp","kahoku.yamagata.jp","kaminoyama.yamagata.jp","kaneyama.yamagata.jp","kawanishi.yamagata.jp","mamurogawa.yamagata.jp","mikawa.yamagata.jp","murayama.yamagata.jp","nagai.yamagata.jp","nakayama.yamagata.jp","nanyo.yamagata.jp","nishikawa.yamagata.jp","obanazawa.yamagata.jp","oe.yamagata.jp","oguni.yamagata.jp","ohkura.yamagata.jp","oishida.yamagata.jp","sagae.yamagata.jp","sakata.yamagata.jp","sakegawa.yamagata.jp","shinjo.yamagata.jp","shirataka.yamagata.jp","shonai.yamagata.jp","takahata.yamagata.jp","tendo.yamagata.jp","tozawa.yamagata.jp","tsuruoka.yamagata.jp","yamagata.yamagata.jp","yamanobe.yamagata.jp","yonezawa.yamagata.jp","yuza.yamagata.jp","abu.yamaguchi.jp","hagi.yamaguchi.jp","hikari.yamaguchi.jp","hofu.yamaguchi.jp","iwakuni.yamaguchi.jp","kudamatsu.yamaguchi.jp","mitou.yamaguchi.jp","nagato.yamaguchi.jp","oshima.yamaguchi.jp","shimonoseki.yamaguchi.jp","shunan.yamaguchi.jp","tabuse.yamaguchi.jp","tokuyama.yamaguchi.jp","toyota.yamaguchi.jp","ube.yamaguchi.jp","yuu.yamaguchi.jp","chuo.yamanashi.jp","doshi.yamanashi.jp","fuefuki.yamanashi.jp","fujikawa.yamanashi.jp","fujikawaguchiko.yamanashi.jp","fujiyoshida.yamanashi.jp","hayakawa.yamanashi.jp","hokuto.yamanashi.jp","ichikawamisato.yamanashi.jp","kai.yamanashi.jp","kofu.yamanashi.jp","koshu.yamanashi.jp","kosuge.yamanashi.jp","minami-alps.yamanashi.jp","minobu.yamanashi.jp","nakamichi.yamanashi.jp","nanbu.yamanashi.jp","narusawa.yamanashi.jp","nirasaki.yamanashi.jp","nishikatsura.yamanashi.jp","oshino.yamanashi.jp","otsuki.yamanashi.jp","showa.yamanashi.jp","tabayama.yamanashi.jp","tsuru.yamanashi.jp","uenohara.yamanashi.jp","yamanakako.yamanashi.jp","yamanashi.yamanashi.jp","ke","ac.ke","co.ke","go.ke","info.ke","me.ke","mobi.ke","ne.ke","or.ke","sc.ke","kg","com.kg","edu.kg","gov.kg","mil.kg","net.kg","org.kg","*.kh","ki","biz.ki","com.ki","edu.ki","gov.ki","info.ki","net.ki","org.ki","km","ass.km","com.km","edu.km","gov.km","mil.km","nom.km","org.km","prd.km","tm.km","asso.km","coop.km","gouv.km","medecin.km","notaires.km","pharmaciens.km","presse.km","veterinaire.km","kn","edu.kn","gov.kn","net.kn","org.kn","kp","com.kp","edu.kp","gov.kp","org.kp","rep.kp","tra.kp","kr","ac.kr","co.kr","es.kr","go.kr","hs.kr","kg.kr","mil.kr","ms.kr","ne.kr","or.kr","pe.kr","re.kr","sc.kr","busan.kr","chungbuk.kr","chungnam.kr","daegu.kr","daejeon.kr","gangwon.kr","gwangju.kr","gyeongbuk.kr","gyeonggi.kr","gyeongnam.kr","incheon.kr","jeju.kr","jeonbuk.kr","jeonnam.kr","seoul.kr","ulsan.kr","kw","com.kw","edu.kw","emb.kw","gov.kw","ind.kw","net.kw","org.kw","ky","com.ky","edu.ky","net.ky","org.ky","kz","com.kz","edu.kz","gov.kz","mil.kz","net.kz","org.kz","la","com.la","edu.la","gov.la","info.la","int.la","net.la","org.la","per.la","lb","com.lb","edu.lb","gov.lb","net.lb","org.lb","lc","co.lc","com.lc","edu.lc","gov.lc","net.lc","org.lc","li","lk","ac.lk","assn.lk","com.lk","edu.lk","gov.lk","grp.lk","hotel.lk","int.lk","ltd.lk","net.lk","ngo.lk","org.lk","sch.lk","soc.lk","web.lk","lr","com.lr","edu.lr","gov.lr","net.lr","org.lr","ls","ac.ls","biz.ls","co.ls","edu.ls","gov.ls","info.ls","net.ls","org.ls","sc.ls","lt","gov.lt","lu","lv","asn.lv","com.lv","conf.lv","edu.lv","gov.lv","id.lv","mil.lv","net.lv","org.lv","ly","com.ly","edu.ly","gov.ly","id.ly","med.ly","net.ly","org.ly","plc.ly","sch.ly","ma","ac.ma","co.ma","gov.ma","net.ma","org.ma","press.ma","mc","asso.mc","tm.mc","md","me","ac.me","co.me","edu.me","gov.me","its.me","net.me","org.me","priv.me","mg","co.mg","com.mg","edu.mg","gov.mg","mil.mg","nom.mg","org.mg","prd.mg","mh","mil","mk","com.mk","edu.mk","gov.mk","inf.mk","name.mk","net.mk","org.mk","ml","com.ml","edu.ml","gouv.ml","gov.ml","net.ml","org.ml","presse.ml","*.mm","mn","edu.mn","gov.mn","org.mn","mo","com.mo","edu.mo","gov.mo","net.mo","org.mo","mobi","mp","mq","mr","gov.mr","ms","com.ms","edu.ms","gov.ms","net.ms","org.ms","mt","com.mt","edu.mt","net.mt","org.mt","mu","ac.mu","co.mu","com.mu","gov.mu","net.mu","or.mu","org.mu","museum","mv","aero.mv","biz.mv","com.mv","coop.mv","edu.mv","gov.mv","info.mv","int.mv","mil.mv","museum.mv","name.mv","net.mv","org.mv","pro.mv","mw","ac.mw","biz.mw","co.mw","com.mw","coop.mw","edu.mw","gov.mw","int.mw","net.mw","org.mw","mx","com.mx","edu.mx","gob.mx","net.mx","org.mx","my","biz.my","com.my","edu.my","gov.my","mil.my","name.my","net.my","org.my","mz","ac.mz","adv.mz","co.mz","edu.mz","gov.mz","mil.mz","net.mz","org.mz","na","alt.na","co.na","com.na","gov.na","net.na","org.na","name","nc","asso.nc","nom.nc","ne","net","nf","arts.nf","com.nf","firm.nf","info.nf","net.nf","other.nf","per.nf","rec.nf","store.nf","web.nf","ng","com.ng","edu.ng","gov.ng","i.ng","mil.ng","mobi.ng","name.ng","net.ng","org.ng","sch.ng","ni","ac.ni","biz.ni","co.ni","com.ni","edu.ni","gob.ni","in.ni","info.ni","int.ni","mil.ni","net.ni","nom.ni","org.ni","web.ni","nl","no","fhs.no","folkebibl.no","fylkesbibl.no","idrett.no","museum.no","priv.no","vgs.no","dep.no","herad.no","kommune.no","mil.no","stat.no","aa.no","ah.no","bu.no","fm.no","hl.no","hm.no","jan-mayen.no","mr.no","nl.no","nt.no","of.no","ol.no","oslo.no","rl.no","sf.no","st.no","svalbard.no","tm.no","tr.no","va.no","vf.no","gs.aa.no","gs.ah.no","gs.bu.no","gs.fm.no","gs.hl.no","gs.hm.no","gs.jan-mayen.no","gs.mr.no","gs.nl.no","gs.nt.no","gs.of.no","gs.ol.no","gs.oslo.no","gs.rl.no","gs.sf.no","gs.st.no","gs.svalbard.no","gs.tm.no","gs.tr.no","gs.va.no","gs.vf.no","akrehamn.no","åkrehamn.no","algard.no","ålgård.no","arna.no","bronnoysund.no","brønnøysund.no","brumunddal.no","bryne.no","drobak.no","drøbak.no","egersund.no","fetsund.no","floro.no","florø.no","fredrikstad.no","hokksund.no","honefoss.no","hønefoss.no","jessheim.no","jorpeland.no","jørpeland.no","kirkenes.no","kopervik.no","krokstadelva.no","langevag.no","langevåg.no","leirvik.no","mjondalen.no","mjøndalen.no","mo-i-rana.no","mosjoen.no","mosjøen.no","nesoddtangen.no","orkanger.no","osoyro.no","osøyro.no","raholt.no","råholt.no","sandnessjoen.no","sandnessjøen.no","skedsmokorset.no","slattum.no","spjelkavik.no","stathelle.no","stavern.no","stjordalshalsen.no","stjørdalshalsen.no","tananger.no","tranby.no","vossevangen.no","aarborte.no","aejrie.no","afjord.no","åfjord.no","agdenes.no","nes.akershus.no","aknoluokta.no","ákŋoluokta.no","al.no","ål.no","alaheadju.no","álaheadju.no","alesund.no","ålesund.no","alstahaug.no","alta.no","áltá.no","alvdal.no","amli.no","åmli.no","amot.no","åmot.no","andasuolo.no","andebu.no","andoy.no","andøy.no","ardal.no","årdal.no","aremark.no","arendal.no","ås.no","aseral.no","åseral.no","asker.no","askim.no","askoy.no","askøy.no","askvoll.no","asnes.no","åsnes.no","audnedaln.no","aukra.no","aure.no","aurland.no","aurskog-holand.no","aurskog-høland.no","austevoll.no","austrheim.no","averoy.no","averøy.no","badaddja.no","bådåddjå.no","bærum.no","bahcavuotna.no","báhcavuotna.no","bahccavuotna.no","báhccavuotna.no","baidar.no","báidár.no","bajddar.no","bájddar.no","balat.no","bálát.no","balestrand.no","ballangen.no","balsfjord.no","bamble.no","bardu.no","barum.no","batsfjord.no","båtsfjord.no","bearalvahki.no","bearalváhki.no","beardu.no","beiarn.no","berg.no","bergen.no","berlevag.no","berlevåg.no","bievat.no","bievát.no","bindal.no","birkenes.no","bjarkoy.no","bjarkøy.no","bjerkreim.no","bjugn.no","bodo.no","bodø.no","bokn.no","bomlo.no","bømlo.no","bremanger.no","bronnoy.no","brønnøy.no","budejju.no","nes.buskerud.no","bygland.no","bykle.no","cahcesuolo.no","čáhcesuolo.no","davvenjarga.no","davvenjárga.no","davvesiida.no","deatnu.no","dielddanuorri.no","divtasvuodna.no","divttasvuotna.no","donna.no","dønna.no","dovre.no","drammen.no","drangedal.no","dyroy.no","dyrøy.no","eid.no","eidfjord.no","eidsberg.no","eidskog.no","eidsvoll.no","eigersund.no","elverum.no","enebakk.no","engerdal.no","etne.no","etnedal.no","evenassi.no","evenášši.no","evenes.no","evje-og-hornnes.no","farsund.no","fauske.no","fedje.no","fet.no","finnoy.no","finnøy.no","fitjar.no","fjaler.no","fjell.no","fla.no","flå.no","flakstad.no","flatanger.no","flekkefjord.no","flesberg.no","flora.no","folldal.no","forde.no","førde.no","forsand.no","fosnes.no","fræna.no","frana.no","frei.no","frogn.no","froland.no","frosta.no","froya.no","frøya.no","fuoisku.no","fuossko.no","fusa.no","fyresdal.no","gaivuotna.no","gáivuotna.no","galsa.no","gálsá.no","gamvik.no","gangaviika.no","gáŋgaviika.no","gaular.no","gausdal.no","giehtavuoatna.no","gildeskal.no","gildeskål.no","giske.no","gjemnes.no","gjerdrum.no","gjerstad.no","gjesdal.no","gjovik.no","gjøvik.no","gloppen.no","gol.no","gran.no","grane.no","granvin.no","gratangen.no","grimstad.no","grong.no","grue.no","gulen.no","guovdageaidnu.no","ha.no","hå.no","habmer.no","hábmer.no","hadsel.no","hægebostad.no","hagebostad.no","halden.no","halsa.no","hamar.no","hamaroy.no","hammarfeasta.no","hámmárfeasta.no","hammerfest.no","hapmir.no","hápmir.no","haram.no","hareid.no","harstad.no","hasvik.no","hattfjelldal.no","haugesund.no","os.hedmark.no","valer.hedmark.no","våler.hedmark.no","hemne.no","hemnes.no","hemsedal.no","hitra.no","hjartdal.no","hjelmeland.no","hobol.no","hobøl.no","hof.no","hol.no","hole.no","holmestrand.no","holtalen.no","holtålen.no","os.hordaland.no","hornindal.no","horten.no","hoyanger.no","høyanger.no","hoylandet.no","høylandet.no","hurdal.no","hurum.no","hvaler.no","hyllestad.no","ibestad.no","inderoy.no","inderøy.no","iveland.no","ivgu.no","jevnaker.no","jolster.no","jølster.no","jondal.no","kafjord.no","kåfjord.no","karasjohka.no","kárášjohka.no","karasjok.no","karlsoy.no","karmoy.no","karmøy.no","kautokeino.no","klabu.no","klæbu.no","klepp.no","kongsberg.no","kongsvinger.no","kraanghke.no","kråanghke.no","kragero.no","kragerø.no","kristiansand.no","kristiansund.no","krodsherad.no","krødsherad.no","kvæfjord.no","kvænangen.no","kvafjord.no","kvalsund.no","kvam.no","kvanangen.no","kvinesdal.no","kvinnherad.no","kviteseid.no","kvitsoy.no","kvitsøy.no","laakesvuemie.no","lærdal.no","lahppi.no","láhppi.no","lardal.no","larvik.no","lavagis.no","lavangen.no","leangaviika.no","leaŋgaviika.no","lebesby.no","leikanger.no","leirfjord.no","leka.no","leksvik.no","lenvik.no","lerdal.no","lesja.no","levanger.no","lier.no","lierne.no","lillehammer.no","lillesand.no","lindas.no","lindås.no","lindesnes.no","loabat.no","loabát.no","lodingen.no","lødingen.no","lom.no","loppa.no","lorenskog.no","lørenskog.no","loten.no","løten.no","lund.no","lunner.no","luroy.no","lurøy.no","luster.no","lyngdal.no","lyngen.no","malatvuopmi.no","málatvuopmi.no","malselv.no","målselv.no","malvik.no","mandal.no","marker.no","marnardal.no","masfjorden.no","masoy.no","måsøy.no","matta-varjjat.no","mátta-várjjat.no","meland.no","meldal.no","melhus.no","meloy.no","meløy.no","meraker.no","meråker.no","midsund.no","midtre-gauldal.no","moareke.no","moåreke.no","modalen.no","modum.no","molde.no","heroy.more-og-romsdal.no","sande.more-og-romsdal.no","herøy.møre-og-romsdal.no","sande.møre-og-romsdal.no","moskenes.no","moss.no","mosvik.no","muosat.no","muosát.no","naamesjevuemie.no","nååmesjevuemie.no","nærøy.no","namdalseid.no","namsos.no","namsskogan.no","nannestad.no","naroy.no","narviika.no","narvik.no","naustdal.no","navuotna.no","návuotna.no","nedre-eiker.no","nesna.no","nesodden.no","nesseby.no","nesset.no","nissedal.no","nittedal.no","nord-aurdal.no","nord-fron.no","nord-odal.no","norddal.no","nordkapp.no","bo.nordland.no","bø.nordland.no","heroy.nordland.no","herøy.nordland.no","nordre-land.no","nordreisa.no","nore-og-uvdal.no","notodden.no","notteroy.no","nøtterøy.no","odda.no","oksnes.no","øksnes.no","omasvuotna.no","oppdal.no","oppegard.no","oppegård.no","orkdal.no","orland.no","ørland.no","orskog.no","ørskog.no","orsta.no","ørsta.no","osen.no","osteroy.no","osterøy.no","valer.ostfold.no","våler.østfold.no","ostre-toten.no","østre-toten.no","overhalla.no","ovre-eiker.no","øvre-eiker.no","oyer.no","øyer.no","oygarden.no","øygarden.no","oystre-slidre.no","øystre-slidre.no","porsanger.no","porsangu.no","porsáŋgu.no","porsgrunn.no","rade.no","råde.no","radoy.no","radøy.no","rælingen.no","rahkkeravju.no","ráhkkerávju.no","raisa.no","ráisa.no","rakkestad.no","ralingen.no","rana.no","randaberg.no","rauma.no","rendalen.no","rennebu.no","rennesoy.no","rennesøy.no","rindal.no","ringebu.no","ringerike.no","ringsaker.no","risor.no","risør.no","rissa.no","roan.no","rodoy.no","rødøy.no","rollag.no","romsa.no","romskog.no","rømskog.no","roros.no","røros.no","rost.no","røst.no","royken.no","røyken.no","royrvik.no","røyrvik.no","ruovat.no","rygge.no","salangen.no","salat.no","sálat.no","sálát.no","saltdal.no","samnanger.no","sandefjord.no","sandnes.no","sandoy.no","sandøy.no","sarpsborg.no","sauda.no","sauherad.no","sel.no","selbu.no","selje.no","seljord.no","siellak.no","sigdal.no","siljan.no","sirdal.no","skanit.no","skánit.no","skanland.no","skånland.no","skaun.no","skedsmo.no","ski.no","skien.no","skierva.no","skiervá.no","skiptvet.no","skjak.no","skjåk.no","skjervoy.no","skjervøy.no","skodje.no","smola.no","smøla.no","snaase.no","snåase.no","snasa.no","snåsa.no","snillfjord.no","snoasa.no","sogndal.no","sogne.no","søgne.no","sokndal.no","sola.no","solund.no","somna.no","sømna.no","sondre-land.no","søndre-land.no","songdalen.no","sor-aurdal.no","sør-aurdal.no","sor-fron.no","sør-fron.no","sor-odal.no","sør-odal.no","sor-varanger.no","sør-varanger.no","sorfold.no","sørfold.no","sorreisa.no","sørreisa.no","sortland.no","sorum.no","sørum.no","spydeberg.no","stange.no","stavanger.no","steigen.no","steinkjer.no","stjordal.no","stjørdal.no","stokke.no","stor-elvdal.no","stord.no","stordal.no","storfjord.no","strand.no","stranda.no","stryn.no","sula.no","suldal.no","sund.no","sunndal.no","surnadal.no","sveio.no","svelvik.no","sykkylven.no","tana.no","bo.telemark.no","bø.telemark.no","time.no","tingvoll.no","tinn.no","tjeldsund.no","tjome.no","tjøme.no","tokke.no","tolga.no","tonsberg.no","tønsberg.no","torsken.no","træna.no","trana.no","tranoy.no","tranøy.no","troandin.no","trogstad.no","trøgstad.no","tromsa.no","tromso.no","tromsø.no","trondheim.no","trysil.no","tvedestrand.no","tydal.no","tynset.no","tysfjord.no","tysnes.no","tysvær.no","tysvar.no","ullensaker.no","ullensvang.no","ulvik.no","unjarga.no","unjárga.no","utsira.no","vaapste.no","vadso.no","vadsø.no","værøy.no","vaga.no","vågå.no","vagan.no","vågan.no","vagsoy.no","vågsøy.no","vaksdal.no","valle.no","vang.no","vanylven.no","vardo.no","vardø.no","varggat.no","várggát.no","varoy.no","vefsn.no","vega.no","vegarshei.no","vegårshei.no","vennesla.no","verdal.no","verran.no","vestby.no","sande.vestfold.no","vestnes.no","vestre-slidre.no","vestre-toten.no","vestvagoy.no","vestvågøy.no","vevelstad.no","vik.no","vikna.no","vindafjord.no","voagat.no","volda.no","voss.no","*.np","nr","biz.nr","com.nr","edu.nr","gov.nr","info.nr","net.nr","org.nr","nu","nz","ac.nz","co.nz","cri.nz","geek.nz","gen.nz","govt.nz","health.nz","iwi.nz","kiwi.nz","maori.nz","māori.nz","mil.nz","net.nz","org.nz","parliament.nz","school.nz","om","co.om","com.om","edu.om","gov.om","med.om","museum.om","net.om","org.om","pro.om","onion","org","pa","abo.pa","ac.pa","com.pa","edu.pa","gob.pa","ing.pa","med.pa","net.pa","nom.pa","org.pa","sld.pa","pe","com.pe","edu.pe","gob.pe","mil.pe","net.pe","nom.pe","org.pe","pf","com.pf","edu.pf","org.pf","*.pg","ph","com.ph","edu.ph","gov.ph","i.ph","mil.ph","net.ph","ngo.ph","org.ph","pk","ac.pk","biz.pk","com.pk","edu.pk","fam.pk","gkp.pk","gob.pk","gog.pk","gok.pk","gon.pk","gop.pk","gos.pk","gov.pk","net.pk","org.pk","web.pk","pl","com.pl","net.pl","org.pl","agro.pl","aid.pl","atm.pl","auto.pl","biz.pl","edu.pl","gmina.pl","gsm.pl","info.pl","mail.pl","media.pl","miasta.pl","mil.pl","nieruchomosci.pl","nom.pl","pc.pl","powiat.pl","priv.pl","realestate.pl","rel.pl","sex.pl","shop.pl","sklep.pl","sos.pl","szkola.pl","targi.pl","tm.pl","tourism.pl","travel.pl","turystyka.pl","gov.pl","ap.gov.pl","griw.gov.pl","ic.gov.pl","is.gov.pl","kmpsp.gov.pl","konsulat.gov.pl","kppsp.gov.pl","kwp.gov.pl","kwpsp.gov.pl","mup.gov.pl","mw.gov.pl","oia.gov.pl","oirm.gov.pl","oke.gov.pl","oow.gov.pl","oschr.gov.pl","oum.gov.pl","pa.gov.pl","pinb.gov.pl","piw.gov.pl","po.gov.pl","pr.gov.pl","psp.gov.pl","psse.gov.pl","pup.gov.pl","rzgw.gov.pl","sa.gov.pl","sdn.gov.pl","sko.gov.pl","so.gov.pl","sr.gov.pl","starostwo.gov.pl","ug.gov.pl","ugim.gov.pl","um.gov.pl","umig.gov.pl","upow.gov.pl","uppo.gov.pl","us.gov.pl","uw.gov.pl","uzs.gov.pl","wif.gov.pl","wiih.gov.pl","winb.gov.pl","wios.gov.pl","witd.gov.pl","wiw.gov.pl","wkz.gov.pl","wsa.gov.pl","wskr.gov.pl","wsse.gov.pl","wuoz.gov.pl","wzmiuw.gov.pl","zp.gov.pl","zpisdn.gov.pl","augustow.pl","babia-gora.pl","bedzin.pl","beskidy.pl","bialowieza.pl","bialystok.pl","bielawa.pl","bieszczady.pl","boleslawiec.pl","bydgoszcz.pl","bytom.pl","cieszyn.pl","czeladz.pl","czest.pl","dlugoleka.pl","elblag.pl","elk.pl","glogow.pl","gniezno.pl","gorlice.pl","grajewo.pl","ilawa.pl","jaworzno.pl","jelenia-gora.pl","jgora.pl","kalisz.pl","karpacz.pl","kartuzy.pl","kaszuby.pl","katowice.pl","kazimierz-dolny.pl","kepno.pl","ketrzyn.pl","klodzko.pl","kobierzyce.pl","kolobrzeg.pl","konin.pl","konskowola.pl","kutno.pl","lapy.pl","lebork.pl","legnica.pl","lezajsk.pl","limanowa.pl","lomza.pl","lowicz.pl","lubin.pl","lukow.pl","malbork.pl","malopolska.pl","mazowsze.pl","mazury.pl","mielec.pl","mielno.pl","mragowo.pl","naklo.pl","nowaruda.pl","nysa.pl","olawa.pl","olecko.pl","olkusz.pl","olsztyn.pl","opoczno.pl","opole.pl","ostroda.pl","ostroleka.pl","ostrowiec.pl","ostrowwlkp.pl","pila.pl","pisz.pl","podhale.pl","podlasie.pl","polkowice.pl","pomorskie.pl","pomorze.pl","prochowice.pl","pruszkow.pl","przeworsk.pl","pulawy.pl","radom.pl","rawa-maz.pl","rybnik.pl","rzeszow.pl","sanok.pl","sejny.pl","skoczow.pl","slask.pl","slupsk.pl","sosnowiec.pl","stalowa-wola.pl","starachowice.pl","stargard.pl","suwalki.pl","swidnica.pl","swiebodzin.pl","swinoujscie.pl","szczecin.pl","szczytno.pl","tarnobrzeg.pl","tgory.pl","turek.pl","tychy.pl","ustka.pl","walbrzych.pl","warmia.pl","warszawa.pl","waw.pl","wegrow.pl","wielun.pl","wlocl.pl","wloclawek.pl","wodzislaw.pl","wolomin.pl","wroclaw.pl","zachpomor.pl","zagan.pl","zarow.pl","zgora.pl","zgorzelec.pl","pm","pn","co.pn","edu.pn","gov.pn","net.pn","org.pn","post","pr","biz.pr","com.pr","edu.pr","gov.pr","info.pr","isla.pr","name.pr","net.pr","org.pr","pro.pr","ac.pr","est.pr","prof.pr","pro","aaa.pro","aca.pro","acct.pro","avocat.pro","bar.pro","cpa.pro","eng.pro","jur.pro","law.pro","med.pro","recht.pro","ps","com.ps","edu.ps","gov.ps","net.ps","org.ps","plo.ps","sec.ps","pt","com.pt","edu.pt","gov.pt","int.pt","net.pt","nome.pt","org.pt","publ.pt","pw","belau.pw","co.pw","ed.pw","go.pw","or.pw","py","com.py","coop.py","edu.py","gov.py","mil.py","net.py","org.py","qa","com.qa","edu.qa","gov.qa","mil.qa","name.qa","net.qa","org.qa","sch.qa","re","asso.re","com.re","ro","arts.ro","com.ro","firm.ro","info.ro","nom.ro","nt.ro","org.ro","rec.ro","store.ro","tm.ro","www.ro","rs","ac.rs","co.rs","edu.rs","gov.rs","in.rs","org.rs","ru","rw","ac.rw","co.rw","coop.rw","gov.rw","mil.rw","net.rw","org.rw","sa","com.sa","edu.sa","gov.sa","med.sa","net.sa","org.sa","pub.sa","sch.sa","sb","com.sb","edu.sb","gov.sb","net.sb","org.sb","sc","com.sc","edu.sc","gov.sc","net.sc","org.sc","sd","com.sd","edu.sd","gov.sd","info.sd","med.sd","net.sd","org.sd","tv.sd","se","a.se","ac.se","b.se","bd.se","brand.se","c.se","d.se","e.se","f.se","fh.se","fhsk.se","fhv.se","g.se","h.se","i.se","k.se","komforb.se","kommunalforbund.se","komvux.se","l.se","lanbib.se","m.se","n.se","naturbruksgymn.se","o.se","org.se","p.se","parti.se","pp.se","press.se","r.se","s.se","t.se","tm.se","u.se","w.se","x.se","y.se","z.se","sg","com.sg","edu.sg","gov.sg","net.sg","org.sg","sh","com.sh","gov.sh","mil.sh","net.sh","org.sh","si","sj","sk","sl","com.sl","edu.sl","gov.sl","net.sl","org.sl","sm","sn","art.sn","com.sn","edu.sn","gouv.sn","org.sn","perso.sn","univ.sn","so","com.so","edu.so","gov.so","me.so","net.so","org.so","sr","ss","biz.ss","co.ss","com.ss","edu.ss","gov.ss","me.ss","net.ss","org.ss","sch.ss","st","co.st","com.st","consulado.st","edu.st","embaixada.st","mil.st","net.st","org.st","principe.st","saotome.st","store.st","su","sv","com.sv","edu.sv","gob.sv","org.sv","red.sv","sx","gov.sx","sy","com.sy","edu.sy","gov.sy","mil.sy","net.sy","org.sy","sz","ac.sz","co.sz","org.sz","tc","td","tel","tf","tg","th","ac.th","co.th","go.th","in.th","mi.th","net.th","or.th","tj","ac.tj","biz.tj","co.tj","com.tj","edu.tj","go.tj","gov.tj","int.tj","mil.tj","name.tj","net.tj","nic.tj","org.tj","test.tj","web.tj","tk","tl","gov.tl","tm","co.tm","com.tm","edu.tm","gov.tm","mil.tm","net.tm","nom.tm","org.tm","tn","com.tn","ens.tn","fin.tn","gov.tn","ind.tn","info.tn","intl.tn","mincom.tn","nat.tn","net.tn","org.tn","perso.tn","tourism.tn","to","com.to","edu.to","gov.to","mil.to","net.to","org.to","tr","av.tr","bbs.tr","bel.tr","biz.tr","com.tr","dr.tr","edu.tr","gen.tr","gov.tr","info.tr","k12.tr","kep.tr","mil.tr","name.tr","net.tr","org.tr","pol.tr","tel.tr","tsk.tr","tv.tr","web.tr","nc.tr","gov.nc.tr","tt","biz.tt","co.tt","com.tt","edu.tt","gov.tt","info.tt","mil.tt","name.tt","net.tt","org.tt","pro.tt","tv","tw","club.tw","com.tw","ebiz.tw","edu.tw","game.tw","gov.tw","idv.tw","mil.tw","net.tw","org.tw","tz","ac.tz","co.tz","go.tz","hotel.tz","info.tz","me.tz","mil.tz","mobi.tz","ne.tz","or.tz","sc.tz","tv.tz","ua","com.ua","edu.ua","gov.ua","in.ua","net.ua","org.ua","cherkassy.ua","cherkasy.ua","chernigov.ua","chernihiv.ua","chernivtsi.ua","chernovtsy.ua","ck.ua","cn.ua","cr.ua","crimea.ua","cv.ua","dn.ua","dnepropetrovsk.ua","dnipropetrovsk.ua","donetsk.ua","dp.ua","if.ua","ivano-frankivsk.ua","kh.ua","kharkiv.ua","kharkov.ua","kherson.ua","khmelnitskiy.ua","khmelnytskyi.ua","kiev.ua","kirovograd.ua","km.ua","kr.ua","kropyvnytskyi.ua","krym.ua","ks.ua","kv.ua","kyiv.ua","lg.ua","lt.ua","lugansk.ua","luhansk.ua","lutsk.ua","lv.ua","lviv.ua","mk.ua","mykolaiv.ua","nikolaev.ua","od.ua","odesa.ua","odessa.ua","pl.ua","poltava.ua","rivne.ua","rovno.ua","rv.ua","sb.ua","sebastopol.ua","sevastopol.ua","sm.ua","sumy.ua","te.ua","ternopil.ua","uz.ua","uzhgorod.ua","uzhhorod.ua","vinnica.ua","vinnytsia.ua","vn.ua","volyn.ua","yalta.ua","zakarpattia.ua","zaporizhzhe.ua","zaporizhzhia.ua","zhitomir.ua","zhytomyr.ua","zp.ua","zt.ua","ug","ac.ug","co.ug","com.ug","go.ug","ne.ug","or.ug","org.ug","sc.ug","uk","ac.uk","co.uk","gov.uk","ltd.uk","me.uk","net.uk","nhs.uk","org.uk","plc.uk","police.uk","*.sch.uk","us","dni.us","fed.us","isa.us","kids.us","nsn.us","ak.us","al.us","ar.us","as.us","az.us","ca.us","co.us","ct.us","dc.us","de.us","fl.us","ga.us","gu.us","hi.us","ia.us","id.us","il.us","in.us","ks.us","ky.us","la.us","ma.us","md.us","me.us","mi.us","mn.us","mo.us","ms.us","mt.us","nc.us","nd.us","ne.us","nh.us","nj.us","nm.us","nv.us","ny.us","oh.us","ok.us","or.us","pa.us","pr.us","ri.us","sc.us","sd.us","tn.us","tx.us","ut.us","va.us","vi.us","vt.us","wa.us","wi.us","wv.us","wy.us","k12.ak.us","k12.al.us","k12.ar.us","k12.as.us","k12.az.us","k12.ca.us","k12.co.us","k12.ct.us","k12.dc.us","k12.fl.us","k12.ga.us","k12.gu.us","k12.ia.us","k12.id.us","k12.il.us","k12.in.us","k12.ks.us","k12.ky.us","k12.la.us","k12.ma.us","k12.md.us","k12.me.us","k12.mi.us","k12.mn.us","k12.mo.us","k12.ms.us","k12.mt.us","k12.nc.us","k12.ne.us","k12.nh.us","k12.nj.us","k12.nm.us","k12.nv.us","k12.ny.us","k12.oh.us","k12.ok.us","k12.or.us","k12.pa.us","k12.pr.us","k12.sc.us","k12.tn.us","k12.tx.us","k12.ut.us","k12.va.us","k12.vi.us","k12.vt.us","k12.wa.us","k12.wi.us","cc.ak.us","lib.ak.us","cc.al.us","lib.al.us","cc.ar.us","lib.ar.us","cc.as.us","lib.as.us","cc.az.us","lib.az.us","cc.ca.us","lib.ca.us","cc.co.us","lib.co.us","cc.ct.us","lib.ct.us","cc.dc.us","lib.dc.us","cc.de.us","cc.fl.us","cc.ga.us","cc.gu.us","cc.hi.us","cc.ia.us","cc.id.us","cc.il.us","cc.in.us","cc.ks.us","cc.ky.us","cc.la.us","cc.ma.us","cc.md.us","cc.me.us","cc.mi.us","cc.mn.us","cc.mo.us","cc.ms.us","cc.mt.us","cc.nc.us","cc.nd.us","cc.ne.us","cc.nh.us","cc.nj.us","cc.nm.us","cc.nv.us","cc.ny.us","cc.oh.us","cc.ok.us","cc.or.us","cc.pa.us","cc.pr.us","cc.ri.us","cc.sc.us","cc.sd.us","cc.tn.us","cc.tx.us","cc.ut.us","cc.va.us","cc.vi.us","cc.vt.us","cc.wa.us","cc.wi.us","cc.wv.us","cc.wy.us","k12.wy.us","lib.fl.us","lib.ga.us","lib.gu.us","lib.hi.us","lib.ia.us","lib.id.us","lib.il.us","lib.in.us","lib.ks.us","lib.ky.us","lib.la.us","lib.ma.us","lib.md.us","lib.me.us","lib.mi.us","lib.mn.us","lib.mo.us","lib.ms.us","lib.mt.us","lib.nc.us","lib.nd.us","lib.ne.us","lib.nh.us","lib.nj.us","lib.nm.us","lib.nv.us","lib.ny.us","lib.oh.us","lib.ok.us","lib.or.us","lib.pa.us","lib.pr.us","lib.ri.us","lib.sc.us","lib.sd.us","lib.tn.us","lib.tx.us","lib.ut.us","lib.va.us","lib.vi.us","lib.vt.us","lib.wa.us","lib.wi.us","lib.wy.us","chtr.k12.ma.us","paroch.k12.ma.us","pvt.k12.ma.us","ann-arbor.mi.us","cog.mi.us","dst.mi.us","eaton.mi.us","gen.mi.us","mus.mi.us","tec.mi.us","washtenaw.mi.us","uy","com.uy","edu.uy","gub.uy","mil.uy","net.uy","org.uy","uz","co.uz","com.uz","net.uz","org.uz","va","vc","com.vc","edu.vc","gov.vc","mil.vc","net.vc","org.vc","ve","arts.ve","bib.ve","co.ve","com.ve","e12.ve","edu.ve","firm.ve","gob.ve","gov.ve","info.ve","int.ve","mil.ve","net.ve","nom.ve","org.ve","rar.ve","rec.ve","store.ve","tec.ve","web.ve","vg","vi","co.vi","com.vi","k12.vi","net.vi","org.vi","vn","ac.vn","ai.vn","biz.vn","com.vn","edu.vn","gov.vn","health.vn","id.vn","info.vn","int.vn","io.vn","name.vn","net.vn","org.vn","pro.vn","angiang.vn","bacgiang.vn","backan.vn","baclieu.vn","bacninh.vn","baria-vungtau.vn","bentre.vn","binhdinh.vn","binhduong.vn","binhphuoc.vn","binhthuan.vn","camau.vn","cantho.vn","caobang.vn","daklak.vn","daknong.vn","danang.vn","dienbien.vn","dongnai.vn","dongthap.vn","gialai.vn","hagiang.vn","haiduong.vn","haiphong.vn","hanam.vn","hanoi.vn","hatinh.vn","haugiang.vn","hoabinh.vn","hungyen.vn","khanhhoa.vn","kiengiang.vn","kontum.vn","laichau.vn","lamdong.vn","langson.vn","laocai.vn","longan.vn","namdinh.vn","nghean.vn","ninhbinh.vn","ninhthuan.vn","phutho.vn","phuyen.vn","quangbinh.vn","quangnam.vn","quangngai.vn","quangninh.vn","quangtri.vn","soctrang.vn","sonla.vn","tayninh.vn","thaibinh.vn","thainguyen.vn","thanhhoa.vn","thanhphohochiminh.vn","thuathienhue.vn","tiengiang.vn","travinh.vn","tuyenquang.vn","vinhlong.vn","vinhphuc.vn","yenbai.vn","vu","com.vu","edu.vu","net.vu","org.vu","wf","ws","com.ws","edu.ws","gov.ws","net.ws","org.ws","yt","امارات","հայ","বাংলা","бг","البحرين","бел","中国","中國","الجزائر","مصر","ею","ευ","موريتانيا","გე","ελ","香港","個人.香港","公司.香港","政府.香港","教育.香港","組織.香港","網絡.香港","ಭಾರತ","ଭାରତ","ভাৰত","भारतम्","भारोत","ڀارت","ഭാരതം","भारत","بارت","بھارت","భారత్","ભારત","ਭਾਰਤ","ভারত","இந்தியா","ایران","ايران","عراق","الاردن","한국","қаз","ລາວ","ලංකා","இலங்கை","المغرب","мкд","мон","澳門","澳门","مليسيا","عمان","پاکستان","پاكستان","فلسطين","срб","ак.срб","обр.срб","од.срб","орг.срб","пр.срб","упр.срб","рф","قطر","السعودية","السعودیة","السعودیۃ","السعوديه","سودان","新加坡","சிங்கப்பூர்","سورية","سوريا","ไทย","ทหาร.ไทย","ธุรกิจ.ไทย","เน็ต.ไทย","รัฐบาล.ไทย","ศึกษา.ไทย","องค์กร.ไทย","تونس","台灣","台湾","臺灣","укр","اليمن","xxx","ye","com.ye","edu.ye","gov.ye","mil.ye","net.ye","org.ye","ac.za","agric.za","alt.za","co.za","edu.za","gov.za","grondar.za","law.za","mil.za","net.za","ngo.za","nic.za","nis.za","nom.za","org.za","school.za","tm.za","web.za","zm","ac.zm","biz.zm","co.zm","com.zm","edu.zm","gov.zm","info.zm","mil.zm","net.zm","org.zm","sch.zm","zw","ac.zw","co.zw","gov.zw","mil.zw","org.zw","aaa","aarp","abb","abbott","abbvie","abc","able","abogado","abudhabi","academy","accenture","accountant","accountants","aco","actor","ads","adult","aeg","aetna","afl","africa","agakhan","agency","aig","airbus","airforce","airtel","akdn","alibaba","alipay","allfinanz","allstate","ally","alsace","alstom","amazon","americanexpress","americanfamily","amex","amfam","amica","amsterdam","analytics","android","anquan","anz","aol","apartments","app","apple","aquarelle","arab","aramco","archi","army","art","arte","asda","associates","athleta","attorney","auction","audi","audible","audio","auspost","author","auto","autos","aws","axa","azure","baby","baidu","banamex","band","bank","bar","barcelona","barclaycard","barclays","barefoot","bargains","baseball","basketball","bauhaus","bayern","bbc","bbt","bbva","bcg","bcn","beats","beauty","beer","bentley","berlin","best","bestbuy","bet","bharti","bible","bid","bike","bing","bingo","bio","black","blackfriday","blockbuster","blog","bloomberg","blue","bms","bmw","bnpparibas","boats","boehringer","bofa","bom","bond","boo","book","booking","bosch","bostik","boston","bot","boutique","box","bradesco","bridgestone","broadway","broker","brother","brussels","build","builders","business","buy","buzz","bzh","cab","cafe","cal","call","calvinklein","cam","camera","camp","canon","capetown","capital","capitalone","car","caravan","cards","care","career","careers","cars","casa","case","cash","casino","catering","catholic","cba","cbn","cbre","center","ceo","cern","cfa","cfd","chanel","channel","charity","chase","chat","cheap","chintai","christmas","chrome","church","cipriani","circle","cisco","citadel","citi","citic","city","claims","cleaning","click","clinic","clinique","clothing","cloud","club","clubmed","coach","codes","coffee","college","cologne","commbank","community","company","compare","computer","comsec","condos","construction","consulting","contact","contractors","cooking","cool","corsica","country","coupon","coupons","courses","cpa","credit","creditcard","creditunion","cricket","crown","crs","cruise","cruises","cuisinella","cymru","cyou","dad","dance","data","date","dating","datsun","day","dclk","dds","deal","dealer","deals","degree","delivery","dell","deloitte","delta","democrat","dental","dentist","desi","design","dev","dhl","diamonds","diet","digital","direct","directory","discount","discover","dish","diy","dnp","docs","doctor","dog","domains","dot","download","drive","dtv","dubai","dunlop","dupont","durban","dvag","dvr","earth","eat","eco","edeka","education","email","emerck","energy","engineer","engineering","enterprises","epson","equipment","ericsson","erni","esq","estate","eurovision","eus","events","exchange","expert","exposed","express","extraspace","fage","fail","fairwinds","faith","family","fan","fans","farm","farmers","fashion","fast","fedex","feedback","ferrari","ferrero","fidelity","fido","film","final","finance","financial","fire","firestone","firmdale","fish","fishing","fit","fitness","flickr","flights","flir","florist","flowers","fly","foo","food","football","ford","forex","forsale","forum","foundation","fox","free","fresenius","frl","frogans","frontier","ftr","fujitsu","fun","fund","furniture","futbol","fyi","gal","gallery","gallo","gallup","game","games","gap","garden","gay","gbiz","gdn","gea","gent","genting","george","ggee","gift","gifts","gives","giving","glass","gle","global","globo","gmail","gmbh","gmo","gmx","godaddy","gold","goldpoint","golf","goo","goodyear","goog","google","gop","got","grainger","graphics","gratis","green","gripe","grocery","group","gucci","guge","guide","guitars","guru","hair","hamburg","hangout","haus","hbo","hdfc","hdfcbank","health","healthcare","help","helsinki","here","hermes","hiphop","hisamitsu","hitachi","hiv","hkt","hockey","holdings","holiday","homedepot","homegoods","homes","homesense","honda","horse","hospital","host","hosting","hot","hotels","hotmail","house","how","hsbc","hughes","hyatt","hyundai","ibm","icbc","ice","icu","ieee","ifm","ikano","imamat","imdb","immo","immobilien","inc","industries","infiniti","ing","ink","institute","insurance","insure","international","intuit","investments","ipiranga","irish","ismaili","ist","istanbul","itau","itv","jaguar","java","jcb","jeep","jetzt","jewelry","jio","jll","jmp","jnj","joburg","jot","joy","jpmorgan","jprs","juegos","juniper","kaufen","kddi","kerryhotels","kerrylogistics","kerryproperties","kfh","kia","kids","kim","kindle","kitchen","kiwi","koeln","komatsu","kosher","kpmg","kpn","krd","kred","kuokgroup","kyoto","lacaixa","lamborghini","lamer","lancaster","land","landrover","lanxess","lasalle","lat","latino","latrobe","law","lawyer","lds","lease","leclerc","lefrak","legal","lego","lexus","lgbt","lidl","life","lifeinsurance","lifestyle","lighting","like","lilly","limited","limo","lincoln","link","lipsy","live","living","llc","llp","loan","loans","locker","locus","lol","london","lotte","lotto","love","lpl","lplfinancial","ltd","ltda","lundbeck","luxe","luxury","madrid","maif","maison","makeup","man","management","mango","map","market","marketing","markets","marriott","marshalls","mattel","mba","mckinsey","med","media","meet","melbourne","meme","memorial","men","menu","merck","merckmsd","miami","microsoft","mini","mint","mit","mitsubishi","mlb","mls","mma","mobile","moda","moe","moi","mom","monash","money","monster","mormon","mortgage","moscow","moto","motorcycles","mov","movie","msd","mtn","mtr","music","nab","nagoya","navy","nba","nec","netbank","netflix","network","neustar","new","news","next","nextdirect","nexus","nfl","ngo","nhk","nico","nike","nikon","ninja","nissan","nissay","nokia","norton","now","nowruz","nowtv","nra","nrw","ntt","nyc","obi","observer","office","okinawa","olayan","olayangroup","ollo","omega","one","ong","onl","online","ooo","open","oracle","orange","organic","origins","osaka","otsuka","ott","ovh","page","panasonic","paris","pars","partners","parts","party","pay","pccw","pet","pfizer","pharmacy","phd","philips","phone","photo","photography","photos","physio","pics","pictet","pictures","pid","pin","ping","pink","pioneer","pizza","place","play","playstation","plumbing","plus","pnc","pohl","poker","politie","porn","pramerica","praxi","press","prime","prod","productions","prof","progressive","promo","properties","property","protection","pru","prudential","pub","pwc","qpon","quebec","quest","racing","radio","read","realestate","realtor","realty","recipes","red","redstone","redumbrella","rehab","reise","reisen","reit","reliance","ren","rent","rentals","repair","report","republican","rest","restaurant","review","reviews","rexroth","rich","richardli","ricoh","ril","rio","rip","rocks","rodeo","rogers","room","rsvp","rugby","ruhr","run","rwe","ryukyu","saarland","safe","safety","sakura","sale","salon","samsclub","samsung","sandvik","sandvikcoromant","sanofi","sap","sarl","sas","save","saxo","sbi","sbs","scb","schaeffler","schmidt","scholarships","school","schule","schwarz","science","scot","search","seat","secure","security","seek","select","sener","services","seven","sew","sex","sexy","sfr","shangrila","sharp","shell","shia","shiksha","shoes","shop","shopping","shouji","show","silk","sina","singles","site","ski","skin","sky","skype","sling","smart","smile","sncf","soccer","social","softbank","software","sohu","solar","solutions","song","sony","soy","spa","space","sport","spot","srl","stada","staples","star","statebank","statefarm","stc","stcgroup","stockholm","storage","store","stream","studio","study","style","sucks","supplies","supply","support","surf","surgery","suzuki","swatch","swiss","sydney","systems","tab","taipei","talk","taobao","target","tatamotors","tatar","tattoo","tax","taxi","tci","tdk","team","tech","technology","temasek","tennis","teva","thd","theater","theatre","tiaa","tickets","tienda","tips","tires","tirol","tjmaxx","tjx","tkmaxx","tmall","today","tokyo","tools","top","toray","toshiba","total","tours","town","toyota","toys","trade","trading","training","travel","travelers","travelersinsurance","trust","trv","tube","tui","tunes","tushu","tvs","ubank","ubs","unicom","university","uno","uol","ups","vacations","vana","vanguard","vegas","ventures","verisign","versicherung","vet","viajes","video","vig","viking","villas","vin","vip","virgin","visa","vision","viva","vivo","vlaanderen","vodka","volvo","vote","voting","voto","voyage","wales","walmart","walter","wang","wanggou","watch","watches","weather","weatherchannel","webcam","weber","website","wed","wedding","weibo","weir","whoswho","wien","wiki","williamhill","win","windows","wine","winners","wme","wolterskluwer","woodside","work","works","world","wow","wtc","wtf","xbox","xerox","xihuan","xin","कॉम","セール","佛山","慈善","集团","在线","点看","คอม","八卦","موقع","公益","公司","香格里拉","网站","移动","我爱你","москва","католик","онлайн","сайт","联通","קום","时尚","微博","淡马锡","ファッション","орг","नेट","ストア","アマゾン","삼성","商标","商店","商城","дети","ポイント","新闻","家電","كوم","中文网","中信","娱乐","谷歌","電訊盈科","购物","クラウド","通販","网店","संगठन","餐厅","网络","ком","亚马逊","食品","飞利浦","手机","ارامكو","العليان","بازار","ابوظبي","كاثوليك","همراه","닷컴","政府","شبكة","بيتك","عرب","机构","组织机构","健康","招聘","рус","大拿","みんな","グーグル","世界","書籍","网址","닷넷","コム","天主教","游戏","vermögensberater","vermögensberatung","企业","信息","嘉里大酒店","嘉里","广东","政务","xyz","yachts","yahoo","yamaxun","yandex","yodobashi","yoga","yokohama","you","youtube","yun","zappos","zara","zero","zip","zone","zuerich","co.krd","edu.krd","art.pl","gliwice.pl","krakow.pl","poznan.pl","wroc.pl","zakopane.pl","lib.de.us","12chars.dev","12chars.it","12chars.pro","cc.ua","inf.ua","ltd.ua","611.to","a2hosted.com","cpserver.com","aaa.vodka","*.on-acorn.io","activetrail.biz","adaptable.app","adobeaemcloud.com","*.dev.adobeaemcloud.com","aem.live","hlx.live","adobeaemcloud.net","aem.page","hlx.page","hlx3.page","adobeio-static.net","adobeioruntime.net","africa.com","beep.pl","airkitapps.com","airkitapps-au.com","airkitapps.eu","aivencloud.com","akadns.net","akamai.net","akamai-staging.net","akamaiedge.net","akamaiedge-staging.net","akamaihd.net","akamaihd-staging.net","akamaiorigin.net","akamaiorigin-staging.net","akamaized.net","akamaized-staging.net","edgekey.net","edgekey-staging.net","edgesuite.net","edgesuite-staging.net","barsy.ca","*.compute.estate","*.alces.network","kasserver.com","altervista.org","alwaysdata.net","myamaze.net","execute-api.cn-north-1.amazonaws.com.cn","execute-api.cn-northwest-1.amazonaws.com.cn","execute-api.af-south-1.amazonaws.com","execute-api.ap-east-1.amazonaws.com","execute-api.ap-northeast-1.amazonaws.com","execute-api.ap-northeast-2.amazonaws.com","execute-api.ap-northeast-3.amazonaws.com","execute-api.ap-south-1.amazonaws.com","execute-api.ap-south-2.amazonaws.com","execute-api.ap-southeast-1.amazonaws.com","execute-api.ap-southeast-2.amazonaws.com","execute-api.ap-southeast-3.amazonaws.com","execute-api.ap-southeast-4.amazonaws.com","execute-api.ap-southeast-5.amazonaws.com","execute-api.ca-central-1.amazonaws.com","execute-api.ca-west-1.amazonaws.com","execute-api.eu-central-1.amazonaws.com","execute-api.eu-central-2.amazonaws.com","execute-api.eu-north-1.amazonaws.com","execute-api.eu-south-1.amazonaws.com","execute-api.eu-south-2.amazonaws.com","execute-api.eu-west-1.amazonaws.com","execute-api.eu-west-2.amazonaws.com","execute-api.eu-west-3.amazonaws.com","execute-api.il-central-1.amazonaws.com","execute-api.me-central-1.amazonaws.com","execute-api.me-south-1.amazonaws.com","execute-api.sa-east-1.amazonaws.com","execute-api.us-east-1.amazonaws.com","execute-api.us-east-2.amazonaws.com","execute-api.us-gov-east-1.amazonaws.com","execute-api.us-gov-west-1.amazonaws.com","execute-api.us-west-1.amazonaws.com","execute-api.us-west-2.amazonaws.com","cloudfront.net","auth.af-south-1.amazoncognito.com","auth.ap-east-1.amazoncognito.com","auth.ap-northeast-1.amazoncognito.com","auth.ap-northeast-2.amazoncognito.com","auth.ap-northeast-3.amazoncognito.com","auth.ap-south-1.amazoncognito.com","auth.ap-south-2.amazoncognito.com","auth.ap-southeast-1.amazoncognito.com","auth.ap-southeast-2.amazoncognito.com","auth.ap-southeast-3.amazoncognito.com","auth.ap-southeast-4.amazoncognito.com","auth.ca-central-1.amazoncognito.com","auth.ca-west-1.amazoncognito.com","auth.eu-central-1.amazoncognito.com","auth.eu-central-2.amazoncognito.com","auth.eu-north-1.amazoncognito.com","auth.eu-south-1.amazoncognito.com","auth.eu-south-2.amazoncognito.com","auth.eu-west-1.amazoncognito.com","auth.eu-west-2.amazoncognito.com","auth.eu-west-3.amazoncognito.com","auth.il-central-1.amazoncognito.com","auth.me-central-1.amazoncognito.com","auth.me-south-1.amazoncognito.com","auth.sa-east-1.amazoncognito.com","auth.us-east-1.amazoncognito.com","auth-fips.us-east-1.amazoncognito.com","auth.us-east-2.amazoncognito.com","auth-fips.us-east-2.amazoncognito.com","auth-fips.us-gov-west-1.amazoncognito.com","auth.us-west-1.amazoncognito.com","auth-fips.us-west-1.amazoncognito.com","auth.us-west-2.amazoncognito.com","auth-fips.us-west-2.amazoncognito.com","*.compute.amazonaws.com.cn","*.compute.amazonaws.com","*.compute-1.amazonaws.com","us-east-1.amazonaws.com","emrappui-prod.cn-north-1.amazonaws.com.cn","emrnotebooks-prod.cn-north-1.amazonaws.com.cn","emrstudio-prod.cn-north-1.amazonaws.com.cn","emrappui-prod.cn-northwest-1.amazonaws.com.cn","emrnotebooks-prod.cn-northwest-1.amazonaws.com.cn","emrstudio-prod.cn-northwest-1.amazonaws.com.cn","emrappui-prod.af-south-1.amazonaws.com","emrnotebooks-prod.af-south-1.amazonaws.com","emrstudio-prod.af-south-1.amazonaws.com","emrappui-prod.ap-east-1.amazonaws.com","emrnotebooks-prod.ap-east-1.amazonaws.com","emrstudio-prod.ap-east-1.amazonaws.com","emrappui-prod.ap-northeast-1.amazonaws.com","emrnotebooks-prod.ap-northeast-1.amazonaws.com","emrstudio-prod.ap-northeast-1.amazonaws.com","emrappui-prod.ap-northeast-2.amazonaws.com","emrnotebooks-prod.ap-northeast-2.amazonaws.com","emrstudio-prod.ap-northeast-2.amazonaws.com","emrappui-prod.ap-northeast-3.amazonaws.com","emrnotebooks-prod.ap-northeast-3.amazonaws.com","emrstudio-prod.ap-northeast-3.amazonaws.com","emrappui-prod.ap-south-1.amazonaws.com","emrnotebooks-prod.ap-south-1.amazonaws.com","emrstudio-prod.ap-south-1.amazonaws.com","emrappui-prod.ap-south-2.amazonaws.com","emrnotebooks-prod.ap-south-2.amazonaws.com","emrstudio-prod.ap-south-2.amazonaws.com","emrappui-prod.ap-southeast-1.amazonaws.com","emrnotebooks-prod.ap-southeast-1.amazonaws.com","emrstudio-prod.ap-southeast-1.amazonaws.com","emrappui-prod.ap-southeast-2.amazonaws.com","emrnotebooks-prod.ap-southeast-2.amazonaws.com","emrstudio-prod.ap-southeast-2.amazonaws.com","emrappui-prod.ap-southeast-3.amazonaws.com","emrnotebooks-prod.ap-southeast-3.amazonaws.com","emrstudio-prod.ap-southeast-3.amazonaws.com","emrappui-prod.ap-southeast-4.amazonaws.com","emrnotebooks-prod.ap-southeast-4.amazonaws.com","emrstudio-prod.ap-southeast-4.amazonaws.com","emrappui-prod.ca-central-1.amazonaws.com","emrnotebooks-prod.ca-central-1.amazonaws.com","emrstudio-prod.ca-central-1.amazonaws.com","emrappui-prod.ca-west-1.amazonaws.com","emrnotebooks-prod.ca-west-1.amazonaws.com","emrstudio-prod.ca-west-1.amazonaws.com","emrappui-prod.eu-central-1.amazonaws.com","emrnotebooks-prod.eu-central-1.amazonaws.com","emrstudio-prod.eu-central-1.amazonaws.com","emrappui-prod.eu-central-2.amazonaws.com","emrnotebooks-prod.eu-central-2.amazonaws.com","emrstudio-prod.eu-central-2.amazonaws.com","emrappui-prod.eu-north-1.amazonaws.com","emrnotebooks-prod.eu-north-1.amazonaws.com","emrstudio-prod.eu-north-1.amazonaws.com","emrappui-prod.eu-south-1.amazonaws.com","emrnotebooks-prod.eu-south-1.amazonaws.com","emrstudio-prod.eu-south-1.amazonaws.com","emrappui-prod.eu-south-2.amazonaws.com","emrnotebooks-prod.eu-south-2.amazonaws.com","emrstudio-prod.eu-south-2.amazonaws.com","emrappui-prod.eu-west-1.amazonaws.com","emrnotebooks-prod.eu-west-1.amazonaws.com","emrstudio-prod.eu-west-1.amazonaws.com","emrappui-prod.eu-west-2.amazonaws.com","emrnotebooks-prod.eu-west-2.amazonaws.com","emrstudio-prod.eu-west-2.amazonaws.com","emrappui-prod.eu-west-3.amazonaws.com","emrnotebooks-prod.eu-west-3.amazonaws.com","emrstudio-prod.eu-west-3.amazonaws.com","emrappui-prod.il-central-1.amazonaws.com","emrnotebooks-prod.il-central-1.amazonaws.com","emrstudio-prod.il-central-1.amazonaws.com","emrappui-prod.me-central-1.amazonaws.com","emrnotebooks-prod.me-central-1.amazonaws.com","emrstudio-prod.me-central-1.amazonaws.com","emrappui-prod.me-south-1.amazonaws.com","emrnotebooks-prod.me-south-1.amazonaws.com","emrstudio-prod.me-south-1.amazonaws.com","emrappui-prod.sa-east-1.amazonaws.com","emrnotebooks-prod.sa-east-1.amazonaws.com","emrstudio-prod.sa-east-1.amazonaws.com","emrappui-prod.us-east-1.amazonaws.com","emrnotebooks-prod.us-east-1.amazonaws.com","emrstudio-prod.us-east-1.amazonaws.com","emrappui-prod.us-east-2.amazonaws.com","emrnotebooks-prod.us-east-2.amazonaws.com","emrstudio-prod.us-east-2.amazonaws.com","emrappui-prod.us-gov-east-1.amazonaws.com","emrnotebooks-prod.us-gov-east-1.amazonaws.com","emrstudio-prod.us-gov-east-1.amazonaws.com","emrappui-prod.us-gov-west-1.amazonaws.com","emrnotebooks-prod.us-gov-west-1.amazonaws.com","emrstudio-prod.us-gov-west-1.amazonaws.com","emrappui-prod.us-west-1.amazonaws.com","emrnotebooks-prod.us-west-1.amazonaws.com","emrstudio-prod.us-west-1.amazonaws.com","emrappui-prod.us-west-2.amazonaws.com","emrnotebooks-prod.us-west-2.amazonaws.com","emrstudio-prod.us-west-2.amazonaws.com","*.cn-north-1.airflow.amazonaws.com.cn","*.cn-northwest-1.airflow.amazonaws.com.cn","*.af-south-1.airflow.amazonaws.com","*.ap-east-1.airflow.amazonaws.com","*.ap-northeast-1.airflow.amazonaws.com","*.ap-northeast-2.airflow.amazonaws.com","*.ap-northeast-3.airflow.amazonaws.com","*.ap-south-1.airflow.amazonaws.com","*.ap-south-2.airflow.amazonaws.com","*.ap-southeast-1.airflow.amazonaws.com","*.ap-southeast-2.airflow.amazonaws.com","*.ap-southeast-3.airflow.amazonaws.com","*.ap-southeast-4.airflow.amazonaws.com","*.ca-central-1.airflow.amazonaws.com","*.ca-west-1.airflow.amazonaws.com","*.eu-central-1.airflow.amazonaws.com","*.eu-central-2.airflow.amazonaws.com","*.eu-north-1.airflow.amazonaws.com","*.eu-south-1.airflow.amazonaws.com","*.eu-south-2.airflow.amazonaws.com","*.eu-west-1.airflow.amazonaws.com","*.eu-west-2.airflow.amazonaws.com","*.eu-west-3.airflow.amazonaws.com","*.il-central-1.airflow.amazonaws.com","*.me-central-1.airflow.amazonaws.com","*.me-south-1.airflow.amazonaws.com","*.sa-east-1.airflow.amazonaws.com","*.us-east-1.airflow.amazonaws.com","*.us-east-2.airflow.amazonaws.com","*.us-west-1.airflow.amazonaws.com","*.us-west-2.airflow.amazonaws.com","s3.dualstack.cn-north-1.amazonaws.com.cn","s3-accesspoint.dualstack.cn-north-1.amazonaws.com.cn","s3-website.dualstack.cn-north-1.amazonaws.com.cn","s3.cn-north-1.amazonaws.com.cn","s3-accesspoint.cn-north-1.amazonaws.com.cn","s3-deprecated.cn-north-1.amazonaws.com.cn","s3-object-lambda.cn-north-1.amazonaws.com.cn","s3-website.cn-north-1.amazonaws.com.cn","s3.dualstack.cn-northwest-1.amazonaws.com.cn","s3-accesspoint.dualstack.cn-northwest-1.amazonaws.com.cn","s3.cn-northwest-1.amazonaws.com.cn","s3-accesspoint.cn-northwest-1.amazonaws.com.cn","s3-object-lambda.cn-northwest-1.amazonaws.com.cn","s3-website.cn-northwest-1.amazonaws.com.cn","s3.dualstack.af-south-1.amazonaws.com","s3-accesspoint.dualstack.af-south-1.amazonaws.com","s3-website.dualstack.af-south-1.amazonaws.com","s3.af-south-1.amazonaws.com","s3-accesspoint.af-south-1.amazonaws.com","s3-object-lambda.af-south-1.amazonaws.com","s3-website.af-south-1.amazonaws.com","s3.dualstack.ap-east-1.amazonaws.com","s3-accesspoint.dualstack.ap-east-1.amazonaws.com","s3.ap-east-1.amazonaws.com","s3-accesspoint.ap-east-1.amazonaws.com","s3-object-lambda.ap-east-1.amazonaws.com","s3-website.ap-east-1.amazonaws.com","s3.dualstack.ap-northeast-1.amazonaws.com","s3-accesspoint.dualstack.ap-northeast-1.amazonaws.com","s3-website.dualstack.ap-northeast-1.amazonaws.com","s3.ap-northeast-1.amazonaws.com","s3-accesspoint.ap-northeast-1.amazonaws.com","s3-object-lambda.ap-northeast-1.amazonaws.com","s3-website.ap-northeast-1.amazonaws.com","s3.dualstack.ap-northeast-2.amazonaws.com","s3-accesspoint.dualstack.ap-northeast-2.amazonaws.com","s3-website.dualstack.ap-northeast-2.amazonaws.com","s3.ap-northeast-2.amazonaws.com","s3-accesspoint.ap-northeast-2.amazonaws.com","s3-object-lambda.ap-northeast-2.amazonaws.com","s3-website.ap-northeast-2.amazonaws.com","s3.dualstack.ap-northeast-3.amazonaws.com","s3-accesspoint.dualstack.ap-northeast-3.amazonaws.com","s3-website.dualstack.ap-northeast-3.amazonaws.com","s3.ap-northeast-3.amazonaws.com","s3-accesspoint.ap-northeast-3.amazonaws.com","s3-object-lambda.ap-northeast-3.amazonaws.com","s3-website.ap-northeast-3.amazonaws.com","s3.dualstack.ap-south-1.amazonaws.com","s3-accesspoint.dualstack.ap-south-1.amazonaws.com","s3-website.dualstack.ap-south-1.amazonaws.com","s3.ap-south-1.amazonaws.com","s3-accesspoint.ap-south-1.amazonaws.com","s3-object-lambda.ap-south-1.amazonaws.com","s3-website.ap-south-1.amazonaws.com","s3.dualstack.ap-south-2.amazonaws.com","s3-accesspoint.dualstack.ap-south-2.amazonaws.com","s3-website.dualstack.ap-south-2.amazonaws.com","s3.ap-south-2.amazonaws.com","s3-accesspoint.ap-south-2.amazonaws.com","s3-object-lambda.ap-south-2.amazonaws.com","s3-website.ap-south-2.amazonaws.com","s3.dualstack.ap-southeast-1.amazonaws.com","s3-accesspoint.dualstack.ap-southeast-1.amazonaws.com","s3-website.dualstack.ap-southeast-1.amazonaws.com","s3.ap-southeast-1.amazonaws.com","s3-accesspoint.ap-southeast-1.amazonaws.com","s3-object-lambda.ap-southeast-1.amazonaws.com","s3-website.ap-southeast-1.amazonaws.com","s3.dualstack.ap-southeast-2.amazonaws.com","s3-accesspoint.dualstack.ap-southeast-2.amazonaws.com","s3-website.dualstack.ap-southeast-2.amazonaws.com","s3.ap-southeast-2.amazonaws.com","s3-accesspoint.ap-southeast-2.amazonaws.com","s3-object-lambda.ap-southeast-2.amazonaws.com","s3-website.ap-southeast-2.amazonaws.com","s3.dualstack.ap-southeast-3.amazonaws.com","s3-accesspoint.dualstack.ap-southeast-3.amazonaws.com","s3-website.dualstack.ap-southeast-3.amazonaws.com","s3.ap-southeast-3.amazonaws.com","s3-accesspoint.ap-southeast-3.amazonaws.com","s3-object-lambda.ap-southeast-3.amazonaws.com","s3-website.ap-southeast-3.amazonaws.com","s3.dualstack.ap-southeast-4.amazonaws.com","s3-accesspoint.dualstack.ap-southeast-4.amazonaws.com","s3-website.dualstack.ap-southeast-4.amazonaws.com","s3.ap-southeast-4.amazonaws.com","s3-accesspoint.ap-southeast-4.amazonaws.com","s3-object-lambda.ap-southeast-4.amazonaws.com","s3-website.ap-southeast-4.amazonaws.com","s3.dualstack.ap-southeast-5.amazonaws.com","s3-accesspoint.dualstack.ap-southeast-5.amazonaws.com","s3-website.dualstack.ap-southeast-5.amazonaws.com","s3.ap-southeast-5.amazonaws.com","s3-accesspoint.ap-southeast-5.amazonaws.com","s3-deprecated.ap-southeast-5.amazonaws.com","s3-object-lambda.ap-southeast-5.amazonaws.com","s3-website.ap-southeast-5.amazonaws.com","s3.dualstack.ca-central-1.amazonaws.com","s3-accesspoint.dualstack.ca-central-1.amazonaws.com","s3-accesspoint-fips.dualstack.ca-central-1.amazonaws.com","s3-fips.dualstack.ca-central-1.amazonaws.com","s3-website.dualstack.ca-central-1.amazonaws.com","s3.ca-central-1.amazonaws.com","s3-accesspoint.ca-central-1.amazonaws.com","s3-accesspoint-fips.ca-central-1.amazonaws.com","s3-fips.ca-central-1.amazonaws.com","s3-object-lambda.ca-central-1.amazonaws.com","s3-website.ca-central-1.amazonaws.com","s3.dualstack.ca-west-1.amazonaws.com","s3-accesspoint.dualstack.ca-west-1.amazonaws.com","s3-accesspoint-fips.dualstack.ca-west-1.amazonaws.com","s3-fips.dualstack.ca-west-1.amazonaws.com","s3-website.dualstack.ca-west-1.amazonaws.com","s3.ca-west-1.amazonaws.com","s3-accesspoint.ca-west-1.amazonaws.com","s3-accesspoint-fips.ca-west-1.amazonaws.com","s3-fips.ca-west-1.amazonaws.com","s3-object-lambda.ca-west-1.amazonaws.com","s3-website.ca-west-1.amazonaws.com","s3.dualstack.eu-central-1.amazonaws.com","s3-accesspoint.dualstack.eu-central-1.amazonaws.com","s3-website.dualstack.eu-central-1.amazonaws.com","s3.eu-central-1.amazonaws.com","s3-accesspoint.eu-central-1.amazonaws.com","s3-object-lambda.eu-central-1.amazonaws.com","s3-website.eu-central-1.amazonaws.com","s3.dualstack.eu-central-2.amazonaws.com","s3-accesspoint.dualstack.eu-central-2.amazonaws.com","s3-website.dualstack.eu-central-2.amazonaws.com","s3.eu-central-2.amazonaws.com","s3-accesspoint.eu-central-2.amazonaws.com","s3-object-lambda.eu-central-2.amazonaws.com","s3-website.eu-central-2.amazonaws.com","s3.dualstack.eu-north-1.amazonaws.com","s3-accesspoint.dualstack.eu-north-1.amazonaws.com","s3.eu-north-1.amazonaws.com","s3-accesspoint.eu-north-1.amazonaws.com","s3-object-lambda.eu-north-1.amazonaws.com","s3-website.eu-north-1.amazonaws.com","s3.dualstack.eu-south-1.amazonaws.com","s3-accesspoint.dualstack.eu-south-1.amazonaws.com","s3-website.dualstack.eu-south-1.amazonaws.com","s3.eu-south-1.amazonaws.com","s3-accesspoint.eu-south-1.amazonaws.com","s3-object-lambda.eu-south-1.amazonaws.com","s3-website.eu-south-1.amazonaws.com","s3.dualstack.eu-south-2.amazonaws.com","s3-accesspoint.dualstack.eu-south-2.amazonaws.com","s3-website.dualstack.eu-south-2.amazonaws.com","s3.eu-south-2.amazonaws.com","s3-accesspoint.eu-south-2.amazonaws.com","s3-object-lambda.eu-south-2.amazonaws.com","s3-website.eu-south-2.amazonaws.com","s3.dualstack.eu-west-1.amazonaws.com","s3-accesspoint.dualstack.eu-west-1.amazonaws.com","s3-website.dualstack.eu-west-1.amazonaws.com","s3.eu-west-1.amazonaws.com","s3-accesspoint.eu-west-1.amazonaws.com","s3-deprecated.eu-west-1.amazonaws.com","s3-object-lambda.eu-west-1.amazonaws.com","s3-website.eu-west-1.amazonaws.com","s3.dualstack.eu-west-2.amazonaws.com","s3-accesspoint.dualstack.eu-west-2.amazonaws.com","s3.eu-west-2.amazonaws.com","s3-accesspoint.eu-west-2.amazonaws.com","s3-object-lambda.eu-west-2.amazonaws.com","s3-website.eu-west-2.amazonaws.com","s3.dualstack.eu-west-3.amazonaws.com","s3-accesspoint.dualstack.eu-west-3.amazonaws.com","s3-website.dualstack.eu-west-3.amazonaws.com","s3.eu-west-3.amazonaws.com","s3-accesspoint.eu-west-3.amazonaws.com","s3-object-lambda.eu-west-3.amazonaws.com","s3-website.eu-west-3.amazonaws.com","s3.dualstack.il-central-1.amazonaws.com","s3-accesspoint.dualstack.il-central-1.amazonaws.com","s3-website.dualstack.il-central-1.amazonaws.com","s3.il-central-1.amazonaws.com","s3-accesspoint.il-central-1.amazonaws.com","s3-object-lambda.il-central-1.amazonaws.com","s3-website.il-central-1.amazonaws.com","s3.dualstack.me-central-1.amazonaws.com","s3-accesspoint.dualstack.me-central-1.amazonaws.com","s3-website.dualstack.me-central-1.amazonaws.com","s3.me-central-1.amazonaws.com","s3-accesspoint.me-central-1.amazonaws.com","s3-object-lambda.me-central-1.amazonaws.com","s3-website.me-central-1.amazonaws.com","s3.dualstack.me-south-1.amazonaws.com","s3-accesspoint.dualstack.me-south-1.amazonaws.com","s3.me-south-1.amazonaws.com","s3-accesspoint.me-south-1.amazonaws.com","s3-object-lambda.me-south-1.amazonaws.com","s3-website.me-south-1.amazonaws.com","s3.amazonaws.com","s3-1.amazonaws.com","s3-ap-east-1.amazonaws.com","s3-ap-northeast-1.amazonaws.com","s3-ap-northeast-2.amazonaws.com","s3-ap-northeast-3.amazonaws.com","s3-ap-south-1.amazonaws.com","s3-ap-southeast-1.amazonaws.com","s3-ap-southeast-2.amazonaws.com","s3-ca-central-1.amazonaws.com","s3-eu-central-1.amazonaws.com","s3-eu-north-1.amazonaws.com","s3-eu-west-1.amazonaws.com","s3-eu-west-2.amazonaws.com","s3-eu-west-3.amazonaws.com","s3-external-1.amazonaws.com","s3-fips-us-gov-east-1.amazonaws.com","s3-fips-us-gov-west-1.amazonaws.com","mrap.accesspoint.s3-global.amazonaws.com","s3-me-south-1.amazonaws.com","s3-sa-east-1.amazonaws.com","s3-us-east-2.amazonaws.com","s3-us-gov-east-1.amazonaws.com","s3-us-gov-west-1.amazonaws.com","s3-us-west-1.amazonaws.com","s3-us-west-2.amazonaws.com","s3-website-ap-northeast-1.amazonaws.com","s3-website-ap-southeast-1.amazonaws.com","s3-website-ap-southeast-2.amazonaws.com","s3-website-eu-west-1.amazonaws.com","s3-website-sa-east-1.amazonaws.com","s3-website-us-east-1.amazonaws.com","s3-website-us-gov-west-1.amazonaws.com","s3-website-us-west-1.amazonaws.com","s3-website-us-west-2.amazonaws.com","s3.dualstack.sa-east-1.amazonaws.com","s3-accesspoint.dualstack.sa-east-1.amazonaws.com","s3-website.dualstack.sa-east-1.amazonaws.com","s3.sa-east-1.amazonaws.com","s3-accesspoint.sa-east-1.amazonaws.com","s3-object-lambda.sa-east-1.amazonaws.com","s3-website.sa-east-1.amazonaws.com","s3.dualstack.us-east-1.amazonaws.com","s3-accesspoint.dualstack.us-east-1.amazonaws.com","s3-accesspoint-fips.dualstack.us-east-1.amazonaws.com","s3-fips.dualstack.us-east-1.amazonaws.com","s3-website.dualstack.us-east-1.amazonaws.com","s3.us-east-1.amazonaws.com","s3-accesspoint.us-east-1.amazonaws.com","s3-accesspoint-fips.us-east-1.amazonaws.com","s3-deprecated.us-east-1.amazonaws.com","s3-fips.us-east-1.amazonaws.com","s3-object-lambda.us-east-1.amazonaws.com","s3-website.us-east-1.amazonaws.com","s3.dualstack.us-east-2.amazonaws.com","s3-accesspoint.dualstack.us-east-2.amazonaws.com","s3-accesspoint-fips.dualstack.us-east-2.amazonaws.com","s3-fips.dualstack.us-east-2.amazonaws.com","s3-website.dualstack.us-east-2.amazonaws.com","s3.us-east-2.amazonaws.com","s3-accesspoint.us-east-2.amazonaws.com","s3-accesspoint-fips.us-east-2.amazonaws.com","s3-deprecated.us-east-2.amazonaws.com","s3-fips.us-east-2.amazonaws.com","s3-object-lambda.us-east-2.amazonaws.com","s3-website.us-east-2.amazonaws.com","s3.dualstack.us-gov-east-1.amazonaws.com","s3-accesspoint.dualstack.us-gov-east-1.amazonaws.com","s3-accesspoint-fips.dualstack.us-gov-east-1.amazonaws.com","s3-fips.dualstack.us-gov-east-1.amazonaws.com","s3.us-gov-east-1.amazonaws.com","s3-accesspoint.us-gov-east-1.amazonaws.com","s3-accesspoint-fips.us-gov-east-1.amazonaws.com","s3-fips.us-gov-east-1.amazonaws.com","s3-object-lambda.us-gov-east-1.amazonaws.com","s3-website.us-gov-east-1.amazonaws.com","s3.dualstack.us-gov-west-1.amazonaws.com","s3-accesspoint.dualstack.us-gov-west-1.amazonaws.com","s3-accesspoint-fips.dualstack.us-gov-west-1.amazonaws.com","s3-fips.dualstack.us-gov-west-1.amazonaws.com","s3.us-gov-west-1.amazonaws.com","s3-accesspoint.us-gov-west-1.amazonaws.com","s3-accesspoint-fips.us-gov-west-1.amazonaws.com","s3-fips.us-gov-west-1.amazonaws.com","s3-object-lambda.us-gov-west-1.amazonaws.com","s3-website.us-gov-west-1.amazonaws.com","s3.dualstack.us-west-1.amazonaws.com","s3-accesspoint.dualstack.us-west-1.amazonaws.com","s3-accesspoint-fips.dualstack.us-west-1.amazonaws.com","s3-fips.dualstack.us-west-1.amazonaws.com","s3-website.dualstack.us-west-1.amazonaws.com","s3.us-west-1.amazonaws.com","s3-accesspoint.us-west-1.amazonaws.com","s3-accesspoint-fips.us-west-1.amazonaws.com","s3-fips.us-west-1.amazonaws.com","s3-object-lambda.us-west-1.amazonaws.com","s3-website.us-west-1.amazonaws.com","s3.dualstack.us-west-2.amazonaws.com","s3-accesspoint.dualstack.us-west-2.amazonaws.com","s3-accesspoint-fips.dualstack.us-west-2.amazonaws.com","s3-fips.dualstack.us-west-2.amazonaws.com","s3-website.dualstack.us-west-2.amazonaws.com","s3.us-west-2.amazonaws.com","s3-accesspoint.us-west-2.amazonaws.com","s3-accesspoint-fips.us-west-2.amazonaws.com","s3-deprecated.us-west-2.amazonaws.com","s3-fips.us-west-2.amazonaws.com","s3-object-lambda.us-west-2.amazonaws.com","s3-website.us-west-2.amazonaws.com","labeling.ap-northeast-1.sagemaker.aws","labeling.ap-northeast-2.sagemaker.aws","labeling.ap-south-1.sagemaker.aws","labeling.ap-southeast-1.sagemaker.aws","labeling.ap-southeast-2.sagemaker.aws","labeling.ca-central-1.sagemaker.aws","labeling.eu-central-1.sagemaker.aws","labeling.eu-west-1.sagemaker.aws","labeling.eu-west-2.sagemaker.aws","labeling.us-east-1.sagemaker.aws","labeling.us-east-2.sagemaker.aws","labeling.us-west-2.sagemaker.aws","notebook.af-south-1.sagemaker.aws","notebook.ap-east-1.sagemaker.aws","notebook.ap-northeast-1.sagemaker.aws","notebook.ap-northeast-2.sagemaker.aws","notebook.ap-northeast-3.sagemaker.aws","notebook.ap-south-1.sagemaker.aws","notebook.ap-south-2.sagemaker.aws","notebook.ap-southeast-1.sagemaker.aws","notebook.ap-southeast-2.sagemaker.aws","notebook.ap-southeast-3.sagemaker.aws","notebook.ap-southeast-4.sagemaker.aws","notebook.ca-central-1.sagemaker.aws","notebook-fips.ca-central-1.sagemaker.aws","notebook.ca-west-1.sagemaker.aws","notebook-fips.ca-west-1.sagemaker.aws","notebook.eu-central-1.sagemaker.aws","notebook.eu-central-2.sagemaker.aws","notebook.eu-north-1.sagemaker.aws","notebook.eu-south-1.sagemaker.aws","notebook.eu-south-2.sagemaker.aws","notebook.eu-west-1.sagemaker.aws","notebook.eu-west-2.sagemaker.aws","notebook.eu-west-3.sagemaker.aws","notebook.il-central-1.sagemaker.aws","notebook.me-central-1.sagemaker.aws","notebook.me-south-1.sagemaker.aws","notebook.sa-east-1.sagemaker.aws","notebook.us-east-1.sagemaker.aws","notebook-fips.us-east-1.sagemaker.aws","notebook.us-east-2.sagemaker.aws","notebook-fips.us-east-2.sagemaker.aws","notebook.us-gov-east-1.sagemaker.aws","notebook-fips.us-gov-east-1.sagemaker.aws","notebook.us-gov-west-1.sagemaker.aws","notebook-fips.us-gov-west-1.sagemaker.aws","notebook.us-west-1.sagemaker.aws","notebook-fips.us-west-1.sagemaker.aws","notebook.us-west-2.sagemaker.aws","notebook-fips.us-west-2.sagemaker.aws","notebook.cn-north-1.sagemaker.com.cn","notebook.cn-northwest-1.sagemaker.com.cn","studio.af-south-1.sagemaker.aws","studio.ap-east-1.sagemaker.aws","studio.ap-northeast-1.sagemaker.aws","studio.ap-northeast-2.sagemaker.aws","studio.ap-northeast-3.sagemaker.aws","studio.ap-south-1.sagemaker.aws","studio.ap-southeast-1.sagemaker.aws","studio.ap-southeast-2.sagemaker.aws","studio.ap-southeast-3.sagemaker.aws","studio.ca-central-1.sagemaker.aws","studio.eu-central-1.sagemaker.aws","studio.eu-north-1.sagemaker.aws","studio.eu-south-1.sagemaker.aws","studio.eu-south-2.sagemaker.aws","studio.eu-west-1.sagemaker.aws","studio.eu-west-2.sagemaker.aws","studio.eu-west-3.sagemaker.aws","studio.il-central-1.sagemaker.aws","studio.me-central-1.sagemaker.aws","studio.me-south-1.sagemaker.aws","studio.sa-east-1.sagemaker.aws","studio.us-east-1.sagemaker.aws","studio.us-east-2.sagemaker.aws","studio.us-gov-east-1.sagemaker.aws","studio-fips.us-gov-east-1.sagemaker.aws","studio.us-gov-west-1.sagemaker.aws","studio-fips.us-gov-west-1.sagemaker.aws","studio.us-west-1.sagemaker.aws","studio.us-west-2.sagemaker.aws","studio.cn-north-1.sagemaker.com.cn","studio.cn-northwest-1.sagemaker.com.cn","*.experiments.sagemaker.aws","analytics-gateway.ap-northeast-1.amazonaws.com","analytics-gateway.ap-northeast-2.amazonaws.com","analytics-gateway.ap-south-1.amazonaws.com","analytics-gateway.ap-southeast-1.amazonaws.com","analytics-gateway.ap-southeast-2.amazonaws.com","analytics-gateway.eu-central-1.amazonaws.com","analytics-gateway.eu-west-1.amazonaws.com","analytics-gateway.us-east-1.amazonaws.com","analytics-gateway.us-east-2.amazonaws.com","analytics-gateway.us-west-2.amazonaws.com","amplifyapp.com","*.awsapprunner.com","webview-assets.aws-cloud9.af-south-1.amazonaws.com","vfs.cloud9.af-south-1.amazonaws.com","webview-assets.cloud9.af-south-1.amazonaws.com","webview-assets.aws-cloud9.ap-east-1.amazonaws.com","vfs.cloud9.ap-east-1.amazonaws.com","webview-assets.cloud9.ap-east-1.amazonaws.com","webview-assets.aws-cloud9.ap-northeast-1.amazonaws.com","vfs.cloud9.ap-northeast-1.amazonaws.com","webview-assets.cloud9.ap-northeast-1.amazonaws.com","webview-assets.aws-cloud9.ap-northeast-2.amazonaws.com","vfs.cloud9.ap-northeast-2.amazonaws.com","webview-assets.cloud9.ap-northeast-2.amazonaws.com","webview-assets.aws-cloud9.ap-northeast-3.amazonaws.com","vfs.cloud9.ap-northeast-3.amazonaws.com","webview-assets.cloud9.ap-northeast-3.amazonaws.com","webview-assets.aws-cloud9.ap-south-1.amazonaws.com","vfs.cloud9.ap-south-1.amazonaws.com","webview-assets.cloud9.ap-south-1.amazonaws.com","webview-assets.aws-cloud9.ap-southeast-1.amazonaws.com","vfs.cloud9.ap-southeast-1.amazonaws.com","webview-assets.cloud9.ap-southeast-1.amazonaws.com","webview-assets.aws-cloud9.ap-southeast-2.amazonaws.com","vfs.cloud9.ap-southeast-2.amazonaws.com","webview-assets.cloud9.ap-southeast-2.amazonaws.com","webview-assets.aws-cloud9.ca-central-1.amazonaws.com","vfs.cloud9.ca-central-1.amazonaws.com","webview-assets.cloud9.ca-central-1.amazonaws.com","webview-assets.aws-cloud9.eu-central-1.amazonaws.com","vfs.cloud9.eu-central-1.amazonaws.com","webview-assets.cloud9.eu-central-1.amazonaws.com","webview-assets.aws-cloud9.eu-north-1.amazonaws.com","vfs.cloud9.eu-north-1.amazonaws.com","webview-assets.cloud9.eu-north-1.amazonaws.com","webview-assets.aws-cloud9.eu-south-1.amazonaws.com","vfs.cloud9.eu-south-1.amazonaws.com","webview-assets.cloud9.eu-south-1.amazonaws.com","webview-assets.aws-cloud9.eu-west-1.amazonaws.com","vfs.cloud9.eu-west-1.amazonaws.com","webview-assets.cloud9.eu-west-1.amazonaws.com","webview-assets.aws-cloud9.eu-west-2.amazonaws.com","vfs.cloud9.eu-west-2.amazonaws.com","webview-assets.cloud9.eu-west-2.amazonaws.com","webview-assets.aws-cloud9.eu-west-3.amazonaws.com","vfs.cloud9.eu-west-3.amazonaws.com","webview-assets.cloud9.eu-west-3.amazonaws.com","webview-assets.aws-cloud9.il-central-1.amazonaws.com","vfs.cloud9.il-central-1.amazonaws.com","webview-assets.aws-cloud9.me-south-1.amazonaws.com","vfs.cloud9.me-south-1.amazonaws.com","webview-assets.cloud9.me-south-1.amazonaws.com","webview-assets.aws-cloud9.sa-east-1.amazonaws.com","vfs.cloud9.sa-east-1.amazonaws.com","webview-assets.cloud9.sa-east-1.amazonaws.com","webview-assets.aws-cloud9.us-east-1.amazonaws.com","vfs.cloud9.us-east-1.amazonaws.com","webview-assets.cloud9.us-east-1.amazonaws.com","webview-assets.aws-cloud9.us-east-2.amazonaws.com","vfs.cloud9.us-east-2.amazonaws.com","webview-assets.cloud9.us-east-2.amazonaws.com","webview-assets.aws-cloud9.us-west-1.amazonaws.com","vfs.cloud9.us-west-1.amazonaws.com","webview-assets.cloud9.us-west-1.amazonaws.com","webview-assets.aws-cloud9.us-west-2.amazonaws.com","vfs.cloud9.us-west-2.amazonaws.com","webview-assets.cloud9.us-west-2.amazonaws.com","awsapps.com","cn-north-1.eb.amazonaws.com.cn","cn-northwest-1.eb.amazonaws.com.cn","elasticbeanstalk.com","af-south-1.elasticbeanstalk.com","ap-east-1.elasticbeanstalk.com","ap-northeast-1.elasticbeanstalk.com","ap-northeast-2.elasticbeanstalk.com","ap-northeast-3.elasticbeanstalk.com","ap-south-1.elasticbeanstalk.com","ap-southeast-1.elasticbeanstalk.com","ap-southeast-2.elasticbeanstalk.com","ap-southeast-3.elasticbeanstalk.com","ca-central-1.elasticbeanstalk.com","eu-central-1.elasticbeanstalk.com","eu-north-1.elasticbeanstalk.com","eu-south-1.elasticbeanstalk.com","eu-west-1.elasticbeanstalk.com","eu-west-2.elasticbeanstalk.com","eu-west-3.elasticbeanstalk.com","il-central-1.elasticbeanstalk.com","me-south-1.elasticbeanstalk.com","sa-east-1.elasticbeanstalk.com","us-east-1.elasticbeanstalk.com","us-east-2.elasticbeanstalk.com","us-gov-east-1.elasticbeanstalk.com","us-gov-west-1.elasticbeanstalk.com","us-west-1.elasticbeanstalk.com","us-west-2.elasticbeanstalk.com","*.elb.amazonaws.com.cn","*.elb.amazonaws.com","awsglobalaccelerator.com","*.private.repost.aws","eero.online","eero-stage.online","apigee.io","panel.dev","siiites.com","appspacehosted.com","appspaceusercontent.com","appudo.net","on-aptible.com","f5.si","arvanedge.ir","user.aseinet.ne.jp","gv.vc","d.gv.vc","user.party.eus","pimienta.org","poivron.org","potager.org","sweetpepper.org","myasustor.com","cdn.prod.atlassian-dev.net","translated.page","myfritz.link","myfritz.net","onavstack.net","*.awdev.ca","*.advisor.ws","ecommerce-shop.pl","b-data.io","balena-devices.com","base.ec","official.ec","buyshop.jp","fashionstore.jp","handcrafted.jp","kawaiishop.jp","supersale.jp","theshop.jp","shopselect.net","base.shop","beagleboard.io","*.beget.app","pages.gay","bnr.la","bitbucket.io","blackbaudcdn.net","of.je","bluebite.io","boomla.net","boutir.com","boxfuse.io","square7.ch","bplaced.com","bplaced.de","square7.de","bplaced.net","square7.net","*.s.brave.io","shop.brendly.hr","shop.brendly.rs","browsersafetymark.io","radio.am","radio.fm","uk0.bigv.io","dh.bytemark.co.uk","vm.bytemark.co.uk","cafjs.com","canva-apps.cn","*.my.canvasite.cn","canva-apps.com","*.my.canva.site","drr.ac","uwu.ai","carrd.co","crd.co","ju.mp","api.gov.uk","cdn77-storage.com","rsc.contentproxy9.cz","r.cdn77.net","cdn77-ssl.net","c.cdn77.org","rsc.cdn77.org","ssl.origin.cdn77-secure.org","za.bz","br.com","cn.com","de.com","eu.com","jpn.com","mex.com","ru.com","sa.com","uk.com","us.com","za.com","com.de","gb.net","hu.net","jp.net","se.net","uk.net","ae.org","com.se","cx.ua","discourse.group","discourse.team","clerk.app","clerkstage.app","*.lcl.dev","*.lclstage.dev","*.stg.dev","*.stgstage.dev","cleverapps.cc","*.services.clever-cloud.com","cleverapps.io","cleverapps.tech","clickrising.net","cloudns.asia","cloudns.be","cloud-ip.biz","cloudns.biz","cloudns.cc","cloudns.ch","cloudns.cl","cloudns.club","dnsabr.com","ip-ddns.com","cloudns.cx","cloudns.eu","cloudns.in","cloudns.info","ddns-ip.net","dns-cloud.net","dns-dynamic.net","cloudns.nz","cloudns.org","ip-dynamic.org","cloudns.ph","cloudns.pro","cloudns.pw","cloudns.us","c66.me","cloud66.ws","cloud66.zone","jdevcloud.com","wpdevcloud.com","cloudaccess.host","freesite.host","cloudaccess.net","*.cloudera.site","cf-ipfs.com","cloudflare-ipfs.com","trycloudflare.com","pages.dev","r2.dev","workers.dev","cloudflare.net","cdn.cloudflare.net","cdn.cloudflareanycast.net","cdn.cloudflarecn.net","cdn.cloudflareglobal.net","cust.cloudscale.ch","objects.lpg.cloudscale.ch","objects.rma.cloudscale.ch","wnext.app","cnpy.gdn","*.otap.co","co.ca","co.com","codeberg.page","csb.app","preview.csb.app","co.nl","co.no","webhosting.be","hosting-cluster.nl","ctfcloud.net","convex.site","ac.ru","edu.ru","gov.ru","int.ru","mil.ru","test.ru","dyn.cosidns.de","dnsupdater.de","dynamisches-dns.de","internet-dns.de","l-o-g-i-n.de","dynamic-dns.info","feste-ip.net","knx-server.net","static-access.net","craft.me","realm.cz","on.crisp.email","*.cryptonomic.net","curv.dev","cfolks.pl","cyon.link","cyon.site","platform0.app","fnwk.site","folionetwork.site","biz.dk","co.dk","firm.dk","reg.dk","store.dk","dyndns.dappnode.io","builtwithdark.com","darklang.io","demo.datadetect.com","instance.datadetect.com","edgestack.me","dattolocal.com","dattorelay.com","dattoweb.com","mydatto.com","dattolocal.net","mydatto.net","ddnss.de","dyn.ddnss.de","dyndns.ddnss.de","dyn-ip24.de","dyndns1.de","home-webserver.de","dyn.home-webserver.de","myhome-server.de","ddnss.org","debian.net","definima.io","definima.net","deno.dev","deno-staging.dev","dedyn.io","deta.app","deta.dev","dfirma.pl","dkonto.pl","you2.pl","ondigitalocean.app","*.digitaloceanspaces.com","us.kg","rss.my.id","diher.solutions","discordsays.com","discordsez.com","jozi.biz","dnshome.de","online.th","shop.th","drayddns.com","shoparena.pl","dreamhosters.com","durumis.com","mydrobo.com","drud.io","drud.us","duckdns.org","dy.fi","tunk.org","dyndns.biz","for-better.biz","for-more.biz","for-some.biz","for-the.biz","selfip.biz","webhop.biz","ftpaccess.cc","game-server.cc","myphotos.cc","scrapping.cc","blogdns.com","cechire.com","dnsalias.com","dnsdojo.com","doesntexist.com","dontexist.com","doomdns.com","dyn-o-saur.com","dynalias.com","dyndns-at-home.com","dyndns-at-work.com","dyndns-blog.com","dyndns-free.com","dyndns-home.com","dyndns-ip.com","dyndns-mail.com","dyndns-office.com","dyndns-pics.com","dyndns-remote.com","dyndns-server.com","dyndns-web.com","dyndns-wiki.com","dyndns-work.com","est-a-la-maison.com","est-a-la-masion.com","est-le-patron.com","est-mon-blogueur.com","from-ak.com","from-al.com","from-ar.com","from-ca.com","from-ct.com","from-dc.com","from-de.com","from-fl.com","from-ga.com","from-hi.com","from-ia.com","from-id.com","from-il.com","from-in.com","from-ks.com","from-ky.com","from-ma.com","from-md.com","from-mi.com","from-mn.com","from-mo.com","from-ms.com","from-mt.com","from-nc.com","from-nd.com","from-ne.com","from-nh.com","from-nj.com","from-nm.com","from-nv.com","from-oh.com","from-ok.com","from-or.com","from-pa.com","from-pr.com","from-ri.com","from-sc.com","from-sd.com","from-tn.com","from-tx.com","from-ut.com","from-va.com","from-vt.com","from-wa.com","from-wi.com","from-wv.com","from-wy.com","getmyip.com","gotdns.com","hobby-site.com","homelinux.com","homeunix.com","iamallama.com","is-a-anarchist.com","is-a-blogger.com","is-a-bookkeeper.com","is-a-bulls-fan.com","is-a-caterer.com","is-a-chef.com","is-a-conservative.com","is-a-cpa.com","is-a-cubicle-slave.com","is-a-democrat.com","is-a-designer.com","is-a-doctor.com","is-a-financialadvisor.com","is-a-geek.com","is-a-green.com","is-a-guru.com","is-a-hard-worker.com","is-a-hunter.com","is-a-landscaper.com","is-a-lawyer.com","is-a-liberal.com","is-a-libertarian.com","is-a-llama.com","is-a-musician.com","is-a-nascarfan.com","is-a-nurse.com","is-a-painter.com","is-a-personaltrainer.com","is-a-photographer.com","is-a-player.com","is-a-republican.com","is-a-rockstar.com","is-a-socialist.com","is-a-student.com","is-a-teacher.com","is-a-techie.com","is-a-therapist.com","is-an-accountant.com","is-an-actor.com","is-an-actress.com","is-an-anarchist.com","is-an-artist.com","is-an-engineer.com","is-an-entertainer.com","is-certified.com","is-gone.com","is-into-anime.com","is-into-cars.com","is-into-cartoons.com","is-into-games.com","is-leet.com","is-not-certified.com","is-slick.com","is-uberleet.com","is-with-theband.com","isa-geek.com","isa-hockeynut.com","issmarterthanyou.com","likes-pie.com","likescandy.com","neat-url.com","saves-the-whales.com","selfip.com","sells-for-less.com","sells-for-u.com","servebbs.com","simple-url.com","space-to-rent.com","teaches-yoga.com","writesthisblog.com","ath.cx","fuettertdasnetz.de","isteingeek.de","istmein.de","lebtimnetz.de","leitungsen.de","traeumtgerade.de","barrel-of-knowledge.info","barrell-of-knowledge.info","dyndns.info","for-our.info","groks-the.info","groks-this.info","here-for-more.info","knowsitall.info","selfip.info","webhop.info","forgot.her.name","forgot.his.name","at-band-camp.net","blogdns.net","broke-it.net","buyshouses.net","dnsalias.net","dnsdojo.net","does-it.net","dontexist.net","dynalias.net","dynathome.net","endofinternet.net","from-az.net","from-co.net","from-la.net","from-ny.net","gets-it.net","ham-radio-op.net","homeftp.net","homeip.net","homelinux.net","homeunix.net","in-the-band.net","is-a-chef.net","is-a-geek.net","isa-geek.net","kicks-ass.net","office-on-the.net","podzone.net","scrapper-site.net","selfip.net","sells-it.net","servebbs.net","serveftp.net","thruhere.net","webhop.net","merseine.nu","mine.nu","shacknet.nu","blogdns.org","blogsite.org","boldlygoingnowhere.org","dnsalias.org","dnsdojo.org","doesntexist.org","dontexist.org","doomdns.org","dvrdns.org","dynalias.org","dyndns.org","go.dyndns.org","home.dyndns.org","endofinternet.org","endoftheinternet.org","from-me.org","game-host.org","gotdns.org","hobby-site.org","homedns.org","homeftp.org","homelinux.org","homeunix.org","is-a-bruinsfan.org","is-a-candidate.org","is-a-celticsfan.org","is-a-chef.org","is-a-geek.org","is-a-knight.org","is-a-linux-user.org","is-a-patsfan.org","is-a-soxfan.org","is-found.org","is-lost.org","is-saved.org","is-very-bad.org","is-very-evil.org","is-very-good.org","is-very-nice.org","is-very-sweet.org","isa-geek.org","kicks-ass.org","misconfused.org","podzone.org","readmyblog.org","selfip.org","sellsyourhome.org","servebbs.org","serveftp.org","servegame.org","stuff-4-sale.org","webhop.org","better-than.tv","dyndns.tv","on-the-web.tv","worse-than.tv","is-by.us","land-4-sale.us","stuff-4-sale.us","dyndns.ws","mypets.ws","ddnsfree.com","ddnsgeek.com","giize.com","gleeze.com","kozow.com","loseyourip.com","ooguy.com","theworkpc.com","casacam.net","dynu.net","accesscam.org","camdvr.org","freeddns.org","mywire.org","webredirect.org","myddns.rocks","dynv6.net","e4.cz","easypanel.app","easypanel.host","*.ewp.live","twmail.cc","twmail.net","twmail.org","mymailer.com.tw","url.tw","at.emf.camp","rt.ht","elementor.cloud","elementor.cool","en-root.fr","mytuleap.com","tuleap-partners.com","encr.app","encoreapi.com","eu.encoway.cloud","eu.org","al.eu.org","asso.eu.org","at.eu.org","au.eu.org","be.eu.org","bg.eu.org","ca.eu.org","cd.eu.org","ch.eu.org","cn.eu.org","cy.eu.org","cz.eu.org","de.eu.org","dk.eu.org","edu.eu.org","ee.eu.org","es.eu.org","fi.eu.org","fr.eu.org","gr.eu.org","hr.eu.org","hu.eu.org","ie.eu.org","il.eu.org","in.eu.org","int.eu.org","is.eu.org","it.eu.org","jp.eu.org","kr.eu.org","lt.eu.org","lu.eu.org","lv.eu.org","me.eu.org","mk.eu.org","mt.eu.org","my.eu.org","net.eu.org","ng.eu.org","nl.eu.org","no.eu.org","nz.eu.org","pl.eu.org","pt.eu.org","ro.eu.org","ru.eu.org","se.eu.org","si.eu.org","sk.eu.org","tr.eu.org","uk.eu.org","us.eu.org","eurodir.ru","eu-1.evennode.com","eu-2.evennode.com","eu-3.evennode.com","eu-4.evennode.com","us-1.evennode.com","us-2.evennode.com","us-3.evennode.com","us-4.evennode.com","relay.evervault.app","relay.evervault.dev","expo.app","staging.expo.app","onfabrica.com","ru.net","adygeya.ru","bashkiria.ru","bir.ru","cbg.ru","com.ru","dagestan.ru","grozny.ru","kalmykia.ru","kustanai.ru","marine.ru","mordovia.ru","msk.ru","mytis.ru","nalchik.ru","nov.ru","pyatigorsk.ru","spb.ru","vladikavkaz.ru","vladimir.ru","abkhazia.su","adygeya.su","aktyubinsk.su","arkhangelsk.su","armenia.su","ashgabad.su","azerbaijan.su","balashov.su","bashkiria.su","bryansk.su","bukhara.su","chimkent.su","dagestan.su","east-kazakhstan.su","exnet.su","georgia.su","grozny.su","ivanovo.su","jambyl.su","kalmykia.su","kaluga.su","karacol.su","karaganda.su","karelia.su","khakassia.su","krasnodar.su","kurgan.su","kustanai.su","lenug.su","mangyshlak.su","mordovia.su","msk.su","murmansk.su","nalchik.su","navoi.su","north-kazakhstan.su","nov.su","obninsk.su","penza.su","pokrovsk.su","sochi.su","spb.su","tashkent.su","termez.su","togliatti.su","troitsk.su","tselinograd.su","tula.su","tuva.su","vladikavkaz.su","vladimir.su","vologda.su","channelsdvr.net","u.channelsdvr.net","edgecompute.app","fastly-edge.com","fastly-terrarium.com","freetls.fastly.net","map.fastly.net","a.prod.fastly.net","global.prod.fastly.net","a.ssl.fastly.net","b.ssl.fastly.net","global.ssl.fastly.net","fastlylb.net","map.fastlylb.net","*.user.fm","fastvps-server.com","fastvps.host","myfast.host","fastvps.site","myfast.space","conn.uk","copro.uk","hosp.uk","fedorainfracloud.org","fedorapeople.org","cloud.fedoraproject.org","app.os.fedoraproject.org","app.os.stg.fedoraproject.org","mydobiss.com","fh-muenster.io","filegear.me","firebaseapp.com","fldrv.com","flutterflow.app","fly.dev","shw.io","edgeapp.net","forgeblocks.com","id.forgerock.io","framer.ai","framer.app","framercanvas.com","framer.media","framer.photos","framer.website","framer.wiki","0e.vc","freebox-os.com","freeboxos.com","fbx-os.fr","fbxos.fr","freebox-os.fr","freeboxos.fr","freedesktop.org","freemyip.com","*.frusky.de","wien.funkfeuer.at","daemon.asia","dix.asia","mydns.bz","0am.jp","0g0.jp","0j0.jp","0t0.jp","mydns.jp","pgw.jp","wjg.jp","keyword-on.net","live-on.net","server-on.net","mydns.tw","mydns.vc","*.futurecms.at","*.ex.futurecms.at","*.in.futurecms.at","futurehosting.at","futuremailing.at","*.ex.ortsinfo.at","*.kunden.ortsinfo.at","*.statics.cloud","aliases121.com","campaign.gov.uk","service.gov.uk","independent-commission.uk","independent-inquest.uk","independent-inquiry.uk","independent-panel.uk","independent-review.uk","public-inquiry.uk","royal-commission.uk","gehirn.ne.jp","usercontent.jp","gentapps.com","gentlentapis.com","lab.ms","cdn-edges.net","localcert.net","localhostcert.net","gsj.bz","githubusercontent.com","githubpreview.dev","github.io","gitlab.io","gitapp.si","gitpage.si","glitch.me","nog.community","co.ro","shop.ro","lolipop.io","angry.jp","babyblue.jp","babymilk.jp","backdrop.jp","bambina.jp","bitter.jp","blush.jp","boo.jp","boy.jp","boyfriend.jp","but.jp","candypop.jp","capoo.jp","catfood.jp","cheap.jp","chicappa.jp","chillout.jp","chips.jp","chowder.jp","chu.jp","ciao.jp","cocotte.jp","coolblog.jp","cranky.jp","cutegirl.jp","daa.jp","deca.jp","deci.jp","digick.jp","egoism.jp","fakefur.jp","fem.jp","flier.jp","floppy.jp","fool.jp","frenchkiss.jp","girlfriend.jp","girly.jp","gloomy.jp","gonna.jp","greater.jp","hacca.jp","heavy.jp","her.jp","hiho.jp","hippy.jp","holy.jp","hungry.jp","icurus.jp","itigo.jp","jellybean.jp","kikirara.jp","kill.jp","kilo.jp","kuron.jp","littlestar.jp","lolipopmc.jp","lolitapunk.jp","lomo.jp","lovepop.jp","lovesick.jp","main.jp","mods.jp","mond.jp","mongolian.jp","moo.jp","namaste.jp","nikita.jp","nobushi.jp","noor.jp","oops.jp","parallel.jp","parasite.jp","pecori.jp","peewee.jp","penne.jp","pepper.jp","perma.jp","pigboat.jp","pinoko.jp","punyu.jp","pupu.jp","pussycat.jp","pya.jp","raindrop.jp","readymade.jp","sadist.jp","schoolbus.jp","secret.jp","staba.jp","stripper.jp","sub.jp","sunnyday.jp","thick.jp","tonkotsu.jp","under.jp","upper.jp","velvet.jp","verse.jp","versus.jp","vivian.jp","watson.jp","weblike.jp","whitesnow.jp","zombie.jp","heteml.net","graphic.design","goip.de","blogspot.ae","blogspot.al","blogspot.am","*.hosted.app","*.run.app","web.app","blogspot.com.ar","blogspot.co.at","blogspot.com.au","blogspot.ba","blogspot.be","blogspot.bg","blogspot.bj","blogspot.com.br","blogspot.com.by","blogspot.ca","blogspot.cf","blogspot.ch","blogspot.cl","blogspot.com.co","*.0emm.com","appspot.com","*.r.appspot.com","blogspot.com","codespot.com","googleapis.com","googlecode.com","pagespeedmobilizer.com","withgoogle.com","withyoutube.com","blogspot.cv","blogspot.com.cy","blogspot.cz","blogspot.de","*.gateway.dev","blogspot.dk","blogspot.com.ee","blogspot.com.eg","blogspot.com.es","blogspot.fi","blogspot.fr","cloud.goog","translate.goog","*.usercontent.goog","blogspot.gr","blogspot.hk","blogspot.hr","blogspot.hu","blogspot.co.id","blogspot.ie","blogspot.co.il","blogspot.in","blogspot.is","blogspot.it","blogspot.jp","blogspot.co.ke","blogspot.kr","blogspot.li","blogspot.lt","blogspot.lu","blogspot.md","blogspot.mk","blogspot.com.mt","blogspot.mx","blogspot.my","cloudfunctions.net","blogspot.com.ng","blogspot.nl","blogspot.no","blogspot.co.nz","blogspot.pe","blogspot.pt","blogspot.qa","blogspot.re","blogspot.ro","blogspot.rs","blogspot.ru","blogspot.se","blogspot.sg","blogspot.si","blogspot.sk","blogspot.sn","blogspot.td","blogspot.com.tr","blogspot.tw","blogspot.ug","blogspot.co.uk","blogspot.com.uy","blogspot.vn","blogspot.co.za","goupile.fr","pymnt.uk","cloudapps.digital","london.cloudapps.digital","gov.nl","grafana-dev.net","grayjayleagues.com","günstigbestellen.de","günstigliefern.de","fin.ci","free.hr","caa.li","ua.rs","conf.se","häkkinen.fi","hrsn.dev","hashbang.sh","hasura.app","hasura-app.io","hatenablog.com","hatenadiary.com","hateblo.jp","hatenablog.jp","hatenadiary.jp","hatenadiary.org","pages.it.hs-heilbronn.de","pages-research.it.hs-heilbronn.de","heiyu.space","helioho.st","heliohost.us","hepforge.org","herokuapp.com","herokussl.com","heyflow.page","heyflow.site","ravendb.cloud","ravendb.community","development.run","ravendb.run","homesklep.pl","*.kin.one","*.id.pub","*.kin.pub","secaas.hk","hoplix.shop","orx.biz","biz.gl","biz.ng","co.biz.ng","dl.biz.ng","go.biz.ng","lg.biz.ng","on.biz.ng","col.ng","firm.ng","gen.ng","ltd.ng","ngo.ng","plc.ng","ie.ua","hostyhosting.io","hf.space","static.hf.space","hypernode.io","iobb.net","co.cz","*.moonscale.io","moonscale.net","gr.com","iki.fi","ibxos.it","iliadboxos.it","smushcdn.com","wphostedmail.com","wpmucdn.com","tempurl.host","wpmudev.host","dyn-berlin.de","in-berlin.de","in-brb.de","in-butter.de","in-dsl.de","in-vpn.de","in-dsl.net","in-vpn.net","in-dsl.org","in-vpn.org","biz.at","info.at","info.cx","ac.leg.br","al.leg.br","am.leg.br","ap.leg.br","ba.leg.br","ce.leg.br","df.leg.br","es.leg.br","go.leg.br","ma.leg.br","mg.leg.br","ms.leg.br","mt.leg.br","pa.leg.br","pb.leg.br","pe.leg.br","pi.leg.br","pr.leg.br","rj.leg.br","rn.leg.br","ro.leg.br","rr.leg.br","rs.leg.br","sc.leg.br","se.leg.br","sp.leg.br","to.leg.br","pixolino.com","na4u.ru","apps-1and1.com","live-website.com","apps-1and1.net","websitebuilder.online","app-ionos.space","iopsys.se","*.dweb.link","ipifony.net","ir.md","is-a-good.dev","is-a.dev","iservschule.de","mein-iserv.de","schulplattform.de","schulserver.de","test-iserv.de","iserv.dev","mel.cloudlets.com.au","cloud.interhostsolutions.be","alp1.ae.flow.ch","appengine.flow.ch","es-1.axarnet.cloud","diadem.cloud","vip.jelastic.cloud","jele.cloud","it1.eur.aruba.jenv-aruba.cloud","it1.jenv-aruba.cloud","keliweb.cloud","cs.keliweb.cloud","oxa.cloud","tn.oxa.cloud","uk.oxa.cloud","primetel.cloud","uk.primetel.cloud","ca.reclaim.cloud","uk.reclaim.cloud","us.reclaim.cloud","ch.trendhosting.cloud","de.trendhosting.cloud","jele.club","dopaas.com","paas.hosted-by-previder.com","rag-cloud.hosteur.com","rag-cloud-ch.hosteur.com","jcloud.ik-server.com","jcloud-ver-jpc.ik-server.com","demo.jelastic.com","paas.massivegrid.com","jed.wafaicloud.com","ryd.wafaicloud.com","j.scaleforce.com.cy","jelastic.dogado.eu","fi.cloudplatform.fi","demo.datacenter.fi","paas.datacenter.fi","jele.host","mircloud.host","paas.beebyte.io","sekd1.beebyteapp.io","jele.io","jc.neen.it","jcloud.kz","cloudjiffy.net","fra1-de.cloudjiffy.net","west1-us.cloudjiffy.net","jls-sto1.elastx.net","jls-sto2.elastx.net","jls-sto3.elastx.net","fr-1.paas.massivegrid.net","lon-1.paas.massivegrid.net","lon-2.paas.massivegrid.net","ny-1.paas.massivegrid.net","ny-2.paas.massivegrid.net","sg-1.paas.massivegrid.net","jelastic.saveincloud.net","nordeste-idc.saveincloud.net","j.scaleforce.net","sdscloud.pl","unicloud.pl","mircloud.ru","enscaled.sg","jele.site","jelastic.team","orangecloud.tn","j.layershift.co.uk","phx.enscaled.us","mircloud.us","myjino.ru","*.hosting.myjino.ru","*.landing.myjino.ru","*.spectrum.myjino.ru","*.vps.myjino.ru","jotelulu.cloud","webadorsite.com","jouwweb.site","*.cns.joyent.com","*.triton.zone","js.org","kaas.gg","khplay.nl","kapsi.fi","ezproxy.kuleuven.be","kuleuven.cloud","keymachine.de","kinghost.net","uni5.net","knightpoint.systems","koobin.events","webthings.io","krellian.net","oya.to","git-repos.de","lcube-server.de","svn-repos.de","leadpages.co","lpages.co","lpusercontent.com","lelux.site","libp2p.direct","runcontainers.dev","co.business","co.education","co.events","co.financial","co.network","co.place","co.technology","linkyard-cloud.ch","linkyard.cloud","members.linode.com","*.nodebalancer.linode.com","*.linodeobjects.com","ip.linodeusercontent.com","we.bs","filegear-sg.me","ggff.net","*.user.localcert.dev","lodz.pl","pabianice.pl","plock.pl","sieradz.pl","skierniewice.pl","zgierz.pl","loginline.app","loginline.dev","loginline.io","loginline.services","loginline.site","lohmus.me","servers.run","krasnik.pl","leczna.pl","lubartow.pl","lublin.pl","poniatowa.pl","swidnik.pl","glug.org.uk","lug.org.uk","lugs.org.uk","barsy.bg","barsy.club","barsycenter.com","barsyonline.com","barsy.de","barsy.dev","barsy.eu","barsy.gr","barsy.in","barsy.info","barsy.io","barsy.me","barsy.menu","barsyonline.menu","barsy.mobi","barsy.net","barsy.online","barsy.org","barsy.pro","barsy.pub","barsy.ro","barsy.rs","barsy.shop","barsyonline.shop","barsy.site","barsy.store","barsy.support","barsy.uk","barsy.co.uk","barsyonline.co.uk","*.magentosite.cloud","hb.cldmail.ru","matlab.cloud","modelscape.com","mwcloudnonprod.com","polyspace.com","mayfirst.info","mayfirst.org","mazeplay.com","mcdir.me","mcdir.ru","vps.mcdir.ru","mcpre.ru","mediatech.by","mediatech.dev","hra.health","medusajs.app","miniserver.com","memset.net","messerli.app","atmeta.com","apps.fbsbx.com","*.cloud.metacentrum.cz","custom.metacentrum.cz","flt.cloud.muni.cz","usr.cloud.muni.cz","meteorapp.com","eu.meteorapp.com","co.pl","*.azurecontainer.io","azure-api.net","azure-mobile.net","azureedge.net","azurefd.net","azurestaticapps.net","1.azurestaticapps.net","2.azurestaticapps.net","3.azurestaticapps.net","4.azurestaticapps.net","5.azurestaticapps.net","6.azurestaticapps.net","7.azurestaticapps.net","centralus.azurestaticapps.net","eastasia.azurestaticapps.net","eastus2.azurestaticapps.net","westeurope.azurestaticapps.net","westus2.azurestaticapps.net","azurewebsites.net","cloudapp.net","trafficmanager.net","blob.core.windows.net","servicebus.windows.net","routingthecloud.com","sn.mynetname.net","routingthecloud.net","routingthecloud.org","csx.cc","mydbserver.com","webspaceconfig.de","mittwald.info","mittwaldserver.info","typo3server.info","project.space","modx.dev","bmoattachments.org","net.ru","org.ru","pp.ru","hostedpi.com","caracal.mythic-beasts.com","customer.mythic-beasts.com","fentiger.mythic-beasts.com","lynx.mythic-beasts.com","ocelot.mythic-beasts.com","oncilla.mythic-beasts.com","onza.mythic-beasts.com","sphinx.mythic-beasts.com","vs.mythic-beasts.com","x.mythic-beasts.com","yali.mythic-beasts.com","cust.retrosnub.co.uk","ui.nabu.casa","cloud.nospamproxy.com","netfy.app","netlify.app","4u.com","nfshost.com","ipfs.nftstorage.link","ngo.us","ngrok.app","ngrok-free.app","ngrok.dev","ngrok-free.dev","ngrok.io","ap.ngrok.io","au.ngrok.io","eu.ngrok.io","in.ngrok.io","jp.ngrok.io","sa.ngrok.io","us.ngrok.io","ngrok.pizza","ngrok.pro","torun.pl","nh-serv.co.uk","nimsite.uk","mmafan.biz","myftp.biz","no-ip.biz","no-ip.ca","fantasyleague.cc","gotdns.ch","3utilities.com","blogsyte.com","ciscofreak.com","damnserver.com","ddnsking.com","ditchyourip.com","dnsiskinky.com","dynns.com","geekgalaxy.com","health-carereform.com","homesecuritymac.com","homesecuritypc.com","myactivedirectory.com","mysecuritycamera.com","myvnc.com","net-freaks.com","onthewifi.com","point2this.com","quicksytes.com","securitytactics.com","servebeer.com","servecounterstrike.com","serveexchange.com","serveftp.com","servegame.com","servehalflife.com","servehttp.com","servehumour.com","serveirc.com","servemp3.com","servep2p.com","servepics.com","servequake.com","servesarcasm.com","stufftoread.com","unusualperson.com","workisboring.com","dvrcam.info","ilovecollege.info","no-ip.info","brasilia.me","ddns.me","dnsfor.me","hopto.me","loginto.me","noip.me","webhop.me","bounceme.net","ddns.net","eating-organic.net","mydissent.net","myeffect.net","mymediapc.net","mypsx.net","mysecuritycamera.net","nhlfan.net","no-ip.net","pgafan.net","privatizehealthinsurance.net","redirectme.net","serveblog.net","serveminecraft.net","sytes.net","cable-modem.org","collegefan.org","couchpotatofries.org","hopto.org","mlbfan.org","myftp.org","mysecuritycamera.org","nflfan.org","no-ip.org","read-books.org","ufcfan.org","zapto.org","no-ip.co.uk","golffan.us","noip.us","pointto.us","stage.nodeart.io","*.developer.app","noop.app","*.northflank.app","*.build.run","*.code.run","*.database.run","*.migration.run","noticeable.news","notion.site","dnsking.ch","mypi.co","n4t.co","001www.com","myiphost.com","forumz.info","soundcast.me","tcp4.me","dnsup.net","hicam.net","now-dns.net","ownip.net","vpndns.net","dynserv.org","now-dns.org","x443.pw","now-dns.top","ntdll.top","freeddns.us","nsupdate.info","nerdpol.ovh","nyc.mn","prvcy.page","obl.ong","observablehq.cloud","static.observableusercontent.com","omg.lol","cloudycluster.net","omniwe.site","123webseite.at","123website.be","simplesite.com.br","123website.ch","simplesite.com","123webseite.de","123hjemmeside.dk","123miweb.es","123kotisivu.fi","123siteweb.fr","simplesite.gr","123homepage.it","123website.lu","123website.nl","123hjemmeside.no","service.one","simplesite.pl","123paginaweb.pt","123minsida.se","is-a-fullstack.dev","is-cool.dev","is-not-a.dev","localplayer.dev","is-local.org","opensocial.site","opencraft.hosting","16-b.it","32-b.it","64-b.it","orsites.com","operaunite.com","*.customer-oci.com","*.oci.customer-oci.com","*.ocp.customer-oci.com","*.ocs.customer-oci.com","*.oraclecloudapps.com","*.oraclegovcloudapps.com","*.oraclegovcloudapps.uk","tech.orange","can.re","authgear-staging.com","authgearapps.com","skygearapp.com","outsystemscloud.com","*.hosting.ovh.net","*.webpaas.ovh.net","ownprovider.com","own.pm","*.owo.codes","ox.rs","oy.lc","pgfog.com","pagexl.com","gotpantheon.com","pantheonsite.io","*.paywhirl.com","*.xmit.co","xmit.dev","madethis.site","srv.us","gh.srv.us","gl.srv.us","lk3.ru","mypep.link","perspecta.cloud","on-web.fr","*.upsun.app","upsunapp.com","ent.platform.sh","eu.platform.sh","us.platform.sh","*.platformsh.site","*.tst.site","platter-app.com","platter-app.dev","platterp.us","pley.games","onporter.run","co.bn","postman-echo.com","pstmn.io","mock.pstmn.io","httpbin.org","prequalifyme.today","xen.prgmr.com","priv.at","protonet.io","chirurgiens-dentistes-en-france.fr","byen.site","pubtls.org","pythonanywhere.com","eu.pythonanywhere.com","qa2.com","qcx.io","*.sys.qcx.io","myqnapcloud.cn","alpha-myqnapcloud.com","dev-myqnapcloud.com","mycloudnas.com","mynascloud.com","myqnapcloud.com","qoto.io","qualifioapp.com","ladesk.com","qbuser.com","*.quipelements.com","vapor.cloud","vaporcloud.io","rackmaze.com","rackmaze.net","cloudsite.builders","myradweb.net","servername.us","web.in","in.net","myrdbx.io","site.rb-hosting.io","*.on-rancher.cloud","*.on-k3s.io","*.on-rio.io","ravpage.co.il","readthedocs-hosted.com","readthedocs.io","rhcloud.com","instances.spawn.cc","onrender.com","app.render.com","replit.app","id.replit.app","firewalledreplit.co","id.firewalledreplit.co","repl.co","id.repl.co","replit.dev","archer.replit.dev","bones.replit.dev","canary.replit.dev","global.replit.dev","hacker.replit.dev","id.replit.dev","janeway.replit.dev","kim.replit.dev","kira.replit.dev","kirk.replit.dev","odo.replit.dev","paris.replit.dev","picard.replit.dev","pike.replit.dev","prerelease.replit.dev","reed.replit.dev","riker.replit.dev","sisko.replit.dev","spock.replit.dev","staging.replit.dev","sulu.replit.dev","tarpit.replit.dev","teams.replit.dev","tucker.replit.dev","wesley.replit.dev","worf.replit.dev","repl.run","resindevice.io","devices.resinstaging.io","hzc.io","adimo.co.uk","itcouldbewor.se","aus.basketball","nz.basketball","git-pages.rit.edu","rocky.page","rub.de","ruhr-uni-bochum.de","io.noc.ruhr-uni-bochum.de","биз.рус","ком.рус","крым.рус","мир.рус","мск.рус","орг.рус","самара.рус","сочи.рус","спб.рус","я.рус","ras.ru","nyat.app","180r.com","dojin.com","sakuratan.com","sakuraweb.com","x0.com","2-d.jp","bona.jp","crap.jp","daynight.jp","eek.jp","flop.jp","halfmoon.jp","jeez.jp","matrix.jp","mimoza.jp","ivory.ne.jp","mail-box.ne.jp","mints.ne.jp","mokuren.ne.jp","opal.ne.jp","sakura.ne.jp","sumomo.ne.jp","topaz.ne.jp","netgamers.jp","nyanta.jp","o0o0.jp","rdy.jp","rgr.jp","rulez.jp","s3.isk01.sakurastorage.jp","s3.isk02.sakurastorage.jp","saloon.jp","sblo.jp","skr.jp","tank.jp","uh-oh.jp","undo.jp","rs.webaccel.jp","user.webaccel.jp","websozai.jp","xii.jp","squares.net","jpn.org","kirara.st","x0.to","from.tv","sakura.tv","*.builder.code.com","*.dev-builder.code.com","*.stg-builder.code.com","*.001.test.code-builder-stg.platform.salesforce.com","*.d.crm.dev","*.w.crm.dev","*.wa.crm.dev","*.wb.crm.dev","*.wc.crm.dev","*.wd.crm.dev","*.we.crm.dev","*.wf.crm.dev","sandcats.io","logoip.com","logoip.de","fr-par-1.baremetal.scw.cloud","fr-par-2.baremetal.scw.cloud","nl-ams-1.baremetal.scw.cloud","cockpit.fr-par.scw.cloud","fnc.fr-par.scw.cloud","functions.fnc.fr-par.scw.cloud","k8s.fr-par.scw.cloud","nodes.k8s.fr-par.scw.cloud","s3.fr-par.scw.cloud","s3-website.fr-par.scw.cloud","whm.fr-par.scw.cloud","priv.instances.scw.cloud","pub.instances.scw.cloud","k8s.scw.cloud","cockpit.nl-ams.scw.cloud","k8s.nl-ams.scw.cloud","nodes.k8s.nl-ams.scw.cloud","s3.nl-ams.scw.cloud","s3-website.nl-ams.scw.cloud","whm.nl-ams.scw.cloud","cockpit.pl-waw.scw.cloud","k8s.pl-waw.scw.cloud","nodes.k8s.pl-waw.scw.cloud","s3.pl-waw.scw.cloud","s3-website.pl-waw.scw.cloud","scalebook.scw.cloud","smartlabeling.scw.cloud","dedibox.fr","schokokeks.net","gov.scot","service.gov.scot","scrysec.com","client.scrypted.io","firewall-gateway.com","firewall-gateway.de","my-gateway.de","my-router.de","spdns.de","spdns.eu","firewall-gateway.net","my-firewall.org","myfirewall.org","spdns.org","seidat.net","sellfy.store","minisite.ms","senseering.net","servebolt.cloud","biz.ua","co.ua","pp.ua","as.sh.cn","sheezy.games","shiftedit.io","myshopblocks.com","myshopify.com","shopitsite.com","shopware.shop","shopware.store","mo-siemens.io","1kapp.com","appchizi.com","applinzi.com","sinaapp.com","vipsinaapp.com","siteleaf.net","small-web.org","aeroport.fr","avocat.fr","chambagri.fr","chirurgiens-dentistes.fr","experts-comptables.fr","medecin.fr","notaires.fr","pharmacien.fr","port.fr","veterinaire.fr","vp4.me","*.snowflake.app","*.privatelink.snowflake.app","streamlit.app","streamlitapp.com","try-snowplow.com","mafelo.net","playstation-cloud.com","srht.site","apps.lair.io","*.stolos.io","spacekit.io","ind.mom","customer.speedpartner.de","myspreadshop.at","myspreadshop.com.au","myspreadshop.be","myspreadshop.ca","myspreadshop.ch","myspreadshop.com","myspreadshop.de","myspreadshop.dk","myspreadshop.es","myspreadshop.fi","myspreadshop.fr","myspreadshop.ie","myspreadshop.it","myspreadshop.net","myspreadshop.nl","myspreadshop.no","myspreadshop.pl","myspreadshop.se","myspreadshop.co.uk","w-corp-staticblitz.com","w-credentialless-staticblitz.com","w-staticblitz.com","stackhero-network.com","runs.onstackit.cloud","stackit.gg","stackit.rocks","stackit.run","stackit.zone","musician.io","novecore.site","api.stdlib.com","feedback.ac","forms.ac","assessments.cx","calculators.cx","funnels.cx","paynow.cx","quizzes.cx","researched.cx","tests.cx","surveys.so","storebase.store","storipress.app","storj.farm","strapiapp.com","media.strapiapp.com","vps-host.net","atl.jelastic.vps-host.net","njs.jelastic.vps-host.net","ric.jelastic.vps-host.net","streak-link.com","streaklinks.com","streakusercontent.com","soc.srcf.net","user.srcf.net","utwente.io","temp-dns.com","supabase.co","supabase.in","supabase.net","syncloud.it","dscloud.biz","direct.quickconnect.cn","dsmynas.com","familyds.com","diskstation.me","dscloud.me","i234.me","myds.me","synology.me","dscloud.mobi","dsmynas.net","familyds.net","dsmynas.org","familyds.org","direct.quickconnect.to","vpnplus.to","mytabit.com","mytabit.co.il","tabitorder.co.il","taifun-dns.de","ts.net","*.c.ts.net","gda.pl","gdansk.pl","gdynia.pl","med.pl","sopot.pl","taveusercontent.com","p.tawk.email","p.tawkto.email","site.tb-hosting.com","edugit.io","s3.teckids.org","telebit.app","telebit.io","*.telebit.xyz","*.firenet.ch","*.svc.firenet.ch","reservd.com","thingdustdata.com","cust.dev.thingdust.io","reservd.dev.thingdust.io","cust.disrec.thingdust.io","reservd.disrec.thingdust.io","cust.prod.thingdust.io","cust.testing.thingdust.io","reservd.testing.thingdust.io","tickets.io","arvo.network","azimuth.network","tlon.network","torproject.net","pages.torproject.net","townnews-staging.com","12hp.at","2ix.at","4lima.at","lima-city.at","12hp.ch","2ix.ch","4lima.ch","lima-city.ch","trafficplex.cloud","de.cool","12hp.de","2ix.de","4lima.de","lima-city.de","1337.pictures","clan.rip","lima-city.rocks","webspace.rocks","lima.zone","*.transurl.be","*.transurl.eu","site.transip.me","*.transurl.nl","tuxfamily.org","dd-dns.de","dray-dns.de","draydns.de","dyn-vpn.de","dynvpn.de","mein-vigor.de","my-vigor.de","my-wan.de","syno-ds.de","synology-diskstation.de","synology-ds.de","diskstation.eu","diskstation.org","typedream.app","pro.typeform.com","*.uberspace.de","uber.space","hk.com","inc.hk","ltd.hk","hk.org","it.com","unison-services.cloud","virtual-user.de","virtualuser.de","name.pm","sch.tf","biz.wf","sch.wf","org.yt","rs.ba","bielsko.pl","upli.io","urown.cloud","dnsupdate.info","us.org","v.ua","express.val.run","web.val.run","vercel.app","v0.build","vercel.dev","vusercontent.net","now.sh","2038.io","router.management","v-info.info","voorloper.cloud","*.vultrobjects.com","wafflecell.com","webflow.io","webflowtest.io","*.webhare.dev","bookonline.app","hotelwithflight.com","reserve-online.com","reserve-online.net","cprapid.com","pleskns.com","wp2.host","pdns.page","plesk.page","wpsquared.site","*.wadl.top","remotewd.com","box.ca","pages.wiardweb.com","toolforge.org","wmcloud.org","wmflabs.org","wdh.app","panel.gg","daemon.panel.gg","wixsite.com","wixstudio.com","editorx.io","wixstudio.io","wix.run","messwithdns.com","woltlab-demo.com","myforum.community","community-pro.de","diskussionsbereich.de","community-pro.net","meinforum.net","affinitylottery.org.uk","raffleentry.org.uk","weeklylottery.org.uk","wpenginepowered.com","js.wpenginepowered.com","half.host","xnbay.com","u2.xnbay.com","u2-local.xnbay.com","cistron.nl","demon.nl","xs4all.space","yandexcloud.net","storage.yandexcloud.net","website.yandexcloud.net","official.academy","yolasite.com","yombo.me","ynh.fr","nohost.me","noho.st","za.net","za.org","zap.cloud","zeabur.app","bss.design","basicserver.io","virtualserver.io","enterprisecloud.nu"].reduce((e,t)=>{const n=t.replace(/^(\*\.|\!)/,""),a=Ea.toASCII(n),o=t.charAt(0);if(e.has(a))throw new Error(`Multiple rules found for ${t} (${a})`);return e.set(a,{rule:t,suffix:n,punySuffix:a,wildcard:"*"===o,exception:"!"===o}),e},new Map),Ca={DOMAIN_TOO_SHORT:"Domain name too short.",DOMAIN_TOO_LONG:"Domain name too long. It should be no more than 255 chars.",LABEL_STARTS_WITH_DASH:"Domain name label can not start with a dash.",LABEL_ENDS_WITH_DASH:"Domain name label can not end with a dash.",LABEL_TOO_LONG:"Domain name label should be at most 63 chars long.",LABEL_TOO_SHORT:"Domain name label should be at least 1 character long.",LABEL_INVALID_CHARS:"Domain name label can only contain alphanumeric characters or dashes."},Ia=e=>e&&(e=>{if("string"!=typeof e)throw new TypeError("Domain name must be a string.");let t=e.slice(0).toLowerCase();"."===t.charAt(t.length-1)&&(t=t.slice(0,t.length-1));const n=(e=>{const t=Ea.toASCII(e);if(t.length<1)return"DOMAIN_TOO_SHORT";if(t.length>255)return"DOMAIN_TOO_LONG";const n=t.split(".");let a;for(let e=0;e<n.length;++e){if(a=n[e],!a.length)return"LABEL_TOO_SHORT";if(a.length>63)return"LABEL_TOO_LONG";if("-"===a.charAt(0))return"LABEL_STARTS_WITH_DASH";if("-"===a.charAt(a.length-1))return"LABEL_ENDS_WITH_DASH";if(!/^[a-z0-9\-_]+$/.test(a))return"LABEL_INVALID_CHARS"}})(t);if(n)return{input:e,error:{message:Ca[n],code:n}};const a={input:e,tld:null,sld:null,domain:null,subdomain:null,listed:!1},o=t.split(".");if("local"===o[o.length-1])return a;const s=()=>(/xn--/.test(t)&&(a.domain&&(a.domain=Ea.toASCII(a.domain)),a.subdomain&&(a.subdomain=Ea.toASCII(a.subdomain))),a),r=(e=>{const t=Ea.toASCII(e).split(".");for(let e=0;e<t.length;e++){const n=t.slice(e).join("."),a=Ta.get(n);if(a)return a}return null})(t);if(!r)return o.length<2?a:(a.tld=o.pop(),a.sld=o.pop(),a.domain=[a.sld,a.tld].join("."),o.length&&(a.subdomain=o.pop()),s());a.listed=!0;const i=r.suffix.split("."),c=o.slice(0,o.length-i.length);return r.exception&&c.push(i.shift()),a.tld=i.join("."),!c.length||(r.wildcard&&(i.unshift(c.pop()),a.tld=i.join(".")),!c.length)||(a.sld=c.pop(),a.domain=[a.sld,a.tld].join("."),c.length&&(a.subdomain=c.join("."))),s()})(e).domain||null;function Ma(e){let t=e.trim();return/^(?:f|ht)tps?\:\/\//.test(t)||(t="http://"+t),new URL(t)}function Ra(e){const t=Ia(e);return null!==t?t:(e=e.replace(/^www\./,"")).split(".").slice(-2).join(".")}function Aa(e){return e.hostname.replace(/^www\./,"")}function Oa(e,t){return"VRBO"===t?e.replace(/\D/g,""):e}const Da="directoUserId",Pa="directoUserEmail",La="local";let Na="";async function $a(){if(Na)return Na;const{[Da]:e}=await chrome.storage[La].get(Da);return Na=e||"",Na}let Fa="";async function Ua(){if(Fa)return Fa;const{[Pa]:e}=await chrome.storage[La].get(Pa);return Fa=e||"",Fa}const Ba="directoAllowedHostnames";function qa(e){return`outclickId-${e}`}function Ha(e){return`directoDomains-${e}`}new Set(["getdirecto.com","doubleclick.net","anrdoezrs.net","jdoqocy.com","tkqlhce.com","tradedoubler.com","effiliation.com","prf.hn","tatrck.com","tradetracker.net"]);const Wa={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let Va;const Ja=new Uint8Array(16),Ya=[];for(let e=0;e<256;++e)Ya.push((e+256).toString(16).slice(1));const Ga=function(e,t,n){if(Wa.randomUUID&&!t&&!e)return Wa.randomUUID();const a=(e=e||{}).random??e.rng?.()??function(){if(!Va){if("undefined"==typeof crypto||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");Va=crypto.getRandomValues.bind(crypto)}return Va(Ja)}();if(a.length<16)throw new Error("Random bytes length must be >= 16");if(a[6]=15&a[6]|64,a[8]=63&a[8]|128,t){if((n=n||0)<0||n+16>t.length)throw new RangeError(`UUID byte range ${n}:${n+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[n+e]=a[e];return t}return function(e,t=0){return(Ya[e[t+0]]+Ya[e[t+1]]+Ya[e[t+2]]+Ya[e[t+3]]+"-"+Ya[e[t+4]]+Ya[e[t+5]]+"-"+Ya[e[t+6]]+Ya[e[t+7]]+"-"+Ya[e[t+8]]+Ya[e[t+9]]+"-"+Ya[e[t+10]]+Ya[e[t+11]]+Ya[e[t+12]]+Ya[e[t+13]]+Ya[e[t+14]]+Ya[e[t+15]]).toLowerCase()}(a)};async function Ka(e,t){try{const a=Ga();null!==e.targetTabId&&async function(e,t){await chrome.storage.session.set({[qa(e)]:t})}(e.targetTabId,a),n=e.targetUrl,fa(Ba,Ra(Ma(n).hostname));const o=function(e){try{const t=Aa(new URL(e));return/^airbnb\.[.a-z]{2,7}/i.exec(t)?"AIRBNB":/^(secure\.)?booking\.com/i.exec(t)?"BOOKING":/^vrbo\.com/i.exec(t)||/^abritel\.fr/i.exec(t)?"VRBO":/^expedia\.[.a-z]{2,7}/i.exec(t)?"EXPEDIA":/google\.[a-z.]{2,7}\/(search\?|travel\/flights\?)/i.exec(e)?"GOOGLE":null}catch(e){return console.error("Error in getPlatform",e),null}}(e.sourceUrl),s=null!==e.sourceTabId?`${e.sessionId}-${e.sourceTabId}`:null,r={cta:e.cta,platform:o,session_id:e.sessionId,user_id:await $a(),user_email:await Ua(),listing_id:e.sourceId,source_url:e.sourceUrl,target_url:e.targetUrl,source_tab_id:s,outclick_id:a,...t};await Xn().post("/v2/outclick",{body:Un.B64Json(r)})}catch(e){console.error(e)}var n}const Xa="userLocale";let Za=null;async function Qa(){const{[Xa]:e}=await chrome.storage.local.get(Xa);return Za=e??null,Za}function eo(){return Za=Za||function(){let e;return e=null!=navigator.languages?navigator.languages[0]:navigator.language,e=e.split("-")[0]||e||"en",e}(),Za}function to(e,t,n){const{destination:a,checkin:o,checkout:s,adults:r,children:i}=n,c=a.name.trim().replace(/[, ]+/g,",").replace(/ñ/g,"n").toLocaleLowerCase(),u=`/${["hotels",void 0!==a.placeId?`${c}-p${a.placeId}`:c,o.toDashYYYYMMDD(),s.toDashYYYYMMDD(),`${r}adults`,`${i}children${"-0".repeat(i)}`].join("/")}`,l=new URL("/in","https://www.kayak.com");return l.searchParams.append("a","kan_317594_592750"),t&&(l.searchParams.append("encoder","27_1"),l.searchParams.append("enc_pid","deeplinks"),l.searchParams.append("enc_cid",t)),e&&l.searchParams.append(t?"enc_lid":"p",e),l.searchParams.append("url",u),l.toString()}Qa();const no=5e3,ao="tempTabHasBeenOpenedForDomain",oo="session",so="session",ro="directoDisplayPricesCache",io="session",co="directoInfoCache",uo="growthbookFeatures",lo="session",po="session",mo="directoListingPriceCache",ho=[];function go(e){const t=e.defaultIntegrations||[],n=e.integrations;let a;if(t.forEach(e=>{e.isDefaultInstance=!0}),Array.isArray(n))a=[...t,...n];else if("function"==typeof n){const e=n(t);a=Array.isArray(e)?e:[e]}else a=t;return function(e){const t={};return e.forEach(e=>{const{name:n}=e,a=t[n];a&&!a.isDefaultInstance&&e.isDefaultInstance||(t[n]=e)}),Object.values(t)}(a)}function fo(e,t){for(const n of t)n?.afterAllSetup&&n.afterAllSetup(e)}function ko(e,t,n){if(n[t.name])m&&F.log(`Integration skipped because it was already installed: ${t.name}`);else{if(n[t.name]=t,ho.includes(t.name)||"function"!=typeof t.setupOnce||(t.setupOnce(),ho.push(t.name)),t.setup&&"function"==typeof t.setup&&t.setup(e),"function"==typeof t.preprocessEvent){const n=t.preprocessEvent.bind(t);e.on("preprocessEvent",(t,a)=>n(t,a,e))}if("function"==typeof t.processEvent){const n=t.processEvent.bind(t),a=Object.assign((t,a)=>n(t,a,e),{id:t.name});e.addEventProcessor(a)}m&&F.log(`Integration installed: ${t.name}`)}}function yo(e){const t=Ue();t?t.addIntegration(e):m&&F.warn(`Cannot add integration "${e.name}" because no SDK Client is available.`)}function bo(e){const t=[];e.message&&t.push(e.message);try{const n=e.exception.values[e.exception.values.length-1];n?.value&&(t.push(n.value),n.type&&t.push(`${n.type}: ${n.value}`))}catch{}return t}const wo=[/^Script error\.?$/,/^Javascript error: Script error\.? on line 0$/,/^ResizeObserver loop completed with undelivered notifications.$/,/^Cannot redefine property: googletag$/,/^Can't find variable: gmo$/,/^undefined is not an object \(evaluating 'a\.[A-Z]'\)$/,'can\'t redefine non-configurable property "solana"',"vv().getRestrictions is not a function. (In 'vv().getRestrictions(1,a)', 'vv().getRestrictions' is undefined)","Can't find variable: _AutofillCallbackHandler",/^Non-Error promise rejection captured with value: Object Not Found Matching Id:\d+, MethodName:simulateEvent, ParamCount:\d+$/,/^Java exception was raised during method invocation$/],vo=(e={})=>{let t;return{name:"EventFilters",setup(n){const a=n.getOptions();t=jo(e,a)},processEvent(n,a,o){if(!t){const n=o.getOptions();t=jo(e,n)}return function(e,t){if(e.type){if("transaction"===e.type&&function(e,t){if(!t?.length)return!1;const n=e.transaction;return!!n&&ce(n,t)}(e,t.ignoreTransactions))return m&&F.warn(`Event dropped due to being matched by \`ignoreTransactions\` option.\nEvent: ${de(e)}`),!0}else{if(function(e,t){return!!t?.length&&bo(e).some(e=>ce(e,t))}(e,t.ignoreErrors))return m&&F.warn(`Event dropped due to being matched by \`ignoreErrors\` option.\nEvent: ${de(e)}`),!0;if(function(e){return!!e.exception?.values?.length&&(!e.message&&!e.exception.values.some(e=>e.stacktrace||e.type&&"Error"!==e.type||e.value))}(e))return m&&F.warn(`Event dropped due to not having an error message, error type or stacktrace.\nEvent: ${de(e)}`),!0;if(function(e,t){if(!t?.length)return!1;const n=So(e);return!!n&&ce(n,t)}(e,t.denyUrls))return m&&F.warn(`Event dropped due to being matched by \`denyUrls\` option.\nEvent: ${de(e)}.\nUrl: ${So(e)}`),!0;if(!function(e,t){if(!t?.length)return!0;const n=So(e);return!n||ce(n,t)}(e,t.allowUrls))return m&&F.warn(`Event dropped due to not being matched by \`allowUrls\` option.\nEvent: ${de(e)}.\nUrl: ${So(e)}`),!0}return!1}(n,t)?null:n}}},_o=(e={})=>({...vo(e),name:"InboundFilters"});function jo(e={},t={}){return{allowUrls:[...e.allowUrls||[],...t.allowUrls||[]],denyUrls:[...e.denyUrls||[],...t.denyUrls||[]],ignoreErrors:[...e.ignoreErrors||[],...t.ignoreErrors||[],...e.disableErrorDefaults?[]:wo],ignoreTransactions:[...e.ignoreTransactions||[],...t.ignoreTransactions||[]]}}function So(e){try{const t=[...e.exception?.values??[]].reverse().find(e=>void 0===e.mechanism?.parent_id&&e.stacktrace?.frames?.length),n=t?.stacktrace?.frames;return n?function(e=[]){for(let t=e.length-1;t>=0;t--){const n=e[t];if(n&&"<anonymous>"!==n.filename&&"[native code]"!==n.filename)return n.filename||null}return null}(n):null}catch{return m&&F.error(`Cannot extract url for event ${de(e)}`),null}}let xo;const zo=new WeakMap,Eo=()=>({name:"FunctionToString",setupOnce(){xo=Function.prototype.toString;try{Function.prototype.toString=function(...e){const t=H(this),n=zo.has(Ue())&&void 0!==t?t:this;return xo.apply(n,e)}}catch{}},setup(e){zo.set(e,!0)}}),To=()=>{let e;return{name:"Dedupe",processEvent(t){if(t.type)return t;try{if(function(e,t){return!!t&&(!!function(e,t){const n=e.message,a=t.message;return!(!n&&!a)&&(!(n&&!a||!n&&a)&&(n===a&&(!!Io(e,t)&&!!Co(e,t))))}(e,t)||!!function(e,t){const n=Mo(t),a=Mo(e);return!(!n||!a)&&(n.type===a.type&&n.value===a.value&&(!!Io(e,t)&&!!Co(e,t)))}(e,t))}(t,e))return m&&F.warn("Event dropped due to being a duplicate of previously captured event."),null}catch{}return e=t}}};function Co(e,t){let n=ne(e),a=ne(t);if(!n&&!a)return!0;if(n&&!a||!n&&a)return!1;if(a.length!==n.length)return!1;for(let e=0;e<a.length;e++){const t=a[e],o=n[e];if(t.filename!==o.filename||t.lineno!==o.lineno||t.colno!==o.colno||t.function!==o.function)return!1}return!0}function Io(e,t){let n=e.fingerprint,a=t.fingerprint;if(!n&&!a)return!0;if(n&&!a||!n&&a)return!1;try{return!(n.join("")!==a.join(""))}catch{return!1}}function Mo(e){return e.exception?.values?.[0]}function Ro(e){Pe().setClient(e)}const Ao="7";function Oo(e){const t=e.protocol?`${e.protocol}:`:"",n=e.port?`:${e.port}`:"";return`${t}//${e.host}${n}${e.path?`/${e.path}`:""}/api/`}function Do(e,t,n){return t||`${function(e){return`${Oo(e)}${e.projectId}/envelope/`}(e)}?${function(e,t){const n={sentry_version:Ao};return e.publicKey&&(n.sentry_key=e.publicKey),t&&(n.sentry_client=`${t.name}/${t.version}`),new URLSearchParams(n).toString()}(e,n)}`}function Po(e,t=[]){return[e,t]}function Lo(e,t){const[n,a]=e;return[n,[...a,t]]}function No(e,t){const n=e[1];for(const e of n)if(t(e,e[0].type))return!0;return!1}function $o(e,t){return No(e,(e,n)=>t.includes(n))}function Fo(e){const t=p(u);return t.encodePolyfill?t.encodePolyfill(e):(new TextEncoder).encode(e)}function Uo(e){const[t,n]=e;let a=JSON.stringify(t);function o(e){"string"==typeof a?a="string"==typeof e?a+e:[Fo(a),e]:a.push("string"==typeof e?Fo(e):e)}for(const e of n){const[t,n]=e;if(o(`\n${JSON.stringify(t)}\n`),"string"==typeof n||n instanceof Uint8Array)o(n);else{let e;try{e=JSON.stringify(n)}catch{e=JSON.stringify(hn(n))}o(e)}}return"string"==typeof a?a:function(e){const t=e.reduce((e,t)=>e+t.length,0),n=new Uint8Array(t);let a=0;for(const t of e)n.set(t,a),a+=t.length;return n}(a)}function Bo(e){return[{type:"span"},e]}function qo(e){const t="string"==typeof e.data?Fo(e.data):e.data;return[{type:"attachment",length:t.length,filename:e.filename,content_type:e.contentType,attachment_type:e.attachmentType},t]}const Ho={session:"session",sessions:"session",attachment:"attachment",transaction:"transaction",event:"error",client_report:"internal",user_report:"default",profile:"profile",profile_chunk:"profile",replay_event:"replay",replay_recording:"replay",check_in:"monitor",feedback:"feedback",span:"span",raw_security:"security",log:"log_item",metric:"metric",trace_metric:"metric"};function Wo(e){return Ho[e]}function Vo(e){if(!e?.sdk)return;const{name:t,version:n}=e.sdk;return{name:t,version:n}}function Jo(e,t,n,a){const o=e.sdkProcessingMetadata?.dynamicSamplingContext;return{event_id:e.event_id,sent_at:(new Date).toISOString(),...t&&{sdk:t},...!!n&&a&&{dsn:gt(a)},...o&&{trace:o}}}function Yo(e){F.log(`Ignoring span ${e.op} - ${e.description} because it matches \`ignoreSpans\`.`)}function Go(e,t){if(!t?.length||!e.description)return!1;for(const n of t){if(Xo(n)){if(ie(e.description,n))return m&&Yo(e),!0;continue}if(!n.name&&!n.op)continue;const t=!n.name||ie(e.description,n.name),a=!n.op||e.op&&ie(e.op,n.op);if(t&&a)return m&&Yo(e),!0}return!1}function Ko(e,t){const n=t.parent_span_id,a=t.span_id;if(n)for(const t of e)t.parent_span_id===a&&(t.parent_span_id=n)}function Xo(e){return"string"==typeof e||e instanceof RegExp}function Zo(e,t){return t?$e(t,()=>{const n=Xt(),a=n?Nt(n):Be(t);return[n?on(n):an(e,t),a]}):[void 0,void 0]}const Qo={trace:1,debug:5,info:9,warn:13,error:17,fatal:21},es=100;function ts(e,t,n,a=!0){!n||e[t]&&!a||(e[t]=n)}function ns(e,t){const n=rs(),a=ss(e);void 0===a?n.set(e,[t]):a.length>=es?(os(e,a),n.set(e,[t])):n.set(e,[...a,t])}function as(e,t=Pe(),n=ns){const a=t?.getClient()??Ue();if(!a)return void(m&&F.warn("No client available to capture log."));const{release:o,environment:s,enableLogs:r=!1,beforeSendLog:i}=a.getOptions();if(!r)return void(m&&F.warn("logging option not enabled, log will not be captured."));const[,c]=Zo(a,t),u={...e.attributes},{user:{id:l,email:p,username:d}}=function(e){const t=Ne().getScopeData();return rn(t,Le().getScopeData()),rn(t,e.getScopeData()),t}(t);ts(u,"user.id",l,!1),ts(u,"user.email",p,!1),ts(u,"user.name",d,!1),ts(u,"sentry.release",o),ts(u,"sentry.environment",s);const{name:h,version:g}=a.getSdkMetadata()?.sdk??{};ts(u,"sentry.sdk.name",h),ts(u,"sentry.sdk.version",g);const f=a.getIntegrationByName("Replay"),k=f?.getReplayId(!0);ts(u,"sentry.replay_id",k),k&&"buffer"===f?.getRecordingMode()&&ts(u,"sentry._internal.replay_is_buffering",!0);const y=e.message;if(w(y)){const{__sentry_template_string__:e,__sentry_template_values__:t=[]}=y;t?.length&&(u["sentry.message.template"]=e),t.forEach((e,t)=>{u[`sentry.message.parameter.${t}`]=e})}const b=Te(t);ts(u,"sentry.trace.parent_span_id",b?.spanContext().spanId);const v={...e,attributes:u};a.emit("beforeCaptureLog",v);const _=i?P(()=>i(v)):v;if(!_)return a.recordDroppedEvent("before_send","log_item",1),void(m&&F.warn("beforeSendLog returned null, log will not be captured."));const{level:j,message:S,attributes:x={},severityNumber:z}=_;n(a,{timestamp:we(),level:j,body:S,trace_id:c?.trace_id,severity_number:z??Qo[j],attributes:Object.keys(x).reduce((e,t)=>(e[t]=function(e){switch(typeof e){case"number":return Number.isInteger(e)?{value:e,type:"integer"}:{value:e,type:"double"};case"boolean":return{value:e,type:"boolean"};case"string":return{value:e,type:"string"};default:{let t="";try{t=JSON.stringify(e)??""}catch{}return{value:t,type:"string"}}}}(x[t]),e),{})}),a.emit("afterCaptureLog",_)}function os(e,t){const n=t??ss(e)??[];if(0===n.length)return;const a=e.getOptions(),o=function(e,t,n,a){const o={};return t?.sdk&&(o.sdk={name:t.sdk.name,version:t.sdk.version}),n&&a&&(o.dsn=gt(a)),Po(o,[(s=e,[{type:"log",item_count:s.length,content_type:"application/vnd.sentry.items.log+json"},{items:s}])]);var s}(n,a._metadata,a.tunnel,e.getDsn());rs().set(e,[]),e.emit("flushLogs"),e.sendEnvelope(o)}function ss(e){return rs().get(e)}function rs(){return d("clientToLogBufferMap",()=>new WeakMap)}const is=1e3;function cs(e){switch(typeof e){case"number":return Number.isInteger(e)?{value:e,type:"integer"}:{value:e,type:"double"};case"boolean":return{value:e,type:"boolean"};case"string":return{value:e,type:"string"};default:{let t="";try{t=JSON.stringify(e)??""}catch{}return{value:t,type:"string"}}}}function us(e,t,n,a=!0){!n||!a&&t in e||(e[t]=n)}function ls(e,t){const n=hs(),a=ms(e);void 0===a?n.set(e,[t]):a.length>=is?(ds(e,a),n.set(e,[t])):n.set(e,[...a,t])}function ps(e,t){const n=t?.scope??Pe(),a=t?.captureSerializedMetric??ls,o=n?.getClient()??Ue();if(!o)return void(m&&F.warn("No client available to capture metric."));const{_experiments:s,enableMetrics:r,beforeSendMetric:i}=o.getOptions();if(!(r??s?.enableMetrics??1))return void(m&&F.warn("metrics option not enabled, metric will not be captured."));const c=function(e,t,n){const{release:a,environment:o}=t.getOptions(),s={...e.attributes},{user:{id:r,email:i,username:c}}=function(e){const t=Ne().getScopeData();return rn(t,Le().getScopeData()),rn(t,e.getScopeData()),t}(n);us(s,"user.id",r,!1),us(s,"user.email",i,!1),us(s,"user.name",c,!1),us(s,"sentry.release",a),us(s,"sentry.environment",o);const{name:u,version:l}=t.getSdkMetadata()?.sdk??{};us(s,"sentry.sdk.name",u),us(s,"sentry.sdk.version",l);const p=t.getIntegrationByName("Replay"),d=p?.getReplayId(!0);return us(s,"sentry.replay_id",d),d&&"buffer"===p?.getRecordingMode()&&us(s,"sentry._internal.replay_is_buffering",!0),{...e,attributes:s}}(e,o,n);o.emit("processMetric",c);const u=i||s?.beforeSendMetric,l=u?u(c):c;if(!l)return void(m&&F.log("`beforeSendMetric` returned `null`, will not send metric."));const p=function(e,t,n){const a={};for(const t in e.attributes)void 0!==e.attributes[t]&&(a[t]=cs(e.attributes[t]));const[,o]=Zo(t,n),s=Te(n),r=s?s.spanContext().traceId:o?.trace_id,i=s?s.spanContext().spanId:void 0;return{timestamp:we(),trace_id:r??"",span_id:i,name:e.name,type:e.type,unit:e.unit,value:e.value,attributes:a}}(l,o,n);m&&F.log("[Metric]",p),a(o,p),o.emit("afterCaptureMetric",l)}function ds(e,t){const n=t??ms(e)??[];if(0===n.length)return;const a=e.getOptions(),o=function(e,t,n,a){const o={};return t?.sdk&&(o.sdk={name:t.sdk.name,version:t.sdk.version}),n&&a&&(o.dsn=gt(a)),Po(o,[(s=e,[{type:"trace_metric",item_count:s.length,content_type:"application/vnd.sentry.items.trace-metric+json"},{items:s}])]);var s}(n,a._metadata,a.tunnel,e.getDsn());hs().set(e,[]),e.emit("flushMetrics"),e.sendEnvelope(o)}function ms(e){return hs().get(e)}function hs(){return d("clientToMetricBufferMap",()=>new WeakMap)}const gs=Symbol.for("SentryBufferFullError");function fs(e=100){const t=new Set;function n(e){t.delete(e)}return{get $(){return Array.from(t)},add:function(a){if(!(t.size<e))return We(gs);const o=a();return t.add(o),o.then(()=>n(o),()=>n(o)),o},drain:function(e){if(!t.size)return He(!0);const n=Promise.allSettled(Array.from(t)).then(()=>!0);if(!e)return n;const a=[n,new Promise(t=>setTimeout(()=>t(!1),e))];return Promise.race(a)}}}const ks=6e4;function ys(e,t=Date.now()){const n=parseInt(`${e}`,10);if(!isNaN(n))return 1e3*n;const a=Date.parse(`${e}`);return isNaN(a)?ks:a-t}function bs(e,t,n=Date.now()){return function(e,t){return e[t]||e.all||0}(e,t)>n}function ws(e,{statusCode:t,headers:n},a=Date.now()){const o={...e},s=n?.["x-sentry-rate-limits"],r=n?.["retry-after"];if(s)for(const e of s.trim().split(",")){const[t,n,,,s]=e.split(":",5),r=parseInt(t,10),i=1e3*(isNaN(r)?60:r);if(n)for(const e of n.split(";"))"metric_bucket"===e&&s&&!s.split(";").includes("custom")||(o[e]=a+i);else o.all=a+i}else r?o.all=a+ys(r,a):429===t&&(o.all=a+6e4);return o}const vs=64;function _s(e,t,n=fs(e.bufferSize||vs)){let a={};return{send:function(o){const s=[];if(No(o,(t,n)=>{const o=Wo(n);bs(a,o)?e.recordDroppedEvent("ratelimit_backoff",o):s.push(t)}),0===s.length)return Promise.resolve({});const r=Po(o[0],s),i=t=>{No(r,(n,a)=>{e.recordDroppedEvent(t,Wo(a))})};return n.add(()=>t({body:Uo(r)}).then(e=>(void 0!==e.statusCode&&(e.statusCode<200||e.statusCode>=300)&&m&&F.warn(`Sentry responded with status code ${e.statusCode} to sent event.`),a=ws(a,e),e),e=>{throw i("network_error"),m&&F.error("Encountered error running transport request:",e),e})).then(e=>e,e=>{if(e===gs)return m&&F.error("Skipped sending event because buffer is full."),i("queue_overflow"),Promise.resolve({});throw e})},flush:e=>n.drain(e)}}const js="Not capturing exception because it's already been captured.",Ss="Discarded session because of missing or non-string release",xs=Symbol.for("SentryInternalError"),zs=Symbol.for("SentryDoNotSendEventError");function Es(e){return{message:e,[xs]:!0}}function Ts(e){return{message:e,[zs]:!0}}function Cs(e){return!!e&&"object"==typeof e&&xs in e}function Is(e){return!!e&&"object"==typeof e&&zs in e}function Ms(e,t,n,a,o){let s,r=0,i=!1;e.on(n,()=>{r=0,clearTimeout(s),i=!1}),e.on(t,t=>{r+=a(t),r>=8e5?o(e):i||(i=!0,s=setTimeout(()=>{o(e)},5e3))}),e.on("flush",()=>{o(e)})}class Rs{constructor(e){if(this._options=e,this._integrations={},this._numProcessing=0,this._outcomes={},this._hooks={},this._eventProcessors=[],this._promiseBuffer=fs(e.transportOptions?.bufferSize??vs),e.dsn?this._dsn=bt(e.dsn):m&&F.warn("No DSN provided, client will not send events."),this._dsn){const t=Do(this._dsn,e.tunnel,e._metadata?e._metadata.sdk:void 0);this._transport=e.transport({tunnel:this._options.tunnel,recordDroppedEvent:this.recordDroppedEvent.bind(this),...e.transportOptions,url:t})}this._options.enableLogs=this._options.enableLogs??this._options._experiments?.enableLogs,this._options.enableLogs&&Ms(this,"afterCaptureLog","flushLogs",Ls,os),(this._options.enableMetrics??this._options._experiments?.enableMetrics??1)&&Ms(this,"afterCaptureMetric","flushMetrics",Ps,ds)}captureException(e,t,n){const a=le();if(ge(e))return m&&F.log(js),a;const o={event_id:a,...t};return this._process(()=>this.eventFromException(e,o).then(e=>this._captureEvent(e,o,n)).then(e=>e),"error"),o.event_id}captureMessage(e,t,n,a){const o={event_id:le(),...n},s=w(e)?e:String(e),r=v(e),i=r?this.eventFromMessage(s,t,o):this.eventFromException(e,o);return this._process(()=>i.then(e=>this._captureEvent(e,o,a)),r?"unknown":"error"),o.event_id}captureEvent(e,t,n){const a=le();if(t?.originalException&&ge(t.originalException))return m&&F.log(js),a;const o={event_id:a,...t},s=e.sdkProcessingMetadata||{},r=s.capturedSpanScope,i=s.capturedSpanIsolationScope,c=As(e.type);return this._process(()=>this._captureEvent(e,o,r||n,i),c),o.event_id}captureSession(e){this.sendSession(e),_e(e,{init:!1})}getDsn(){return this._dsn}getOptions(){return this._options}getSdkMetadata(){return this._options._metadata}getTransport(){return this._transport}async flush(e){const t=this._transport;if(!t)return!0;this.emit("flush");const n=await this._isClientDoneProcessing(e),a=await t.flush(e);return n&&a}async close(e){const t=await this.flush(e);return this.getOptions().enabled=!1,this.emit("close"),t}getEventProcessors(){return this._eventProcessors}addEventProcessor(e){this._eventProcessors.push(e)}init(){(this._isEnabled()||this._options.integrations.some(({name:e})=>e.startsWith("Spotlight")))&&this._setupIntegrations()}getIntegrationByName(e){return this._integrations[e]}addIntegration(e){const t=this._integrations[e.name];ko(this,e,this._integrations),t||fo(this,[e])}sendEvent(e,t={}){this.emit("beforeSendEvent",e,t);let n=function(e,t,n,a){const o=Vo(n),s=e.type&&"replay_event"!==e.type?e.type:"event";!function(e,t){if(!t)return e;const n=e.sdk||{};e.sdk={...n,name:n.name||t.name,version:n.version||t.version,integrations:[...e.sdk?.integrations||[],...t.integrations||[]],packages:[...e.sdk?.packages||[],...t.packages||[]],settings:e.sdk?.settings||t.settings?{...e.sdk?.settings,...t.settings}:void 0}}(e,n?.sdk);const r=Jo(e,o,a,t);return delete e.sdkProcessingMetadata,Po(r,[[{type:s},e]])}(e,this._dsn,this._options._metadata,this._options.tunnel);for(const e of t.attachments||[])n=Lo(n,qo(e));this.sendEnvelope(n).then(t=>this.emit("afterSendEvent",e,t))}sendSession(e){const{release:t,environment:n=qe}=this._options;if("aggregates"in e){const a=e.attrs||{};if(!a.release&&!t)return void(m&&F.warn(Ss));a.release=a.release||t,a.environment=a.environment||n,e.attrs=a}else{if(!e.release&&!t)return void(m&&F.warn(Ss));e.release=e.release||t,e.environment=e.environment||n}this.emit("beforeSendSession",e);const a=function(e,t,n,a){const o=Vo(n);return Po({sent_at:(new Date).toISOString(),...o&&{sdk:o},...!!a&&t&&{dsn:gt(t)}},["aggregates"in e?[{type:"sessions"},e]:[{type:"session"},e.toJSON()]])}(e,this._dsn,this._options._metadata,this._options.tunnel);this.sendEnvelope(a)}recordDroppedEvent(e,t,n=1){if(this._options.sendClientReports){const a=`${e}:${t}`;m&&F.log(`Recording outcome: "${a}"${n>1?` (${n} times)`:""}`),this._outcomes[a]=(this._outcomes[a]||0)+n}}on(e,t){const n=this._hooks[e]=this._hooks[e]||new Set,a=(...e)=>t(...e);return n.add(a),()=>{n.delete(a)}}emit(e,...t){const n=this._hooks[e];n&&n.forEach(e=>e(...t))}async sendEnvelope(e){if(this.emit("beforeEnvelope",e),this._isEnabled()&&this._transport)try{return await this._transport.send(e)}catch(e){return m&&F.error("Error while sending envelope:",e),{}}return m&&F.error("Transport disabled"),{}}_setupIntegrations(){const{integrations:e}=this._options;this._integrations=function(e,t){const n={};return t.forEach(t=>{t&&ko(e,t,n)}),n}(this,e),fo(this,e)}_updateSessionFromEvent(e,t){let n="fatal"===t.level,a=!1;const o=t.exception?.values;if(o){a=!0,n=!1;for(const e of o)if(!1===e.mechanism?.handled){n=!0;break}}const s="ok"===e.status;(s&&0===e.errors||s&&n)&&(_e(e,{...n&&{status:"crashed"},errors:e.errors||Number(a||n)}),this.captureSession(e))}async _isClientDoneProcessing(e){let t=0;for(;!e||t<e;){if(await new Promise(e=>setTimeout(e,1)),!this._numProcessing)return!0;t++}return!1}_isEnabled(){return!1!==this.getOptions().enabled&&void 0!==this._transport}_prepareEvent(e,t,n,a){const o=this.getOptions(),s=Object.keys(this._integrations);return!t.integrations&&s?.length&&(t.integrations=s),this.emit("preprocessEvent",e,t),e.type||a.setLastEventId(e.event_id||t.event_id),kn(o,e,t,n,this,a).then(e=>{if(null===e)return e;this.emit("postprocessEvent",e,t),e.contexts={trace:Be(n),...e.contexts};const a=an(this,n);return e.sdkProcessingMetadata={dynamicSamplingContext:a,...e.sdkProcessingMetadata},e})}_captureEvent(e,t={},n=Pe(),a=Le()){return m&&Os(e)&&F.log(`Captured error event \`${bo(e)[0]||"<unknown>"}\``),this._processEvent(e,t,n,a).then(e=>e.event_id,e=>{m&&(Is(e)?F.log(e.message):Cs(e)?F.warn(e.message):F.warn(e))})}_processEvent(e,t,n,a){const o=this.getOptions(),{sampleRate:s}=o,r=Ds(e),i=Os(e),c=`before send for type \`${e.type||"error"}\``,u=void 0===s?void 0:It(s);if(i&&"number"==typeof u&&Math.random()>u)return this.recordDroppedEvent("sample_rate","error"),We(Ts(`Discarding event because it's not included in the random sample (sampling rate = ${s})`));const l=As(e.type);return this._prepareEvent(e,t,n,a).then(e=>{if(null===e)throw this.recordDroppedEvent("event_processor",l),Ts("An event processor returned `null`, will not send event.");if(t.data&&!0===t.data.__sentry__)return e;const n=function(e,t,n,a){const{beforeSend:o,beforeSendTransaction:s,beforeSendSpan:r,ignoreSpans:i}=t;let c=n;if(Os(c)&&o)return o(c,a);if(Ds(c)){if(r||i){const t=function(e){const{trace_id:t,parent_span_id:n,span_id:a,status:o,origin:s,data:r,op:i}=e.contexts?.trace??{};return{data:r??{},description:e.transaction,op:i,parent_span_id:n,span_id:a??"",start_timestamp:e.start_timestamp??0,status:o,timestamp:e.timestamp,trace_id:t??"",origin:s,profile_id:r?.[ot],exclusive_time:r?.[st],measurements:e.measurements,is_segment:!0}}(c);if(i?.length&&Go(t,i))return null;if(r){const e=r(t);e?c=je(n,{type:"transaction",timestamp:(u=e).timestamp,start_timestamp:u.start_timestamp,transaction:u.description,contexts:{trace:{trace_id:u.trace_id,span_id:u.span_id,parent_span_id:u.parent_span_id,op:u.op,status:u.status,origin:u.origin,data:{...u.data,...u.profile_id&&{[ot]:u.profile_id},...u.exclusive_time&&{[st]:u.exclusive_time}}}},measurements:u.measurements}):Zt()}if(c.spans){const t=[],n=c.spans;for(const e of n)if(i?.length&&Go(e,i))Ko(n,e);else if(r){const n=r(e);n?t.push(n):(Zt(),t.push(e))}else t.push(e);const a=c.spans.length-t.length;a&&e.recordDroppedEvent("before_send","span",a),c.spans=t}}if(s){if(c.spans){const e=c.spans.length;c.sdkProcessingMetadata={...n.sdkProcessingMetadata,spanCountBeforeProcessing:e}}return s(c,a)}}var u;return c}(this,o,e,t);return function(e,t){const n=`${t} must return \`null\` or a valid event.`;if(S(e))return e.then(e=>{if(!_(e)&&null!==e)throw Es(n);return e},e=>{throw Es(`${t} rejected with ${e}`)});if(!_(e)&&null!==e)throw Es(n);return e}(n,c)}).then(o=>{if(null===o){if(this.recordDroppedEvent("before_send",l),r){const t=1+(e.spans||[]).length;this.recordDroppedEvent("before_send","span",t)}throw Ts(`${c} returned \`null\`, will not send event.`)}const s=n.getSession()||a.getSession();if(i&&s&&this._updateSessionFromEvent(s,o),r){const e=(o.sdkProcessingMetadata?.spanCountBeforeProcessing||0)-(o.spans?o.spans.length:0);e>0&&this.recordDroppedEvent("before_send","span",e)}const u=o.transaction_info;if(r&&u&&o.transaction!==e.transaction){const e="custom";o.transaction_info={...u,source:e}}return this.sendEvent(o,t),o}).then(null,e=>{if(Is(e)||Cs(e))throw e;throw this.captureException(e,{mechanism:{handled:!1,type:"internal"},data:{__sentry__:!0},originalException:e}),Es(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\nReason: ${e}`)})}_process(e,t){this._numProcessing++,this._promiseBuffer.add(e).then(e=>(this._numProcessing--,e),e=>(this._numProcessing--,e===gs&&this.recordDroppedEvent("queue_overflow",t),e))}_clearOutcomes(){const e=this._outcomes;return this._outcomes={},Object.entries(e).map(([e,t])=>{const[n,a]=e.split(":");return{reason:n,category:a,quantity:t}})}_flushOutcomes(){m&&F.log("Flushing outcomes...");const e=this._clearOutcomes();if(0===e.length)return void(m&&F.log("No outcomes to send"));if(!this._dsn)return void(m&&F.log("No dsn provided, will not send outcomes"));m&&F.log("Sending outcomes:",e);const t=(n=e,Po((a=this._options.tunnel&&gt(this._dsn))?{dsn:a}:{},[[{type:"client_report"},{timestamp:ke(),discarded_events:n}]]));var n,a;this.sendEnvelope(t)}}function As(e){return"replay_event"===e?"replay":e||"error"}function Os(e){return void 0===e.type}function Ds(e){return"transaction"===e.type}function Ps(e){let t=0;return e.name&&(t+=2*e.name.length),t+=8,t+Ns(e.attributes)}function Ls(e){let t=0;return e.message&&(t+=2*e.message.length),t+Ns(e.attributes)}function Ns(e){if(!e)return 0;let t=0;return Object.values(e).forEach(e=>{Array.isArray(e)?t+=e.length*$s(e[0]):v(e)?t+=$s(e):t+=100}),t}function $s(e){return"string"==typeof e?2*e.length:"number"==typeof e?8:"boolean"==typeof e?4:0}function Fs(e){"aggregates"in e?void 0===e.attrs?.ip_address&&(e.attrs={...e.attrs,ip_address:"{{auto}}"}):void 0===e.ipAddress&&(e.ipAddress="{{auto}}")}function Us(e,t){const n=qs(e,t),a={type:Vs(t),value:Js(t)};return n.length&&(a.stacktrace={frames:n}),void 0===a.type&&""===a.value&&(a.value="Unrecoverable error caught"),a}function Bs(e,t){return{exception:{values:[Us(e,t)]}}}function qs(e,t){const n=t.stacktrace||t.stack||"",a=function(e){return e&&Hs.test(e.message)?1:0}(t),o=function(e){return"number"==typeof e.framesToPop?e.framesToPop:0}(t);try{return e(n,a,o)}catch{}return[]}const Hs=/Minified React error #\d+;/i;function Ws(e){return"undefined"!=typeof WebAssembly&&void 0!==WebAssembly.Exception&&e instanceof WebAssembly.Exception}function Vs(e){const t=e?.name;return!t&&Ws(e)?e.message&&Array.isArray(e.message)&&2==e.message.length?e.message[0]:"WebAssembly.Exception":t}function Js(e){const t=e?.message;return Ws(e)?Array.isArray(e.message)&&2==e.message.length?e.message[1]:"wasm exception":t?t.error&&"string"==typeof t.error.message?t.error.message:t:"No error message"}function Ys(e,t,n,a){const o=Ks(e,t,n?.syntheticException||void 0,a);return he(o),o.level="error",n?.event_id&&(o.event_id=n.event_id),He(o)}function Gs(e,t,n="info",a,o){const s=Xs(e,t,a?.syntheticException||void 0,o);return s.level=n,a?.event_id&&(s.event_id=a.event_id),He(s)}function Ks(e,t,n,a,o){let s;if(k(t)&&t.error)return Bs(e,t.error);if(y(t)||f(t,"DOMException")){const o=t;if("stack"in t)s=Bs(e,t);else{const t=o.name||(y(o)?"DOMError":"DOMException"),r=o.message?`${t}: ${o.message}`:t;s=Xs(e,r,n,a),me(s,r)}return"code"in o&&(s.tags={...s.tags,"DOMException.code":`${o.code}`}),s}return g(t)?Bs(e,t):_(t)||j(t)?(s=function(e,t,n,a){const o=Ue(),s=o?.getOptions().normalizeDepth,r=function(e){for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t)){const n=e[t];if(n instanceof Error)return n}}(t),i={__serialized__:gn(t,s)};if(r)return{exception:{values:[Us(e,r)]},extra:i};const c={exception:{values:[{type:j(t)?t.constructor.name:a?"UnhandledRejection":"Error",value:Zs(t,{isUnhandledRejection:a})}]},extra:i};if(n){const t=qs(e,n);t.length&&(c.exception.values[0].stacktrace={frames:t})}return c}(e,t,n,o),he(s,{synthetic:!0}),s):(s=Xs(e,t,n,a),me(s,`${t}`,void 0),he(s,{synthetic:!0}),s)}function Xs(e,t,n,a){const o={};if(a&&n){const a=qs(e,n);a.length&&(o.exception={values:[{value:t,stacktrace:{frames:a}}]}),he(o,{synthetic:!0})}if(w(t)){const{__sentry_template_string__:e,__sentry_template_values__:n}=t;return o.logentry={message:e,params:n},o}return o.message=t,o}function Zs(e,{isUnhandledRejection:t}){const n=function(e){const t=Object.keys(W(e));return t.sort(),t[0]?t.join(", "):"[object has no keys]"}(e),a=t?"promise rejection":"exception";return k(e)?`Event \`ErrorEvent\` captured as ${a} with message \`${e.message}\``:j(e)?`Event \`${function(e){try{const t=Object.getPrototypeOf(e);return t?t.constructor.name:void 0}catch{}}(e)}\` (type=${e.type}) captured as ${a}`:`Object captured as ${a} with keys: ${n}`}const Qs=u;let er=0;function tr(){return er>0}function nr(e,t={}){if(!function(e){return"function"==typeof e}(e))return e;try{const t=e.__sentry_wrapped__;if(t)return"function"==typeof t?t:e;if(H(e))return e}catch{return e}const n=function(...n){try{const a=n.map(e=>nr(e,t));return e.apply(this,a)}catch(e){throw er++,setTimeout(()=>{er--}),$e(a=>{a.addEventProcessor(e=>(t.mechanism&&(me(e,void 0,void 0),he(e,t.mechanism)),e.extra={...e.extra,arguments:n},e)),bn(e)}),e}};try{for(const t in e)Object.prototype.hasOwnProperty.call(e,t)&&(n[t]=e[t])}catch{}q(n,e),B(e,"__sentry_wrapped__",n);try{Object.getOwnPropertyDescriptor(n,"name").configurable&&Object.defineProperty(n,"name",{get:()=>e.name})}catch{}return n}function ar(){const e=R(),{referrer:t}=Qs.document||{},{userAgent:n}=Qs.navigator||{};return{url:e,headers:{...t&&{Referer:t},...n&&{"User-Agent":n}}}}class or extends Rs{constructor(e){const t=(n=e,{release:"string"==typeof __SENTRY_RELEASE__?__SENTRY_RELEASE__:Qs.SENTRY_RELEASE?.id,sendClientReports:!0,parentSpanIsAlwaysRootSpan:!0,...n});var n;!function(e,t,n=[t],a="npm"){const o=e._metadata||{};o.sdk||(o.sdk={name:`sentry.javascript.${t}`,packages:n.map(e=>({name:`${a}:@sentry/${e}`,version:c})),version:c}),e._metadata=o}(t,"browser",["browser"],Qs.SENTRY_SDK_SOURCE||"npm"),t._metadata?.sdk&&(t._metadata.sdk.settings={infer_ip:t.sendDefaultPii?"auto":"never",...t._metadata.sdk.settings}),super(t);const{sendDefaultPii:a,sendClientReports:o,enableLogs:s,_experiments:r,enableMetrics:i}=this._options,u=i??r?.enableMetrics??!0;Qs.document&&(o||s||u)&&Qs.document.addEventListener("visibilitychange",()=>{"hidden"===Qs.document.visibilityState&&(o&&this._flushOutcomes(),s&&os(this),u&&ds(this))}),a&&this.on("beforeSendSession",Fs)}eventFromException(e,t){return Ys(this._options.stackParser,e,t,this._options.attachStacktrace)}eventFromMessage(e,t="info",n){return Gs(this._options.stackParser,e,t,n,this._options.attachStacktrace)}_prepareEvent(e,t,n,a){return e.platform=e.platform||"javascript",super._prepareEvent(e,t,n,a)}}const sr={},rr={};function ir(e,t){sr[e]=sr[e]||[],sr[e].push(t)}function cr(e,t){if(!rr[e]){rr[e]=!0;try{t()}catch(t){m&&F.error(`Error while instrumenting ${e}`,t)}}}function ur(e,t){const n=e&&sr[e];if(n)for(const a of n)try{a(t)}catch(t){m&&F.error(`Error while triggering instrumentation handler.\nType: ${e}\nName: ${te(a)}\nError:`,t)}}function lr(e){const t="console";ir(t,e),cr(t,pr)}function pr(){"console"in u&&O.forEach(function(e){e in u.console&&U(u.console,e,function(t){return D[e]=t,function(...t){ur("console",{args:t,level:e});const n=D[e];n?.apply(u.console,t)}})})}const dr=u;function mr(e){return e&&/^function\s+\w+\(\)\s+\{\s+\[native code\]\s+\}$/.test(e.toString())}function hr(){if("string"==typeof EdgeRuntime)return!0;if(!function(){if(!("fetch"in dr))return!1;try{return new Headers,new Request("data:,"),new Response,!0}catch{return!1}}())return!1;if(mr(dr.fetch))return!0;let e=!1;const t=dr.document;if(t&&"function"==typeof t.createElement)try{const n=t.createElement("iframe");n.hidden=!0,t.head.appendChild(n),n.contentWindow?.fetch&&(e=mr(n.contentWindow.fetch)),t.head.removeChild(n)}catch(e){m&&F.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ",e)}return e}function gr(e,t){const n="fetch";ir(n,e),cr(n,()=>fr(void 0,t))}function fr(e,t=!1){t&&!hr()||U(u,"fetch",function(t){return function(...n){const a=new Error,{method:o,url:s}=function(e){if(0===e.length)return{method:"GET",url:""};if(2===e.length){const[t,n]=e;return{url:br(t),method:yr(n,"method")?String(n.method).toUpperCase():"GET"}}const t=e[0];return{url:br(t),method:yr(t,"method")?String(t.method).toUpperCase():"GET"}}(n),r={args:n,fetchData:{method:o,url:s},startTimestamp:1e3*we(),virtualError:a,headers:wr(n)};return e||ur("fetch",{...r}),t.apply(u,n).then(async t=>(e?e(t):ur("fetch",{...r,endTimestamp:1e3*we(),response:t}),t),e=>{if(ur("fetch",{...r,endTimestamp:1e3*we(),error:e}),g(e)&&void 0===e.stack&&(e.stack=a.stack,B(e,"framesToPop",1)),e instanceof TypeError&&("Failed to fetch"===e.message||"Load failed"===e.message||"NetworkError when attempting to fetch resource."===e.message))try{const t=new URL(r.fetchData.url);e.message=`${e.message} (${t.host})`}catch{}throw e})}})}function kr(e){let t;try{t=e.clone()}catch{return}!async function(e,t){if(e?.body){const n=e.body,a=n.getReader(),o=setTimeout(()=>{n.cancel().then(null,()=>{})},9e4);let s=!0;for(;s;){let e;try{e=setTimeout(()=>{n.cancel().then(null,()=>{})},5e3);const{done:o}=await a.read();clearTimeout(e),o&&(t(),s=!1)}catch{s=!1}finally{clearTimeout(e)}}clearTimeout(o),a.releaseLock(),n.cancel().then(null,()=>{})}}(t,()=>{ur("fetch-body-resolved",{endTimestamp:1e3*we(),response:e})})}function yr(e,t){return!!e&&"object"==typeof e&&!!e[t]}function br(e){return"string"==typeof e?e:e?yr(e,"url")?e.url:e.toString?e.toString():"":""}function wr(e){const[t,n]=e;try{if("object"==typeof n&&null!==n&&"headers"in n&&n.headers)return new Headers(n.headers);if(E(t))return new Headers(t.headers)}catch{}}const vr=100;function _r(e,t){const n=Ue(),a=Le();if(!n)return;const{beforeBreadcrumb:o=null,maxBreadcrumbs:s=vr}=n.getOptions();if(s<=0)return;const r={timestamp:ke(),...e},i=o?P(()=>o(r,t)):r;null!==i&&(n.emit&&n.emit("beforeAddBreadcrumb",i,t),a.addBreadcrumb(i,s))}function jr(e){return"warn"===e?"warning":["fatal","error","warning","log","info","debug"].includes(e)?e:"log"}function Sr(e){return void 0===e?void 0:e>=400&&e<500?"warning":e>=500?"error":void 0}const xr="thismessage:/";function zr(e){return"isRelative"in e}function Er(e,t){const n=e.indexOf("://")<=0&&0!==e.indexOf("//"),a=t??(n?xr:void 0);try{if("canParse"in URL&&!URL.canParse(e,a))return;const t=new URL(e,a);return n?{isRelative:n,pathname:t.pathname,search:t.search,hash:t.hash}:t}catch{}}function Tr(e){if(zr(e))return e.pathname;const t=new URL(e);return t.search="",t.hash="",["80","443"].includes(t.port)&&(t.port=""),t.password&&(t.password="%filtered%"),t.username&&(t.username="%filtered%"),t.toString()}function Cr(e){if(!e)return{};const t=e.match(/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!t)return{};const n=t[6]||"",a=t[8]||"";return{host:t[4],path:t[5],protocol:t[2],search:n,hash:a,relative:t[5]+n+a}}function Ir(e){return e.split(/[?#]/,1)[0]}const Mr=u;let Rr,Ar,Or;function Dr(e){ir("dom",e),cr("dom",Pr)}function Pr(){if(!Mr.document)return;const e=ur.bind(null,"dom"),t=Lr(e,!0);Mr.document.addEventListener("click",t,!1),Mr.document.addEventListener("keypress",t,!1),["EventTarget","Node"].forEach(t=>{const n=Mr,a=n[t]?.prototype;a?.hasOwnProperty?.("addEventListener")&&(U(a,"addEventListener",function(t){return function(n,a,o){if("click"===n||"keypress"==n)try{const a=this.__sentry_instrumentation_handlers__=this.__sentry_instrumentation_handlers__||{},s=a[n]=a[n]||{refCount:0};if(!s.handler){const a=Lr(e);s.handler=a,t.call(this,n,a,o)}s.refCount++}catch{}return t.call(this,n,a,o)}}),U(a,"removeEventListener",function(e){return function(t,n,a){if("click"===t||"keypress"==t)try{const n=this.__sentry_instrumentation_handlers__||{},o=n[t];o&&(o.refCount--,o.refCount<=0&&(e.call(this,t,o.handler,a),o.handler=void 0,delete n[t]),0===Object.keys(n).length&&delete this.__sentry_instrumentation_handlers__)}catch{}return e.call(this,t,n,a)}}))})}function Lr(e,t=!1){return n=>{if(!n||n._sentryCaptured)return;const a=function(e){try{return e.target}catch{return null}}(n);if(function(e,t){return"keypress"===e&&(!t?.tagName||"INPUT"!==t.tagName&&"TEXTAREA"!==t.tagName&&!t.isContentEditable)}(n.type,a))return;B(n,"_sentryCaptured",!0),a&&!a._sentryId&&B(a,"_sentryId",le());const o="keypress"===n.type?"input":n.type;(function(e){if(e.type!==Ar)return!1;try{if(!e.target||e.target._sentryId!==Or)return!1}catch{}return!0})(n)||(e({event:n,name:o,global:t}),Ar=n.type,Or=a?a._sentryId:void 0),clearTimeout(Rr),Rr=Mr.setTimeout(()=>{Or=void 0,Ar=void 0},1e3)}}const Nr="__sentry_xhr_v3__";function $r(e){ir("xhr",e),cr("xhr",Fr)}function Fr(){if(!Mr.XMLHttpRequest)return;const e=XMLHttpRequest.prototype;e.open=new Proxy(e.open,{apply(e,t,n){const a=new Error,o=1e3*we(),s=b(n[0])?n[0].toUpperCase():void 0,r=function(e){if(b(e))return e;try{return e.toString()}catch{}}(n[1]);if(!s||!r)return e.apply(t,n);t[Nr]={method:s,url:r,request_headers:{}},"POST"===s&&r.match(/sentry_key/)&&(t.__sentry_own_request__=!0);const i=()=>{const e=t[Nr];if(e&&4===t.readyState){try{e.status_code=t.status}catch{}ur("xhr",{endTimestamp:1e3*we(),startTimestamp:o,xhr:t,virtualError:a})}};return"onreadystatechange"in t&&"function"==typeof t.onreadystatechange?t.onreadystatechange=new Proxy(t.onreadystatechange,{apply:(e,t,n)=>(i(),e.apply(t,n))}):t.addEventListener("readystatechange",i),t.setRequestHeader=new Proxy(t.setRequestHeader,{apply(e,t,n){const[a,o]=n,s=t[Nr];return s&&b(a)&&b(o)&&(s.request_headers[a.toLowerCase()]=o),e.apply(t,n)}}),e.apply(t,n)}}),e.send=new Proxy(e.send,{apply(e,t,n){const a=t[Nr];return a?(void 0!==n[0]&&(a.body=n[0]),ur("xhr",{startTimestamp:1e3*we(),xhr:t}),e.apply(t,n)):e.apply(t,n)}})}let Ur;function Br(e){const t="history";ir(t,e),cr(t,qr)}function qr(){function e(e){return function(...t){const n=t.length>2?t[2]:void 0;if(n){const a=Ur,o=function(e){try{return new URL(e,Mr.location.origin).toString()}catch{return e}}(String(n));if(Ur=o,a===o)return e.apply(this,t);ur("history",{from:a,to:o})}return e.apply(this,t)}}Mr.addEventListener("popstate",()=>{const e=Mr.location.href,t=Ur;Ur=e,t!==e&&ur("history",{from:t,to:e})}),"history"in dr&&dr.history&&(U(Mr.history,"pushState",e),U(Mr.history,"replaceState",e))}const Hr="undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__,Wr=(e={})=>{const t={console:!0,dom:!0,fetch:!0,history:!0,sentry:!0,xhr:!0,...e};return{name:"Breadcrumbs",setup(e){t.console&&lr(function(e){return function(t){if(Ue()!==e)return;const n={category:"console",data:{arguments:t.args,logger:"console"},level:jr(t.level),message:re(t.args," ")};if("assert"===t.level){if(!1!==t.args[0])return;n.message=`Assertion failed: ${re(t.args.slice(1)," ")||"console.assert"}`,n.data.arguments=t.args.slice(1)}_r(n,{input:t.args,level:t.level})}}(e)),t.dom&&Dr(function(e,t){return function(n){if(Ue()!==e)return;let a,o,s="object"==typeof t?t.serializeAttribute:void 0,r="object"==typeof t&&"number"==typeof t.maxStringLength?t.maxStringLength:void 0;r&&r>1024&&(Hr&&F.warn(`\`dom.maxStringLength\` cannot exceed 1024, but a value of ${r} was configured. Sentry will use 1024 instead.`),r=1024),"string"==typeof s&&(s=[s]);try{const e=n.event,t=function(e){return!!e&&!!e.target}(e)?e.target:e;a=I(t,{keyAttrs:s,maxStringLength:r}),o=A(t)}catch{a="<unknown>"}if(0===a.length)return;const i={category:`ui.${n.name}`,message:a};o&&(i.data={"ui.component_name":o}),_r(i,{event:n.event,name:n.name,global:n.global})}}(e,t.dom)),t.xhr&&$r(function(e){return function(t){if(Ue()!==e)return;const{startTimestamp:n,endTimestamp:a}=t,o=t.xhr[Nr];if(!n||!a||!o)return;const{method:s,url:r,status_code:i,body:c}=o,u={method:s,url:r,status_code:i},l={xhr:t.xhr,input:c,startTimestamp:n,endTimestamp:a},p={category:"xhr",data:u,type:"http",level:Sr(i)};e.emit("beforeOutgoingRequestBreadcrumb",p,l),_r(p,l)}}(e)),t.fetch&&gr(function(e){return function(t){if(Ue()!==e)return;const{startTimestamp:n,endTimestamp:a}=t;if(a&&(!t.fetchData.url.match(/sentry_key/)||"POST"!==t.fetchData.method))if(t.fetchData.method,t.fetchData.url,t.error){const o=t.fetchData,s={data:t.error,input:t.args,startTimestamp:n,endTimestamp:a},r={category:"fetch",data:o,level:"error",type:"http"};e.emit("beforeOutgoingRequestBreadcrumb",r,s),_r(r,s)}else{const o=t.response,s={...t.fetchData,status_code:o?.status};t.fetchData.request_body_size,t.fetchData.response_body_size;const r={input:t.args,response:o,startTimestamp:n,endTimestamp:a},i={category:"fetch",data:s,type:"http",level:Sr(s.status_code)};e.emit("beforeOutgoingRequestBreadcrumb",i,r),_r(i,r)}}}(e)),t.history&&Br(function(e){return function(t){if(Ue()!==e)return;let n=t.from,a=t.to;const o=Cr(Qs.location.href);let s=n?Cr(n):void 0;const r=Cr(a);s?.path||(s=o),o.protocol===r.protocol&&o.host===r.host&&(a=r.relative),o.protocol===s.protocol&&o.host===s.host&&(n=s.relative),_r({category:"navigation",data:{from:n,to:a}})}}(e)),t.sentry&&e.on("beforeSendEvent",function(e){return function(t){Ue()===e&&_r({category:"sentry."+("transaction"===t.type?"transaction":"event"),event_id:t.event_id,level:t.level,message:de(t)},{event:t})}}(e))}}},Vr=["EventTarget","Window","Node","ApplicationCache","AudioTrackList","BroadcastChannel","ChannelMergerNode","CryptoOperation","EventSource","FileReader","HTMLUnknownElement","IDBDatabase","IDBRequest","IDBTransaction","KeyOperation","MediaController","MessagePort","ModalWindow","Notification","SVGElementInstance","Screen","SharedWorker","TextTrack","TextTrackCue","TextTrackList","WebSocket","WebSocketWorker","Worker","XMLHttpRequest","XMLHttpRequestEventTarget","XMLHttpRequestUpload"],Jr=(e={})=>{const t={XMLHttpRequest:!0,eventTarget:!0,requestAnimationFrame:!0,setInterval:!0,setTimeout:!0,unregisterOriginalCallbacks:!1,...e};return{name:"BrowserApiErrors",setupOnce(){t.setTimeout&&U(Qs,"setTimeout",Yr),t.setInterval&&U(Qs,"setInterval",Yr),t.requestAnimationFrame&&U(Qs,"requestAnimationFrame",Gr),t.XMLHttpRequest&&"XMLHttpRequest"in Qs&&U(XMLHttpRequest.prototype,"send",Kr);const e=t.eventTarget;e&&(Array.isArray(e)?e:Vr).forEach(e=>function(e,t){const n=Qs,a=n[e]?.prototype;a?.hasOwnProperty?.("addEventListener")&&(U(a,"addEventListener",function(n){return function(a,o,s){try{"function"==typeof o.handleEvent&&(o.handleEvent=nr(o.handleEvent,{mechanism:{data:{handler:te(o),target:e},handled:!1,type:"auto.browser.browserapierrors.handleEvent"}}))}catch{}return t.unregisterOriginalCallbacks&&function(e,t,n){e&&"object"==typeof e&&"removeEventListener"in e&&"function"==typeof e.removeEventListener&&e.removeEventListener(t,n)}(this,a,o),n.apply(this,[a,nr(o,{mechanism:{data:{handler:te(o),target:e},handled:!1,type:"auto.browser.browserapierrors.addEventListener"}}),s])}}),U(a,"removeEventListener",function(e){return function(t,n,a){try{const o=n.__sentry_wrapped__;o&&e.call(this,t,o,a)}catch{}return e.call(this,t,n,a)}}))}(e,t))}}};function Yr(e){return function(...t){const n=t[0];return t[0]=nr(n,{mechanism:{handled:!1,type:`auto.browser.browserapierrors.${te(e)}`}}),e.apply(this,t)}}function Gr(e){return function(t){return e.apply(this,[nr(t,{mechanism:{data:{handler:te(e)},handled:!1,type:"auto.browser.browserapierrors.requestAnimationFrame"}})])}}function Kr(e){return function(...t){const n=this;return["onload","onerror","onprogress","onreadystatechange"].forEach(e=>{e in n&&"function"==typeof n[e]&&U(n,e,function(t){const n={mechanism:{data:{handler:te(t)},handled:!1,type:`auto.browser.browserapierrors.xhr.${e}`}},a=H(t);return a&&(n.mechanism.data.handler=te(a)),nr(t,n)})}),e.apply(this,t)}}const Xr=()=>({name:"BrowserSession",setupOnce(){void 0!==Qs.document?(On({ignoreDuration:!0}),Ln(),Br(({from:e,to:t})=>{void 0!==e&&e!==t&&(On({ignoreDuration:!0}),Ln())})):Hr&&F.warn("Using the `browserSessionIntegration` in non-browser environments is not supported.")}});let Zr=null;function Qr(e){const t="error";ir(t,e),cr(t,ei)}function ei(){Zr=u.onerror,u.onerror=function(e,t,n,a,o){return ur("error",{column:a,error:o,line:n,msg:e,url:t}),!!Zr&&Zr.apply(this,arguments)},u.onerror.__SENTRY_INSTRUMENTED__=!0}let ti=null;function ni(e){const t="unhandledrejection";ir(t,e),cr(t,ai)}function ai(){ti=u.onunhandledrejection,u.onunhandledrejection=function(e){return ur("unhandledrejection",e),!ti||ti.apply(this,arguments)},u.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}const oi=(e={})=>{const t={onerror:!0,onunhandledrejection:!0,...e};return{name:"GlobalHandlers",setupOnce(){Error.stackTraceLimit=50},setup(e){t.onerror&&(function(e){Qr(t=>{const{stackParser:n,attachStacktrace:a}=ci();if(Ue()!==e||tr())return;const{msg:o,url:s,line:r,column:i,error:c}=t,u=function(e,t,n,a){const o=e.exception=e.exception||{},s=o.values=o.values||[],r=s[0]=s[0]||{},i=r.stacktrace=r.stacktrace||{},c=i.frames=i.frames||[],u=a,l=n,p=function(e){if(b(e)&&0!==e.length){if(e.startsWith("data:")){const t=e.match(/^data:([^;]+)/);return`<data:${t?t[1]:"text/javascript"}${e.includes("base64,")?",base64":""}>`}return e}}(t)??R();return 0===c.length&&c.push({colno:u,filename:p,function:G,in_app:!0,lineno:l}),e}(Ks(n,c||o,void 0,a,!1),s,r,i);u.level="error",vn(u,{originalException:c,mechanism:{handled:!1,type:"auto.browser.global_handlers.onerror"}})})}(e),ii("onerror")),t.onunhandledrejection&&(function(e){ni(t=>{const{stackParser:n,attachStacktrace:a}=ci();if(Ue()!==e||tr())return;const o=si(t),s=v(o)?ri(o):Ks(n,o,void 0,a,!0);s.level="error",vn(s,{originalException:o,mechanism:{handled:!1,type:"auto.browser.global_handlers.onunhandledrejection"}})})}(e),ii("onunhandledrejection"))}}};function si(e){if(v(e))return e;try{if("reason"in e)return e.reason;if("detail"in e&&"reason"in e.detail)return e.detail.reason}catch{}return e}function ri(e){return{exception:{values:[{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(e)}`}]}}}function ii(e){Hr&&F.log(`Global Handler attached: ${e}`)}function ci(){const e=Ue();return e?.getOptions()||{stackParser:()=>[],attachStacktrace:!1}}const ui=()=>({name:"HttpContext",preprocessEvent(e){if(!Qs.navigator&&!Qs.location&&!Qs.document)return;const t=ar(),n={...t.headers,...e.request?.headers};e.request={...t,...e.request,headers:n}}});function li(e,t,n,a,o,s){if(!o.exception?.values||!s||!x(s.originalException,Error))return;const r=o.exception.values.length>0?o.exception.values[o.exception.values.length-1]:void 0;r&&(o.exception.values=pi(e,t,a,s.originalException,n,o.exception.values,r,0))}function pi(e,t,n,a,o,s,r,i){if(s.length>=n+1)return s;let c=[...s];if(x(a[o],Error)){di(r,i);const s=e(t,a[o]),u=c.length;mi(s,o,u,i),c=pi(e,t,n,a[o],o,[s,...c],s,u)}return Array.isArray(a.errors)&&a.errors.forEach((a,s)=>{if(x(a,Error)){di(r,i);const u=e(t,a),l=c.length;mi(u,`errors[${s}]`,l,i),c=pi(e,t,n,a,o,[u,...c],u,l)}}),c}function di(e,t){e.mechanism={handled:!0,type:"auto.core.linked_errors",...e.mechanism,..."AggregateError"===e.type&&{is_exception_group:!0},exception_id:t}}function mi(e,t,n,a){e.mechanism={handled:!0,...e.mechanism,type:"chained",source:t,exception_id:n,parent_id:a}}const hi=(e={})=>{const t=e.limit||5,n=e.key||"cause";return{name:"LinkedErrors",preprocessEvent(e,a,o){li(Us,o.getOptions().stackParser,n,t,e,a)}}};function gi(e,t,n,a){const o={filename:e,function:"<anonymous>"===t?G:t,in_app:!0};return void 0!==n&&(o.lineno=n),void 0!==a&&(o.colno=a),o}const fi=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,ki=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,yi=/\((\S*)(?::(\d+))(?::(\d+))\)/,bi=/at (.+?) ?\(data:(.+?),/,wi=[30,e=>{const t=e.match(bi);if(t)return{filename:`<data:${t[2]}>`,function:t[1]};const n=fi.exec(e);if(n){const[,e,t,a]=n;return gi(e,G,+t,+a)}const a=ki.exec(e);if(a){if(a[2]&&0===a[2].indexOf("eval")){const e=yi.exec(a[2]);e&&(a[2]=e[1],a[3]=e[2],a[4]=e[3])}const[e,t]=Ri(a[1]||G,a[2]);return gi(t,e,a[3]?+a[3]:void 0,a[4]?+a[4]:void 0)}}],vi=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,_i=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,ji=[50,e=>{const t=vi.exec(e);if(t){if(t[3]&&t[3].indexOf(" > eval")>-1){const e=_i.exec(t[3]);e&&(t[1]=t[1]||"eval",t[3]=e[1],t[4]=e[2],t[5]="")}let e=t[3],n=t[1]||G;return[n,e]=Ri(n,e),gi(e,n,t[4]?+t[4]:void 0,t[5]?+t[5]:void 0)}}],Si=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i,xi=[40,e=>{const t=Si.exec(e);return t?gi(t[2],t[1]||G,+t[3],t[4]?+t[4]:void 0):void 0}],zi=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,Ei=[10,e=>{const t=zi.exec(e);return t?gi(t[2],t[3]||G,+t[1]):void 0}],Ti=/ line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i,Ci=[20,e=>{const t=Ti.exec(e);return t?gi(t[5],t[3]||t[4]||G,+t[1],+t[2]):void 0}],Ii=[wi,ji],Mi=Z(...Ii),Ri=(e,t)=>{const n=-1!==e.indexOf("safari-extension"),a=-1!==e.indexOf("safari-web-extension");return n||a?[-1!==e.indexOf("@")?e.split("@")[0]:G,n?`safari-extension:${t}`:`safari-web-extension:${t}`]:[e,t]},Ai="undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__,Oi={};function Di(e){const t=Oi[e];if(t)return t;let n=Mr[e];if(mr(n))return Oi[e]=n.bind(Mr);const a=Mr.document;if(a&&"function"==typeof a.createElement)try{const t=a.createElement("iframe");t.hidden=!0,a.head.appendChild(t);const o=t.contentWindow;o?.[e]&&(n=o[e]),a.head.removeChild(t)}catch(t){Ai&&F.warn(`Could not create sandbox iframe for ${e} check, bailing to window.${e}: `,t)}return n?Oi[e]=n.bind(Mr):n}function Pi(...e){return Di("setTimeout")(...e)}const Li=40;function Ni(e,t=Di("fetch")){let n=0,a=0;return _s(e,async function(o){const s=o.body.length;n+=s,a++;const r={body:o.body,method:"POST",referrerPolicy:"strict-origin",headers:e.headers,keepalive:n<=6e4&&a<15,...e.fetchOptions};try{const n=await t(e.url,r);return{statusCode:n.status,headers:{"x-sentry-rate-limits":n.headers.get("X-Sentry-Rate-Limits"),"retry-after":n.headers.get("Retry-After")}}}catch(e){throw Oi.fetch=void 0,e}finally{n-=s,a--}},fs(e.bufferSize||Li))}function $i(e){return[_o(),Eo(),Jr(),Wr(),oi(),hi(),To(),ui(),Xr()]}function Fi(e={}){const t=!e.skipBrowserExtensionCheck&&!!function(){if(void 0===Qs.window)return!1;const e=Qs;if(e.nw)return!1;const t=e.chrome||e.browser;if(!t?.runtime?.id)return!1;const n=R();return!(Qs===Qs.top&&["chrome-extension","moz-extension","ms-browser-extension","safari-web-extension"].some(e=>n.startsWith(`${e}://`)))}()&&(Hr&&P(()=>{console.error("[Sentry] You cannot use Sentry.init() in a browser extension, see: https://docs.sentry.io/platforms/javascript/best-practices/browser-extensions/")}),!0);let n=null==e.defaultIntegrations?$i():e.defaultIntegrations;const a={...e,enabled:!t&&e.enabled,stackParser:(o=e.stackParser||Mi,Array.isArray(o)?Z(...o):o),integrations:go({integrations:e.integrations,defaultIntegrations:n}),transport:e.transport||Ni};var o;return function(e,t){!0===t.debug&&(m?F.enable():P(()=>{console.warn("[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.")})),Pe().update(t.initialScope);const n=new e(t);return Ro(n),n.init(),n}(or,a)}function Ui(){}function Bi(e){e()}function qi(e,t={},n=Pe()){const{message:a,name:o,email:s,url:r,source:i,associatedEventId:c,tags:u}=e,l={contexts:{feedback:{contact_email:s,name:o,message:a,url:r,source:i,associated_event_id:c}},type:"feedback",level:"info",tags:u},p=n?.getClient()||Ue();return p&&p.emit("beforeSendFeedback",l,t),n.captureEvent(l,t)}function Hi(){return"undefined"!=typeof window&&(!(("undefined"==typeof __SENTRY_BROWSER_BUNDLE__||!__SENTRY_BROWSER_BUNDLE__)&&"[object process]"===Object.prototype.toString.call("undefined"!=typeof process?process:0))||function(){const e=u.process;return"renderer"===e?.type}())}const Wi=u,Vi=Wi.document,Ji=Wi.navigator,Yi="Report a Bug",Gi=(e,t={includeReplay:!0})=>{if(!e.message)throw new Error("Unable to submit feedback with empty message");const n=Ue();if(!n)throw new Error("No client setup, cannot send feedback.");e.tags&&Object.keys(e.tags).length&&Pe().setTags(e.tags);const a=qi({source:"api",url:R(),...e},t);return new Promise((e,t)=>{const o=setTimeout(()=>t("Unable to determine if Feedback was correctly sent."),3e4),s=n.on("afterSendEvent",(n,r)=>{if(n.event_id===a)return clearTimeout(o),s(),r?.statusCode&&r.statusCode>=200&&r.statusCode<300?e(a):t(403===r?.statusCode?"Unable to send feedback. This could be because this domain is not in your list of allowed domains.":"Unable to send feedback. This could be because of network issues, or because you are using an ad-blocker.")})})},Ki="undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__;function Xi(e,t){return{...e,...t,tags:{...e.tags,...t.tags},onFormOpen:()=>{t.onFormOpen?.(),e.onFormOpen?.()},onFormClose:()=>{t.onFormClose?.(),e.onFormClose?.()},onSubmitSuccess:(n,a)=>{t.onSubmitSuccess?.(n,a),e.onSubmitSuccess?.(n,a)},onSubmitError:n=>{t.onSubmitError?.(n),e.onSubmitError?.(n)},onFormSubmitted:()=>{t.onFormSubmitted?.(),e.onFormSubmitted?.()},themeDark:{...e.themeDark,...t.themeDark},themeLight:{...e.themeLight,...t.themeLight}}}function Zi(e,t){return Object.entries(t).forEach(([t,n])=>{e.setAttributeNS(null,t,n)}),e}const Qi="rgba(88, 74, 192, 1)",ec={foreground:"#2b2233",background:"#ffffff",accentForeground:"white",accentBackground:Qi,successColor:"#268d75",errorColor:"#df3338",border:"1.5px solid rgba(41, 35, 47, 0.13)",boxShadow:"0px 4px 24px 0px rgba(43, 34, 51, 0.12)",outline:"1px auto var(--accent-background)",interactiveFilter:"brightness(95%)"},tc={foreground:"#ebe6ef",background:"#29232f",accentForeground:"white",accentBackground:Qi,successColor:"#2da98c",errorColor:"#f55459",border:"1.5px solid rgba(235, 230, 239, 0.15)",boxShadow:"0px 4px 24px 0px rgba(43, 34, 51, 0.12)",outline:"1px auto var(--accent-background)",interactiveFilter:"brightness(150%)"};function nc(e){return`\n --foreground: ${e.foreground};\n --background: ${e.background};\n --accent-foreground: ${e.accentForeground};\n --accent-background: ${e.accentBackground};\n --success-color: ${e.successColor};\n --error-color: ${e.errorColor};\n --border: ${e.border};\n --box-shadow: ${e.boxShadow};\n --outline: ${e.outline};\n --interactive-filter: ${e.interactiveFilter};\n `}const ac=({lazyLoadIntegration:e,getModalIntegration:t,getScreenshotIntegration:n})=>({id:a="sentry-feedback",autoInject:o=!0,showBranding:s=!0,isEmailRequired:r=!1,isNameRequired:i=!1,showEmail:c=!0,showName:u=!0,enableScreenshot:l=!0,useSentryUser:p={email:"email",name:"username"},tags:d,styleNonce:m,scriptNonce:h,colorScheme:g="system",themeLight:f={},themeDark:k={},addScreenshotButtonLabel:y="Add a screenshot",cancelButtonLabel:b="Cancel",confirmButtonLabel:w="Confirm",emailLabel:v="Email",emailPlaceholder:_="your.email@example.org",formTitle:j="Report a Bug",isRequiredLabel:S="(required)",messageLabel:x="Description",messagePlaceholder:z="What's the bug? What did you expect?",nameLabel:E="Name",namePlaceholder:T="Your Name",removeScreenshotButtonLabel:C="Remove screenshot",submitButtonLabel:I="Send Bug Report",successMessageText:M="Thank you for your report!",triggerLabel:R=Yi,triggerAriaLabel:A="",highlightToolText:O="Highlight",hideToolText:D="Hide",removeHighlightText:P="Remove",onFormOpen:L,onFormClose:N,onSubmitSuccess:$,onSubmitError:U,onFormSubmitted:B}={})=>{const q={id:a,autoInject:o,showBranding:s,isEmailRequired:r,isNameRequired:i,showEmail:c,showName:u,enableScreenshot:l,useSentryUser:p,tags:d,styleNonce:m,scriptNonce:h,colorScheme:g,themeDark:k,themeLight:f,triggerLabel:R,triggerAriaLabel:A,cancelButtonLabel:b,submitButtonLabel:I,confirmButtonLabel:w,formTitle:j,emailLabel:v,emailPlaceholder:_,messageLabel:x,messagePlaceholder:z,nameLabel:E,namePlaceholder:T,successMessageText:M,isRequiredLabel:S,addScreenshotButtonLabel:y,removeScreenshotButtonLabel:C,highlightToolText:O,hideToolText:D,removeHighlightText:P,onFormClose:N,onFormOpen:L,onSubmitError:U,onSubmitSuccess:$,onFormSubmitted:B};let H=null,W=[];const V=e=>{if(!H){const t=Vi.createElement("div");t.id=String(e.id),Vi.body.appendChild(t),H=t.attachShadow({mode:"open"}),H.appendChild(function({colorScheme:e,themeDark:t,themeLight:n,styleNonce:a}){const o=Vi.createElement("style");return o.textContent=`\n:host {\n --font-family: system-ui, 'Helvetica Neue', Arial, sans-serif;\n --font-size: 14px;\n --z-index: 100000;\n\n --page-margin: 16px;\n --inset: auto 0 0 auto;\n --actor-inset: var(--inset);\n\n font-family: var(--font-family);\n font-size: var(--font-size);\n\n ${"system"!==e?"color-scheme: only light;":""}\n\n ${nc("dark"===e?{...tc,...t}:{...ec,...n})}\n}\n\n${"system"===e?`\n@media (prefers-color-scheme: dark) {\n :host {\n ${nc({...tc,...t})}\n }\n}`:""}\n}\n`,a&&o.setAttribute("nonce",a),o}(e))}return H},J=async a=>{const o=a.enableScreenshot&&!(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(Ji.userAgent)||/Macintosh/i.test(Ji.userAgent)&&Ji.maxTouchPoints&&Ji.maxTouchPoints>1||!isSecureContext);let s,r;try{s=(t?t():await e("feedbackModalIntegration",h))(),yo(s)}catch{throw Ki&&F.error("[Feedback] Error when trying to load feedback integrations. Try using `feedbackSyncIntegration` in your `Sentry.init`."),new Error("[Feedback] Missing feedback modal integration!")}try{const t=o?n?n():await e("feedbackScreenshotIntegration",h):void 0;t&&(r=t(),yo(r))}catch{Ki&&F.error("[Feedback] Missing feedback screenshot integration. Proceeding without screenshots.")}const i=s.createDialog({options:{...a,onFormClose:()=>{i?.close(),a.onFormClose?.()},onFormSubmitted:()=>{i?.close(),a.onFormSubmitted?.()}},screenshotIntegration:r,sendFeedback:Gi,shadow:V(a)});return i},Y=(e,t={})=>{const n=Xi(q,t),a="string"==typeof e?Vi.querySelector(e):"function"==typeof e.addEventListener?e:null;if(!a)throw Ki&&F.error("[Feedback] Unable to attach to target element"),new Error("Unable to attach to target element");let o=null;const s=async()=>{o||(o=await J({...n,onFormSubmitted:()=>{o?.removeFromDom(),n.onFormSubmitted?.()}})),o.appendToDom(),o.open()};a.addEventListener("click",s);const r=()=>{W=W.filter(e=>e!==r),o?.removeFromDom(),o=null,a.removeEventListener("click",s)};return W.push(r),r},G=(e={})=>{const t=Xi(q,e),n=V(t),a=function({triggerLabel:e,triggerAriaLabel:t,shadow:n,styleNonce:a}){const o=Vi.createElement("button");if(o.type="button",o.className="widget__actor",o.ariaHidden="false",o.ariaLabel=t||e||Yi,o.appendChild(function(){const e=e=>Wi.document.createElementNS("http://www.w3.org/2000/svg",e),t=Zi(e("svg"),{width:"20",height:"20",viewBox:"0 0 20 20",fill:"var(--actor-color, var(--foreground))"}),n=Zi(e("g"),{clipPath:"url(#clip0_57_80)"}),a=Zi(e("path"),{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M15.6622 15H12.3997C12.2129 14.9959 12.031 14.9396 11.8747 14.8375L8.04965 12.2H7.49956V19.1C7.4875 19.3348 7.3888 19.5568 7.22256 19.723C7.05632 19.8892 6.83435 19.9879 6.59956 20H2.04956C1.80193 19.9968 1.56535 19.8969 1.39023 19.7218C1.21511 19.5467 1.1153 19.3101 1.11206 19.0625V12.2H0.949652C0.824431 12.2017 0.700142 12.1783 0.584123 12.1311C0.468104 12.084 0.362708 12.014 0.274155 11.9255C0.185602 11.8369 0.115689 11.7315 0.0685419 11.6155C0.0213952 11.4995 -0.00202913 11.3752 -0.00034808 11.25V3.75C-0.00900498 3.62067 0.0092504 3.49095 0.0532651 3.36904C0.0972798 3.24712 0.166097 3.13566 0.255372 3.04168C0.344646 2.94771 0.452437 2.87327 0.571937 2.82307C0.691437 2.77286 0.82005 2.74798 0.949652 2.75H8.04965L11.8747 0.1625C12.031 0.0603649 12.2129 0.00407221 12.3997 0H15.6622C15.9098 0.00323746 16.1464 0.103049 16.3215 0.278167C16.4966 0.453286 16.5964 0.689866 16.5997 0.9375V3.25269C17.3969 3.42959 18.1345 3.83026 18.7211 4.41679C19.5322 5.22788 19.9878 6.32796 19.9878 7.47502C19.9878 8.62209 19.5322 9.72217 18.7211 10.5333C18.1345 11.1198 17.3969 11.5205 16.5997 11.6974V14.0125C16.6047 14.1393 16.5842 14.2659 16.5395 14.3847C16.4948 14.5035 16.4268 14.6121 16.3394 14.7042C16.252 14.7962 16.147 14.8698 16.0307 14.9206C15.9144 14.9714 15.7891 14.9984 15.6622 15ZM1.89695 10.325H1.88715V4.625H8.33715C8.52423 4.62301 8.70666 4.56654 8.86215 4.4625L12.6872 1.875H14.7247V13.125H12.6872L8.86215 10.4875C8.70666 10.3835 8.52423 10.327 8.33715 10.325H2.20217C2.15205 10.3167 2.10102 10.3125 2.04956 10.3125C1.9981 10.3125 1.94708 10.3167 1.89695 10.325ZM2.98706 12.2V18.1625H5.66206V12.2H2.98706ZM16.5997 9.93612V5.01393C16.6536 5.02355 16.7072 5.03495 16.7605 5.04814C17.1202 5.13709 17.4556 5.30487 17.7425 5.53934C18.0293 5.77381 18.2605 6.06912 18.4192 6.40389C18.578 6.73866 18.6603 7.10452 18.6603 7.47502C18.6603 7.84552 18.578 8.21139 18.4192 8.54616C18.2605 8.88093 18.0293 9.17624 17.7425 9.41071C17.4556 9.64518 17.1202 9.81296 16.7605 9.90191C16.7072 9.91509 16.6536 9.9265 16.5997 9.93612Z"});t.appendChild(n).appendChild(a);const o=e("defs"),s=Zi(e("clipPath"),{id:"clip0_57_80"}),r=Zi(e("rect"),{width:"20",height:"20",fill:"white"});return s.appendChild(r),o.appendChild(s),t.appendChild(o).appendChild(s).appendChild(r),t}()),e){const t=Vi.createElement("span");t.appendChild(Vi.createTextNode(e)),o.appendChild(t)}const s=function(e){const t=Vi.createElement("style");return t.textContent='\n.widget__actor {\n position: fixed;\n z-index: var(--z-index);\n margin: var(--page-margin);\n inset: var(--actor-inset);\n\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px;\n\n font-family: inherit;\n font-size: var(--font-size);\n font-weight: 600;\n line-height: 1.14em;\n text-decoration: none;\n\n background: var(--actor-background, var(--background));\n border-radius: var(--actor-border-radius, 1.7em/50%);\n border: var(--actor-border, var(--border));\n box-shadow: var(--actor-box-shadow, var(--box-shadow));\n color: var(--actor-color, var(--foreground));\n fill: var(--actor-color, var(--foreground));\n cursor: pointer;\n opacity: 1;\n transition: transform 0.2s ease-in-out;\n transform: translate(0, 0) scale(1);\n}\n.widget__actor[aria-hidden="true"] {\n opacity: 0;\n pointer-events: none;\n visibility: hidden;\n transform: translate(0, 16px) scale(0.98);\n}\n\n.widget__actor:hover {\n background: var(--actor-hover-background, var(--background));\n filter: var(--interactive-filter);\n}\n\n.widget__actor svg {\n width: 1.14em;\n height: 1.14em;\n}\n\n@media (max-width: 600px) {\n .widget__actor span {\n display: none;\n }\n}\n',e&&t.setAttribute("nonce",e),t}(a);return{el:o,appendToDom(){n.appendChild(s),n.appendChild(o)},removeFromDom(){o.remove(),s.remove()},show(){o.ariaHidden="false"},hide(){o.ariaHidden="true"}}}({triggerLabel:t.triggerLabel,triggerAriaLabel:t.triggerAriaLabel,shadow:n,styleNonce:m});return Y(a.el,{...t,onFormOpen(){a.hide()},onFormClose(){a.show()},onFormSubmitted(){a.show()}}),a};return{name:"Feedback",setupOnce(){Hi()&&q.autoInject&&("loading"===Vi.readyState?Vi.addEventListener("DOMContentLoaded",()=>G().appendToDom()):G().appendToDom())},attachTo:Y,createWidget(e={}){const t=G(Xi(q,e));return t.appendToDom(),t},createForm:async(e={})=>J(Xi(q,e)),remove(){H&&(H.parentElement?.remove(),H=null),W.forEach(e=>e()),W=[]}}};function oc(){const e=Ue();return e?.getIntegrationByName("Feedback")}var sc,rc,ic,cc,uc,lc,pc,dc={},mc=[],hc=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,gc=Array.isArray;function fc(e,t){for(var n in t)e[n]=t[n];return e}function kc(e){var t=e.parentNode;t&&t.removeChild(e)}function yc(e,t,n){var a,o,s,r={};for(s in t)"key"==s?a=t[s]:"ref"==s?o=t[s]:r[s]=t[s];if(arguments.length>2&&(r.children=arguments.length>3?sc.call(arguments,2):n),"function"==typeof e&&null!=e.defaultProps)for(s in e.defaultProps)void 0===r[s]&&(r[s]=e.defaultProps[s]);return bc(e,r,a,o,null)}function bc(e,t,n,a,o){var s={type:e,props:t,key:n,ref:a,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:null==o?++ic:o,__i:-1,__u:0};return null==o&&null!=rc.vnode&&rc.vnode(s),s}function wc(e){return e.children}function vc(e,t){this.props=e,this.context=t}function _c(e,t){if(null==t)return e.__?_c(e.__,e.__i+1):null;for(var n;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e)return n.__e;return"function"==typeof e.type?_c(e):null}function jc(e,t,n){var a,o=e.__v,s=o.__e,r=e.__P;if(r)return(a=fc({},o)).__v=o.__v+1,rc.vnode&&rc.vnode(a),Oc(r,a,o,e.__n,void 0!==r.ownerSVGElement,32&o.__u?[s]:null,t,null==s?_c(o):s,!!(32&o.__u),n),a.__.__k[a.__i]=a,a.__d=void 0,a.__e!=s&&Sc(a),a}function Sc(e){var t,n;if(null!=(e=e.__)&&null!=e.__c){for(e.__e=e.__c.base=null,t=0;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e){e.__e=e.__c.base=n.__e;break}return Sc(e)}}function xc(e){(!e.__d&&(e.__d=!0)&&cc.push(e)&&!zc.__r++||uc!==rc.debounceRendering)&&((uc=rc.debounceRendering)||lc)(zc)}function zc(){var e,t,n,a=[],o=[];for(cc.sort(pc);e=cc.shift();)e.__d&&(n=cc.length,t=jc(e,a,o)||t,0===n||cc.length>n?(Dc(a,t,o),o.length=a.length=0,t=void 0,cc.sort(pc)):t&&rc.__c&&rc.__c(t,mc));t&&Dc(a,t,o),zc.__r=0}function Ec(e,t,n,a,o,s,r,i,c,u,l){var p,d,m,h,g,f=a&&a.__k||mc,k=t.length;for(n.__d=c,function(e,t,n){var a,o,s,r,i,c=t.length,u=n.length,l=u,p=0;for(e.__k=[],a=0;a<c;a++)null!=(o=e.__k[a]=null==(o=t[a])||"boolean"==typeof o||"function"==typeof o?null:"string"==typeof o||"number"==typeof o||"bigint"==typeof o||o.constructor==String?bc(null,o,null,null,o):gc(o)?bc(wc,{children:o},null,null,null):void 0===o.constructor&&o.__b>0?bc(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):o)?(o.__=e,o.__b=e.__b+1,i=Cc(o,n,r=a+p,l),o.__i=i,s=null,-1!==i&&(l--,(s=n[i])&&(s.__u|=131072)),null==s||null===s.__v?(-1==i&&p--,"function"!=typeof o.type&&(o.__u|=65536)):i!==r&&(i===r+1?p++:i>r?l>c-r?p+=i-r:p--:p=i<r&&i==r-1?i-r:0,i!==a+p&&(o.__u|=65536))):(s=n[a])&&null==s.key&&s.__e&&(s.__e==e.__d&&(e.__d=_c(s)),Nc(s,s,!1),n[a]=null,l--);if(l)for(a=0;a<u;a++)null!=(s=n[a])&&!(131072&s.__u)&&(s.__e==e.__d&&(e.__d=_c(s)),Nc(s,s))}(n,t,f),c=n.__d,p=0;p<k;p++)null!=(m=n.__k[p])&&"boolean"!=typeof m&&"function"!=typeof m&&(d=-1===m.__i?dc:f[m.__i]||dc,m.__i=p,Oc(e,m,d,o,s,r,i,c,u,l),h=m.__e,m.ref&&d.ref!=m.ref&&(d.ref&&Lc(d.ref,null,m),l.push(m.ref,m.__c||h,m)),null==g&&null!=h&&(g=h),65536&m.__u||d.__k===m.__k?c=Tc(m,c,e):"function"==typeof m.type&&void 0!==m.__d?c=m.__d:h&&(c=h.nextSibling),m.__d=void 0,m.__u&=-196609);n.__d=c,n.__e=g}function Tc(e,t,n){var a,o;if("function"==typeof e.type){for(a=e.__k,o=0;a&&o<a.length;o++)a[o]&&(a[o].__=e,t=Tc(a[o],t,n));return t}e.__e!=t&&(n.insertBefore(e.__e,t||null),t=e.__e);do{t=t&&t.nextSibling}while(null!=t&&8===t.nodeType);return t}function Cc(e,t,n,a){var o=e.key,s=e.type,r=n-1,i=n+1,c=t[n];if(null===c||c&&o==c.key&&s===c.type)return n;if(a>(null==c||131072&c.__u?0:1))for(;r>=0||i<t.length;){if(r>=0){if((c=t[r])&&!(131072&c.__u)&&o==c.key&&s===c.type)return r;r--}if(i<t.length){if((c=t[i])&&!(131072&c.__u)&&o==c.key&&s===c.type)return i;i++}}return-1}function Ic(e,t,n){"-"===t[0]?e.setProperty(t,null==n?"":n):e[t]=null==n?"":"number"!=typeof n||hc.test(t)?n:n+"px"}function Mc(e,t,n,a,o){var s;e:if("style"===t)if("string"==typeof n)e.style.cssText=n;else{if("string"==typeof a&&(e.style.cssText=a=""),a)for(t in a)n&&t in n||Ic(e.style,t,"");if(n)for(t in n)a&&n[t]===a[t]||Ic(e.style,t,n[t])}else if("o"===t[0]&&"n"===t[1])s=t!==(t=t.replace(/(PointerCapture)$|Capture$/i,"$1")),t=t.toLowerCase()in e?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+s]=n,n?a?n.u=a.u:(n.u=Date.now(),e.addEventListener(t,s?Ac:Rc,s)):e.removeEventListener(t,s?Ac:Rc,s);else{if(o)t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("width"!==t&&"height"!==t&&"href"!==t&&"list"!==t&&"form"!==t&&"tabIndex"!==t&&"download"!==t&&"rowSpan"!==t&&"colSpan"!==t&&"role"!==t&&t in e)try{e[t]=null==n?"":n;break e}catch(e){}"function"==typeof n||(null==n||!1===n&&"-"!==t[4]?e.removeAttribute(t):e.setAttribute(t,n))}}function Rc(e){if(this.l){var t=this.l[e.type+!1];if(e.t){if(e.t<=t.u)return}else e.t=Date.now();return t(rc.event?rc.event(e):e)}}function Ac(e){if(this.l)return this.l[e.type+!0](rc.event?rc.event(e):e)}function Oc(e,t,n,a,o,s,r,i,c,u){var l,p,d,m,h,g,f,k,y,b,w,v,_,j,S,x=t.type;if(void 0!==t.constructor)return null;128&n.__u&&(c=!!(32&n.__u),s=[i=t.__e=n.__e]),(l=rc.__b)&&l(t);e:if("function"==typeof x)try{if(k=t.props,y=(l=x.contextType)&&a[l.__c],b=l?y?y.props.value:l.__:a,n.__c?f=(p=t.__c=n.__c).__=p.__E:("prototype"in x&&x.prototype.render?t.__c=p=new x(k,b):(t.__c=p=new vc(k,b),p.constructor=x,p.render=$c),y&&y.sub(p),p.props=k,p.state||(p.state={}),p.context=b,p.__n=a,d=p.__d=!0,p.__h=[],p._sb=[]),null==p.__s&&(p.__s=p.state),null!=x.getDerivedStateFromProps&&(p.__s==p.state&&(p.__s=fc({},p.__s)),fc(p.__s,x.getDerivedStateFromProps(k,p.__s))),m=p.props,h=p.state,p.__v=t,d)null==x.getDerivedStateFromProps&&null!=p.componentWillMount&&p.componentWillMount(),null!=p.componentDidMount&&p.__h.push(p.componentDidMount);else{if(null==x.getDerivedStateFromProps&&k!==m&&null!=p.componentWillReceiveProps&&p.componentWillReceiveProps(k,b),!p.__e&&(null!=p.shouldComponentUpdate&&!1===p.shouldComponentUpdate(k,p.__s,b)||t.__v===n.__v)){for(t.__v!==n.__v&&(p.props=k,p.state=p.__s,p.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.forEach(function(e){e&&(e.__=t)}),w=0;w<p._sb.length;w++)p.__h.push(p._sb[w]);p._sb=[],p.__h.length&&r.push(p);break e}null!=p.componentWillUpdate&&p.componentWillUpdate(k,p.__s,b),null!=p.componentDidUpdate&&p.__h.push(function(){p.componentDidUpdate(m,h,g)})}if(p.context=b,p.props=k,p.__P=e,p.__e=!1,v=rc.__r,_=0,"prototype"in x&&x.prototype.render){for(p.state=p.__s,p.__d=!1,v&&v(t),l=p.render(p.props,p.state,p.context),j=0;j<p._sb.length;j++)p.__h.push(p._sb[j]);p._sb=[]}else do{p.__d=!1,v&&v(t),l=p.render(p.props,p.state,p.context),p.state=p.__s}while(p.__d&&++_<25);p.state=p.__s,null!=p.getChildContext&&(a=fc(fc({},a),p.getChildContext())),d||null==p.getSnapshotBeforeUpdate||(g=p.getSnapshotBeforeUpdate(m,h)),Ec(e,gc(S=null!=l&&l.type===wc&&null==l.key?l.props.children:l)?S:[S],t,n,a,o,s,r,i,c,u),p.base=t.__e,t.__u&=-161,p.__h.length&&r.push(p),f&&(p.__E=p.__=null)}catch(e){t.__v=null,c||null!=s?(t.__e=i,t.__u|=c?160:32,s[s.indexOf(i)]=null):(t.__e=n.__e,t.__k=n.__k),rc.__e(e,t,n)}else null==s&&t.__v===n.__v?(t.__k=n.__k,t.__e=n.__e):t.__e=Pc(n.__e,t,n,a,o,s,r,c,u);(l=rc.diffed)&&l(t)}function Dc(e,t,n){for(var a=0;a<n.length;a++)Lc(n[a],n[++a],n[++a]);rc.__c&&rc.__c(t,e),e.some(function(t){try{e=t.__h,t.__h=[],e.some(function(e){e.call(t)})}catch(e){rc.__e(e,t.__v)}})}function Pc(e,t,n,a,o,s,r,i,c){var u,l,p,d,m,h,g,f=n.props,k=t.props,y=t.type;if("svg"===y&&(o=!0),null!=s)for(u=0;u<s.length;u++)if((m=s[u])&&"setAttribute"in m==!!y&&(y?m.localName===y:3===m.nodeType)){e=m,s[u]=null;break}if(null==e){if(null===y)return document.createTextNode(k);e=o?document.createElementNS("http://www.w3.org/2000/svg",y):document.createElement(y,k.is&&k),s=null,i=!1}if(null===y)f===k||i&&e.data===k||(e.data=k);else{if(s=s&&sc.call(e.childNodes),f=n.props||dc,!i&&null!=s)for(f={},u=0;u<e.attributes.length;u++)f[(m=e.attributes[u]).name]=m.value;for(u in f)m=f[u],"children"==u||("dangerouslySetInnerHTML"==u?p=m:"key"===u||u in k||Mc(e,u,null,m,o));for(u in k)m=k[u],"children"==u?d=m:"dangerouslySetInnerHTML"==u?l=m:"value"==u?h=m:"checked"==u?g=m:"key"===u||i&&"function"!=typeof m||f[u]===m||Mc(e,u,m,f[u],o);if(l)i||p&&(l.__html===p.__html||l.__html===e.innerHTML)||(e.innerHTML=l.__html),t.__k=[];else if(p&&(e.innerHTML=""),Ec(e,gc(d)?d:[d],t,n,a,o&&"foreignObject"!==y,s,r,s?s[0]:n.__k&&_c(n,0),i,c),null!=s)for(u=s.length;u--;)null!=s[u]&&kc(s[u]);i||(u="value",void 0!==h&&(h!==e[u]||"progress"===y&&!h||"option"===y&&h!==f[u])&&Mc(e,u,h,f[u],!1),u="checked",void 0!==g&&g!==e[u]&&Mc(e,u,g,f[u],!1))}return e}function Lc(e,t,n){try{"function"==typeof e?e(t):e.current=t}catch(e){rc.__e(e,n)}}function Nc(e,t,n){var a,o;if(rc.unmount&&rc.unmount(e),(a=e.ref)&&(a.current&&a.current!==e.__e||Lc(a,null,t)),null!=(a=e.__c)){if(a.componentWillUnmount)try{a.componentWillUnmount()}catch(e){rc.__e(e,t)}a.base=a.__P=null,e.__c=void 0}if(a=e.__k)for(o=0;o<a.length;o++)a[o]&&Nc(a[o],t,n||"function"!=typeof e.type);n||null==e.__e||kc(e.__e),e.__=e.__e=e.__d=void 0}function $c(e,t,n){return this.constructor(e,n)}sc=mc.slice,rc={__e:function(e,t,n,a){for(var o,s,r;t=t.__;)if((o=t.__c)&&!o.__)try{if((s=o.constructor)&&null!=s.getDerivedStateFromError&&(o.setState(s.getDerivedStateFromError(e)),r=o.__d),null!=o.componentDidCatch&&(o.componentDidCatch(e,a||{}),r=o.__d),r)return o.__E=o}catch(t){e=t}throw e}},ic=0,vc.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=fc({},this.state),"function"==typeof e&&(e=e(fc({},n),this.props)),e&&fc(n,e),null!=e&&this.__v&&(t&&this._sb.push(t),xc(this))},vc.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),xc(this))},vc.prototype.render=wc,cc=[],lc="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,pc=function(e,t){return e.__v.__b-t.__v.__b},zc.__r=0;var Fc,Uc,Bc,qc,Hc=0,Wc=[],Vc=[],Jc=rc,Yc=Jc.__b,Gc=Jc.__r,Kc=Jc.diffed,Xc=Jc.__c,Zc=Jc.unmount,Qc=Jc.__;function eu(e,t){Jc.__h&&Jc.__h(Uc,e,Hc||t),Hc=0;var n=Uc.__H||(Uc.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({__V:Vc}),n.__[e]}function tu(e){return Hc=1,nu(du,e)}function nu(e,t,n){var a=eu(Fc++,2);if(a.t=e,!a.__c&&(a.__=[n?n(t):du(void 0,t),function(e){var t=a.__N?a.__N[0]:a.__[0],n=a.t(t,e);t!==n&&(a.__N=[n,a.__[1]],a.__c.setState({}))}],a.__c=Uc,!Uc.u)){var o=function(e,t,n){if(!a.__c.__H)return!0;var o=a.__c.__H.__.filter(function(e){return!!e.__c});if(o.every(function(e){return!e.__N}))return!s||s.call(this,e,t,n);var r=!1;return o.forEach(function(e){if(e.__N){var t=e.__[0];e.__=e.__N,e.__N=void 0,t!==e.__[0]&&(r=!0)}}),!(!r&&a.__c.props===e)&&(!s||s.call(this,e,t,n))};Uc.u=!0;var s=Uc.shouldComponentUpdate,r=Uc.componentWillUpdate;Uc.componentWillUpdate=function(e,t,n){if(this.__e){var a=s;s=void 0,o(e,t,n),s=a}r&&r.call(this,e,t,n)},Uc.shouldComponentUpdate=o}return a.__N||a.__}function au(e,t){var n=eu(Fc++,4);!Jc.__s&&pu(n.__H,t)&&(n.__=e,n.i=t,Uc.__h.push(n))}function ou(e,t){var n=eu(Fc++,7);return pu(n.__H,t)?(n.__V=e(),n.i=t,n.__h=e,n.__V):n.__}function su(e,t){return Hc=8,ou(function(){return e},t)}function ru(){for(var e;e=Wc.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(uu),e.__H.__h.forEach(lu),e.__H.__h=[]}catch(t){e.__H.__h=[],Jc.__e(t,e.__v)}}Jc.__b=function(e){Uc=null,Yc&&Yc(e)},Jc.__=function(e,t){t.__k&&t.__k.__m&&(e.__m=t.__k.__m),Qc&&Qc(e,t)},Jc.__r=function(e){Gc&&Gc(e),Fc=0;var t=(Uc=e.__c).__H;t&&(Bc===Uc?(t.__h=[],Uc.__h=[],t.__.forEach(function(e){e.__N&&(e.__=e.__N),e.__V=Vc,e.__N=e.i=void 0})):(t.__h.forEach(uu),t.__h.forEach(lu),t.__h=[],Fc=0)),Bc=Uc},Jc.diffed=function(e){Kc&&Kc(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==Wc.push(t)&&qc===Jc.requestAnimationFrame||((qc=Jc.requestAnimationFrame)||cu)(ru)),t.__H.__.forEach(function(e){e.i&&(e.__H=e.i),e.__V!==Vc&&(e.__=e.__V),e.i=void 0,e.__V=Vc})),Bc=Uc=null},Jc.__c=function(e,t){t.some(function(e){try{e.__h.forEach(uu),e.__h=e.__h.filter(function(e){return!e.__||lu(e)})}catch(n){t.some(function(e){e.__h&&(e.__h=[])}),t=[],Jc.__e(n,e.__v)}}),Xc&&Xc(e,t)},Jc.unmount=function(e){Zc&&Zc(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach(function(e){try{uu(e)}catch(e){t=e}}),n.__H=void 0,t&&Jc.__e(t,n.__v))};var iu="function"==typeof requestAnimationFrame;function cu(e){var t,n=function(){clearTimeout(a),iu&&cancelAnimationFrame(t),setTimeout(e)},a=setTimeout(n,100);iu&&(t=requestAnimationFrame(n))}function uu(e){var t=Uc,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),Uc=t}function lu(e){var t=Uc;e.__c=e.__(),Uc=t}function pu(e,t){return!e||e.length!==t.length||t.some(function(t,n){return t!==e[n]})}function du(e,t){return"function"==typeof t?t(e):t}const mu=Object.defineProperty({__proto__:null,useCallback:su,useContext:function(e){var t=Uc.context[e.__c],n=eu(Fc++,9);return n.c=e,t?(null==n.__&&(n.__=!0,t.sub(Uc)),t.props.value):e.__},useDebugValue:function(e,t){Jc.useDebugValue&&Jc.useDebugValue(t?t(e):e)},useEffect:function(e,t){var n=eu(Fc++,3);!Jc.__s&&pu(n.__H,t)&&(n.__=e,n.i=t,Uc.__H.__h.push(n))},useErrorBoundary:function(e){var t=eu(Fc++,10),n=tu();return t.__=e,Uc.componentDidCatch||(Uc.componentDidCatch=function(e,a){t.__&&t.__(e,a),n[1](e)}),[n[0],function(){n[1](void 0)}]},useId:function(){var e=eu(Fc++,11);if(!e.__){for(var t=Uc.__v;null!==t&&!t.__m&&null!==t.__;)t=t.__;var n=t.__m||(t.__m=[0,0]);e.__="P"+n[0]+"-"+n[1]++}return e.__},useImperativeHandle:function(e,t,n){Hc=6,au(function(){return"function"==typeof e?(e(t()),function(){return e(null)}):e?(e.current=t(),function(){return e.current=null}):void 0},null==n?n:n.concat(e))},useLayoutEffect:au,useMemo:ou,useReducer:nu,useRef:function(e){return Hc=5,ou(function(){return{current:e}},[])},useState:tu},Symbol.toStringTag,{value:"Module"});function hu(){const e=e=>Vi.createElementNS("http://www.w3.org/2000/svg",e),t=Zi(e("svg"),{width:"32",height:"30",viewBox:"0 0 72 66",fill:"inherit"}),n=Zi(e("path"),{transform:"translate(11, 11)",d:"M29,2.26a4.67,4.67,0,0,0-8,0L14.42,13.53A32.21,32.21,0,0,1,32.17,40.19H27.55A27.68,27.68,0,0,0,12.09,17.47L6,28a15.92,15.92,0,0,1,9.23,12.17H4.62A.76.76,0,0,1,4,39.06l2.94-5a10.74,10.74,0,0,0-3.36-1.9l-2.91,5a4.54,4.54,0,0,0,1.69,6.24A4.66,4.66,0,0,0,4.62,44H19.15a19.4,19.4,0,0,0-8-17.31l2.31-4A23.87,23.87,0,0,1,23.76,44H36.07a35.88,35.88,0,0,0-16.41-31.8l4.67-8a.77.77,0,0,1,1.05-.27c.53.29,20.29,34.77,20.66,35.17a.76.76,0,0,1-.68,1.13H40.6q.09,1.91,0,3.81h4.78A4.59,4.59,0,0,0,50,39.43a4.49,4.49,0,0,0-.62-2.28Z"});return t.appendChild(n),t}function gu({options:e}){const t=ou(()=>({__html:hu().outerHTML}),[]);return yc("h2",{class:"dialog__header"},yc("span",{class:"dialog__title"},e.formTitle),e.showBranding?yc("a",{class:"brand-link",target:"_blank",href:"https://sentry.io/welcome/",title:"Powered by Sentry",rel:"noopener noreferrer",dangerouslySetInnerHTML:t}):null)}function fu(e,t){const n=e.get(t);return"string"==typeof n?n.trim():""}function ku({options:e,defaultEmail:t,defaultName:n,onFormClose:a,onSubmit:o,onSubmitSuccess:s,onSubmitError:r,showEmail:i,showName:c,screenshotInput:u}){const{tags:l,addScreenshotButtonLabel:p,removeScreenshotButtonLabel:d,cancelButtonLabel:m,emailLabel:h,emailPlaceholder:g,isEmailRequired:f,isNameRequired:k,messageLabel:y,messagePlaceholder:b,nameLabel:w,namePlaceholder:v,submitButtonLabel:_,isRequiredLabel:j}=e,[S,x]=tu(!1),[z,E]=tu(null),[T,C]=tu(!1),I=u?.input,[M,R]=tu(null),A=su(e=>{R(e),C(!1)},[]),O=su(e=>{const t=function(e,t){const n=[];return t.isNameRequired&&!e.name&&n.push(t.nameLabel),t.isEmailRequired&&!e.email&&n.push(t.emailLabel),e.message||n.push(t.messageLabel),n}(e,{emailLabel:h,isEmailRequired:f,isNameRequired:k,messageLabel:y,nameLabel:w});return t.length>0?E(`Please enter in the following required fields: ${t.join(", ")}`):E(null),0===t.length},[h,f,k,y,w]),D=su(async e=>{x(!0);try{if(e.preventDefault(),!(e.target instanceof HTMLFormElement))return;const t=new FormData(e.target),n=await(u&&T?u.value():void 0),a={name:fu(t,"name"),email:fu(t,"email"),message:fu(t,"message"),attachments:n?[n]:void 0};if(!O(a))return;try{const e=await o({name:a.name,email:a.email,message:a.message,source:"widget",tags:l},{attachments:a.attachments});s(a,e)}catch(e){Ki&&F.error(e),E(e),r(e)}}finally{x(!1)}},[u&&T,s,r]);return yc("form",{class:"form",onSubmit:D},I&&T?yc(I,{onError:A}):null,yc("fieldset",{class:"form__right","data-sentry-feedback":!0,disabled:S},yc("div",{class:"form__top"},z?yc("div",{class:"form__error-container"},z):null,c?yc("label",{for:"name",class:"form__label"},yc(yu,{label:w,isRequiredLabel:j,isRequired:k}),yc("input",{class:"form__input",defaultValue:n,id:"name",name:"name",placeholder:v,required:k,type:"text"})):yc("input",{"aria-hidden":!0,value:n,name:"name",type:"hidden"}),i?yc("label",{for:"email",class:"form__label"},yc(yu,{label:h,isRequiredLabel:j,isRequired:f}),yc("input",{class:"form__input",defaultValue:t,id:"email",name:"email",placeholder:g,required:f,type:"email"})):yc("input",{"aria-hidden":!0,value:t,name:"email",type:"hidden"}),yc("label",{for:"message",class:"form__label"},yc(yu,{label:y,isRequiredLabel:j,isRequired:!0}),yc("textarea",{autoFocus:!0,class:"form__input form__input--textarea",id:"message",name:"message",placeholder:b,required:!0,rows:5})),I?yc("label",{for:"screenshot",class:"form__label"},yc("button",{class:"btn btn--default",disabled:S,type:"button",onClick:()=>{R(null),C(e=>!e)}},T?d:p),M?yc("div",{class:"form__error-container"},M.message):null):null),yc("div",{class:"btn-group"},yc("button",{class:"btn btn--primary",disabled:S,type:"submit"},_),yc("button",{class:"btn btn--default",disabled:S,type:"button",onClick:a},m))))}function yu({label:e,isRequired:t,isRequiredLabel:n}){return yc("span",{class:"form__label__text"},e,t&&yc("span",{class:"form__label__text--required"},n))}function bu(){const e=e=>Wi.document.createElementNS("http://www.w3.org/2000/svg",e),t=Zi(e("svg"),{width:"16",height:"17",viewBox:"0 0 16 17",fill:"inherit"}),n=Zi(e("g"),{clipPath:"url(#clip0_57_156)"}),a=Zi(e("path"),{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M3.55544 15.1518C4.87103 16.0308 6.41775 16.5 8 16.5C10.1217 16.5 12.1566 15.6571 13.6569 14.1569C15.1571 12.6566 16 10.6217 16 8.5C16 6.91775 15.5308 5.37103 14.6518 4.05544C13.7727 2.73985 12.5233 1.71447 11.0615 1.10897C9.59966 0.503466 7.99113 0.34504 6.43928 0.653721C4.88743 0.962403 3.46197 1.72433 2.34315 2.84315C1.22433 3.96197 0.462403 5.38743 0.153721 6.93928C-0.15496 8.49113 0.00346625 10.0997 0.608967 11.5615C1.21447 13.0233 2.23985 14.2727 3.55544 15.1518ZM4.40546 3.1204C5.46945 2.40946 6.72036 2.03 8 2.03C9.71595 2.03 11.3616 2.71166 12.575 3.92502C13.7883 5.13838 14.47 6.78405 14.47 8.5C14.47 9.77965 14.0905 11.0306 13.3796 12.0945C12.6687 13.1585 11.6582 13.9878 10.476 14.4775C9.29373 14.9672 7.99283 15.0953 6.73777 14.8457C5.48271 14.596 4.32987 13.9798 3.42502 13.075C2.52018 12.1701 1.90397 11.0173 1.65432 9.76224C1.40468 8.50718 1.5328 7.20628 2.0225 6.02404C2.5122 4.8418 3.34148 3.83133 4.40546 3.1204Z"}),o=Zi(e("path"),{d:"M6.68775 12.4297C6.78586 12.4745 6.89218 12.4984 7 12.5C7.11275 12.4955 7.22315 12.4664 7.32337 12.4145C7.4236 12.3627 7.51121 12.2894 7.58 12.2L12 5.63999C12.0848 5.47724 12.1071 5.28902 12.0625 5.11098C12.0178 4.93294 11.9095 4.77744 11.7579 4.67392C11.6064 4.57041 11.4221 4.52608 11.24 4.54931C11.0579 4.57254 10.8907 4.66173 10.77 4.79999L6.88 10.57L5.13 8.56999C5.06508 8.49566 4.98613 8.43488 4.89768 8.39111C4.80922 8.34735 4.713 8.32148 4.61453 8.31498C4.51605 8.30847 4.41727 8.32147 4.32382 8.35322C4.23038 8.38497 4.14413 8.43484 4.07 8.49999C3.92511 8.63217 3.83692 8.81523 3.82387 9.01092C3.81083 9.2066 3.87393 9.39976 4 9.54999L6.43 12.24C6.50187 12.3204 6.58964 12.385 6.68775 12.4297Z"});t.appendChild(n).append(o,a);const s=e("defs"),r=Zi(e("clipPath"),{id:"clip0_57_156"}),i=Zi(e("rect"),{width:"16",height:"16",fill:"white",transform:"translate(0 0.5)"});return r.appendChild(i),s.appendChild(r),t.appendChild(s).appendChild(r).appendChild(i),t}function wu({open:e,onFormSubmitted:t,...n}){const a=n.options,o=ou(()=>({__html:bu().outerHTML}),[]),[s,r]=tu(null),i=su(()=>{s&&(clearTimeout(s),r(null)),t()},[s]),c=su((e,a)=>{n.onSubmitSuccess(e,a),r(setTimeout(()=>{t(),r(null)},5e3))},[t]);return yc(wc,null,s?yc("div",{class:"success__position",onClick:i},yc("div",{class:"success__content"},a.successMessageText,yc("span",{class:"success__icon",dangerouslySetInnerHTML:o}))):yc("dialog",{class:"dialog",onClick:a.onFormClose,open:e},yc("div",{class:"dialog__position"},yc("div",{class:"dialog__content",onClick:e=>{e.stopPropagation()}},yc(gu,{options:a}),yc(ku,{...n,onSubmitSuccess:c})))))}const vu=()=>({name:"FeedbackModal",setupOnce(){},createDialog:({options:e,screenshotIntegration:t,sendFeedback:n,shadow:a})=>{const o=a,s=e.useSentryUser,r=function(){const e=Pe().getUser(),t=Le().getUser(),n=Ne().getUser();return e&&Object.keys(e).length?e:t&&Object.keys(t).length?t:n}(),i=Vi.createElement("div"),c=function(e){const t=Vi.createElement("style");return t.textContent="\n:host {\n --dialog-inset: var(--inset);\n}\n\n\n.dialog {\n position: fixed;\n z-index: var(--z-index);\n margin: 0;\n inset: 0;\n\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n height: 100vh;\n width: 100vw;\n\n color: var(--dialog-color, var(--foreground));\n fill: var(--dialog-color, var(--foreground));\n line-height: 1.75em;\n\n background-color: rgba(0, 0, 0, 0.05);\n border: none;\n inset: 0;\n opacity: 1;\n transition: opacity 0.2s ease-in-out;\n}\n\n.dialog__position {\n position: fixed;\n z-index: var(--z-index);\n inset: var(--dialog-inset);\n padding: var(--page-margin);\n display: flex;\n max-height: calc(100vh - (2 * var(--page-margin)));\n}\n@media (max-width: 600px) {\n .dialog__position {\n inset: var(--page-margin);\n padding: 0;\n }\n}\n\n.dialog__position:has(.editor) {\n inset: var(--page-margin);\n padding: 0;\n}\n\n.dialog:not([open]) {\n opacity: 0;\n pointer-events: none;\n visibility: hidden;\n}\n.dialog:not([open]) .dialog__content {\n transform: translate(0, -16px) scale(0.98);\n}\n\n.dialog__content {\n display: flex;\n flex-direction: column;\n gap: 16px;\n padding: var(--dialog-padding, 24px);\n max-width: 100%;\n width: 100%;\n max-height: 100%;\n overflow: auto;\n\n background: var(--dialog-background, var(--background));\n border-radius: var(--dialog-border-radius, 20px);\n border: var(--dialog-border, var(--border));\n box-shadow: var(--dialog-box-shadow, var(--box-shadow));\n transform: translate(0, 0) scale(1);\n transition: transform 0.2s ease-in-out;\n}\n\n\n\n.dialog__header {\n display: flex;\n gap: 4px;\n justify-content: space-between;\n font-weight: var(--dialog-header-weight, 600);\n margin: 0;\n}\n.dialog__title {\n align-self: center;\n width: var(--form-width, 272px);\n}\n\n@media (max-width: 600px) {\n .dialog__title {\n width: auto;\n }\n}\n\n.dialog__position:has(.editor) .dialog__title {\n width: auto;\n}\n\n\n.brand-link {\n display: inline-flex;\n}\n.brand-link:focus-visible {\n outline: var(--outline);\n}\n\n\n.form {\n display: flex;\n overflow: auto;\n flex-direction: row;\n gap: 16px;\n flex: 1 0;\n}\n\n.form fieldset {\n border: none;\n margin: 0;\n padding: 0;\n}\n\n.form__right {\n flex: 0 0 auto;\n display: flex;\n overflow: auto;\n flex-direction: column;\n justify-content: space-between;\n gap: 20px;\n width: var(--form-width, 100%);\n}\n\n.dialog__position:has(.editor) .form__right {\n width: var(--form-width, 272px);\n}\n\n.form__top {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.form__error-container {\n color: var(--error-color);\n fill: var(--error-color);\n}\n\n.form__label {\n display: flex;\n flex-direction: column;\n gap: 4px;\n margin: 0px;\n}\n\n.form__label__text {\n display: flex;\n gap: 4px;\n align-items: center;\n}\n\n.form__label__text--required {\n font-size: 0.85em;\n}\n\n.form__input {\n font-family: inherit;\n line-height: inherit;\n background: transparent;\n box-sizing: border-box;\n border: var(--input-border, var(--border));\n border-radius: var(--input-border-radius, 6px);\n color: var(--input-color, inherit);\n fill: var(--input-color, inherit);\n font-size: var(--input-font-size, inherit);\n font-weight: var(--input-font-weight, 500);\n padding: 6px 12px;\n}\n\n.form__input::placeholder {\n opacity: 0.65;\n color: var(--input-placeholder-color, inherit);\n filter: var(--interactive-filter);\n}\n\n.form__input:focus-visible {\n outline: var(--input-focus-outline, var(--outline));\n}\n\n.form__input--textarea {\n font-family: inherit;\n resize: vertical;\n}\n\n.error {\n color: var(--error-color);\n fill: var(--error-color);\n}\n\n\n.btn-group {\n display: grid;\n gap: 8px;\n}\n\n.btn {\n line-height: inherit;\n border: var(--button-border, var(--border));\n border-radius: var(--button-border-radius, 6px);\n cursor: pointer;\n font-family: inherit;\n font-size: var(--button-font-size, inherit);\n font-weight: var(--button-font-weight, 600);\n padding: var(--button-padding, 6px 16px);\n}\n.btn[disabled] {\n opacity: 0.6;\n pointer-events: none;\n}\n\n.btn--primary {\n color: var(--button-primary-color, var(--accent-foreground));\n fill: var(--button-primary-color, var(--accent-foreground));\n background: var(--button-primary-background, var(--accent-background));\n border: var(--button-primary-border, var(--border));\n border-radius: var(--button-primary-border-radius, 6px);\n font-weight: var(--button-primary-font-weight, 500);\n}\n.btn--primary:hover {\n color: var(--button-primary-hover-color, var(--accent-foreground));\n fill: var(--button-primary-hover-color, var(--accent-foreground));\n background: var(--button-primary-hover-background, var(--accent-background));\n filter: var(--interactive-filter);\n}\n.btn--primary:focus-visible {\n background: var(--button-primary-hover-background, var(--accent-background));\n filter: var(--interactive-filter);\n outline: var(--button-primary-focus-outline, var(--outline));\n}\n\n.btn--default {\n color: var(--button-color, var(--foreground));\n fill: var(--button-color, var(--foreground));\n background: var(--button-background, var(--background));\n border: var(--button-border, var(--border));\n border-radius: var(--button-border-radius, 6px);\n font-weight: var(--button-font-weight, 500);\n}\n.btn--default:hover {\n color: var(--button-color, var(--foreground));\n fill: var(--button-color, var(--foreground));\n background: var(--button-hover-background, var(--background));\n filter: var(--interactive-filter);\n}\n.btn--default:focus-visible {\n background: var(--button-hover-background, var(--background));\n filter: var(--interactive-filter);\n outline: var(--button-focus-outline, var(--outline));\n}\n\n\n.success__position {\n position: fixed;\n inset: var(--dialog-inset);\n padding: var(--page-margin);\n z-index: var(--z-index);\n}\n.success__content {\n background: var(--success-background, var(--background));\n border: var(--success-border, var(--border));\n border-radius: var(--success-border-radius, 1.7em/50%);\n box-shadow: var(--success-box-shadow, var(--box-shadow));\n font-weight: var(--success-font-weight, 600);\n color: var(--success-color);\n fill: var(--success-color);\n padding: 12px 24px;\n line-height: 1.75em;\n\n display: grid;\n align-items: center;\n grid-auto-flow: column;\n gap: 6px;\n cursor: default;\n}\n\n.success__icon {\n display: flex;\n}\n\n",e&&t.setAttribute("nonce",e),t}(e.styleNonce);let u="";const l={get el(){return i},appendToDom(){o.contains(c)||o.contains(i)||(o.appendChild(c),o.appendChild(i))},removeFromDom(){i.remove(),c.remove(),Vi.body.style.overflow=u},open(){d(!0),e.onFormOpen?.(),Ue()?.emit("openFeedbackWidget"),u=Vi.body.style.overflow,Vi.body.style.overflow="hidden"},close(){d(!1),Vi.body.style.overflow=u}},p=t?.createInput({h:yc,hooks:mu,dialog:l,options:e}),d=t=>{!function(e,t){var n,a,o;rc.__&&rc.__(e,t),n=t.__k,a=[],o=[],Oc(t,e=t.__k=yc(wc,null,[e]),n||dc,dc,void 0!==t.ownerSVGElement,n?null:t.firstChild?sc.call(t.childNodes):null,a,n?n.__e:t.firstChild,!1,o),e.__d=void 0,Dc(a,e,o)}(yc(wu,{options:e,screenshotInput:p,showName:e.showName||e.isNameRequired,showEmail:e.showEmail||e.isEmailRequired,defaultName:s&&r?.[s.name]||"",defaultEmail:s&&r?.[s.email]||"",onFormClose:()=>{d(!1),e.onFormClose?.()},onSubmit:n,onSubmitSuccess:(t,n)=>{d(!1),e.onSubmitSuccess?.(t,n)},onSubmitError:t=>{e.onSubmitError?.(t)},onFormSubmitted:()=>{e.onFormSubmitted?.()},open:t}),i)};return l}});function _u(e){const t=Vi.createElement("style"),n="#1A141F",a="#302735";return t.textContent=`\n.editor {\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n}\n\n.editor__image-container {\n justify-items: center;\n padding: 15px;\n position: relative;\n height: 100%;\n border-radius: var(--menu-border-radius, 6px);\n\n background-color: ${n};\n background-image: repeating-linear-gradient(\n -145deg,\n transparent,\n transparent 8px,\n ${n} 8px,\n ${n} 11px\n ),\n repeating-linear-gradient(\n -45deg,\n transparent,\n transparent 15px,\n ${a} 15px,\n ${a} 16px\n );\n}\n\n.editor__canvas-container {\n width: 100%;\n height: 100%;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.editor__canvas-container > * {\n object-fit: contain;\n position: absolute;\n}\n\n.editor__tool-container {\n padding-top: 8px;\n display: flex;\n justify-content: center;\n}\n\n.editor__tool-bar {\n display: flex;\n gap: 8px;\n}\n\n.editor__tool {\n display: flex;\n padding: 8px 12px;\n justify-content: center;\n align-items: center;\n border: var(--button-border, var(--border));\n border-radius: var(--button-border-radius, 6px);\n background: var(--button-background, var(--background));\n color: var(--button-color, var(--foreground));\n}\n\n.editor__tool--active {\n background: var(--button-primary-background, var(--accent-background));\n color: var(--button-primary-color, var(--accent-foreground));\n}\n\n.editor__rect {\n position: absolute;\n z-index: 2;\n}\n\n.editor__rect button {\n opacity: 0;\n position: absolute;\n top: -12px;\n right: -12px;\n cursor: pointer;\n padding: 0;\n z-index: 3;\n border: none;\n background: none;\n}\n\n.editor__rect:hover button {\n opacity: 1;\n}\n`,e&&t.setAttribute("nonce",e),t}function ju(e,t,n){if(!e)return;const a=e.getContext("2d",t);a&&n(e,a)}function Su(e,t){ju(e,{alpha:!0},(e,n)=>{n.drawImage(t,0,0,t.width,t.height,0,0,e.width,e.height)})}function xu(e,t,n){ju(e,{alpha:!0},(e,a)=>{n.length&&(a.fillStyle="rgba(0, 0, 0, 0.25)",a.fillRect(0,0,e.width,e.height)),n.forEach(e=>{!function(e,t,n){switch(e.type){case"highlight":t.shadowColor="rgba(0, 0, 0, 0.7)",t.shadowBlur=50,t.fillStyle=n,t.fillRect(e.x-1,e.y-1,e.w+2,e.h+2),t.clearRect(e.x,e.y,e.w,e.h);break;case"hide":t.fillStyle="rgb(0, 0, 0)",t.fillRect(e.x,e.y,e.w,e.h)}}(e,a,t)})})}function zu({h:e,hooks:t,outputBuffer:n,dialog:a,options:o}){const s=function({hooks:e}){return function({onBeforeScreenshot:t,onScreenshot:n,onAfterScreenshot:a,onError:o}){const s=function(){const[t,n]=e.useState(Wi.devicePixelRatio??1);return e.useEffect(()=>{const e=()=>{n(Wi.devicePixelRatio)},t=matchMedia(`(resolution: ${Wi.devicePixelRatio}dppx)`);return t.addEventListener("change",e),()=>{t.removeEventListener("change",e)}},[]),t}();e.useEffect(()=>{(async()=>{t();const e=await Ji.mediaDevices.getDisplayMedia({video:{width:Wi.innerWidth*s,height:Wi.innerHeight*s},audio:!1,monitorTypeSurfaces:"exclude",preferCurrentTab:!0,selfBrowserSurface:"include",surfaceSwitching:"exclude"}),o=Vi.createElement("video");await new Promise((t,a)=>{o.srcObject=e,o.onloadedmetadata=()=>{n(o,s),e.getTracks().forEach(e=>e.stop()),t()},o.play().catch(a)}),a()})().catch(o)},[])}}({hooks:t}),r=function({h:e}){return function({action:t,setAction:n,options:a}){return e("div",{class:"editor__tool-container"},e("div",{class:"editor__tool-bar"},e("button",{type:"button",class:"editor__tool "+("highlight"===t?"editor__tool--active":""),onClick:()=>{n("highlight"===t?"":"highlight")}},a.highlightToolText),e("button",{type:"button",class:"editor__tool "+("hide"===t?"editor__tool--active":""),onClick:()=>{n("hide"===t?"":"hide")}},a.hideToolText)))}}({h:e}),i=function({h:e}){return function(){return e("svg",{"data-test-id":"icon-close",viewBox:"0 0 16 16",fill:"#2B2233",height:"25px",width:"25px"},e("circle",{r:"7",cx:"8",cy:"8",fill:"white"}),e("path",{strokeWidth:"1.5",d:"M8,16a8,8,0,1,1,8-8A8,8,0,0,1,8,16ZM8,1.53A6.47,6.47,0,1,0,14.47,8,6.47,6.47,0,0,0,8,1.53Z"}),e("path",{strokeWidth:"1.5",d:"M5.34,11.41a.71.71,0,0,1-.53-.22.74.74,0,0,1,0-1.06l5.32-5.32a.75.75,0,0,1,1.06,1.06L5.87,11.19A.74.74,0,0,1,5.34,11.41Z"}),e("path",{strokeWidth:"1.5",d:"M10.66,11.41a.74.74,0,0,1-.53-.22L4.81,5.87A.75.75,0,0,1,5.87,4.81l5.32,5.32a.74.74,0,0,1,0,1.06A.71.71,0,0,1,10.66,11.41Z"}))}}({h:e}),c={__html:_u(o.styleNonce).innerText},u=a.el.style,l=({screenshot:a})=>{const[s,u]=t.useState("highlight"),[l,p]=t.useState([]),d=t.useRef(null),m=t.useRef(null),h=t.useRef(null),g=t.useRef(null),[f,k]=t.useState(1),y=t.useMemo(()=>{const e=Vi.getElementById(o.id);if(!e)return"white";const t=getComputedStyle(e);return t.getPropertyValue("--button-primary-background")||t.getPropertyValue("--accent-background")},[o.id]);t.useLayoutEffect(()=>{const e=()=>{const t=d.current;t&&(ju(a.canvas,{alpha:!1},e=>{const n=Math.min(t.clientWidth/e.width,t.clientHeight/e.height);k(n)}),0!==t.clientHeight&&0!==t.clientWidth||setTimeout(e,0))};return e(),Wi.addEventListener("resize",e),()=>{Wi.removeEventListener("resize",e)}},[a]);const b=t.useCallback((e,t)=>{ju(e,{alpha:!0},(e,n)=>{n.scale(t,t),e.width=a.canvas.width,e.height=a.canvas.height})},[a]);t.useEffect(()=>{b(m.current,a.dpi),Su(m.current,a.canvas)},[a]),t.useEffect(()=>{b(h.current,a.dpi),ju(h.current,{alpha:!0},(e,t)=>{t.clearRect(0,0,e.width,e.height)}),xu(h.current,y,l)},[l,y]),t.useEffect(()=>{b(n,a.dpi),Su(n,a.canvas),ju(Vi.createElement("canvas"),{alpha:!0},(e,t)=>{t.scale(a.dpi,a.dpi),e.width=a.canvas.width,e.height=a.canvas.height,xu(e,y,l),Su(n,e)})},[l,a,y]);const w=t.useCallback(e=>t=>{t.preventDefault(),t.stopPropagation(),p(t=>{const n=[...t];return n.splice(e,1),n})},[]),v={width:a.canvas.width*f+"px",height:a.canvas.height*f+"px"},_=e=>{e.stopPropagation()};return e("div",{class:"editor"},e("style",{nonce:o.styleNonce,dangerouslySetInnerHTML:c}),e("div",{class:"editor__image-container"},e("div",{class:"editor__canvas-container",ref:d},e("canvas",{ref:m,id:"background",style:v}),e("canvas",{ref:h,id:"foreground",style:v}),e("div",{ref:g,onMouseDown:e=>{if(!s||!g.current)return;const t=g.current.getBoundingClientRect(),n={type:s,x:e.offsetX/f,y:e.offsetY/f},a=(e,n)=>{const a=(n.clientX-t.x)/f,o=(n.clientY-t.y)/f;return{type:e.type,x:Math.min(e.x,a),y:Math.min(e.y,o),w:Math.abs(a-e.x),h:Math.abs(o-e.y)}},o=e=>{ju(h.current,{alpha:!0},(e,t)=>{t.clearRect(0,0,e.width,e.height)}),xu(h.current,y,[...l,a(n,e)])},r=e=>{const t=a(n,e);t.w*f>=1&&t.h*f>=1&&p(e=>[...e,t]),Vi.removeEventListener("mousemove",o),Vi.removeEventListener("mouseup",r)};Vi.addEventListener("mousemove",o),Vi.addEventListener("mouseup",r)},style:v},l.map((t,n)=>e("div",{key:n,class:"editor__rect",style:{top:t.y*f+"px",left:t.x*f+"px",width:t.w*f+"px",height:t.h*f+"px"}},e("button",{"aria-label":o.removeHighlightText,onClick:w(n),onMouseDown:_,onMouseUp:_,type:"button"},e(i,null))))))),e(r,{options:o,action:s,setAction:u}))};return function({onError:a}){const[o,r]=t.useState();return s({onBeforeScreenshot:t.useCallback(()=>{u.display="none"},[]),onScreenshot:t.useCallback((e,t)=>{ju(Vi.createElement("canvas"),{alpha:!1},(n,a)=>{a.scale(t,t),n.width=e.videoWidth,n.height=e.videoHeight,a.drawImage(e,0,0,n.width,n.height),r({canvas:n,dpi:t})}),n.width=e.videoWidth,n.height=e.videoHeight},[]),onAfterScreenshot:t.useCallback(()=>{u.display="block"},[]),onError:t.useCallback(e=>{u.display="block",a(e)},[])}),o?e(l,{screenshot:o}):e("div",null)}}const Eu=()=>({name:"FeedbackScreenshot",setupOnce(){},createInput:({h:e,hooks:t,dialog:n,options:a})=>{const o=Vi.createElement("canvas");return{input:zu({h:e,hooks:t,outputBuffer:o,dialog:n,options:a}),value:async()=>{const e=await new Promise(e=>{o.toBlob(e,"image/png")});if(e)return{data:new Uint8Array(await e.arrayBuffer()),filename:"screenshot.png",contentType:"application/png"}}}}}),Tu={replayIntegration:"replay",replayCanvasIntegration:"replay-canvas",feedbackIntegration:"feedback",feedbackModalIntegration:"feedback-modal",feedbackScreenshotIntegration:"feedback-screenshot",captureConsoleIntegration:"captureconsole",contextLinesIntegration:"contextlines",linkedErrorsIntegration:"linkederrors",dedupeIntegration:"dedupe",extraErrorDataIntegration:"extraerrordata",graphqlClientIntegration:"graphqlclient",httpClientIntegration:"httpclient",reportingObserverIntegration:"reportingobserver",rewriteFramesIntegration:"rewriteframes",browserProfilingIntegration:"browserprofiling",moduleMetadataIntegration:"modulemetadata",instrumentAnthropicAiClient:"instrumentanthropicaiclient",instrumentOpenAiClient:"instrumentopenaiclient",instrumentGoogleGenAIClient:"instrumentgooglegenaiclient",instrumentLangGraph:"instrumentlanggraph",createLangChainCallbackHandler:"createlangchaincallbackhandler"},Cu=Qs;async function Iu(e,t){const n=Tu[e],a=Cu.Sentry=Cu.Sentry||{};if(!n)throw new Error(`Cannot lazy load integration: ${e}`);const o=a[e];if("function"==typeof o&&!("_isShim"in o))return o;const s=function(e){const t=Ue(),n=t?.getOptions()?.cdnBaseUrl||"https://browser.sentry-cdn.com";return new URL(`/${c}/${e}.min.js`,n).toString()}(n),r=Qs.document.createElement("script");r.src=s,r.crossOrigin="anonymous",r.referrerPolicy="strict-origin",t&&r.setAttribute("nonce",t);const i=new Promise((e,t)=>{r.addEventListener("load",()=>e()),r.addEventListener("error",t)}),u=Qs.document.currentScript,l=Qs.document.body||Qs.document.head||u?.parentElement;if(!l)throw new Error(`Could not find parent element to insert lazy-loaded ${e} script`);l.appendChild(r);try{await i}catch{throw new Error(`Error when loading integration: ${e}`)}const p=a[e];if("function"!=typeof p)throw new Error(`Could not load integration: ${e}`);return p}const Mu=ac({lazyLoadIntegration:Iu}),Ru=ac({getModalIntegration:()=>vu,getScreenshotIntegration:()=>Eu}),Au="MULTIPLEXED_TRANSPORT_EXTRA_KEY";function Ou(e,t){let n;return No(e,(e,a)=>(t.includes(a)&&(n=Array.isArray(e)?e[1]:void 0),!!n)),n}function Du(e,t){return n=>{const a=e(n),o=new Map,s=t||(e=>{const t=e.getEvent();return t?.extra?.[Au]&&Array.isArray(t.extra[Au])?t.extra[Au]:[]});function r(t,a){const s=a?`${t}:${a}`:t;let r=o.get(s);if(!r){const i=ft(t);if(!i)return;const c=Do(i,n.tunnel);r=a?function(e,t){return n=>{const a=e(n);return{...a,send:async e=>{const n=Ou(e,["event","transaction","profile","replay_event"]);return n&&(n.release=t),a.send(e)}}}}(e,a)({...n,url:c}):e({...n,url:c}),o.set(s,r)}return[t,r]}return{send:async function(e){const t=s({envelope:e,getEvent:function(t){return Ou(e,t?.length?t:["event"])}}).map(e=>"string"==typeof e?r(e,void 0):r(e.dsn,e.release)).filter(e=>!!e),n=t.length?t:[["",a]];return(await Promise.all(n.map(([t,n])=>n.send(function(e,t){return Po(t?{...e[0],dsn:t}:e[0],e[1])}(e,t)))))[0]},flush:async function(e){const t=[...o.values(),a];return(await Promise.all(t.map(t=>t.flush(e)))).every(e=>e)}}}}const Pu=(e={})=>{const t=e.levels||O,n=e.handled??!0;return{name:"CaptureConsole",setup(e){"console"in u&&lr(({args:a,level:o})=>{Ue()===e&&t.includes(o)&&function(e,t,n){const a=jr(t),o=new Error,s={level:jr(t),extra:{arguments:e}};$e(r=>{if(r.addEventProcessor(e=>(e.logger="console",he(e,{handled:n,type:"auto.core.capture_console"}),e)),"assert"===t){if(!e[0]){const t=`Assertion failed: ${re(e.slice(1)," ")||"console.assert"}`;r.setExtra("arguments",e.slice(1)),r.captureMessage(t,a,{captureContext:s,syntheticException:o})}return}const i=e.find(e=>e instanceof Error);if(i)return void bn(i,s);const c=re(e," ");r.captureMessage(c,a,{captureContext:s,syntheticException:o})})}(a,o,n)})}}};function Lu(e,t,n){return"util"in u&&"function"==typeof u.util.format?u.util.format(...e):function(e,t,n){return e.map(e=>v(e)?String(e):JSON.stringify(hn(e,t,n))).join(" ")}(e,t,n)}function Nu(e,t){const n={},a=new Array(t.length).fill("{}").join(" ");return n["sentry.message.template"]=`${e} ${a}`,t.forEach((e,t)=>{n[`sentry.message.parameter.${t}`]=e}),n}const $u={[Qe]:"auto.log.console"},Fu=(e={})=>{const t=e.levels||O;return{name:"ConsoleLogs",setup(e){const{enableLogs:n,normalizeDepth:a=3,normalizeMaxBreadth:o=1e3}=e.getOptions();n?lr(({args:n,level:s})=>{if(Ue()!==e||!t.includes(s))return;const r=n[0],i=n.slice(1);if("assert"===s)return void(r||as({level:"error",message:i.length>0?`Assertion failed: ${Lu(i,a,o)}`:"Assertion failed",attributes:$u}));const c="log"===s,u=n.length>1&&"string"==typeof n[0]&&(l=n[0],!/%[sdifocO]/.test(l));var l;const p={...$u,...u?Nu(r,i):{}};as({level:c?"info":s,message:Lu(n,a,o),severityNumber:c?10:void 0,attributes:p})}):m&&F.warn("`enableLogs` is not enabled, ConsoleLogs integration disabled")}}};function Uu(e,t,n=()=>{},a=()=>{}){let o;try{o=e()}catch(e){throw t(e),n(),e}return function(e,t,n,a){return S(e)?e.then(e=>(n(),a(e),e),e=>{throw t(e),n(),e}):(n(),a(e),e)}(o,t,n,a)}class Bu{constructor(e={}){this._traceId=e.traceId||Se(),this._spanId=e.spanId||xe()}spanContext(){return{spanId:this._spanId,traceId:this._traceId,traceFlags:0}}end(e){}setAttribute(e,t){return this}setAttributes(e){return this}setStatus(e){return this}updateName(e){return this}isRecording(){return!1}addEvent(e,t,n){return this}addLink(e){return this}addLinks(e){return this}recordException(e,t){}}function qu(e,t,n,a=Xt()){const o=a&&Kt(a);o&&(m&&F.log(`[Measurement] Setting measurement on root span: ${e} = ${t} ${n}`),o.addEvent(e,{[nt]:t,[tt]:n}))}function Hu(e){if(!e||0===e.length)return;const t={};return e.forEach(e=>{const n=e.attributes||{},a=n[tt],o=n[nt];"string"==typeof a&&"number"==typeof o&&(t[e.name]={value:o,unit:a})}),t}class Wu{constructor(e={}){this._traceId=e.traceId||Se(),this._spanId=e.spanId||xe(),this._startTime=e.startTimestamp||we(),this._links=e.links,this._attributes={},this.setAttributes({[Qe]:"manual",[Ze]:e.op,...e.attributes}),this._name=e.name,e.parentSpanId&&(this._parentSpanId=e.parentSpanId),"sampled"in e&&(this._sampled=e.sampled),e.endTimestamp&&(this._endTime=e.endTimestamp),this._events=[],this._isStandaloneSpan=e.isStandalone,this._endTime&&this._onSpanEnded()}addLink(e){return this._links?this._links.push(e):this._links=[e],this}addLinks(e){return this._links?this._links.push(...e):this._links=e,this}recordException(e,t){}spanContext(){const{_spanId:e,_traceId:t,_sampled:n}=this;return{spanId:e,traceId:t,traceFlags:n?Dt:0}}setAttribute(e,t){return void 0===t?delete this._attributes[e]:this._attributes[e]=t,this}setAttributes(e){return Object.keys(e).forEach(t=>this.setAttribute(t,e[t])),this}updateStartTime(e){this._startTime=Ut(e)}setStatus(e){return this._status=e,this}updateName(e){return this._name=e,this.setAttribute(Ge,"custom"),this}end(e){this._endTime||(this._endTime=Ut(e),function(e){if(!m)return;const{description:t="< unknown name >",op:n="< unknown op >"}=qt(e),{spanId:a}=e.spanContext(),o=`[Tracing] Finishing "${n}" ${Kt(e)===e?"root ":""}span "${t}" with ID ${a}`;F.log(o)}(this),this._onSpanEnded())}getSpanJSON(){return{data:this._attributes,description:this._name,op:this._attributes[Ze],parent_span_id:this._parentSpanId,span_id:this._spanId,start_timestamp:this._startTime,status:Wt(this._status),timestamp:this._endTime,trace_id:this._traceId,origin:this._attributes[Qe],profile_id:this._attributes[ot],exclusive_time:this._attributes[st],measurements:Hu(this._events),is_segment:this._isStandaloneSpan&&Kt(this)===this||void 0,segment_id:this._isStandaloneSpan?Kt(this).spanContext().spanId:void 0,links:Ft(this._links)}}isRecording(){return!this._endTime&&!!this._sampled}addEvent(e,t,n){m&&F.log("[Tracing] Adding an event to span:",e);const a=Vu(t)?t:n||we(),o=Vu(t)?{}:t||{},s={name:e,time:Ut(a),attributes:o};return this._events.push(s),this}isStandaloneSpan(){return!!this._isStandaloneSpan}_onSpanEnded(){const e=Ue();if(e&&e.emit("spanEnd",this),!this._isStandaloneSpan&&this!==Kt(this))return;if(this._isStandaloneSpan)return void(this._sampled?function(e){const t=Ue();if(!t)return;const n=e[1];n&&0!==n.length?t.sendEnvelope(e):t.recordDroppedEvent("before_send","span")}(function(e,t){const n=on(e[0]),a=t?.getDsn(),o=t?.getOptions().tunnel,s={sent_at:(new Date).toISOString(),...function(e){return!!e.trace_id&&!!e.public_key}(n)&&{trace:n},...!!o&&a&&{dsn:gt(a)}},{beforeSendSpan:r,ignoreSpans:i}=t?.getOptions()||{},c=i?.length?e.filter(e=>!Go(qt(e),i)):e,u=e.length-c.length;u&&t?.recordDroppedEvent("before_send","span",u);const l=r?e=>{const t=qt(e);return r(t)||(Zt(),t)}:qt,p=[];for(const e of c){const t=l(e);t&&p.push(Bo(t))}return Po(s,p)}([this],e)):(m&&F.log("[Tracing] Discarding standalone span because its trace was not chosen to be sampled."),e&&e.recordDroppedEvent("sample_rate","span")));const t=this._convertSpanToTransaction();t&&(Ct(this).scope||Pe()).captureEvent(t)}_convertSpanToTransaction(){if(!Ju(qt(this)))return;this._name||(m&&F.warn("Transaction has no name, falling back to `<unlabeled transaction>`."),this._name="<unlabeled transaction>");const{scope:e,isolationScope:t}=Ct(this),n=e?.getScopeData().sdkProcessingMetadata?.normalizedRequest;if(!0!==this._sampled)return;const a=Gt(this).filter(e=>e!==this&&!function(e){return e instanceof Wu&&e.isStandaloneSpan()}(e)).map(e=>qt(e)).filter(Ju),o=this._attributes[Ge];delete this._attributes[at],a.forEach(e=>{delete e.data[at]});const s={contexts:{trace:Lt(this)},spans:a.length>1e3?a.sort((e,t)=>e.start_timestamp-t.start_timestamp).slice(0,1e3):a,start_timestamp:this._startTime,timestamp:this._endTime,transaction:this._name,type:"transaction",sdkProcessingMetadata:{capturedSpanScope:e,capturedSpanIsolationScope:t,dynamicSamplingContext:on(this)},request:n,...o&&{transaction_info:{source:o}}},r=Hu(this._events);return r&&Object.keys(r).length&&(m&&F.log("[Measurements] Adding measurements to transaction event",JSON.stringify(r,void 0,2)),s.measurements=r),s}}function Vu(e){return e&&"number"==typeof e||e instanceof Date||Array.isArray(e)}function Ju(e){return!!(e.start_timestamp&&e.timestamp&&e.span_id&&e.trace_id)}const Yu="__SENTRY_SUPPRESS_TRACING__";function Gu(e,t){const n=ol();if(n.startSpan)return n.startSpan(e,t);const a=al(e),{forceTransaction:o,parentSpan:s,scope:r}=e,i=r?.clone();return $e(i,()=>il(s)(()=>{const n=Pe(),r=rl(n,s),i=e.onlyIfParent&&!r?new Bu:nl({parentSpan:r,spanArguments:a,forceTransaction:o,scope:n});return Ee(n,i),Uu(()=>t(i),()=>{const{status:e}=qt(i);!i.isRecording()||e&&"ok"!==e||i.setStatus({code:jt,message:"internal_error"})},()=>{i.end()})}))}function Ku(e,t){const n=ol();if(n.startSpanManual)return n.startSpanManual(e,t);const a=al(e),{forceTransaction:o,parentSpan:s,scope:r}=e,i=r?.clone();return $e(i,()=>il(s)(()=>{const n=Pe(),r=rl(n,s),i=e.onlyIfParent&&!r?new Bu:nl({parentSpan:r,spanArguments:a,forceTransaction:o,scope:n});return Ee(n,i),Uu(()=>t(i,()=>i.end()),()=>{const{status:e}=qt(i);!i.isRecording()||e&&"ok"!==e||i.setStatus({code:jt,message:"internal_error"})})}))}function Xu(e){const t=ol();if(t.startInactiveSpan)return t.startInactiveSpan(e);const n=al(e),{forceTransaction:a,parentSpan:o}=e;return(e.scope?t=>$e(e.scope,t):void 0!==o?e=>Qu(o,e):e=>e())(()=>{const t=Pe(),s=rl(t,o);return e.onlyIfParent&&!s?new Bu:nl({parentSpan:s,spanArguments:n,forceTransaction:a,scope:t})})}const Zu=(e,t)=>{const n=De(l());if(n.continueTrace)return n.continueTrace(e,t);const{sentryTrace:a,baggage:o}=e,s=Ue(),r=lt(o);return s&&!function(e,t){const n=yt(e);return t&&n&&t!==n?(F.log(`Won't continue trace because org IDs don't match (incoming baggage: ${t}, SDK options: ${n})`),!1):!e.getOptions().strictTraceContinuation||!(t&&!n||!t&&n)||(F.log(`Starting a new trace because strict trace continuation is enabled but one org ID is missing (incoming baggage: ${t}, Sentry client: ${n})`),!1)}(s,r?.org_id)?tl(t):$e(e=>{const n=Rt(a,o);return e.setPropagationContext(n),Ee(e,void 0),t()})};function Qu(e,t){const n=ol();return n.withActiveSpan?n.withActiveSpan(e,t):$e(n=>(Ee(n,e||void 0),t(n)))}function el(e){const t=ol();return t.suppressTracing?t.suppressTracing(e):$e(t=>{t.setSDKProcessingMetadata({[Yu]:!0});const n=e();return t.setSDKProcessingMetadata({[Yu]:void 0}),n})}function tl(e){return $e(t=>(t.setPropagationContext({traceId:Se(),sampleRand:Math.random()}),m&&F.log(`Starting a new trace with id ${t.getPropagationContext().traceId}`),Qu(null,e)))}function nl({parentSpan:e,spanArguments:t,forceTransaction:n,scope:a}){if(!wt()){const a=new Bu;return!n&&e||tn(a,{sampled:"false",sample_rate:"0",transaction:t.name,...on(a)}),a}const o=Le();let s;if(e&&!n)s=function(e,t,n){const{spanId:a,traceId:o}=e.spanContext(),s=!t.getScopeData().sdkProcessingMetadata[Yu]&&Ht(e),r=s?new Wu({...n,parentSpanId:a,traceId:o,sampled:s}):new Bu({traceId:o});Yt(e,r);const i=Ue();return i&&(i.emit("spanStart",r),n.endTimestamp&&i.emit("spanEnd",r)),r}(e,a,t),Yt(e,s);else if(e){const n=on(e),{traceId:o,spanId:r}=e.spanContext(),i=Ht(e);s=sl({traceId:o,parentSpanId:r,...t},a,i),tn(s,n)}else{const{traceId:e,dsc:n,parentSpanId:r,sampled:i}={...o.getPropagationContext(),...a.getPropagationContext()};s=sl({traceId:e,parentSpanId:r,...t},a,i),n&&tn(s,n)}return function(e){if(!m)return;const{description:t="< unknown name >",op:n="< unknown op >",parent_span_id:a}=qt(e),{spanId:o}=e.spanContext(),s=Ht(e),r=Kt(e),i=r===e,c=`[Tracing] Starting ${s?"sampled":"unsampled"} ${i?"root ":""}span`,u=[`op: ${n}`,`name: ${t}`,`ID: ${o}`];if(a&&u.push(`parent ID: ${a}`),!i){const{op:e,description:t}=qt(r);u.push(`root ID: ${r.spanContext().spanId}`),e&&u.push(`root op: ${e}`),t&&u.push(`root description: ${t}`)}F.log(`${c}\n ${u.join("\n ")}`)}(s),function(e,t,n){e&&(B(e,Et,function(e){try{const t=u.WeakRef;if("function"==typeof t)return new t(e)}catch{}return e}(n)),B(e,zt,t))}(s,a,o),s}function al(e){const t={isStandalone:(e.experimental||{}).standalone,...e};if(e.startTime){const n={...t};return n.startTimestamp=Ut(e.startTime),delete n.startTime,n}return t}function ol(){return De(l())}function sl(e,t,n){const a=Ue(),o=a?.getOptions()||{},{name:s=""}=e,r={spanAttributes:{...e.attributes},spanName:s,parentSampled:n};a?.emit("beforeSampling",r,{decision:!1});const i=r.parentSampled??n,c=r.spanAttributes,u=t.getPropagationContext(),[l,p,d]=t.getScopeData().sdkProcessingMetadata[Yu]?[!1]:function(e,t,n){if(!wt(e))return[!1];let a,o;"function"==typeof e.tracesSampler?(o=e.tracesSampler({...t,inheritOrSampleWith:e=>"number"==typeof t.parentSampleRate?t.parentSampleRate:"boolean"==typeof t.parentSampled?Number(t.parentSampled):e}),a=!0):void 0!==t.parentSampled?o=t.parentSampled:void 0!==e.tracesSampleRate&&(o=e.tracesSampleRate,a=!0);const s=It(o);if(void 0===s)return m&&F.warn(`[Tracing] Discarding root span because of invalid sample rate. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(o)} of type ${JSON.stringify(typeof o)}.`),[!1];if(!s)return m&&F.log("[Tracing] Discarding transaction because "+("function"==typeof e.tracesSampler?"tracesSampler returned 0 or false":"a negative sampling decision was inherited or tracesSampleRate is set to 0")),[!1,s,a];const r=n<s;return r||m&&F.log(`[Tracing] Discarding transaction because it's not included in the random sample (sampling rate = ${Number(o)})`),[r,s,a]}(o,{name:s,parentSampled:i,attributes:c,parentSampleRate:It(u.dsc?.sample_rate)},u.sampleRand),h=new Wu({...e,attributes:{[Ge]:"custom",[Ke]:void 0!==p&&d?p:void 0,...c},sampled:l});return!l&&a&&(m&&F.log("[Tracing] Discarding root span because its trace was not chosen to be sampled."),a.recordDroppedEvent("sample_rate","transaction")),a&&a.emit("spanStart",h),h}function rl(e,t){if(t)return t;if(null===t)return;const n=Te(e);if(!n)return;const a=Ue();return(a?a.getOptions():{}).parentSpanIsAlwaysRootSpan?Kt(n):n}function il(e){return void 0!==e?t=>Qu(e,t):e=>e()}const cl=["trace","debug","info","warn","error","fatal"];function ul(e={}){const t=new Set(e.levels??cl),n=e.client;return{log(e){const{type:a,level:o,message:s,args:r,tag:i,date:c,...u}=e,l=n||Ue();if(!l)return;const p=function(e,t){if("verbose"===e)return"debug";if("silent"===e)return"trace";if(e){const t=ll[e];if(t)return t}if("number"==typeof t){const e=pl[t];if(e)return e}return"info"}(a,o);if(!t.has(p))return;const{normalizeDepth:d=3,normalizeMaxBreadth:m=1e3}=l.getOptions(),h=[];s&&h.push(s),r&&r.length>0&&h.push(Lu(r,d,m));const g=h.join(" ");u["sentry.origin"]="auto.log.consola",i&&(u["consola.tag"]=i),a&&(u["consola.type"]=a),null!=o&&"number"==typeof o&&(u["consola.level"]=o),as({level:p,message:g,attributes:u})}}}const ll={silent:"trace",fatal:"fatal",error:"error",warn:"warn",log:"info",info:"info",success:"info",fail:"error",ready:"info",start:"info",box:"info",debug:"debug",trace:"trace",verbose:"debug",critical:"fatal",notice:"info"},pl={0:"fatal",1:"warn",2:"info",3:"info",4:"debug",5:"trace"},dl="gen_ai.prompt",ml="gen_ai.system",hl="gen_ai.request.model",gl="gen_ai.request.stream",fl="gen_ai.request.temperature",kl="gen_ai.request.max_tokens",yl="gen_ai.request.frequency_penalty",bl="gen_ai.request.presence_penalty",wl="gen_ai.request.top_p",vl="gen_ai.request.top_k",_l="gen_ai.request.encoding_format",jl="gen_ai.request.dimensions",Sl="gen_ai.response.finish_reasons",xl="gen_ai.response.model",zl="gen_ai.response.id",El="gen_ai.response.stop_reason",Tl="gen_ai.usage.input_tokens",Cl="gen_ai.usage.output_tokens",Il="gen_ai.usage.total_tokens",Ml="gen_ai.operation.name",Rl="gen_ai.request.messages",Al="gen_ai.response.text",Ol="gen_ai.request.available_tools",Dl="gen_ai.response.streaming",Pl="gen_ai.response.tool_calls",Ll="gen_ai.agent.name",Nl="gen_ai.pipeline.name",$l="gen_ai.usage.cache_creation_input_tokens",Fl="gen_ai.usage.cache_read_input_tokens",Ul="gen_ai.invoke_agent",Bl="openai.response.id",ql="openai.response.model",Hl="openai.response.timestamp",Wl="openai.usage.completion_tokens",Vl="openai.usage.prompt_tokens",Jl={CHAT:"chat",RESPONSES:"responses",EMBEDDINGS:"embeddings"},Yl="anthropic.response.timestamp",Gl="auto.ai.langchain",Kl={human:"user",ai:"assistant",assistant:"assistant",system:"system",function:"function",tool:"tool"},Xl=2e4,Zl=e=>(new TextEncoder).encode(e).length,Ql=e=>Zl(JSON.stringify(e));function ep(e,t){if(Zl(e)<=t)return e;let n=0,a=e.length,o="";for(;n<=a;){const s=Math.floor((n+a)/2),r=e.slice(0,s);Zl(r)<=t?(o=r,n=s+1):a=s-1}return o}function tp(e){return"string"==typeof e?e:e.text}function np(e,t){return"string"==typeof e?t:{...e,text:t}}function ap(e){return function(e,t){if(!Array.isArray(e)||0===e.length)return e;if(Ql(e)<=t)return e;const n=e.map(Ql);let a=0,o=e.length;for(let s=e.length-1;s>=0;s--){const e=n[s];if(e&&a+e>t)break;e&&(a+=e),o=s}return o===e.length?function(e,t){return e&&"object"==typeof e?function(e){return null!==e&&"object"==typeof e&&"content"in e&&"string"==typeof e.content}(e)?function(e,t){const n={...e,content:""},a=t-Ql(n);if(a<=0)return[];const o=ep(e.content,a);return[{...e,content:o}]}(e,t):function(e){return null!==e&&"object"==typeof e&&"parts"in e&&Array.isArray(e.parts)&&e.parts.length>0}(e)?function(e,t){const{parts:n}=e,a=n.map(e=>np(e,""));let o=t-Ql({...e,parts:a});if(o<=0)return[];const s=[];for(const e of n){const t=tp(e),n=Zl(t);if(!(n<=o)){if(0===s.length){const n=ep(t,o);n&&s.push(np(e,n));break}break}s.push(e),o-=n}return s.length>0?[{...e,parts:s}]:[]}(e,t):[]:[]}(e[e.length-1],t):e.slice(o)}(e,Xl)}const op=(e,t,n)=>{null!=n&&(e[t]=n)},sp=(e,t,n)=>{const a=Number(n);Number.isNaN(a)||(e[t]=a)};function rp(e){if("string"==typeof e)return e;try{return JSON.stringify(e)}catch{return String(e)}}function ip(e){const t=e.toLowerCase();return Kl[t]??t}function cp(e){return e.includes("System")?"system":e.includes("Human")?"user":e.includes("AI")||e.includes("Assistant")?"assistant":e.includes("Function")?"function":e.includes("Tool")?"tool":"user"}function up(e){if(e&&!Array.isArray(e))return e.invocation_params}function lp(e){return e.map(e=>{const t=e._getType;if("function"==typeof t)return{role:ip(t.call(e)),content:rp(e.content)};const n=e.constructor?.name;if(n)return{role:ip(cp(n)),content:rp(e.content)};if(e.type)return{role:ip(String(e.type).toLowerCase()),content:rp(e.content)};if(e.role)return{role:ip(String(e.role)),content:rp(e.content)};if(1===e.lc&&e.kwargs){const t=e.id,n=Array.isArray(t)&&t.length>0?t[t.length-1]:"";return{role:ip("string"==typeof n?cp(n):"user"),content:rp(e.kwargs?.content)}}return{role:"user",content:rp(e.content)}})}function pp(e,t,n){const a={},o="kwargs"in e?e.kwargs:void 0;sp(a,fl,t?.temperature??n?.ls_temperature??o?.temperature),sp(a,kl,t?.max_tokens??n?.ls_max_tokens??o?.max_tokens),sp(a,wl,t?.top_p??o?.top_p);const s=t?.frequency_penalty;sp(a,yl,s);const r=t?.presence_penalty;return sp(a,bl,r),t&&"stream"in t&&op(a,gl,Boolean(t.stream)),a}function dp(e,t,n,a,o,s){return{[ml]:rp(e??"langchain"),[Ml]:n,[hl]:rp(t),[Qe]:Gl,...pp(a,o,s)}}function mp(e={}){const t=e.recordInputs??!1,n=e.recordOutputs??!1,a=new Map,o=e=>{const t=a.get(e);t?.isRecording()&&(t.end(),a.delete(e))},s={lc_serializable:!1,lc_namespace:["langchain_core","callbacks","sentry"],lc_secrets:void 0,lc_attributes:void 0,lc_aliases:void 0,lc_serializable_keys:void 0,lc_id:["langchain_core","callbacks","sentry"],lc_kwargs:{},name:"SentryCallbackHandler",ignoreLLM:!1,ignoreChain:!1,ignoreAgent:!1,ignoreRetriever:!1,ignoreCustomEvent:!1,raiseError:!1,awaitHandlers:!0,handleLLMStart(e,n,o,s,r,i,c,u){const l=up(i),p=function(e,t,n,a,o){const s=o?.ls_provider,r=dp(s,a?.model??o?.ls_model_name??"unknown","pipeline",e,a,o);if(n&&Array.isArray(t)&&t.length>0){const e=t.map(e=>({role:"user",content:e}));op(r,Rl,rp(e))}return r}(e,n,t,l,c),d=p[hl];Ku({name:`${p[Ml]} ${d}`,op:"gen_ai.pipeline",attributes:{...p,[Ze]:"gen_ai.pipeline"}},e=>(a.set(o,e),e))},handleChatModelStart(e,n,o,s,r,i,c,u){const l=up(i),p=function(e,t,n,a,o){const s=dp(o?.ls_provider??e.id?.[2],a?.model??o?.ls_model_name??"unknown","chat",e,a,o);if(n&&Array.isArray(t)&&t.length>0){const e=ap(lp(t.flat()));op(s,Rl,rp(e))}return s}(e,n,t,l,c),d=p[hl];Ku({name:`${p[Ml]} ${d}`,op:"gen_ai.chat",attributes:{...p,[Ze]:"gen_ai.chat"}},e=>(a.set(o,e),e))},handleLLMEnd(e,t,s,r,i){const c=a.get(t);if(c?.isRecording()){const a=function(e,t){if(!e)return;const n={};if(Array.isArray(e.generations)){const a=e.generations.flat().map(e=>e.generationInfo?.finish_reason?e.generationInfo.finish_reason:e.generation_info?.finish_reason?e.generation_info.finish_reason:null).filter(e=>"string"==typeof e);if(a.length>0&&op(n,Sl,rp(a)),function(e,t){const n=[],a=e.flat();for(const e of a){const t=e.message?.content;if(Array.isArray(t))for(const e of t){const t=e;"tool_use"===t.type&&n.push(t)}}n.length>0&&op(t,Pl,rp(n))}(e.generations,n),t){const t=e.generations.flat().map(e=>e.text??e.message?.content).filter(e=>"string"==typeof e);t.length>0&&op(n,Al,rp(t))}}!function(e,t){if(!e)return;const n=e.tokenUsage,a=e.usage;if(n)sp(t,Tl,n.promptTokens),sp(t,Cl,n.completionTokens),sp(t,Il,n.totalTokens);else if(a){sp(t,Tl,a.input_tokens),sp(t,Cl,a.output_tokens);const e=Number(a.input_tokens),n=Number(a.output_tokens),o=(Number.isNaN(e)?0:e)+(Number.isNaN(n)?0:n);o>0&&sp(t,Il,o),void 0!==a.cache_creation_input_tokens&&sp(t,$l,a.cache_creation_input_tokens),void 0!==a.cache_read_input_tokens&&sp(t,Fl,a.cache_read_input_tokens)}}(e.llmOutput,n);const a=e.llmOutput,o=e.generations?.[0]?.[0],s=o?.message,r=a?.model_name??a?.model??s?.response_metadata?.model_name;r&&op(n,xl,r);const i=a?.id??s?.id;i&&op(n,zl,i);const c=a?.stop_reason??s?.response_metadata?.finish_reason;return c&&op(n,El,rp(c)),n}(e,n);a&&c.setAttributes(a),o(t)}},handleLLMError(e,t){const n=a.get(t);n?.isRecording()&&(n.setStatus({code:jt,message:"llm_error"}),o(t)),bn(e,{mechanism:{handled:!1,type:`${Gl}.llm_error_handler`}})},handleChainStart(e,n,o,s){const r=e.name||"unknown_chain",i={[Qe]:"auto.ai.langchain","langchain.chain.name":r};t&&(i["langchain.chain.inputs"]=JSON.stringify(n)),Ku({name:`chain ${r}`,op:"gen_ai.invoke_agent",attributes:{...i,[Ze]:"gen_ai.invoke_agent"}},e=>(a.set(o,e),e))},handleChainEnd(e,t){const s=a.get(t);s?.isRecording()&&(n&&s.setAttributes({"langchain.chain.outputs":JSON.stringify(e)}),o(t))},handleChainError(e,t){const n=a.get(t);n?.isRecording()&&(n.setStatus({code:jt,message:"chain_error"}),o(t)),bn(e,{mechanism:{handled:!1,type:`${Gl}.chain_error_handler`}})},handleToolStart(e,n,o,s){const r=e.name||"unknown_tool",i={[Qe]:Gl,"gen_ai.tool.name":r};t&&(i["gen_ai.tool.input"]=n),Ku({name:`execute_tool ${r}`,op:"gen_ai.execute_tool",attributes:{...i,[Ze]:"gen_ai.execute_tool"}},e=>(a.set(o,e),e))},handleToolEnd(e,t){const s=a.get(t);s?.isRecording()&&(n&&s.setAttributes({"gen_ai.tool.output":JSON.stringify(e)}),o(t))},handleToolError(e,t){const n=a.get(t);n?.isRecording()&&(n.setStatus({code:jt,message:"tool_error"}),o(t)),bn(e,{mechanism:{handled:!1,type:`${Gl}.tool_error_handler`}})},copy:()=>s,toJSON:()=>({lc:1,type:"not_implemented",id:s.lc_id}),toJSONNotImplemented:()=>({lc:1,type:"not_implemented",id:s.lc_id})};return s}const hp=(e={})=>{const{depth:t=3,captureErrorCause:n=!0}=e;return{name:"ExtraErrorData",processEvent(e,a,o){const{maxValueLength:s}=o.getOptions();return function(e,t={},n,a,o){if(!t.originalException||!g(t.originalException))return e;const s=t.originalException.name||t.originalException.constructor.name,r=gp(t.originalException,a,o);if(r){const t={...e.contexts},a=hn(r,n);return _(a)&&(B(a,"__sentry_skip_normalization__",!0),t[s]=a),{...e,contexts:t}}return e}(e,a,t,n,s)}}};function gp(e,t,n){try{const a=["name","message","stack","line","column","fileName","lineNumber","columnNumber","toJSON"],o={};for(const t of Object.keys(e)){if(-1!==a.indexOf(t))continue;const s=e[t];o[t]=g(s)||"string"==typeof s?n?oe(`${s}`,n):`${s}`:s}if(t&&void 0!==e.cause)if(g(e.cause)){const t=e.cause.name||e.cause.constructor.name;o.cause={[t]:gp(e.cause,!1,n)}}else o.cause=e.cause;if("function"==typeof e.toJSON){const t=e.toJSON();for(const e of Object.keys(t)){const n=t[e];o[e]=g(n)?n.toString():n}}return o}catch(e){m&&F.error("Unable to extract extra data from the Error object:",e)}return null}const fp=100,kp=10,yp="flag.evaluation.";function bp(e){const t=Pe().getScopeData().contexts.flags,n=t?t.values:[];return n.length?(void 0===e.contexts&&(e.contexts={}),e.contexts.flags={values:[...n]},e):e}function wp(e,t,n=fp){const a=Pe().getScopeData().contexts;a.flags||(a.flags={values:[]}),function(e,t,n,a){if("boolean"!=typeof n)return;if(e.length>a)return void(m&&F.error(`[Feature Flags] insertToFlagBuffer called on a buffer larger than maxSize=${a}`));const o=e.findIndex(e=>e.flag===t);-1!==o&&e.splice(o,1),e.length===a&&e.shift(),e.push({flag:t,result:n})}(a.flags.values,e,t,n)}function vp(e,t,n=kp){if("boolean"!=typeof t)return;const a=Xt();if(!a)return;const o=qt(a).data;(`${yp}${e}`in o||Object.keys(o).filter(e=>e.startsWith(yp)).length<n)&&a.setAttribute(`${yp}${e}`,t)}const _p=()=>({name:"FeatureFlags",processEvent:(e,t,n)=>bp(e),addFeatureFlag(e,t){wp(e,t),vp(e,t)}});function jp(e={}){const t=e.client||Ue();if(!Rn()||!t)return{};const n=De(l());if(n.getTraceData)return n.getTraceData(e);const a=e.scope||Pe(),o=e.span||Xt(),s=o?$t(o):function(e){const{traceId:t,sampled:n,propagationSpanId:a}=e.getPropagationContext();return At(t,a,n)}(a),r=pt(o?on(o):an(t,a));if(!Mt.test(s))return F.warn("Invalid sentry-trace data. Cannot generate trace data"),{};const i={"sentry-trace":s,baggage:r};if(e.propagateTraceparent){const e=o?function(e){const{traceId:t,spanId:n}=e.spanContext();return Ot(t,n,Ht(e))}(o):function(e){const{traceId:t,sampled:n,propagationSpanId:a}=e.getPropagationContext();return Ot(t,a,n)}(a);e&&(i.traceparent=e)}return i}function Sp(e){return e.includes("messages")?"messages":e.includes("completions")?"completions":e.includes("models")?"models":e.includes("chat")?"chat":e.split(".").pop()||"unknown"}function xp(e){return`gen_ai.${Sp(e)}`}function zp(e,t){return e?`${e}.${t}`:t}function Ep(e,t,n,a,o){if(void 0!==t&&e.setAttributes({[Tl]:t}),void 0!==n&&e.setAttributes({[Cl]:n}),void 0!==t||void 0!==n||void 0!==a||void 0!==o){const s=(t??0)+(n??0)+(a??0)+(o??0);e.setAttributes({[Il]:s})}}function Tp(e){if("string"==typeof e)return ep(e,Xl);if(Array.isArray(e)){const t=ap(e);return JSON.stringify(t)}return JSON.stringify(e)}function Cp(e,t,n,a){if(!e||"object"!=typeof e)return;const o=function(e,t){return"type"in e&&"string"==typeof e.type&&"error"===e.type&&(t.setStatus({code:jt,message:e.error?.type??"internal_error"}),bn(e.error,{mechanism:{handled:!1,type:"auto.ai.anthropic.anthropic_error"}}),!0)}(e,a);o||(function(e,t){if("message_delta"===e.type&&e.usage&&"output_tokens"in e.usage&&"number"==typeof e.usage.output_tokens&&(t.completionTokens=e.usage.output_tokens),e.message){const n=e.message;n.id&&(t.responseId=n.id),n.model&&(t.responseModel=n.model),n.stop_reason&&t.finishReasons.push(n.stop_reason),n.usage&&("number"==typeof n.usage.input_tokens&&(t.promptTokens=n.usage.input_tokens),"number"==typeof n.usage.cache_creation_input_tokens&&(t.cacheCreationInputTokens=n.usage.cache_creation_input_tokens),"number"==typeof n.usage.cache_read_input_tokens&&(t.cacheReadInputTokens=n.usage.cache_read_input_tokens))}}(e,t),function(e,t){"content_block_start"===e.type&&"number"==typeof e.index&&e.content_block&&("tool_use"!==e.content_block.type&&"server_tool_use"!==e.content_block.type||(t.activeToolBlocks[e.index]={id:e.content_block.id,name:e.content_block.name,inputJsonParts:[]}))}(e,t),function(e,t,n){if("content_block_delta"===e.type&&e.delta){if("number"==typeof e.index&&"partial_json"in e.delta&&"string"==typeof e.delta.partial_json){const n=t.activeToolBlocks[e.index];n&&n.inputJsonParts.push(e.delta.partial_json)}n&&"string"==typeof e.delta.text&&t.responseTexts.push(e.delta.text)}}(e,t,n),function(e,t){if("content_block_stop"!==e.type||"number"!=typeof e.index)return;const n=t.activeToolBlocks[e.index];if(!n)return;const a=n.inputJsonParts.join("");let o;try{o=a?JSON.parse(a):{}}catch{o={__unparsed:a}}t.toolCalls.push({type:"tool_use",id:n.id,name:n.name,input:o}),delete t.activeToolBlocks[e.index]}(e,t))}const Ip=["messages.create","messages.stream","messages.countTokens","models.get","completions.create","models.retrieve","beta.messages.create"];function Mp(e,t){const n=function(e){const{system:t,messages:n}=e;return[..."string"==typeof t?[{role:"system",content:e.system}]:[],...Array.isArray(n)?n:null!=n?[n]:[]]}(t);if(n.length){const t=Tp(n);e.setAttributes({[Rl]:t})}if("input"in t){const n=Tp(t.input);e.setAttributes({[Rl]:n})}"prompt"in t&&e.setAttributes({[dl]:JSON.stringify(t.prompt)})}function Rp(e,t,n){throw bn(e,{mechanism:{handled:!1,type:"auto.ai.anthropic",data:{function:n}}}),t.isRecording()&&(t.setStatus({code:jt,message:"internal_error"}),t.end()),e}function Ap(e,t,n,a,o,s,r,i,c,u,l){return Ku({name:`${s} ${o[hl]??"unknown"} stream-response`,op:xp(r),attributes:o},u&&!l?async t=>{try{return c.recordInputs&&i&&Mp(t,i),async function*(e,t,n){const a={responseTexts:[],finishReasons:[],responseId:"",responseModel:"",promptTokens:void 0,completionTokens:void 0,cacheCreationInputTokens:void 0,cacheReadInputTokens:void 0,toolCalls:[],activeToolBlocks:{}};try{for await(const o of e)Cp(o,a,n,t),yield o}finally{a.responseId&&t.setAttributes({[zl]:a.responseId}),a.responseModel&&t.setAttributes({[xl]:a.responseModel}),Ep(t,a.promptTokens,a.completionTokens,a.cacheCreationInputTokens,a.cacheReadInputTokens),t.setAttributes({[Dl]:!0}),a.finishReasons.length>0&&t.setAttributes({[Sl]:JSON.stringify(a.finishReasons)}),n&&a.responseTexts.length>0&&t.setAttributes({[Al]:a.responseTexts.join("")}),n&&a.toolCalls.length>0&&t.setAttributes({[Pl]:JSON.stringify(a.toolCalls)}),t.end()}}(await e.apply(n,a),t,c.recordOutputs??!1)}catch(e){return Rp(e,t,r)}}:e=>{try{return c.recordInputs&&i&&Mp(e,i),function(e,t,n){const a={responseTexts:[],finishReasons:[],responseId:"",responseModel:"",promptTokens:void 0,completionTokens:void 0,cacheCreationInputTokens:void 0,cacheReadInputTokens:void 0,toolCalls:[],activeToolBlocks:{}};return e.on("streamEvent",e=>{Cp(e,a,n,t)}),e.on("message",()=>{!function(e,t,n){t.isRecording()&&(e.responseId&&t.setAttributes({[zl]:e.responseId}),e.responseModel&&t.setAttributes({[xl]:e.responseModel}),Ep(t,e.promptTokens,e.completionTokens,e.cacheCreationInputTokens,e.cacheReadInputTokens),t.setAttributes({[Dl]:!0}),e.finishReasons.length>0&&t.setAttributes({[Sl]:JSON.stringify(e.finishReasons)}),n&&e.responseTexts.length>0&&t.setAttributes({[Al]:e.responseTexts.join("")}),n&&e.toolCalls.length>0&&t.setAttributes({[Pl]:JSON.stringify(e.toolCalls)}),t.end())}(a,t,n)}),e.on("error",e=>{bn(e,{mechanism:{handled:!1,type:"auto.ai.anthropic.stream_error"}}),t.isRecording()&&(t.setStatus({code:jt,message:"stream_error"}),t.end())}),e}(t.apply(n,a),e,c.recordOutputs??!1)}catch(t){return Rp(t,e,r)}})}function Op(e,t,n,a){return new Proxy(e,{apply(o,s,r){const i=function(e,t){const n={[ml]:"anthropic",[Ml]:Sp(t),[Qe]:"auto.ai.anthropic"};if(e.length>0&&"object"==typeof e[0]&&null!==e[0]){const t=e[0];t.tools&&Array.isArray(t.tools)&&(n[Ol]=JSON.stringify(t.tools)),n[hl]=t.model??"unknown","temperature"in t&&(n[fl]=t.temperature),"top_p"in t&&(n[wl]=t.top_p),"stream"in t&&(n[gl]=t.stream),"top_k"in t&&(n[vl]=t.top_k),"frequency_penalty"in t&&(n[yl]=t.frequency_penalty),"max_tokens"in t&&(n[kl]=t.max_tokens)}else n[hl]="models.retrieve"===t||"models.get"===t?e[0]:"unknown";return n}(r,t),c=i[hl]??"unknown",u=Sp(t),l="object"==typeof r[0]?r[0]:void 0,p=Boolean(l?.stream),d="messages.stream"===t;return p||d?Ap(e,o,n,r,i,u,t,l,a,p,d):Gu({name:`${u} ${c}`,op:xp(t),attributes:i},e=>(a.recordInputs&&l&&Mp(e,l),Uu(()=>o.apply(n,r),e=>{bn(e,{mechanism:{handled:!1,type:"auto.ai.anthropic",data:{function:t}}})},()=>{},t=>function(e,t,n){t&&"object"==typeof t&&("type"in t&&"error"===t.type?function(e,t){t.error&&(e.setStatus({code:jt,message:t.error.type||"internal_error"}),bn(t.error,{mechanism:{handled:!1,type:"auto.ai.anthropic.anthropic_error"}}))}(e,t):(n&&function(e,t){if("content"in t&&Array.isArray(t.content)){e.setAttributes({[Al]:t.content.map(e=>e.text).filter(e=>!!e).join("")});const n=[];for(const e of t.content)"tool_use"!==e.type&&"server_tool_use"!==e.type||n.push(e);n.length>0&&e.setAttributes({[Pl]:JSON.stringify(n)})}"completion"in t&&e.setAttributes({[Al]:t.completion}),"input_tokens"in t&&e.setAttributes({[Al]:JSON.stringify(t.input_tokens)})}(e,t),function(e,t){"id"in t&&"model"in t&&(e.setAttributes({[zl]:t.id,[xl]:t.model}),"created"in t&&"number"==typeof t.created&&e.setAttributes({[Yl]:new Date(1e3*t.created).toISOString()}),"created_at"in t&&"number"==typeof t.created_at&&e.setAttributes({[Yl]:new Date(1e3*t.created_at).toISOString()}),"usage"in t&&t.usage&&Ep(e,t.usage.input_tokens,t.usage.output_tokens,t.usage.cache_creation_input_tokens,t.usage.cache_read_input_tokens))}(e,t)))}(e,t,a.recordOutputs))))}})}function Dp(e,t="",n){return new Proxy(e,{get(e,a){const o=e[a],s=zp(t,String(a));return"function"==typeof o&&function(e){return Ip.includes(e)}(s)?Op(o,s,e,n):"function"==typeof o?o.bind(e):o&&"object"==typeof o?Dp(o,s,n):o}})}function Pp(e,t){const n=Boolean(Ue()?.getOptions().sendDefaultPii);return Dp(e,"",{recordInputs:n,recordOutputs:n,...t})}const Lp=["models.generateContent","models.generateContentStream","chats.create","sendMessage","sendMessageStream"],Np="google_genai",$p="chats.create",Fp="chat";function Up(e,t,n,a){e&&!function(e,t){const n=e?.promptFeedback;if(n?.blockReason){const e=n.blockReasonMessage??n.blockReason;return t.setStatus({code:jt,message:`Content blocked: ${e}`}),bn(`Content blocked: ${e}`,{mechanism:{handled:!1,type:"auto.ai.google_genai"}}),!0}return!1}(e,a)&&(function(e,t){"string"==typeof e.responseId&&(t.responseId=e.responseId),"string"==typeof e.modelVersion&&(t.responseModel=e.modelVersion);const n=e.usageMetadata;n&&("number"==typeof n.promptTokenCount&&(t.promptTokens=n.promptTokenCount),"number"==typeof n.candidatesTokenCount&&(t.completionTokens=n.candidatesTokenCount),"number"==typeof n.totalTokenCount&&(t.totalTokens=n.totalTokenCount))}(e,t),function(e,t,n){Array.isArray(e.functionCalls)&&t.toolCalls.push(...e.functionCalls);for(const a of e.candidates??[]){a?.finishReason&&!t.finishReasons.includes(a.finishReason)&&t.finishReasons.push(a.finishReason);for(const e of a?.content?.parts??[])n&&e.text&&t.responseTexts.push(e.text),e.functionCall&&t.toolCalls.push({type:"function",id:e.functionCall.id,name:e.functionCall.name,arguments:e.functionCall.args})}}(e,t,n))}function Bp(e,t){if("model"in e&&"string"==typeof e.model)return e.model;if(t&&"object"==typeof t){const e=t;if("model"in e&&"string"==typeof e.model)return e.model;if("modelVersion"in e&&"string"==typeof e.modelVersion)return e.modelVersion}return"unknown"}function qp(e,t){if("contents"in t){const n=Tp(t.contents);e.setAttributes({[Rl]:n})}if("message"in t){const n=Tp(t.message);e.setAttributes({[Rl]:n})}if("history"in t){const n=Tp(t.history);e.setAttributes({[Rl]:n})}}function Hp(e,t,n,a){const o=t===$p;return new Proxy(e,{apply(e,s,r){const i=r[0],c=function(e,t,n){const a={[ml]:Np,[Ml]:Sp(e),[Qe]:"auto.ai.google_genai"};if(t){if(a[hl]=Bp(t,n),"config"in t&&"object"==typeof t.config&&t.config){const e=t.config;if(Object.assign(a,function(e){const t={};return"temperature"in e&&"number"==typeof e.temperature&&(t[fl]=e.temperature),"topP"in e&&"number"==typeof e.topP&&(t[wl]=e.topP),"topK"in e&&"number"==typeof e.topK&&(t[vl]=e.topK),"maxOutputTokens"in e&&"number"==typeof e.maxOutputTokens&&(t[kl]=e.maxOutputTokens),"frequencyPenalty"in e&&"number"==typeof e.frequencyPenalty&&(t[yl]=e.frequencyPenalty),"presencePenalty"in e&&"number"==typeof e.presencePenalty&&(t[bl]=e.presencePenalty),t}(e)),"tools"in e&&Array.isArray(e.tools)){const t=e.tools.flatMap(e=>e.functionDeclarations);a[Ol]=JSON.stringify(t)}}}else a[hl]=Bp({},n);return a}(t,i,n),u=c[hl]??"unknown",l=Sp(t);return function(e){return e.includes("Stream")||e.endsWith("generateContentStream")||e.endsWith("sendMessageStream")}(t)?Ku({name:`${l} ${u} stream-response`,op:xp(t),attributes:c},async o=>{try{return a.recordInputs&&i&&qp(o,i),async function*(e,t,n){const a={responseTexts:[],finishReasons:[],toolCalls:[]};try{for await(const o of e)Up(o,a,n,t),yield o}finally{const e={[Dl]:!0};a.responseId&&(e[zl]=a.responseId),a.responseModel&&(e[xl]=a.responseModel),void 0!==a.promptTokens&&(e[Tl]=a.promptTokens),void 0!==a.completionTokens&&(e[Cl]=a.completionTokens),void 0!==a.totalTokens&&(e[Il]=a.totalTokens),a.finishReasons.length&&(e[Sl]=JSON.stringify(a.finishReasons)),n&&a.responseTexts.length&&(e[Al]=a.responseTexts.join("")),n&&a.toolCalls.length&&(e[Pl]=JSON.stringify(a.toolCalls)),t.setAttributes(e),t.end()}}(await e.apply(n,r),o,Boolean(a.recordOutputs))}catch(e){throw o.setStatus({code:jt,message:"internal_error"}),bn(e,{mechanism:{handled:!1,type:"auto.ai.google_genai",data:{function:t}}}),o.end(),e}}):Gu({name:o?`${l} ${u} create`:`${l} ${u}`,op:xp(t),attributes:c},s=>(a.recordInputs&&i&&qp(s,i),Uu(()=>e.apply(n,r),e=>{bn(e,{mechanism:{handled:!1,type:"auto.ai.google_genai",data:{function:t}}})},()=>{},e=>{o||function(e,t,n){if(t&&"object"==typeof t){if(t.usageMetadata&&"object"==typeof t.usageMetadata){const n=t.usageMetadata;"number"==typeof n.promptTokenCount&&e.setAttributes({[Tl]:n.promptTokenCount}),"number"==typeof n.candidatesTokenCount&&e.setAttributes({[Cl]:n.candidatesTokenCount}),"number"==typeof n.totalTokenCount&&e.setAttributes({[Il]:n.totalTokenCount})}if(n&&Array.isArray(t.candidates)&&t.candidates.length>0){const n=t.candidates.map(e=>e.content?.parts&&Array.isArray(e.content.parts)?e.content.parts.map(e=>"string"==typeof e.text?e.text:"").filter(e=>e.length>0).join(""):"").filter(e=>e.length>0);n.length>0&&e.setAttributes({[Al]:n.join("")})}if(n&&t.functionCalls){const n=t.functionCalls;Array.isArray(n)&&n.length>0&&e.setAttributes({[Pl]:JSON.stringify(n)})}}}(s,e,a.recordOutputs)})))}})}function Wp(e,t="",n){return new Proxy(e,{get:(e,a,o)=>{const s=Reflect.get(e,a,o),r=zp(t,String(a));if("function"==typeof s&&function(e){if(Lp.includes(e))return!0;const t=e.split(".").pop();return Lp.includes(t)}(r)){if(r===$p){const t=Hp(s,r,e,n);return function(...e){const a=t(...e);return a&&"object"==typeof a?Wp(a,Fp,n):a}}return Hp(s,r,e,n)}return"function"==typeof s?s.bind(e):s&&"object"==typeof s?Wp(s,r,n):s}})}function Vp(e,t){const n=Boolean(Ue()?.getOptions().sendDefaultPii);return Wp(e,"",{recordInputs:n,recordOutputs:n,...t})}const Jp="auto.ai.langgraph";function Yp(e){const t=e;let n=0,a=0,o=0;if(t.usage_metadata&&"object"==typeof t.usage_metadata){const e=t.usage_metadata;return"number"==typeof e.input_tokens&&(n=e.input_tokens),"number"==typeof e.output_tokens&&(a=e.output_tokens),"number"==typeof e.total_tokens&&(o=e.total_tokens),{inputTokens:n,outputTokens:a,totalTokens:o}}if(t.response_metadata&&"object"==typeof t.response_metadata){const e=t.response_metadata;if(e.tokenUsage&&"object"==typeof e.tokenUsage){const t=e.tokenUsage;"number"==typeof t.promptTokens&&(n=t.promptTokens),"number"==typeof t.completionTokens&&(a=t.completionTokens),"number"==typeof t.totalTokens&&(o=t.totalTokens)}}return{inputTokens:n,outputTokens:a,totalTokens:o}}function Gp(e,t){const n=t;if(n.response_metadata&&"object"==typeof n.response_metadata){const t=n.response_metadata;t.model_name&&"string"==typeof t.model_name&&e.setAttribute(xl,t.model_name),t.finish_reason&&"string"==typeof t.finish_reason&&e.setAttribute(Sl,[t.finish_reason])}}function Kp(e,t){return new Proxy(e,{apply:(e,n,a)=>Gu({op:"gen_ai.create_agent",name:"create_agent",attributes:{[Qe]:Jp,[Ze]:"gen_ai.create_agent",[Ml]:"create_agent"}},o=>{try{const s=Reflect.apply(e,n,a),r=a.length>0?a[0]:{};r?.name&&"string"==typeof r.name&&(o.setAttribute(Ll,r.name),o.updateName(`create_agent ${r.name}`));const i=s.invoke;return i&&"function"==typeof i&&(s.invoke=function(e,t,n,a){return new Proxy(e,{apply:(e,o,s)=>Gu({op:"gen_ai.invoke_agent",name:"invoke_agent",attributes:{[Qe]:Jp,[Ze]:Ul,[Ml]:"invoke_agent"}},async r=>{try{const i=n?.name;i&&"string"==typeof i&&(r.setAttribute(Nl,i),r.setAttribute(Ll,i),r.updateName(`invoke_agent ${i}`));const c=function(e){if(!e.builder?.nodes?.tools?.runnable?.tools)return null;const t=e.builder?.nodes?.tools?.runnable?.tools;return t&&Array.isArray(t)&&0!==t.length?t.map(e=>({name:e.lc_kwargs?.name,description:e.lc_kwargs?.description,schema:e.lc_kwargs?.schema})):null}(t);c&&r.setAttribute(Ol,JSON.stringify(c));const u=a.recordInputs,l=a.recordOutputs,p=s.length>0?s[0].messages??[]:[];if(p&&u){const e=ap(lp(p));r.setAttribute(Rl,JSON.stringify(e))}const d=await Reflect.apply(e,o,s);return l&&function(e,t,n){const a=n,o=a?.messages;if(!o||!Array.isArray(o))return;const s=t?.length??0,r=o.length>s?o.slice(s):[];if(0===r.length)return;const i=function(e){if(!e||0===e.length)return null;const t=[];for(const n of e)if(n&&"object"==typeof n){const e=n.tool_calls;e&&Array.isArray(e)&&t.push(...e)}return t.length>0?t:null}(r);i&&e.setAttribute(Pl,JSON.stringify(i));const c=lp(r);e.setAttribute(Al,JSON.stringify(c));let u=0,l=0,p=0;for(const t of r){const n=Yp(t);u+=n.inputTokens,l+=n.outputTokens,p+=n.totalTokens,Gp(e,t)}u>0&&e.setAttribute(Tl,u),l>0&&e.setAttribute(Cl,l),p>0&&e.setAttribute(Il,p)}(r,p??null,d),d}catch(e){throw r.setStatus({code:jt,message:"internal_error"}),bn(e,{mechanism:{handled:!1,type:"auto.ai.langgraph.error"}}),e}})})}(i.bind(s),s,r,t)),s}catch(e){throw o.setStatus({code:jt,message:"internal_error"}),bn(e,{mechanism:{handled:!1,type:"auto.ai.langgraph.error"}}),e}})})}function Xp(e,t){const n=t||{};return e.compile=Kp(e.compile.bind(e),n),e}const Zp=["responses.create","chat.completions.create","embeddings.create"],Qp=["response.created","response.in_progress","response.failed","response.completed","response.incomplete","response.queued","response.output_text.delta","response.output_item.added","response.function_call_arguments.delta","response.function_call_arguments.done","response.output_item.done"];function ed(e){return e.includes("chat.completions")?Jl.CHAT:e.includes("responses")?Jl.RESPONSES:e.includes("embeddings")?Jl.EMBEDDINGS:e.split(".").pop()||"unknown"}function td(e){return`gen_ai.${ed(e)}`}function nd(e){return null!==e&&"object"==typeof e&&"type"in e&&"string"==typeof e.type&&e.type.startsWith("response.")}function ad(e){return null!==e&&"object"==typeof e&&"object"in e&&"chat.completion.chunk"===e.object}function od(e,t,n,a){void 0!==t&&e.setAttributes({[Vl]:t,[Tl]:t}),void 0!==n&&e.setAttributes({[Wl]:n,[Cl]:n}),void 0!==a&&e.setAttributes({[Il]:a})}function sd(e,t,n,a){e.setAttributes({[Bl]:t,[zl]:t}),e.setAttributes({[ql]:n,[xl]:n}),e.setAttributes({[Hl]:new Date(1e3*a).toISOString()})}function rd(e,t){for(const n of e){const e=n.index;if(void 0!==e&&n.function)if(e in t.chatCompletionToolCalls){const a=t.chatCompletionToolCalls[e];n.function.arguments&&a?.function&&(a.function.arguments+=n.function.arguments)}else t.chatCompletionToolCalls[e]={...n,function:{name:n.function.name,arguments:n.function.arguments||""}}}}function id(e,t,n){t.responseId=e.id??t.responseId,t.responseModel=e.model??t.responseModel,t.responseTimestamp=e.created??t.responseTimestamp,e.usage&&(t.promptTokens=e.usage.prompt_tokens,t.completionTokens=e.usage.completion_tokens,t.totalTokens=e.usage.total_tokens);for(const a of e.choices??[])n&&(a.delta?.content&&t.responseTexts.push(a.delta.content),a.delta?.tool_calls&&rd(a.delta.tool_calls,t)),a.finish_reason&&t.finishReasons.push(a.finish_reason)}function cd(e,t,n,a){if(!e||"object"!=typeof e)return void t.eventTypes.push("unknown:non-object");if(e instanceof Error)return a.setStatus({code:jt,message:"internal_error"}),void bn(e,{mechanism:{handled:!1,type:"auto.ai.openai.stream-response"}});if(!("type"in e))return;const o=e;if(Qp.includes(o.type)){if(n&&("response.output_item.done"===o.type&&"item"in o&&t.responsesApiToolCalls.push(o.item),"response.output_text.delta"===o.type&&"delta"in o&&o.delta))t.responseTexts.push(o.delta);else if("response"in o){const{response:e}=o;t.responseId=e.id??t.responseId,t.responseModel=e.model??t.responseModel,t.responseTimestamp=e.created_at??t.responseTimestamp,e.usage&&(t.promptTokens=e.usage.input_tokens,t.completionTokens=e.usage.output_tokens,t.totalTokens=e.usage.total_tokens),e.status&&t.finishReasons.push(e.status),n&&e.output_text&&t.responseTexts.push(e.output_text)}}else t.eventTypes.push(o.type)}function ud(e,t){if("messages"in t){const n=Tp(t.messages);e.setAttributes({[Rl]:n})}if("input"in t){const n=Tp(t.input);e.setAttributes({[Rl]:n})}}function ld(e,t,n,a){return async function(...o){const s=function(e,t){const n={[ml]:"openai",[Ml]:ed(t),[Qe]:"auto.ai.openai"};if(e.length>0&&"object"==typeof e[0]&&null!==e[0]){const t=e[0],a=[...Array.isArray(t.tools)?t.tools:[],...t.web_search_options&&"object"==typeof t.web_search_options?[{type:"web_search_options",...t.web_search_options}]:[]];a.length>0&&(n[Ol]=JSON.stringify(a))}if(e.length>0&&"object"==typeof e[0]&&null!==e[0]){const t=e[0];n[hl]=t.model??"unknown","temperature"in t&&(n[fl]=t.temperature),"top_p"in t&&(n[wl]=t.top_p),"frequency_penalty"in t&&(n[yl]=t.frequency_penalty),"presence_penalty"in t&&(n[bl]=t.presence_penalty),"stream"in t&&(n[gl]=t.stream),"encoding_format"in t&&(n[_l]=t.encoding_format),"dimensions"in t&&(n[jl]=t.dimensions)}else n[hl]="unknown";return n}(o,t),r=s[hl]||"unknown",i=ed(t),c=o[0];return c&&"object"==typeof c&&!0===c.stream?Ku({name:`${i} ${r} stream-response`,op:td(t),attributes:s},async s=>{try{return a.recordInputs&&c&&ud(s,c),async function*(e,t,n){const a={eventTypes:[],responseTexts:[],finishReasons:[],responseId:"",responseModel:"",responseTimestamp:0,promptTokens:void 0,completionTokens:void 0,totalTokens:void 0,chatCompletionToolCalls:{},responsesApiToolCalls:[]};try{for await(const o of e)ad(o)?id(o,a,n):nd(o)&&cd(o,a,n,t),yield o}finally{sd(t,a.responseId,a.responseModel,a.responseTimestamp),od(t,a.promptTokens,a.completionTokens,a.totalTokens),t.setAttributes({[Dl]:!0}),a.finishReasons.length&&t.setAttributes({[Sl]:JSON.stringify(a.finishReasons)}),n&&a.responseTexts.length&&t.setAttributes({[Al]:a.responseTexts.join("")});const e=[...Object.values(a.chatCompletionToolCalls),...a.responsesApiToolCalls];e.length>0&&t.setAttributes({[Pl]:JSON.stringify(e)}),t.end()}}(await e.apply(n,o),s,a.recordOutputs??!1)}catch(e){throw s.setStatus({code:jt,message:"internal_error"}),bn(e,{mechanism:{handled:!1,type:"auto.ai.openai.stream",data:{function:t}}}),s.end(),e}}):Gu({name:`${i} ${r}`,op:td(t),attributes:s},async s=>{try{a.recordInputs&&c&&ud(s,c);const t=await e.apply(n,o);return function(e,t,n){if(!t||"object"!=typeof t)return;const a=t;if(function(e){return null!==e&&"object"==typeof e&&"object"in e&&"chat.completion"===e.object}(a)){if(function(e,t,n){if(sd(e,t.id,t.model,t.created),t.usage&&od(e,t.usage.prompt_tokens,t.usage.completion_tokens,t.usage.total_tokens),Array.isArray(t.choices)){const a=t.choices.map(e=>e.finish_reason).filter(e=>null!==e);if(a.length>0&&e.setAttributes({[Sl]:JSON.stringify(a)}),n){const n=t.choices.map(e=>e.message?.tool_calls).filter(e=>Array.isArray(e)&&e.length>0).flat();n.length>0&&e.setAttributes({[Pl]:JSON.stringify(n)})}}}(e,a,n),n&&a.choices?.length){const t=a.choices.map(e=>e.message?.content||"");e.setAttributes({[Al]:JSON.stringify(t)})}}else!function(e){return null!==e&&"object"==typeof e&&"object"in e&&"response"===e.object}(a)?function(e){if(null===e||"object"!=typeof e||!("object"in e))return!1;const t=e;return"list"===t.object&&"string"==typeof t.model&&t.model.toLowerCase().includes("embedding")}(a)&&function(e,t){e.setAttributes({[ql]:t.model,[xl]:t.model}),t.usage&&od(e,t.usage.prompt_tokens,void 0,t.usage.total_tokens)}(e,a):(function(e,t,n){if(sd(e,t.id,t.model,t.created_at),t.status&&e.setAttributes({[Sl]:JSON.stringify([t.status])}),t.usage&&od(e,t.usage.input_tokens,t.usage.output_tokens,t.usage.total_tokens),n){const n=t;if(Array.isArray(n.output)&&n.output.length>0){const t=n.output.filter(e=>"object"==typeof e&&null!==e&&"function_call"===e.type);t.length>0&&e.setAttributes({[Pl]:JSON.stringify(t)})}}}(e,a,n),n&&a.output_text&&e.setAttributes({[Al]:a.output_text}))}(s,t,a.recordOutputs),t}catch(e){throw bn(e,{mechanism:{handled:!1,type:"auto.ai.openai",data:{function:t}}}),e}})}}function pd(e,t="",n){return new Proxy(e,{get(e,a){const o=e[a],s=function(e,t){return e?`${e}.${t}`:t}(t,String(a));return"function"==typeof o&&function(e){return Zp.includes(e)}(s)?ld(o,s,e,n):"function"==typeof o?o.bind(e):o&&"object"==typeof o?pd(o,s,n):o}})}function dd(e,t){const n=Boolean(Ue()?.getOptions().sendDefaultPii);return pd(e,"",{recordInputs:n,recordOutputs:n,...t})}const md=["reauthenticate","signInAnonymously","signInWithOAuth","signInWithIdToken","signInWithOtp","signInWithPassword","signInWithSSO","signOut","signUp","verifyOtp"],hd=["createUser","deleteUser","listUsers","getUserById","updateUserById","inviteUserByEmail"],gd={eq:"eq",neq:"neq",gt:"gt",gte:"gte",lt:"lt",lte:"lte",like:"like","like(all)":"likeAllOf","like(any)":"likeAnyOf",ilike:"ilike","ilike(all)":"ilikeAllOf","ilike(any)":"ilikeAnyOf",is:"is",in:"in",cs:"contains",cd:"containedBy",sr:"rangeGt",nxl:"rangeGte",sl:"rangeLt",nxr:"rangeLte",adj:"rangeAdjacent",ov:"overlaps",fts:"",plfts:"plain",phfts:"phrase",wfts:"websearch",not:"not"},fd=["select","insert","upsert","update","delete"];function kd(e){try{e.__SENTRY_INSTRUMENTED__=!0}catch{}}function yd(e){try{return e.__SENTRY_INSTRUMENTED__}catch{return!1}}function bd(e,t){if(""===t||"*"===t)return"select(*)";if("select"===e)return`select(${t})`;if("or"===e||e.endsWith(".or"))return`${e}${t}`;const[n,...a]=t.split(".");let o;return o=n?.startsWith("fts")?"textSearch":n?.startsWith("plfts")?"textSearch[plain]":n?.startsWith("phfts")?"textSearch[phrase]":n?.startsWith("wfts")?"textSearch[websearch]":n&&gd[n]||"filter",`${o}(${e}, ${a.join(".")})`}function wd(e,t=!1){return new Proxy(e,{apply:(n,a,o)=>Gu({name:`auth ${t?"(admin) ":""}${e.name}`,attributes:{[Qe]:"auto.db.supabase",[Ze]:"db","db.system":"postgresql","db.operation":`auth.${t?"admin.":""}${e.name}`}},e=>Reflect.apply(n,a,o).then(t=>(t&&"object"==typeof t&&"error"in t&&t.error?(e.setStatus({code:jt}),bn(t.error,{mechanism:{handled:!1,type:"auto.db.supabase.auth"}})):e.setStatus({code:_t}),e.end(),t)).catch(t=>{throw e.setStatus({code:jt}),e.end(),bn(t,{mechanism:{handled:!1,type:"auto.db.supabase.auth"}}),t}).then(...o))})}function vd(e){yd(e.prototype.then)||(e.prototype.then=new Proxy(e.prototype.then,{apply(e,t,n){const a=fd,o=t,s=function(e,t={}){switch(e){case"GET":return"select";case"POST":return t.Prefer?.includes("resolution=")?"upsert":"insert";case"PATCH":return"update";case"DELETE":return"delete";default:return"<unknown-op>"}}(o.method,o.headers);if(!a.includes(s))return Reflect.apply(e,t,n);if(!o?.url?.pathname||"string"!=typeof o.url.pathname)return Reflect.apply(e,t,n);const r=o.url.pathname.split("/"),i=r.length>0?r[r.length-1]:"",c=[];for(const[e,t]of o.url.searchParams.entries())c.push(bd(e,t));const u=Object.create(null);if(_(o.body))for(const[e,t]of Object.entries(o.body))u[e]=t;const l=`${"select"===s?"":`${s}${u?"(...) ":""}`}${c.join(" ")} from(${i})`,p={"db.table":i,"db.schema":o.schema,"db.url":o.url.origin,"db.sdk":o.headers["X-Client-Info"],"db.system":"postgresql","db.operation":s,[Qe]:"auto.db.supabase",[Ze]:"db"};return c.length&&(p["db.query"]=c),Object.keys(u).length&&(p["db.body"]=u),Gu({name:l,attributes:p},a=>Reflect.apply(e,t,[]).then(e=>{if(a&&(e&&"object"==typeof e&&"status"in e&&xt(a,e.status||500),a.end()),e.error){const t=new Error(e.error.message);e.error.code&&(t.code=e.error.code),e.error.details&&(t.details=e.error.details);const n={};c.length&&(n.query=c),Object.keys(u).length&&(n.body=u),bn(t,e=>(e.addEventProcessor(e=>(he(e,{handled:!1,type:"auto.db.supabase.postgres"}),e)),e.setContext("supabase",n),e))}const t={type:"supabase",category:`db.${s}`,message:l},n={};return c.length&&(n.query=c),Object.keys(u).length&&(n.body=u),Object.keys(n).length&&(t.data=n),_r(t),e},e=>{throw a&&(xt(a,500),a.end()),e}).then(...n))}}),kd(e.prototype.then))}const _d=e=>{var t;e?(yd((t=e.constructor===Function?e:e.constructor).prototype.from)||(t.prototype.from=new Proxy(t.prototype.from,{apply(e,t,n){const a=Reflect.apply(e,t,n);return function(e){for(const t of fd)yd(e.prototype[t])||(e.prototype[t]=new Proxy(e.prototype[t],{apply(e,n,a){const o=Reflect.apply(e,n,a),s=o.constructor;return m&&F.log(`Instrumenting ${t} operation's PostgRESTFilterBuilder`),vd(s),o}}),kd(e.prototype[t]))}(a.constructor),a}}),kd(t.prototype.from)),function(e){const t=e.auth;if(t&&!yd(e.auth)){for(const n of md){const a=t[n];a&&"function"==typeof e.auth[n]&&(e.auth[n]=wd(a))}for(const n of hd){const a=t.admin[n];a&&"function"==typeof e.auth.admin[n]&&(e.auth.admin[n]=wd(a,!0))}kd(e.auth)}}(e)):m&&F.warn("Supabase integration was not installed because no Supabase client was provided.")},jd=e=>{return t=e.supabaseClient,{setupOnce(){_d(t)},name:"Supabase"};var t};function Sd(e,...t){const n=new String(String.raw(e,...t));return n.__sentry_template_string__=e.join("\0").replace(/%/g,"%%").replace(/\0/g,"%s"),n.__sentry_template_values__=t,n}const xd=Sd;function zd(e,t,n,a,o){as({level:e,message:t,attributes:n,severityNumber:o},a)}function Ed(e,t,{scope:n}={}){zd("trace",e,t,n)}function Td(e,t,{scope:n}={}){zd("debug",e,t,n)}function Cd(e,t,{scope:n}={}){zd("info",e,t,n)}function Id(e,t,{scope:n}={}){zd("warn",e,t,n)}function Md(e,t,{scope:n}={}){zd("error",e,t,n)}function Rd(e,t,{scope:n}={}){zd("fatal",e,t,n)}function Ad(e,t,n,a){ps({type:e,name:t,value:n,unit:a?.unit,attributes:a?.attributes},{scope:a?.scope})}function Od(e,t=1,n){Ad("counter",e,t,n)}function Dd(e,t,n){Ad("gauge",e,t,n)}function Pd(e,t,n){Ad("distribution",e,t,n)}const Ld=new Map,Nd=new Set;function $d(e,t){t.exception?.values?.forEach(t=>{t.stacktrace?.frames?.forEach(t=>{if(!t.filename||t.module_metadata)return;const n=function(e,t){return function(e){if(u._sentryModuleMetadata)for(const t of Object.keys(u._sentryModuleMetadata)){const n=u._sentryModuleMetadata[t];if(Nd.has(t))continue;Nd.add(t);const a=e(t);for(const e of a.reverse())if(e.filename){Ld.set(e.filename,n);break}}}(e),Ld.get(t)}(e,t.filename);n&&(t.module_metadata=n)})})}function Fd(e){e.exception?.values?.forEach(e=>{e.stacktrace?.frames?.forEach(e=>{delete e.module_metadata})})}const Ud=()=>({name:"ModuleMetadata",setup(e){e.on("beforeEnvelope",e=>{No(e,(e,t)=>{if("event"===t){const t=Array.isArray(e)?e[1]:void 0;t&&(Fd(t),e[1]=t)}})}),e.on("applyFrameMetadata",t=>{t.type||$d(e.getOptions().stackParser,t)})}});let Bd=!1;function qd(){function e(){const e=Xt(),t=e&&Kt(e);if(t){const e="internal_error";m&&F.log(`[Tracing] Root span: ${e} -> Global error occurred`),t.setStatus({code:jt,message:e})}}Bd||(e.tag="sentry_tracingErrorCallback",Bd=!0,Qr(e),ni(e))}const Hd=/^(\S+:\\|\/?)([\s\S]*?)((?:\.{1,2}|[^/\\]+?|)(\.[^./\\]*|))(?:[/\\]*)$/;function Wd(...e){let t="",n=!1;for(let a=e.length-1;a>=-1&&!n;a--){const o=a>=0?e[a]:"/";o&&(t=`${o}/${t}`,n="/"===o.charAt(0))}return t=function(e,t){let n=0;for(let t=e.length-1;t>=0;t--){const a=e[t];"."===a?e.splice(t,1):".."===a?(e.splice(t,1),n++):n&&(e.splice(t,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}(t.split("/").filter(e=>!!e),!n).join("/"),(n?"/":"")+t||"."}function Vd(e){let t=0;for(;t<e.length&&""===e[t];t++);let n=e.length-1;for(;n>=0&&""===e[n];n--);return t>n?[]:e.slice(t,n-t+1)}const Jd=(e={})=>{const t=e.root,n=e.prefix||"app:///",a="window"in u&&!!u.window,o=e.iteratee||function({isBrowser:e,root:t,prefix:n}){return a=>{if(!a.filename)return a;const o=/^[a-zA-Z]:\\/.test(a.filename)||a.filename.includes("\\")&&!a.filename.includes("/"),s=/^\//.test(a.filename);if(e){if(t){const e=a.filename;0===e.indexOf(t)&&(a.filename=e.replace(t,n))}}else if(o||s){const e=o?a.filename.replace(/^[a-zA-Z]:/,"").replace(/\\/g,"/"):a.filename,s=t?function(e,t){e=Wd(e).slice(1),t=Wd(t).slice(1);const n=Vd(e.split("/")),a=Vd(t.split("/")),o=Math.min(n.length,a.length);let s=o;for(let e=0;e<o;e++)if(n[e]!==a[e]){s=e;break}let r=[];for(let e=s;e<n.length;e++)r.push("..");return r=r.concat(a.slice(s)),r.join("/")}(t,e):function(e){let t=function(e){const t=e.length>1024?`<truncated>${e.slice(-1024)}`:e,n=Hd.exec(t);return n?n.slice(1):[]}(e)[2]||"";return t}(e);a.filename=`${n}${s}`}return a}}({isBrowser:a,root:t,prefix:n});return{name:"RewriteFrames",processEvent(e){let t=e;return e.exception&&Array.isArray(e.exception.values)&&(t=function(e){try{return{...e,exception:{...e.exception,values:e.exception.values.map(e=>{return{...e,...e.stacktrace&&{stacktrace:(t=e.stacktrace,{...t,frames:t?.frames?.map(e=>o(e))})}};var t})}}}catch{return e}}(t)),t}}},Yd=e=>({name:"ThirdPartyErrorsFilter",setup(e){e.on("beforeEnvelope",e=>{No(e,(e,t)=>{if("event"===t){const t=Array.isArray(e)?e[1]:void 0;t&&(Fd(t),e[1]=t)}})}),e.on("applyFrameMetadata",t=>{t.type||$d(e.getOptions().stackParser,t)})},processEvent(t){const n=function(e){const t=ne(e);if(t)return t.filter(e=>!!e.filename&&null!=(e.lineno??e.colno)).map(e=>e.module_metadata?Object.keys(e.module_metadata).filter(e=>e.startsWith(Gd)).map(e=>e.slice(Gd.length)):[])}(t);if(n){const a=n["drop-error-if-contains-third-party-frames"===e.behaviour||"apply-tag-if-contains-third-party-frames"===e.behaviour?"some":"every"](t=>!t.some(t=>e.filterKeys.includes(t)));if(a){if("drop-error-if-contains-third-party-frames"===e.behaviour||"drop-error-if-exclusively-contains-third-party-frames"===e.behaviour)return null;t.tags={...t.tags,third_party_code:!0}}}return t}}),Gd="_sentryBundlerPluginAppKey:";function Kd(e){return{...e,path:"path"in e&&Array.isArray(e.path)?e.path.join("."):void 0,keys:"keys"in e?JSON.stringify(e.keys):void 0,unionErrors:"unionErrors"in e?JSON.stringify(e.unionErrors):void 0}}function Xd(e){return e.map(e=>"number"==typeof e?"<array>":e).join(".")}function Zd(e){const t=new Set;for(const n of e.issues){const e=Xd(n.path);e.length>0&&t.add(e)}const n=Array.from(t);if(0===n.length){let t="variable";if(e.issues.length>0){const n=e.issues[0];void 0!==n&&"expected"in n&&"string"==typeof n.expected&&(t=n.expected)}return`Failed to validate ${t}`}return`Failed to validate keys: ${oe(n.join(", "),100)}`}const Qd=(e={})=>{const t=e.limit??10;return{name:"ZodErrors",processEvent:(n,a)=>function(e,t=!1,n,a){if(!(n.exception?.values&&a.originalException&&(o=a.originalException,g(o)&&"ZodError"===o.name&&Array.isArray(o.issues))&&0!==a.originalException.issues.length))return n;var o;try{const o=(t?a.originalException.issues:a.originalException.issues.slice(0,e)).map(Kd);return t&&(Array.isArray(a.attachments)||(a.attachments=[]),a.attachments.push({filename:"zod_issues.json",data:JSON.stringify({issues:o})})),{...n,exception:{...n.exception,values:[{...n.exception.values[0],value:Zd(a.originalException)},...n.exception.values.slice(1)]},extra:{...n.extra,"zoderror.issues":o.slice(0,e)}}}catch(e){return{...n,extra:{...n.extra,"zoderrors sentry integration parse error":{message:"an exception was thrown while processing ZodError within applyZodErrorsToEvent()",error:e instanceof Error?`${e.name}: ${e.message}\n${e.stack}`:"unknown"}}}}}(t,e.saveZodIssuesAsAttachment,n,a)}},em={startProfiler:function(){const e=Ue();e?e.getIntegrationByName("BrowserProfiling")?e.emit("startUIProfiler"):Hr&&F.warn("BrowserProfiling integration is not available"):Hr&&F.warn("No Sentry client available, profiling is not started")},stopProfiler:function(){const e=Ue();e?e.getIntegrationByName("BrowserProfiling")?e.emit("stopUIProfiler"):Hr&&F.warn("ProfilingIntegration is not available"):Hr&&F.warn("No Sentry client available, profiling is not started")}};function tm(e,{metadata:t,tunnel:n,dsn:a}){const o={event_id:e.event_id,sent_at:(new Date).toISOString(),...t?.sdk&&{sdk:{name:t.sdk.name,version:t.sdk.version}},...!!n&&!!a&&{dsn:gt(a)}},s=function(e){return[{type:"user_report"},e]}(e);return Po(o,[s])}function nm(e={}){const t=Qs.document,n=t?.head||t?.body;if(!n)return void(Hr&&F.error("[showReportDialog] Global document not defined"));const a=Pe(),o=Ue(),s=o?.getDsn();if(!s)return void(Hr&&F.error("[showReportDialog] DSN not configured"));const r={...e,user:{...a.getUser(),...e.user},eventId:e.eventId||Tn()},i=Qs.document.createElement("script");i.async=!0,i.crossOrigin="anonymous",i.src=function(e,t){const n=bt(e);if(!n)return"";const a=`${Oo(n)}embed/error-page/`;let o=`dsn=${gt(n)}`;for(const e in t)if("dsn"!==e&&"onClose"!==e)if("user"===e){const e=t.user;if(!e)continue;e.name&&(o+=`&name=${encodeURIComponent(e.name)}`),e.email&&(o+=`&email=${encodeURIComponent(e.email)}`)}else o+=`&${encodeURIComponent(e)}=${encodeURIComponent(t[e])}`;return`${a}?${o}`}(s,r);const{onLoad:c,onClose:u}=r;if(c&&(i.onload=c),u){const e=t=>{if("__sentry_reportdialog_closed__"===t.data)try{u()}finally{Qs.removeEventListener("message",e)}};Qs.addEventListener("message",e)}n.appendChild(i)}const am=u,om=new WeakMap,sm=(e={})=>{const t=e.types||["crash","deprecation","intervention"];function n(e){if(om.has(Ue()))for(const t of e)$e(e=>{e.setExtra("url",t.url);const n=`ReportingObserver [${t.type}]`;let a="No details available";if(t.body){const n={};for(const e in t.body)n[e]=t.body[e];if(e.setExtra("body",n),"crash"===t.type){const e=t.body;a=[e.crashId||"",e.reason||""].join(" ").trim()||a}else a=t.body.message||a}wn(`${n}: ${a}`)})}return{name:"ReportingObserver",setupOnce(){"ReportingObserver"in dr&&new am.ReportingObserver(n,{buffered:!0,types:t}).observe()},setup(e){om.set(e,!0)}}};function rm(e,t){const n=t?.getDsn(),a=t?.getOptions().tunnel;return function(e,t){const n=Er(e);return!(!n||zr(n))&&(!!t&&n.host.includes(t.host)&&/(^|&|\?)sentry_key=/.test(n.search))}(e,n)||function(e,t){return!!t&&im(e)===im(t)}(e,a)}function im(e){return"/"===e[e.length-1]?e.slice(0,-1):e}const cm=(e={})=>{const t={failedRequestStatusCodes:[[500,599]],failedRequestTargets:[/.*/],...e};return{name:"HttpClient",setup(e){!function(e,t){hr()&&gr(n=>{if(Ue()!==e)return;const{response:a,args:o,error:s,virtualError:r}=n,[i,c]=o;a&&function(e,t,n,a,o){if(dm(e,n.status,n.url)){const e=function(e,t){return!t&&e instanceof Request||e instanceof Request&&e.bodyUsed?e:new Request(e,t)}(t,a);let s,r,i,c;hm()&&([s,i]=um("Cookie",e),[r,c]=um("Set-Cookie",n)),vn(mm({url:e.url,method:e.method,status:n.status,requestHeaders:s,responseHeaders:r,requestCookies:i,responseCookies:c,error:o,type:"fetch"}))}}(t,i,a,c,s||r)},!1)}(e,t),function(e,t){"XMLHttpRequest"in u&&$r(n=>{if(Ue()!==e)return;const{error:a,virtualError:o}=n,s=n.xhr,r=s[Nr];if(!r)return;const{method:i,request_headers:c}=r;try{!function(e,t,n,a,o){if(dm(e,t.status,t.responseURL)){let e,s,r;if(hm()){try{const e=t.getResponseHeader("Set-Cookie")||t.getResponseHeader("set-cookie")||void 0;e&&(s=pm(e))}catch{}try{r=function(e){const t=e.getAllResponseHeaders();return t?t.split("\r\n").reduce((e,t)=>{const[n,a]=t.split(": ");return n&&a&&(e[n]=a),e},{}):{}}(t)}catch{}e=a}vn(mm({url:t.responseURL,method:n,status:t.status,requestHeaders:e,responseHeaders:r,responseCookies:s,error:o,type:"xhr"}))}}(t,s,i,c,a||o)}catch(e){Hr&&F.warn("Error while extracting response event form XHR response",e)}})}(e,t)}}};function um(e,t){const n=function(e){const t={};return e.forEach((e,n)=>{t[n]=e}),t}(t.headers);let a;try{const t=n[e]||n[e.toLowerCase()]||void 0;t&&(a=pm(t))}catch{}return[n,a]}function lm(e){if(e){const t=e["Content-Length"]||e["content-length"];if(t)return parseInt(t,10)}}function pm(e){return e.split("; ").reduce((e,t)=>{const[n,a]=t.split("=");return n&&a&&(e[n]=a),e},{})}function dm(e,t,n){return function(e,t){return e.some(e=>"number"==typeof e?e===t:t>=e[0]&&t<=e[1])}(e.failedRequestStatusCodes,t)&&(a=e.failedRequestTargets,o=n,a.some(e=>"string"==typeof e?o.includes(e):e.test(o)))&&!rm(n,Ue());var a,o}function mm(e){const t=Ue(),n=t&&e.error&&e.error instanceof Error?e.error.stack:void 0,a=n&&t?t.getOptions().stackParser(n,0,1):void 0,o=`HTTP Client Error with status code: ${e.status}`,s={message:o,exception:{values:[{type:"Error",value:o,stacktrace:a?{frames:a}:void 0}]},request:{url:e.url,method:e.method,headers:e.requestHeaders,cookies:e.requestCookies},contexts:{response:{status_code:e.status,headers:e.responseHeaders,cookies:e.responseCookies,body_size:lm(e.responseHeaders)}}};return he(s,{type:`auto.http.client.${e.type}`,handled:!1}),s}function hm(){const e=Ue();return!!e&&Boolean(e.getOptions().sendDefaultPii)}const gm=u,fm=(e={})=>{const t=null!=e.frameContextLines?e.frameContextLines:7;return{name:"ContextLines",processEvent:e=>function(e,t){const n=gm.document,a=gm.location&&Ir(gm.location.href);if(!n||!a)return e;const o=e.exception?.values;if(!o?.length)return e;const s=n.documentElement.innerHTML;if(!s)return e;const r=["<!DOCTYPE html>","<html>",...s.split("\n"),"</html>"];return o.forEach(e=>{const n=e.stacktrace;n?.frames&&(n.frames=n.frames.map(e=>function(e,t,n,a){return e.filename===n&&e.lineno&&t.length?(function(e,t,n=5){if(void 0===t.lineno)return;const a=e.length,o=Math.max(Math.min(a-1,t.lineno-1),0);t.pre_context=e.slice(Math.max(0,o-n),o).map(e=>se(e,0));const s=Math.min(a-1,o);t.context_line=se(e[s],t.colno||0),t.post_context=e.slice(Math.min(o+1,a),o+1+n).map(e=>se(e,0))}(t,e,a),e):e}(e,r,a,t)))}),e}(e,t)}};function km(e){return new URLSearchParams(e).toString()}function ym(e,t=F){try{if("string"==typeof e)return[e];if(e instanceof URLSearchParams)return[e.toString()];if(e instanceof FormData)return[km(e)];if(!e)return[void 0]}catch(n){return Ai&&t.error(n,"Failed to serialize body",e),[void 0,"BODY_PARSE_ERROR"]}return Ai&&t.log("Skipping network body because of body type",e),[void 0,"UNPARSEABLE_BODY_TYPE"]}function bm(e=[]){if(2===e.length&&"object"==typeof e[1])return e[1].body}function wm(e){let t;try{t=e.getAllResponseHeaders()}catch(t){return Ai&&F.error(t,"Failed to get xhr response headers",e),{}}return t?t.split("\r\n").reduce((e,t)=>{const[n,a]=t.split(": ");return a&&(e[n.toLowerCase()]=a),e},{}):{}}function vm(e){const{query:t,operationName:n}=e,{operationName:a=n,operationType:o}=function(e){const t=e.match(/^(?:\s*)(query|mutation|subscription)(?:\s*)(\w+)(?:\s*)[{(]/);if(t)return{operationType:t[1],operationName:t[2]};const n=e.match(/^(?:\s*)(query|mutation|subscription)(?:\s*)[{(]/);return n?{operationType:n[1],operationName:void 0}:{operationType:void 0,operationName:void 0}}(t);return a?`${o} ${a}`:`${o}`}function _m(e){let t;if("xhr"in e){const n=e.xhr[Nr];t=n&&ym(n.body)[0]}else t=ym(bm(e.input))[0];return t}function jm(e){let t;try{const n=JSON.parse(e);n.query&&(t=n)}finally{return t}}const Sm=e=>({name:"GraphQLClient",setup(t){!function(e,t){e.on("beforeOutgoingRequestSpan",(e,n)=>{const a=qt(e).data||{};if("http.client"!==a[Ze])return;const o=a["url.full"]||a["http.url"],s=a["http.request.method"]||a["http.method"];if(!b(o)||!b(s))return;const{endpoints:r}=t,i=ce(o,r),c=_m(n);if(i&&c){const t=jm(c);if(t){const n=vm(t);e.updateName(`${s} ${o} (${n})`),e.setAttribute("graphql.document",c)}}})}(t,e),function(e,t){e.on("beforeOutgoingRequestBreadcrumb",(e,n)=>{const{category:a,type:o,data:s}=e;if("http"===o&&("fetch"===a||"xhr"===a)){const e=s?.url,{endpoints:a}=t,o=ce(e,a),r=_m(n);if(o&&s&&r){const e=jm(r);if(!s.graphql&&e){const t=vm(e);s["graphql.document"]=e.query,s["graphql.operation"]=t}}}})}(t,e)}}),xm=(e,t,n,a)=>{let o,s;return r=>{t.value>=0&&(r||a)&&(s=t.value-(o??0),(s||void 0===o)&&(o=t.value,t.delta=s,t.rating=((e,t)=>e>t[1]?"poor":e>t[0]?"needs-improvement":"good")(t.value,n),e(t)))}},zm=(e=!0)=>{const t=Mr.performance?.getEntriesByType?.("navigation")[0];if(!e||t&&t.responseStart>0&&t.responseStart<performance.now())return t},Em=()=>{const e=zm();return e?.activationStart??0};function Tm(e,t,n){Mr.document&&Mr.addEventListener(e,t,n)}function Cm(e,t,n){Mr.document&&Mr.removeEventListener(e,t,n)}let Im=-1;const Mm=new Set,Rm=e=>{if(function(e){return"pagehide"===e.type||"hidden"===Mr.document?.visibilityState}(e)&&Im>-1){if("visibilitychange"===e.type||"pagehide"===e.type)for(const e of Mm)e();isFinite(Im)||(Im="visibilitychange"===e.type?e.timeStamp:0,Cm("prerenderingchange",Rm,!0))}},Am=()=>{if(Mr.document&&Im<0){const e=Em(),t=Mr.document.prerendering?void 0:globalThis.performance.getEntriesByType("visibility-state").filter(t=>"hidden"===t.name&&t.startTime>e)[0]?.startTime;Im=t??("hidden"!==Mr.document?.visibilityState||Mr.document?.prerendering?1/0:0),Tm("visibilitychange",Rm,!0),Tm("pagehide",Rm,!0),Tm("prerenderingchange",Rm,!0)}return{get firstHiddenTime(){return Im},onHidden(e){Mm.add(e)}}},Om=(e,t=-1)=>{const n=zm();let a="navigate";return n&&(Mr.document?.prerendering||Em()>0?a="prerender":Mr.document?.wasDiscarded?a="restore":n.type&&(a=n.type.replace(/_/g,"-"))),{name:e,value:t,rating:"good",delta:0,entries:[],id:`v5-${Date.now()}-${Math.floor(8999999999999*Math.random())+1e12}`,navigationType:a}},Dm=new WeakMap;function Pm(e,t){return Dm.get(e)||Dm.set(e,new t),Dm.get(e)}class Lm{constructor(){Lm.prototype.__init.call(this),Lm.prototype.__init2.call(this)}__init(){this._sessionValue=0}__init2(){this._sessionEntries=[]}_processEntry(e){if(e.hadRecentInput)return;const t=this._sessionEntries[0],n=this._sessionEntries[this._sessionEntries.length-1];this._sessionValue&&t&&n&&e.startTime-n.startTime<1e3&&e.startTime-t.startTime<5e3?(this._sessionValue+=e.value,this._sessionEntries.push(e)):(this._sessionValue=e.value,this._sessionEntries=[e]),this._onAfterProcessingUnexpectedShift?.(e)}}const Nm=(e,t,n={})=>{try{if(PerformanceObserver.supportedEntryTypes.includes(e)){const a=new PerformanceObserver(e=>{Promise.resolve().then(()=>{t(e.getEntries())})});return a.observe({type:e,buffered:!0,...n}),a}}catch{}},$m=e=>{let t=!1;return()=>{t||(e(),t=!0)}},Fm=e=>{Mr.document?.prerendering?addEventListener("prerenderingchange",()=>e(),!0):e()},Um=[1800,3e3],Bm=[.1,.25];let qm=0,Hm=1/0,Wm=0;const Vm=e=>{e.forEach(e=>{e.interactionId&&(Hm=Math.min(Hm,e.interactionId),Wm=Math.max(Wm,e.interactionId),qm=Wm?(Wm-Hm)/7+1:0)})};let Jm;const Ym=()=>Jm?qm:performance.interactionCount||0,Gm=()=>{"interactionCount"in performance||Jm||(Jm=Nm("event",Vm,{type:"event",buffered:!0,durationThreshold:0}))};let Km=0;class Xm{constructor(){Xm.prototype.__init.call(this),Xm.prototype.__init2.call(this)}__init(){this._longestInteractionList=[]}__init2(){this._longestInteractionMap=new Map}_resetInteractions(){Km=Ym(),this._longestInteractionList.length=0,this._longestInteractionMap.clear()}_estimateP98LongestInteraction(){const e=Math.min(this._longestInteractionList.length-1,Math.floor((Ym()-Km)/50));return this._longestInteractionList[e]}_processEntry(e){if(this._onBeforeProcessingEntry?.(e),!e.interactionId&&"first-input"!==e.entryType)return;const t=this._longestInteractionList.at(-1);let n=this._longestInteractionMap.get(e.interactionId);if(n||this._longestInteractionList.length<10||e.duration>t._latency){if(n?e.duration>n._latency?(n.entries=[e],n._latency=e.duration):e.duration===n._latency&&e.startTime===n.entries[0].startTime&&n.entries.push(e):(n={id:e.interactionId,entries:[e],_latency:e.duration},this._longestInteractionMap.set(n.id,n),this._longestInteractionList.push(n)),this._longestInteractionList.sort((e,t)=>t._latency-e._latency),this._longestInteractionList.length>10){const e=this._longestInteractionList.splice(10);for(const t of e)this._longestInteractionMap.delete(t.id)}this._onAfterProcessingINPCandidate?.(n)}}}const Zm=e=>{const t=t=>{"pagehide"!==t.type&&"hidden"!==Mr.document?.visibilityState||e(t)};Tm("visibilitychange",t,!0),Tm("pagehide",t,!0)},Qm=e=>{const t=Mr.requestIdleCallback||Mr.setTimeout;"hidden"===Mr.document?.visibilityState?e():(Tm("visibilitychange",e=$m(e),{once:!0,capture:!0}),t(()=>{e(),Cm("visibilitychange",e,{capture:!0})}),Zm(e))},eh=[200,500];class th{_processEntry(e){this._onBeforeProcessingEntry?.(e)}}const nh=[2500,4e3],ah=[800,1800],oh=e=>{Mr.document?.prerendering?Fm(()=>oh(e)):"complete"!==Mr.document?.readyState?addEventListener("load",()=>oh(e),!0):setTimeout(e)},sh={},rh={};let ih,ch,uh,lh;function ph(e,t=!1){return wh("cls",e,fh,ih,t)}function dh(e,t=!1){return wh("lcp",e,kh,ch,t)}function mh(e){return wh("inp",e,bh,lh)}function hh(e,t){return vh(e,t),rh[e]||(function(e){const t={};"event"===e&&(t.durationThreshold=0),Nm(e,t=>{gh(e,{entries:t})},t)}(e),rh[e]=!0),_h(e,t)}function gh(e,t){const n=sh[e];if(n?.length)for(const a of n)try{a(t)}catch(t){Ai&&F.error(`Error while triggering instrumentation handler.\nType: ${e}\nName: ${te(a)}\nError:`,t)}}function fh(){return((e,t={})=>{((e,t={})=>{Fm(()=>{const n=Am(),a=Om("FCP");let o;const s=Nm("paint",e=>{for(const t of e)"first-contentful-paint"===t.name&&(s.disconnect(),t.startTime<n.firstHiddenTime&&(a.value=Math.max(t.startTime-Em(),0),a.entries.push(t),o(!0)))});s&&(o=xm(e,a,Um,t.reportAllChanges))})})($m(()=>{const n=Om("CLS",0);let a;const o=Am(),s=Pm(t,Lm),r=e=>{for(const t of e)s._processEntry(t);s._sessionValue>n.value&&(n.value=s._sessionValue,n.entries=s._sessionEntries,a())},i=Nm("layout-shift",r);i&&(a=xm(e,n,Bm,t.reportAllChanges),o.onHidden(()=>{r(i.takeRecords()),a(!0)}),Mr?.setTimeout?.(a))}))})(e=>{gh("cls",{metric:e}),ih=e},{reportAllChanges:!0})}function kh(){return((e,t={})=>{Fm(()=>{const n=Am(),a=Om("LCP");let o;const s=Pm(t,th),r=e=>{t.reportAllChanges||(e=e.slice(-1));for(const t of e)s._processEntry(t),t.startTime<n.firstHiddenTime&&(a.value=Math.max(t.startTime-Em(),0),a.entries=[t],o())},i=Nm("largest-contentful-paint",r);if(i){o=xm(e,a,nh,t.reportAllChanges);const n=$m(()=>{r(i.takeRecords()),i.disconnect(),o(!0)}),s=e=>{e.isTrusted&&(Qm(n),Cm(e.type,s,{capture:!0}))};for(const e of["keydown","click","visibilitychange"])Tm(e,s,{capture:!0})}})})(e=>{gh("lcp",{metric:e}),ch=e},{reportAllChanges:!0})}function yh(){return((e,t={})=>{const n=Om("TTFB"),a=xm(e,n,ah,t.reportAllChanges);oh(()=>{const e=zm();e&&(n.value=Math.max(e.responseStart-Em(),0),n.entries=[e],a(!0))})})(e=>{gh("ttfb",{metric:e}),uh=e})}function bh(){return((e,t={})=>{if(!globalThis.PerformanceEventTiming||!("interactionId"in PerformanceEventTiming.prototype))return;const n=Am();Fm(()=>{Gm();const a=Om("INP");let o;const s=Pm(t,Xm),r=e=>{Qm(()=>{for(const t of e)s._processEntry(t);const t=s._estimateP98LongestInteraction();t&&t._latency!==a.value&&(a.value=t._latency,a.entries=t.entries,o())})},i=Nm("event",r,{durationThreshold:t.durationThreshold??40});o=xm(e,a,eh,t.reportAllChanges),i&&(i.observe({type:"first-input",buffered:!0}),n.onHidden(()=>{r(i.takeRecords()),o(!0)}))})})(e=>{gh("inp",{metric:e}),lh=e})}function wh(e,t,n,a,o=!1){let s;return vh(e,t),rh[e]||(s=n(),rh[e]=!0),a&&t({metric:a}),_h(e,t,o?s:void 0)}function vh(e,t){sh[e]=sh[e]||[],sh[e].push(t)}function _h(e,t,n){return()=>{n&&n();const a=sh[e];if(!a)return;const o=a.indexOf(t);-1!==o&&a.splice(o,1)}}const jh=u,Sh="sentryReplaySession",xh="Unable to send Replay",zh=15e4,Eh=5e3,Th=2e7;var Ch=Object.defineProperty,Ih=(e,t,n)=>((e,t,n)=>t in e?Ch(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n)(e,"symbol"!=typeof t?t+"":t,n),Mh=(e=>(e[e.Document=0]="Document",e[e.DocumentType=1]="DocumentType",e[e.Element=2]="Element",e[e.Text=3]="Text",e[e.CDATA=4]="CDATA",e[e.Comment=5]="Comment",e))(Mh||{});function Rh(e){const t=e?.host;return Boolean(t?.shadowRoot===e)}function Ah(e){return"[object ShadowRoot]"===Object.prototype.toString.call(e)}function Oh(e){try{const n=e.rules||e.cssRules;return n?((t=Array.from(n,Dh).join("")).includes(" background-clip: text;")&&!t.includes(" -webkit-background-clip: text;")&&(t=t.replace(/\sbackground-clip:\s*text;/g," -webkit-background-clip: text; background-clip: text;")),t):null}catch(e){return null}var t}function Dh(e){let t;if(function(e){return"styleSheet"in e}(e))try{t=Oh(e.styleSheet)||function(e){const{cssText:t}=e;if(t.split('"').length<3)return t;const n=["@import",`url(${JSON.stringify(e.href)})`];return""===e.layerName?n.push("layer"):e.layerName&&n.push(`layer(${e.layerName})`),e.supportsText&&n.push(`supports(${e.supportsText})`),e.media.length&&n.push(e.media.mediaText),n.join(" ")+";"}(e)}catch(e){}else if(function(e){return"selectorText"in e}(e)){let t=e.cssText;const n=e.selectorText.includes(":"),a="string"==typeof e.style.all&&e.style.all;if(a&&(t=function(e){let t="";for(let n=0;n<e.style.length;n++){const a=e.style,o=a[n],s=a.getPropertyPriority(o);t+=`${o}:${a.getPropertyValue(o)}${s?" !important":""};`}return`${e.selectorText} { ${t} }`}(e)),n&&(t=t.replace(/(\[(?:[\w-]+)[^\\])(:(?:[\w-]+)\])/gm,"$1\\$2")),n||a)return t}return t||e.cssText}class Ph{constructor(){Ih(this,"idNodeMap",new Map),Ih(this,"nodeMetaMap",new WeakMap)}getId(e){if(!e)return-1;const t=this.getMeta(e)?.id;return t??-1}getNode(e){return this.idNodeMap.get(e)||null}getIds(){return Array.from(this.idNodeMap.keys())}getMeta(e){return this.nodeMetaMap.get(e)||null}removeNodeFromMap(e){const t=this.getId(e);this.idNodeMap.delete(t),e.childNodes&&e.childNodes.forEach(e=>this.removeNodeFromMap(e))}has(e){return this.idNodeMap.has(e)}hasNode(e){return this.nodeMetaMap.has(e)}add(e,t){const n=t.id;this.idNodeMap.set(n,e),this.nodeMetaMap.set(e,t)}replace(e,t){const n=this.getNode(e);if(n){const e=this.nodeMetaMap.get(n);e&&this.nodeMetaMap.set(t,e)}this.idNodeMap.set(e,t)}reset(){this.idNodeMap=new Map,this.nodeMetaMap=new WeakMap}}function Lh({maskInputOptions:e,tagName:t,type:n}){return"OPTION"===t&&(t="SELECT"),Boolean(e[t.toLowerCase()]||n&&e[n]||"password"===n||"INPUT"===t&&!n&&e.text)}function Nh({isMasked:e,element:t,value:n,maskInputFn:a}){let o=n||"";return e?(a&&(o=a(o,t)),"*".repeat(o.length)):o}function $h(e){return e.toLowerCase()}function Fh(e){return e.toUpperCase()}const Uh="__rrweb_original__";function Bh(e){const t=e.type;return e.hasAttribute("data-rr-is-password")?"password":t?$h(t):null}function qh(e,t,n){return"INPUT"!==t||"radio"!==n&&"checkbox"!==n?e.value:e.getAttribute("value")||""}function Hh(e,t){let n;try{n=new URL(e,t??window.location.href)}catch(e){return null}const a=n.pathname.match(/\.([0-9a-z]+)(?:$)/i);return a?.[1]??null}const Wh={};function Vh(e){const t=Wh[e];if(t)return t;const n=window.document;let a=window[e];if(n&&"function"==typeof n.createElement)try{const t=n.createElement("iframe");t.hidden=!0,n.head.appendChild(t);const o=t.contentWindow;o&&o[e]&&(a=o[e]),n.head.removeChild(t)}catch(e){}return Wh[e]=a.bind(window)}function Jh(...e){return Vh("setTimeout")(...e)}function Yh(...e){return Vh("clearTimeout")(...e)}function Gh(e){try{return e.contentDocument}catch(e){}}let Kh=1;const Xh=new RegExp("[^a-z0-9-_:]");function Zh(){return Kh++}let Qh,eg;const tg=/url\((?:(')([^']*)'|(")(.*?)"|([^)]*))\)/gm,ng=/^(?:[a-z+]+:)?\/\//i,ag=/^www\..*/i,og=/^(data:)([^,]*),(.*)/i;function sg(e,t){return(e||"").replace(tg,(e,n,a,o,s,r)=>{const i=a||s||r,c=n||o||"";if(!i)return e;if(ng.test(i)||ag.test(i))return`url(${c}${i}${c})`;if(og.test(i))return`url(${c}${i}${c})`;if("/"===i[0])return`url(${c}${function(e){let t="";return t=e.indexOf("//")>-1?e.split("/").slice(0,3).join("/"):e.split("/")[0],t=t.split("?")[0],t}(t)+i}${c})`;const u=t.split("/"),l=i.split("/");u.pop();for(const e of l)"."!==e&&(".."===e?u.pop():u.push(e));return`url(${c}${u.join("/")}${c})`})}const rg=/^[^ \t\n\r\u000c]+/,ig=/^[, \t\n\r\u000c]+/,cg=new WeakMap;function ug(e,t){return t&&""!==t.trim()?lg(e,t):t}function lg(e,t){let n=cg.get(e);if(n||(n=e.createElement("a"),cg.set(e,n)),t){if(t.startsWith("blob:")||t.startsWith("data:"))return t}else t="";return n.setAttribute("href",t),n.href}function pg(e,t,n,a,o,s,r){if(!a)return a;if("src"===n||"href"===n&&("use"!==t||"#"!==a[0]))return ug(e,a);if("xlink:href"===n&&"#"!==a[0])return ug(e,a);if("background"===n&&("table"===t||"td"===t||"th"===t))return ug(e,a);if("srcset"===n)return function(e,t){if(""===t.trim())return t;let n=0;function a(e){let a;const o=e.exec(t.substring(n));return o?(a=o[0],n+=a.length,a):""}const o=[];for(;a(ig),!(n>=t.length);){let s=a(rg);if(","===s.slice(-1))s=ug(e,s.substring(0,s.length-1)),o.push(s);else{let a="";s=ug(e,s);let r=!1;for(;;){const e=t.charAt(n);if(""===e){o.push((s+a).trim());break}if(r)")"===e&&(r=!1);else{if(","===e){n+=1,o.push((s+a).trim());break}"("===e&&(r=!0)}a+=e,n+=1}}}return o.join(", ")}(e,a);if("style"===n){let t=sg(a,lg(e));return r&&r.size>0&&(t=function(e,t){if(!e||0===t.size)return e;try{const n=e.split(";"),a=[];for(let e of n){if(e=e.trim(),!e)continue;const n=e.indexOf(":");if(-1===n){a.push(e);continue}const o=e.slice(0,n).trim();t.has(o)||a.push(e)}return a.join("; ")+(a.length>0&&e.endsWith(";")?";":"")}catch(t){return console.warn("Error filtering CSS properties:",t),e}}(t,r)),t}return"object"===t&&"data"===n?ug(e,a):"function"==typeof s?s(n,a,o):a}function dg(e,t,n){return("video"===e||"audio"===e)&&"autoplay"===t}function mg(e,t,n=1/0,a=0){return e?e.nodeType!==e.ELEMENT_NODE||a>n?-1:t(e)?a:mg(e.parentNode,t,n,a+1):-1}function hg(e,t){return n=>{const a=n;if(null===a)return!1;try{if(e)if("string"==typeof e){if(a.matches(`.${e}`))return!0}else if(function(e,t){for(let n=e.classList.length;n--;){const a=e.classList[n];if(t.test(a))return!0}return!1}(a,e))return!0;return!(!t||!a.matches(t))}catch{return!1}}}function gg(e,t,n,a,o,s){try{const r=e.nodeType===e.ELEMENT_NODE?e:e.parentElement;if(null===r)return!1;if("INPUT"===r.tagName){const e=r.getAttribute("autocomplete");if(["current-password","new-password","cc-number","cc-exp","cc-exp-month","cc-exp-year","cc-csc"].includes(e))return!0}let i=-1,c=-1;if(s){if(c=mg(r,hg(a,o)),c<0)return!0;i=mg(r,hg(t,n),c>=0?c:1/0)}else{if(i=mg(r,hg(t,n)),i<0)return!1;c=mg(r,hg(a,o),i>=0?i:1/0)}return i>=0?!(c>=0)||i<=c:!(c>=0||!s)}catch(e){}return!!s}function fg(e){return null==e?"":e.toLowerCase()}function kg(e,t){const{doc:n,mirror:a,blockClass:o,blockSelector:s,unblockSelector:r,maskAllText:i,maskTextClass:c,unmaskTextClass:u,maskTextSelector:l,unmaskTextSelector:p,skipChild:d=!1,inlineStylesheet:m=!0,maskInputOptions:h={},maskAttributeFn:g,maskTextFn:f,maskInputFn:k,slimDOMOptions:y,dataURLOptions:b={},inlineImages:w=!1,recordCanvas:v=!1,onSerialize:_,onIframeLoad:j,iframeLoadTimeout:S=5e3,onBlockedImageLoad:x,onStylesheetLoad:z,stylesheetLoadTimeout:E=5e3,keepIframeSrcFn:T=()=>!1,newlyAddedElement:C=!1,ignoreCSSAttributes:I}=t;let{preserveWhiteSpace:M=!0}=t;const R=function(e,t){const{doc:n,mirror:a,blockClass:o,blockSelector:s,unblockSelector:r,maskAllText:i,maskAttributeFn:c,maskTextClass:u,unmaskTextClass:l,maskTextSelector:p,unmaskTextSelector:d,inlineStylesheet:m,maskInputOptions:h={},maskTextFn:g,maskInputFn:f,dataURLOptions:k={},inlineImages:y,recordCanvas:b,keepIframeSrcFn:w,newlyAddedElement:v=!1,ignoreCSSAttributes:_}=t,j=function(e,t){if(!t.hasNode(e))return;const n=t.getId(e);return 1===n?void 0:n}(n,a);switch(e.nodeType){case e.DOCUMENT_NODE:return"CSS1Compat"!==e.compatMode?{type:Mh.Document,childNodes:[],compatMode:e.compatMode}:{type:Mh.Document,childNodes:[]};case e.DOCUMENT_TYPE_NODE:return{type:Mh.DocumentType,name:e.name,publicId:e.publicId,systemId:e.systemId,rootId:j};case e.ELEMENT_NODE:return function(e,t){const{doc:n,blockClass:a,blockSelector:o,unblockSelector:s,inlineStylesheet:r,maskInputOptions:i={},maskAttributeFn:c,maskInputFn:u,dataURLOptions:l={},inlineImages:p,recordCanvas:d,keepIframeSrcFn:m,newlyAddedElement:h=!1,rootId:g,maskTextClass:f,unmaskTextClass:k,maskTextSelector:y,unmaskTextSelector:b,ignoreCSSAttributes:w}=t,v=function(e,t,n,a){try{if(a&&e.matches(a))return!1;if("string"==typeof t){if(e.classList.contains(t))return!0}else for(let n=e.classList.length;n--;){const a=e.classList[n];if(t.test(a))return!0}if(n)return e.matches(n)}catch(e){}return!1}(e,a,o,s),_=function(e){if(e instanceof HTMLFormElement)return"form";const t=$h(e.tagName);return Xh.test(t)?"div":t}(e);let j={};const S=e.attributes.length;for(let t=0;t<S;t++){const a=e.attributes[t];a.name&&!dg(_,a.name,a.value)&&(j[a.name]=pg(n,_,$h(a.name),a.value,e,c,w))}if("link"===_&&r){const t=Array.from(n.styleSheets).find(t=>t.href===e.href);let a=null;t&&(a=Oh(t)),a&&(j.rel=null,j.href=null,j.crossorigin=null,j._cssText=sg(a,t.href))}if("style"===_&&e.sheet&&!(e.innerText||e.textContent||"").trim().length){const t=Oh(e.sheet);t&&(j._cssText=sg(t,lg(n)))}if("input"===_||"textarea"===_||"select"===_||"option"===_){const t=e,n=Bh(t),a=qh(t,Fh(_),n),o=t.checked;if("submit"!==n&&"button"!==n&&a){const e=gg(t,f,y,k,b,Lh({type:n,tagName:Fh(_),maskInputOptions:i}));j.value=Nh({isMasked:e,element:t,value:a,maskInputFn:u})}o&&(j.checked=o)}if("option"===_&&(e.selected&&!i.select?j.selected=!0:delete j.selected),"canvas"===_&&d)if("2d"===e.__context)(function(e){const t=e.getContext("2d");if(!t)return!0;for(let n=0;n<e.width;n+=50)for(let a=0;a<e.height;a+=50){const o=t.getImageData,s=Uh in o?o[Uh]:o;if(new Uint32Array(s.call(t,n,a,Math.min(50,e.width-n),Math.min(50,e.height-a)).data.buffer).some(e=>0!==e))return!1}return!0})(e)||(j.rr_dataURL=e.toDataURL(l.type,l.quality));else if(!("__context"in e)){const t=e.toDataURL(l.type,l.quality),a=n.createElement("canvas");a.width=e.width,a.height=e.height,t!==a.toDataURL(l.type,l.quality)&&(j.rr_dataURL=t)}if("img"===_&&p){Qh||(Qh=n.createElement("canvas"),eg=Qh.getContext("2d"));const t=e,a=t.currentSrc||t.getAttribute("src")||"<unknown-src>",o=t.crossOrigin,s=()=>{t.removeEventListener("load",s);try{Qh.width=t.naturalWidth,Qh.height=t.naturalHeight,eg.drawImage(t,0,0),j.rr_dataURL=Qh.toDataURL(l.type,l.quality)}catch(e){if("anonymous"!==t.crossOrigin)return t.crossOrigin="anonymous",void(t.complete&&0!==t.naturalWidth?s():t.addEventListener("load",s));console.warn(`Cannot inline img src=${a}! Error: ${e}`)}"anonymous"===t.crossOrigin&&(o?j.crossOrigin=o:t.removeAttribute("crossorigin"))};t.complete&&0!==t.naturalWidth?s():t.addEventListener("load",s)}if("audio"!==_&&"video"!==_||(j.rr_mediaState=e.paused?"paused":"played",j.rr_mediaCurrentTime=e.currentTime),h||(e.scrollLeft&&(j.rr_scrollLeft=e.scrollLeft),e.scrollTop&&(j.rr_scrollTop=e.scrollTop)),v){const{width:t,height:n}=e.getBoundingClientRect();j={class:j.class,rr_width:`${t}px`,rr_height:`${n}px`}}let x;"iframe"!==_||m(j.src)||(v||Gh(e)||(j.rr_src=j.src),delete j.src);try{customElements.get(_)&&(x=!0)}catch(e){}return{type:Mh.Element,tagName:_,attributes:j,childNodes:[],isSVG:(z=e,Boolean("svg"===z.tagName||z.ownerSVGElement)||void 0),needBlock:v,rootId:g,isCustom:x};var z}(e,{doc:n,blockClass:o,blockSelector:s,unblockSelector:r,inlineStylesheet:m,maskAttributeFn:c,maskInputOptions:h,maskInputFn:f,dataURLOptions:k,inlineImages:y,recordCanvas:b,keepIframeSrcFn:w,newlyAddedElement:v,rootId:j,maskTextClass:u,unmaskTextClass:l,maskTextSelector:p,unmaskTextSelector:d,ignoreCSSAttributes:_});case e.TEXT_NODE:return function(e,t){const{maskAllText:n,maskTextClass:a,unmaskTextClass:o,maskTextSelector:s,unmaskTextSelector:r,maskTextFn:i,maskInputOptions:c,maskInputFn:u,rootId:l}=t,p=e.parentNode&&e.parentNode.tagName;let d=e.textContent;const m="STYLE"===p||void 0,h="SCRIPT"===p||void 0,g="TEXTAREA"===p||void 0;if(m&&d){try{e.nextSibling||e.previousSibling||e.parentNode.sheet?.cssRules&&(d=Oh(e.parentNode.sheet))}catch(t){console.warn(`Cannot get CSS styles from text's parentNode. Error: ${t}`,e)}d=sg(d,lg(t.doc))}h&&(d="SCRIPT_PLACEHOLDER");const f=gg(e,a,s,o,r,n);return m||h||g||!d||!f||(d=i?i(d,e.parentElement):d.replace(/[\S]/g,"*")),g&&d&&(c.textarea||f)&&(d=u?u(d,e.parentNode):d.replace(/[\S]/g,"*")),"OPTION"===p&&d&&(d=Nh({isMasked:gg(e,a,s,o,r,Lh({type:null,tagName:p,maskInputOptions:c})),element:e,value:d,maskInputFn:u})),{type:Mh.Text,textContent:d||"",isStyle:m,rootId:l}}(e,{doc:n,maskAllText:i,maskTextClass:u,unmaskTextClass:l,maskTextSelector:p,unmaskTextSelector:d,maskTextFn:g,maskInputOptions:h,maskInputFn:f,rootId:j});case e.CDATA_SECTION_NODE:return{type:Mh.CDATA,textContent:"",rootId:j};case e.COMMENT_NODE:return{type:Mh.Comment,textContent:e.textContent||"",rootId:j};default:return!1}}(e,{doc:n,mirror:a,blockClass:o,blockSelector:s,maskAllText:i,unblockSelector:r,maskTextClass:c,unmaskTextClass:u,maskTextSelector:l,unmaskTextSelector:p,inlineStylesheet:m,maskInputOptions:h,maskAttributeFn:g,maskTextFn:f,maskInputFn:k,dataURLOptions:b,inlineImages:w,recordCanvas:v,keepIframeSrcFn:T,newlyAddedElement:C,ignoreCSSAttributes:I});if(!R)return console.warn(e,"not serialized"),null;let A;A=a.hasNode(e)?a.getId(e):!function(e,t){if(t.comment&&e.type===Mh.Comment)return!0;if(e.type===Mh.Element){if(t.script&&("script"===e.tagName||"link"===e.tagName&&("preload"===e.attributes.rel||"modulepreload"===e.attributes.rel)||"link"===e.tagName&&"prefetch"===e.attributes.rel&&"string"==typeof e.attributes.href&&"js"===Hh(e.attributes.href)))return!0;if(t.headFavicon&&("link"===e.tagName&&"shortcut icon"===e.attributes.rel||"meta"===e.tagName&&(fg(e.attributes.name).match(/^msapplication-tile(image|color)$/)||"application-name"===fg(e.attributes.name)||"icon"===fg(e.attributes.rel)||"apple-touch-icon"===fg(e.attributes.rel)||"shortcut icon"===fg(e.attributes.rel))))return!0;if("meta"===e.tagName){if(t.headMetaDescKeywords&&fg(e.attributes.name).match(/^description|keywords$/))return!0;if(t.headMetaSocial&&(fg(e.attributes.property).match(/^(og|twitter|fb):/)||fg(e.attributes.name).match(/^(og|twitter):/)||"pinterest"===fg(e.attributes.name)))return!0;if(t.headMetaRobots&&("robots"===fg(e.attributes.name)||"googlebot"===fg(e.attributes.name)||"bingbot"===fg(e.attributes.name)))return!0;if(t.headMetaHttpEquiv&&void 0!==e.attributes["http-equiv"])return!0;if(t.headMetaAuthorship&&("author"===fg(e.attributes.name)||"generator"===fg(e.attributes.name)||"framework"===fg(e.attributes.name)||"publisher"===fg(e.attributes.name)||"progid"===fg(e.attributes.name)||fg(e.attributes.property).match(/^article:/)||fg(e.attributes.property).match(/^product:/)))return!0;if(t.headMetaVerification&&("google-site-verification"===fg(e.attributes.name)||"yandex-verification"===fg(e.attributes.name)||"csrf-token"===fg(e.attributes.name)||"p:domain_verify"===fg(e.attributes.name)||"verify-v1"===fg(e.attributes.name)||"verification"===fg(e.attributes.name)||"shopify-checkout-api-token"===fg(e.attributes.name)))return!0}}return!1}(R,y)&&(M||R.type!==Mh.Text||R.isStyle||R.textContent.replace(/^\s+|\s+$/gm,"").length)?Zh():-2;const O=Object.assign(R,{id:A});if(a.add(e,O),-2===A)return null;_&&_(e);let D=!d;if(O.type===Mh.Element){D=D&&!O.needBlock;const t=e.shadowRoot;t&&Ah(t)&&(O.isShadowHost=!0)}if((O.type===Mh.Document||O.type===Mh.Element)&&D){y.headWhitespace&&O.type===Mh.Element&&"head"===O.tagName&&(M=!1);const t={doc:n,mirror:a,blockClass:o,blockSelector:s,maskAllText:i,unblockSelector:r,maskTextClass:c,unmaskTextClass:u,maskTextSelector:l,unmaskTextSelector:p,skipChild:d,inlineStylesheet:m,maskInputOptions:h,maskAttributeFn:g,maskTextFn:f,maskInputFn:k,slimDOMOptions:y,dataURLOptions:b,inlineImages:w,recordCanvas:v,preserveWhiteSpace:M,onSerialize:_,onIframeLoad:j,iframeLoadTimeout:S,onBlockedImageLoad:x,onStylesheetLoad:z,stylesheetLoadTimeout:E,keepIframeSrcFn:T,ignoreCSSAttributes:I},C=e.childNodes?Array.from(e.childNodes):[];for(const e of C){const n=kg(e,t);n&&O.childNodes.push(n)}if(function(e){return e.nodeType===e.ELEMENT_NODE}(e)&&e.shadowRoot)for(const n of Array.from(e.shadowRoot.childNodes)){const a=kg(n,t);a&&(Ah(e.shadowRoot)&&(a.isShadow=!0),O.childNodes.push(a))}}if(e.parentNode&&Rh(e.parentNode)&&Ah(e.parentNode)&&(O.isShadow=!0),O.type!==Mh.Element||"iframe"!==O.tagName||O.needBlock||function(e,t,n){const a=e.contentWindow;if(!a)return;let o,s=!1;try{o=a.document.readyState}catch(e){return}if("complete"!==o){const a=Jh(()=>{s||(t(),s=!0)},n);return void e.addEventListener("load",()=>{Yh(a),s=!0,t()})}const r="about:blank";if(a.location.href!==r||e.src===r||""===e.src)return Jh(t,0),e.addEventListener("load",t);e.addEventListener("load",t)}(e,()=>{const t=Gh(e);if(t&&j){const n=kg(t,{doc:t,mirror:a,blockClass:o,blockSelector:s,unblockSelector:r,maskAllText:i,maskTextClass:c,unmaskTextClass:u,maskTextSelector:l,unmaskTextSelector:p,skipChild:!1,inlineStylesheet:m,maskInputOptions:h,maskAttributeFn:g,maskTextFn:f,maskInputFn:k,slimDOMOptions:y,dataURLOptions:b,inlineImages:w,recordCanvas:v,preserveWhiteSpace:M,onSerialize:_,onIframeLoad:j,iframeLoadTimeout:S,onStylesheetLoad:z,stylesheetLoadTimeout:E,keepIframeSrcFn:T,ignoreCSSAttributes:I});n&&j(e,n)}},S),O.type===Mh.Element&&"img"===O.tagName&&!e.complete&&O.needBlock){const t=e,n=()=>{if(t.isConnected&&!t.complete&&x)try{const e=t.getBoundingClientRect();e.width>0&&e.height>0&&x(t,O,e)}catch(e){}t.removeEventListener("load",n)};t.isConnected&&t.addEventListener("load",n)}return O.type===Mh.Element&&"link"===O.tagName&&"string"==typeof O.attributes.rel&&("stylesheet"===O.attributes.rel||"preload"===O.attributes.rel&&"string"==typeof O.attributes.href&&"css"===Hh(O.attributes.href))&&function(e,t,n){let a,o=!1;try{a=e.sheet}catch(e){return}if(a)return;const s=Jh(()=>{o||(t(),o=!0)},n);e.addEventListener("load",()=>{Yh(s),o=!0,t()})}(e,()=>{if(z){const t=kg(e,{doc:n,mirror:a,blockClass:o,blockSelector:s,unblockSelector:r,maskAllText:i,maskTextClass:c,unmaskTextClass:u,maskTextSelector:l,unmaskTextSelector:p,skipChild:!1,inlineStylesheet:m,maskInputOptions:h,maskAttributeFn:g,maskTextFn:f,maskInputFn:k,slimDOMOptions:y,dataURLOptions:b,inlineImages:w,recordCanvas:v,preserveWhiteSpace:M,onSerialize:_,onIframeLoad:j,iframeLoadTimeout:S,onStylesheetLoad:z,stylesheetLoadTimeout:E,keepIframeSrcFn:T,ignoreCSSAttributes:I});t&&z(e,t)}},E),O.type===Mh.Element&&delete O.needBlock,O}function yg(e,t,n=document){const a={capture:!0,passive:!0};return n.addEventListener(e,t,a),()=>n.removeEventListener(e,t,a)}const bg="Please stop import mirror directly. Instead of that,\r\nnow you can use replayer.getMirror() to access the mirror instance of a replayer,\r\nor you can use record.mirror to access the mirror instance during recording.";let wg={map:{},getId:()=>(console.error(bg),-1),getNode:()=>(console.error(bg),null),removeNodeFromMap(){console.error(bg)},has:()=>(console.error(bg),!1),reset(){console.error(bg)}};function vg(e,t,n={}){let a=null,o=0;return function(...s){const r=Date.now();o||!1!==n.leading||(o=r);const i=t-(r-o),c=this;i<=0||i>t?(a&&(function(...e){Fg("clearTimeout")(...e)}(a),a=null),o=r,e.apply(c,s)):a||!1===n.trailing||(a=Ug(()=>{o=!1===n.leading?0:Date.now(),a=null,e.apply(c,s)},i))}}function _g(e,t,n,a,o=window){const s=o.Object.getOwnPropertyDescriptor(e,t);return o.Object.defineProperty(e,t,a?n:{set(e){Ug(()=>{n.set.call(this,e)},0),s&&s.set&&s.set.call(this,e)}}),()=>_g(e,t,s||{},!0)}function jg(e,t,n){try{if(!(t in e))return()=>{};const a=e[t],o=n(a);return"function"==typeof o&&(o.prototype=o.prototype||{},Object.defineProperties(o,{__rrweb_original__:{enumerable:!1,value:a}})),e[t]=o,()=>{e[t]=a}}catch{return()=>{}}}"undefined"!=typeof window&&window.Proxy&&window.Reflect&&(wg=new Proxy(wg,{get:(e,t,n)=>("map"===t&&console.error(bg),Reflect.get(e,t,n))}));let Sg=Date.now;function xg(e){const t=e.document;return{left:t.scrollingElement?t.scrollingElement.scrollLeft:void 0!==e.pageXOffset?e.pageXOffset:t?.documentElement.scrollLeft||t?.body?.parentElement?.scrollLeft||t?.body?.scrollLeft||0,top:t.scrollingElement?t.scrollingElement.scrollTop:void 0!==e.pageYOffset?e.pageYOffset:t?.documentElement.scrollTop||t?.body?.parentElement?.scrollTop||t?.body?.scrollTop||0}}function zg(){return window.innerHeight||document.documentElement&&document.documentElement.clientHeight||document.body&&document.body.clientHeight}function Eg(){return window.innerWidth||document.documentElement&&document.documentElement.clientWidth||document.body&&document.body.clientWidth}function Tg(e){if(!e)return null;try{return e.nodeType===e.ELEMENT_NODE?e:e.parentElement}catch(e){return null}}function Cg(e,t,n,a,o){if(!e)return!1;const s=Tg(e);if(!s)return!1;const r=hg(t,n);if(!o){const e=a&&s.matches(a);return r(s)&&!e}const i=mg(s,r);let c=-1;return!(i<0)&&(a&&(c=mg(s,hg(null,a))),i>-1&&c<0||i<c)}function Ig(e,t){return-2===t.getId(e)}function Mg(e,t){if(Rh(e))return!1;const n=t.getId(e);return!t.has(n)||(!e.parentNode||e.parentNode.nodeType!==e.DOCUMENT_NODE)&&(!e.parentNode||Mg(e.parentNode,t))}function Rg(e){return Boolean(e.changedTouches)}function Ag(e,t){return Boolean("IFRAME"===e.nodeName&&t.getMeta(e))}function Og(e,t){return Boolean("LINK"===e.nodeName&&e.nodeType===e.ELEMENT_NODE&&e.getAttribute&&"stylesheet"===e.getAttribute("rel")&&t.getMeta(e))}function Dg(e){return Boolean(e?.shadowRoot)}/[1-9][0-9]{12}/.test(Date.now().toString())||(Sg=()=>(new Date).getTime());class Pg{constructor(){this.id=1,this.styleIDMap=new WeakMap,this.idStyleMap=new Map}getId(e){return this.styleIDMap.get(e)??-1}has(e){return this.styleIDMap.has(e)}add(e,t){if(this.has(e))return this.getId(e);let n;return n=void 0===t?this.id++:t,this.styleIDMap.set(e,n),this.idStyleMap.set(n,e),n}getStyle(e){return this.idStyleMap.get(e)||null}reset(){this.styleIDMap=new WeakMap,this.idStyleMap=new Map,this.id=1}generateId(){return this.id++}}function Lg(e){let t=null;return e.getRootNode?.()?.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&e.getRootNode().host&&(t=e.getRootNode().host),t}function Ng(e){const t=e.ownerDocument;return!!t&&(t.contains(e)||function(e){const t=e.ownerDocument;if(!t)return!1;const n=function(e){let t,n=e;for(;t=Lg(n);)n=t;return n}(e);return t.contains(n)}(e))}const $g={};function Fg(e){const t=$g[e];if(t)return t;const n=window.document;let a=window[e];if(n&&"function"==typeof n.createElement)try{const t=n.createElement("iframe");t.hidden=!0,n.head.appendChild(t);const o=t.contentWindow;o&&o[e]&&(a=o[e]),n.head.removeChild(t)}catch(e){}return $g[e]=a.bind(window)}function Ug(...e){return Fg("setTimeout")(...e)}var Bg=(e=>(e[e.DomContentLoaded=0]="DomContentLoaded",e[e.Load=1]="Load",e[e.FullSnapshot=2]="FullSnapshot",e[e.IncrementalSnapshot=3]="IncrementalSnapshot",e[e.Meta=4]="Meta",e[e.Custom=5]="Custom",e[e.Plugin=6]="Plugin",e))(Bg||{}),qg=(e=>(e[e.Mutation=0]="Mutation",e[e.MouseMove=1]="MouseMove",e[e.MouseInteraction=2]="MouseInteraction",e[e.Scroll=3]="Scroll",e[e.ViewportResize=4]="ViewportResize",e[e.Input=5]="Input",e[e.TouchMove=6]="TouchMove",e[e.MediaInteraction=7]="MediaInteraction",e[e.StyleSheetRule=8]="StyleSheetRule",e[e.CanvasMutation=9]="CanvasMutation",e[e.Font=10]="Font",e[e.Log=11]="Log",e[e.Drag=12]="Drag",e[e.StyleDeclaration=13]="StyleDeclaration",e[e.Selection=14]="Selection",e[e.AdoptedStyleSheet=15]="AdoptedStyleSheet",e[e.CustomElement=16]="CustomElement",e))(qg||{}),Hg=(e=>(e[e.MouseUp=0]="MouseUp",e[e.MouseDown=1]="MouseDown",e[e.Click=2]="Click",e[e.ContextMenu=3]="ContextMenu",e[e.DblClick=4]="DblClick",e[e.Focus=5]="Focus",e[e.Blur=6]="Blur",e[e.TouchStart=7]="TouchStart",e[e.TouchMove_Departed=8]="TouchMove_Departed",e[e.TouchEnd=9]="TouchEnd",e[e.TouchCancel=10]="TouchCancel",e))(Hg||{}),Wg=(e=>(e[e.Mouse=0]="Mouse",e[e.Pen=1]="Pen",e[e.Touch=2]="Touch",e))(Wg||{}),Vg=(e=>(e[e.Play=0]="Play",e[e.Pause=1]="Pause",e[e.Seeked=2]="Seeked",e[e.VolumeChange=3]="VolumeChange",e[e.RateChange=4]="RateChange",e))(Vg||{});function Jg(e){try{return e.contentDocument}catch(e){}}function Yg(e){return"__ln"in e}class Gg{constructor(){this.length=0,this.head=null,this.tail=null}get(e){if(e>=this.length)throw new Error("Position outside of list range");let t=this.head;for(let n=0;n<e;n++)t=t?.next||null;return t}addNode(e){const t={value:e,previous:null,next:null};if(e.__ln=t,e.previousSibling&&Yg(e.previousSibling)){const n=e.previousSibling.__ln.next;t.next=n,t.previous=e.previousSibling.__ln,e.previousSibling.__ln.next=t,n&&(n.previous=t)}else if(e.nextSibling&&Yg(e.nextSibling)&&e.nextSibling.__ln.previous){const n=e.nextSibling.__ln.previous;t.previous=n,t.next=e.nextSibling.__ln,e.nextSibling.__ln.previous=t,n&&(n.next=t)}else this.head&&(this.head.previous=t),t.next=this.head,this.head=t;null===t.next&&(this.tail=t),this.length++}removeNode(e){const t=e.__ln;this.head&&(t.previous?(t.previous.next=t.next,t.next?t.next.previous=t.previous:this.tail=t.previous):(this.head=t.next,this.head?this.head.previous=null:this.tail=null),e.__ln&&delete e.__ln,this.length--)}}const Kg=(e,t)=>`${e}@${t}`;class Xg{constructor(){this.frozen=!1,this.locked=!1,this.texts=[],this.attributes=[],this.attributeMap=new WeakMap,this.removes=[],this.mapRemoves=[],this.movedMap={},this.addedSet=new Set,this.movedSet=new Set,this.droppedSet=new Set,this.processMutations=e=>{e.forEach(this.processMutation),this.emit()},this.emit=()=>{if(this.frozen||this.locked)return;const e=[],t=new Set,n=new Gg,a=e=>{let t=e,n=-2;for(;-2===n;)t=t&&t.nextSibling,n=t&&this.mirror.getId(t);return n},o=o=>{if(!o.parentNode||!Ng(o))return;const s=Rh(o.parentNode)?this.mirror.getId(Lg(o)):this.mirror.getId(o.parentNode),r=a(o);if(-1===s||-1===r)return n.addNode(o);const i=kg(o,{doc:this.doc,mirror:this.mirror,blockClass:this.blockClass,blockSelector:this.blockSelector,maskAllText:this.maskAllText,unblockSelector:this.unblockSelector,maskTextClass:this.maskTextClass,unmaskTextClass:this.unmaskTextClass,maskTextSelector:this.maskTextSelector,unmaskTextSelector:this.unmaskTextSelector,skipChild:!0,newlyAddedElement:!0,inlineStylesheet:this.inlineStylesheet,maskInputOptions:this.maskInputOptions,maskAttributeFn:this.maskAttributeFn,maskTextFn:this.maskTextFn,maskInputFn:this.maskInputFn,slimDOMOptions:this.slimDOMOptions,dataURLOptions:this.dataURLOptions,recordCanvas:this.recordCanvas,inlineImages:this.inlineImages,onSerialize:e=>{Ag(e,this.mirror)&&!Cg(e,this.blockClass,this.blockSelector,this.unblockSelector,!1)&&this.iframeManager.addIframe(e),Og(e,this.mirror)&&this.stylesheetManager.trackLinkElement(e),Dg(o)&&this.shadowDomManager.addShadowRoot(o.shadowRoot,this.doc)},onIframeLoad:(e,t)=>{Cg(e,this.blockClass,this.blockSelector,this.unblockSelector,!1)||(this.iframeManager.attachIframe(e,t),e.contentWindow&&this.canvasManager.addWindow(e.contentWindow),this.shadowDomManager.observeAttachShadow(e))},onStylesheetLoad:(e,t)=>{this.stylesheetManager.attachLinkElement(e,t)},onBlockedImageLoad:(e,t,{width:n,height:a})=>{this.mutationCb({adds:[],removes:[],texts:[],attributes:[{id:t.id,attributes:{style:{width:`${n}px`,height:`${a}px`}}}]})},ignoreCSSAttributes:this.ignoreCSSAttributes});i&&(e.push({parentId:s,nextId:r,node:i}),t.add(i.id))};for(;this.mapRemoves.length;)this.mirror.removeNodeFromMap(this.mapRemoves.shift());for(const e of this.movedSet)Qg(this.removes,e,this.mirror)&&!this.movedSet.has(e.parentNode)||o(e);for(const e of this.addedSet)ef(this.droppedSet,e)||Qg(this.removes,e,this.mirror)?ef(this.movedSet,e)?o(e):this.droppedSet.add(e):o(e);let s=null;for(;n.length;){let e=null;if(s){const t=this.mirror.getId(s.value.parentNode),n=a(s.value);-1!==t&&-1!==n&&(e=s)}if(!e){let t=n.tail;for(;t;){const n=t;if(t=t.previous,n){const t=this.mirror.getId(n.value.parentNode);if(-1===a(n.value))continue;if(-1!==t){e=n;break}{const t=n.value;if(t.parentNode&&t.parentNode.nodeType===Node.DOCUMENT_FRAGMENT_NODE){const a=t.parentNode.host;if(-1!==this.mirror.getId(a)){e=n;break}}}}}}if(!e){for(;n.head;)n.removeNode(n.head.value);break}s=e.previous,n.removeNode(e.value),o(e.value)}const r={texts:this.texts.map(e=>({id:this.mirror.getId(e.node),value:e.value})).filter(e=>!t.has(e.id)).filter(e=>this.mirror.has(e.id)),attributes:this.attributes.map(e=>{const{attributes:t}=e;if("string"==typeof t.style){const n=JSON.stringify(e.styleDiff),a=JSON.stringify(e._unchangedStyles);n.length<t.style.length&&(n+a).split("var(").length===t.style.split("var(").length&&(t.style=e.styleDiff)}return{id:this.mirror.getId(e.node),attributes:t}}).filter(e=>!t.has(e.id)).filter(e=>this.mirror.has(e.id)),removes:this.removes,adds:e};(r.texts.length||r.attributes.length||r.removes.length||r.adds.length)&&(this.texts=[],this.attributes=[],this.attributeMap=new WeakMap,this.removes=[],this.addedSet=new Set,this.movedSet=new Set,this.droppedSet=new Set,this.movedMap={},this.mutationCb(r))},this.processMutation=e=>{if(!Ig(e.target,this.mirror))switch(e.type){case"characterData":{const t=e.target.textContent;Cg(e.target,this.blockClass,this.blockSelector,this.unblockSelector,!1)||t===e.oldValue||this.texts.push({value:gg(e.target,this.maskTextClass,this.maskTextSelector,this.unmaskTextClass,this.unmaskTextSelector,this.maskAllText)&&t?this.maskTextFn?this.maskTextFn(t,Tg(e.target)):t.replace(/[\S]/g,"*"):t,node:e.target});break}case"attributes":{const t=e.target;let n=e.attributeName,a=e.target.getAttribute(n);if("value"===n){const n=Bh(t),o=t.tagName;a=qh(t,o,n);const s=Lh({maskInputOptions:this.maskInputOptions,tagName:o,type:n});a=Nh({isMasked:gg(e.target,this.maskTextClass,this.maskTextSelector,this.unmaskTextClass,this.unmaskTextSelector,s),element:t,value:a,maskInputFn:this.maskInputFn})}if(Cg(e.target,this.blockClass,this.blockSelector,this.unblockSelector,!1)||a===e.oldValue)return;let o=this.attributeMap.get(e.target);if("IFRAME"===t.tagName&&"src"===n&&!this.keepIframeSrcFn(a)){if(Jg(t))return;n="rr_src"}if(o||(o={node:e.target,attributes:{},styleDiff:{},_unchangedStyles:{}},this.attributes.push(o),this.attributeMap.set(e.target,o)),"type"===n&&"INPUT"===t.tagName&&"password"===(e.oldValue||"").toLowerCase()&&t.setAttribute("data-rr-is-password","true"),!dg(t.tagName,n)&&(o.attributes[n]=pg(this.doc,$h(t.tagName),$h(n),a,t,this.maskAttributeFn),"style"===n)){if(!this.unattachedDoc)try{this.unattachedDoc=document.implementation.createHTMLDocument()}catch(e){this.unattachedDoc=this.doc}const n=this.unattachedDoc.createElement("span");e.oldValue&&n.setAttribute("style",e.oldValue);for(const e of Array.from(t.style)){const a=t.style.getPropertyValue(e),s=t.style.getPropertyPriority(e);a!==n.style.getPropertyValue(e)||s!==n.style.getPropertyPriority(e)?o.styleDiff[e]=""===s?a:[a,s]:o._unchangedStyles[e]=[a,s]}for(const e of Array.from(n.style))""===t.style.getPropertyValue(e)&&(o.styleDiff[e]=!1)}break}case"childList":if(Cg(e.target,this.blockClass,this.blockSelector,this.unblockSelector,!0))return;e.addedNodes.forEach(t=>this.genAdds(t,e.target)),e.removedNodes.forEach(t=>{const n=this.mirror.getId(t),a=Rh(e.target)?this.mirror.getId(e.target.host):this.mirror.getId(e.target);Cg(e.target,this.blockClass,this.blockSelector,this.unblockSelector,!1)||Ig(t,this.mirror)||!function(e,t){return-1!==t.getId(e)}(t,this.mirror)||(this.addedSet.has(t)?(Zg(this.addedSet,t),this.droppedSet.add(t)):this.addedSet.has(e.target)&&-1===n||Mg(e.target,this.mirror)||(this.movedSet.has(t)&&this.movedMap[Kg(n,a)]?Zg(this.movedSet,t):this.removes.push({parentId:a,id:n,isShadow:!(!Rh(e.target)||!Ah(e.target))||void 0})),this.mapRemoves.push(t))})}},this.genAdds=(e,t)=>{if(!this.processedNodeManager.inOtherBuffer(e,this)&&!this.addedSet.has(e)&&!this.movedSet.has(e)){if(this.mirror.hasNode(e)){if(Ig(e,this.mirror))return;this.movedSet.add(e);let n=null;t&&this.mirror.hasNode(t)&&(n=this.mirror.getId(t)),n&&-1!==n&&(this.movedMap[Kg(this.mirror.getId(e),n)]=!0)}else this.addedSet.add(e),this.droppedSet.delete(e);Cg(e,this.blockClass,this.blockSelector,this.unblockSelector,!1)||(e.childNodes&&e.childNodes.forEach(e=>this.genAdds(e)),Dg(e)&&e.shadowRoot.childNodes.forEach(t=>{this.processedNodeManager.add(t,this),this.genAdds(t,e)}))}}}init(e){["mutationCb","blockClass","blockSelector","unblockSelector","maskAllText","maskTextClass","unmaskTextClass","maskTextSelector","unmaskTextSelector","inlineStylesheet","maskInputOptions","maskAttributeFn","maskTextFn","maskInputFn","keepIframeSrcFn","recordCanvas","inlineImages","slimDOMOptions","dataURLOptions","doc","mirror","iframeManager","stylesheetManager","shadowDomManager","canvasManager","processedNodeManager","ignoreCSSAttributes"].forEach(t=>{this[t]=e[t]})}freeze(){this.frozen=!0,this.canvasManager.freeze()}unfreeze(){this.frozen=!1,this.canvasManager.unfreeze(),this.emit()}isFrozen(){return this.frozen}lock(){this.locked=!0,this.canvasManager.lock()}unlock(){this.locked=!1,this.canvasManager.unlock(),this.emit()}reset(){this.shadowDomManager.reset(),this.canvasManager.reset()}}function Zg(e,t){e.delete(t),t.childNodes?.forEach(t=>Zg(e,t))}function Qg(e,t,n){return 0!==e.length&&function(e,t,n){let a=t.parentNode;for(;a;){const t=n.getId(a);if(e.some(e=>e.id===t))return!0;a=a.parentNode}return!1}(e,t,n)}function ef(e,t){return 0!==e.size&&tf(e,t)}function tf(e,t){const{parentNode:n}=t;return!!n&&(!!e.has(n)||tf(e,n))}let nf;const af=e=>nf?(...t)=>{try{return e(...t)}catch(e){if(nf&&!0===nf(e))return()=>{};throw e}}:e,of=[];function sf(e){try{if("composedPath"in e){const t=e.composedPath();if(t.length)return t[0]}else if("path"in e&&e.path.length)return e.path[0]}catch{}return e&&e.target}function rf(e,t){const n=new Xg;of.push(n),n.init(e);let a=window.MutationObserver||window.__rrMutationObserver;const o=window?.Zone?.__symbol__?.("MutationObserver");o&&window[o]&&(a=window[o]);const s=new a(af(t=>{e.onMutation&&!1===e.onMutation(t)||n.processMutations.bind(n)(t)}));return s.observe(t,{attributes:!0,attributeOldValue:!0,characterData:!0,characterDataOldValue:!0,childList:!0,subtree:!0}),s}function cf({scrollCb:e,doc:t,mirror:n,blockClass:a,blockSelector:o,unblockSelector:s,sampling:r}){return yg("scroll",af(vg(af(r=>{const i=sf(r);if(!i||Cg(i,a,o,s,!0))return;const c=n.getId(i);if(i===t&&t.defaultView){const n=xg(t.defaultView);e({id:c,x:n.left,y:n.top})}else e({id:c,x:i.scrollLeft,y:i.scrollTop})}),r.scroll||100)),t)}const uf=["INPUT","TEXTAREA","SELECT"],lf=new WeakMap;function pf({inputCb:e,doc:t,mirror:n,blockClass:a,blockSelector:o,unblockSelector:s,ignoreClass:r,ignoreSelector:i,maskInputOptions:c,maskInputFn:u,sampling:l,userTriggeredOnInput:p,maskTextClass:d,unmaskTextClass:m,maskTextSelector:h,unmaskTextSelector:g}){function f(e){let n=sf(e);const l=e.isTrusted,f=n&&Fh(n.tagName);if("OPTION"===f&&(n=n.parentElement),!n||!f||uf.indexOf(f)<0||Cg(n,a,o,s,!0))return;const y=n;if(y.classList.contains(r)||i&&y.matches(i))return;const b=Bh(n);let w=qh(y,f,b),v=!1;const _=Lh({maskInputOptions:c,tagName:f,type:b}),j=gg(n,d,h,m,g,_);"radio"!==b&&"checkbox"!==b||(v=n.checked),w=Nh({isMasked:j,element:n,value:w,maskInputFn:u}),k(n,p?{text:w,isChecked:v,userTriggered:l}:{text:w,isChecked:v});const S=n.name;"radio"===b&&S&&v&&t.querySelectorAll(`input[type="radio"][name="${S}"]`).forEach(e=>{if(e!==n){const t=Nh({isMasked:j,element:e,value:qh(e,f,b),maskInputFn:u});k(e,p?{text:t,isChecked:!v,userTriggered:!1}:{text:t,isChecked:!v})}})}function k(t,a){const o=lf.get(t);if(!o||o.text!==a.text||o.isChecked!==a.isChecked){lf.set(t,a);const o=n.getId(t);af(e)({...a,id:o})}}const y=("last"===l.input?["change"]:["input","change"]).map(e=>yg(e,af(f),t)),b=t.defaultView;if(!b)return()=>{y.forEach(e=>e())};const w=b.Object.getOwnPropertyDescriptor(b.HTMLInputElement.prototype,"value"),v=[[b.HTMLInputElement.prototype,"value"],[b.HTMLInputElement.prototype,"checked"],[b.HTMLSelectElement.prototype,"value"],[b.HTMLTextAreaElement.prototype,"value"],[b.HTMLSelectElement.prototype,"selectedIndex"],[b.HTMLOptionElement.prototype,"selected"]];return w&&w.set&&y.push(...v.map(e=>_g(e[0],e[1],{set(){af(f)({target:this,isTrusted:!1})}},!1,b))),af(()=>{y.forEach(e=>e())})}function df(e){return function(e,t){if(ff("CSSGroupingRule")&&e.parentRule instanceof CSSGroupingRule||ff("CSSMediaRule")&&e.parentRule instanceof CSSMediaRule||ff("CSSSupportsRule")&&e.parentRule instanceof CSSSupportsRule||ff("CSSConditionRule")&&e.parentRule instanceof CSSConditionRule){const n=Array.from(e.parentRule.cssRules).indexOf(e);t.unshift(n)}else if(e.parentStyleSheet){const n=Array.from(e.parentStyleSheet.cssRules).indexOf(e);t.unshift(n)}return t}(e,[])}function mf(e,t,n){let a,o;return e?(e.ownerNode?a=t.getId(e.ownerNode):o=n.getId(e),{styleId:o,id:a}):{}}function hf({mirror:e,stylesheetManager:t},n){let a=null;a="#document"===n.nodeName?e.getId(n):e.getId(n.host);const o="#document"===n.nodeName?n.defaultView?.Document:n.ownerDocument?.defaultView?.ShadowRoot,s=o?.prototype?Object.getOwnPropertyDescriptor(o?.prototype,"adoptedStyleSheets"):void 0;return null!==a&&-1!==a&&o&&s?(Object.defineProperty(n,"adoptedStyleSheets",{configurable:s.configurable,enumerable:s.enumerable,get(){return s.get?.call(this)},set(e){const n=s.set?.call(this,e);if(null!==a&&-1!==a)try{t.adoptStyleSheets(e,a)}catch(e){}return n}}),af(()=>{Object.defineProperty(n,"adoptedStyleSheets",{configurable:s.configurable,enumerable:s.enumerable,get:s.get,set:s.set})})):()=>{}}function gf(e,t={}){const n=e.doc.defaultView;if(!n)return()=>{};let a;e.recordDOM&&(a=rf(e,e.doc));const o=function({mousemoveCb:e,sampling:t,doc:n,mirror:a}){if(!1===t.mousemove)return()=>{};const o="number"==typeof t.mousemove?t.mousemove:50,s="number"==typeof t.mousemoveCallback?t.mousemoveCallback:500;let r,i=[];const c=vg(af(t=>{const n=Date.now()-r;e(i.map(e=>(e.timeOffset-=n,e)),t),i=[],r=null}),s),u=af(vg(af(e=>{const t=sf(e),{clientX:n,clientY:o}=Rg(e)?e.changedTouches[0]:e;r||(r=Sg()),i.push({x:n,y:o,id:a.getId(t),timeOffset:Sg()-r}),c("undefined"!=typeof DragEvent&&e instanceof DragEvent?qg.Drag:e instanceof MouseEvent?qg.MouseMove:qg.TouchMove)}),o,{trailing:!1})),l=[yg("mousemove",u,n),yg("touchmove",u,n),yg("drag",u,n)];return af(()=>{l.forEach(e=>e())})}(e),s=function({mouseInteractionCb:e,doc:t,mirror:n,blockClass:a,blockSelector:o,unblockSelector:s,sampling:r}){if(!1===r.mouseInteraction)return()=>{};const i=!0===r.mouseInteraction||void 0===r.mouseInteraction?{}:r.mouseInteraction,c=[];let u=null;return Object.keys(Hg).filter(e=>Number.isNaN(Number(e))&&!e.endsWith("_Departed")&&!1!==i[e]).forEach(r=>{let i=$h(r);const l=(t=>r=>{const i=sf(r);if(Cg(i,a,o,s,!0))return;let c=null,l=t;if("pointerType"in r){switch(r.pointerType){case"mouse":c=Wg.Mouse;break;case"touch":c=Wg.Touch;break;case"pen":c=Wg.Pen}c===Wg.Touch?Hg[t]===Hg.MouseDown?l="TouchStart":Hg[t]===Hg.MouseUp&&(l="TouchEnd"):Wg.Pen}else Rg(r)&&(c=Wg.Touch);null!==c?(u=c,(l.startsWith("Touch")&&c===Wg.Touch||l.startsWith("Mouse")&&c===Wg.Mouse)&&(c=null)):Hg[t]===Hg.Click&&(c=u,u=null);const p=Rg(r)?r.changedTouches[0]:r;if(!p)return;const d=n.getId(i),{clientX:m,clientY:h}=p;af(e)({type:Hg[l],id:d,x:m,y:h,...null!==c&&{pointerType:c}})})(r);if(window.PointerEvent)switch(Hg[r]){case Hg.MouseDown:case Hg.MouseUp:i=i.replace("mouse","pointer");break;case Hg.TouchStart:case Hg.TouchEnd:return}c.push(yg(i,l,t))}),af(()=>{c.forEach(e=>e())})}(e),r=cf(e),i=function({viewportResizeCb:e},{win:t}){let n=-1,a=-1;return yg("resize",af(vg(af(()=>{const t=zg(),o=Eg();n===t&&a===o||(e({width:Number(o),height:Number(t)}),n=t,a=o)}),200)),t)}(e,{win:n}),c=pf(e),u=function({mediaInteractionCb:e,blockClass:t,blockSelector:n,unblockSelector:a,mirror:o,sampling:s,doc:r}){const i=af(r=>vg(af(s=>{const i=sf(s);if(!i||Cg(i,t,n,a,!0))return;const{currentTime:c,volume:u,muted:l,playbackRate:p}=i;e({type:r,id:o.getId(i),currentTime:c,volume:u,muted:l,playbackRate:p})}),s.media||500)),c=[yg("play",i(Vg.Play),r),yg("pause",i(Vg.Pause),r),yg("seeked",i(Vg.Seeked),r),yg("volumechange",i(Vg.VolumeChange),r),yg("ratechange",i(Vg.RateChange),r)];return af(()=>{c.forEach(e=>e())})}(e);let l=()=>{},p=()=>{},d=()=>{},m=()=>{};e.recordDOM&&(l=function({styleSheetRuleCb:e,mirror:t,stylesheetManager:n},{win:a}){if(!a.CSSStyleSheet||!a.CSSStyleSheet.prototype)return()=>{};const o=a.CSSStyleSheet.prototype.insertRule;a.CSSStyleSheet.prototype.insertRule=new Proxy(o,{apply:af((a,o,s)=>{const[r,i]=s,{id:c,styleId:u}=mf(o,t,n.styleMirror);return(c&&-1!==c||u&&-1!==u)&&e({id:c,styleId:u,adds:[{rule:r,index:i}]}),a.apply(o,s)})});const s=a.CSSStyleSheet.prototype.deleteRule;let r,i;a.CSSStyleSheet.prototype.deleteRule=new Proxy(s,{apply:af((a,o,s)=>{const[r]=s,{id:i,styleId:c}=mf(o,t,n.styleMirror);return(i&&-1!==i||c&&-1!==c)&&e({id:i,styleId:c,removes:[{index:r}]}),a.apply(o,s)})}),a.CSSStyleSheet.prototype.replace&&(r=a.CSSStyleSheet.prototype.replace,a.CSSStyleSheet.prototype.replace=new Proxy(r,{apply:af((a,o,s)=>{const[r]=s,{id:i,styleId:c}=mf(o,t,n.styleMirror);return(i&&-1!==i||c&&-1!==c)&&e({id:i,styleId:c,replace:r}),a.apply(o,s)})})),a.CSSStyleSheet.prototype.replaceSync&&(i=a.CSSStyleSheet.prototype.replaceSync,a.CSSStyleSheet.prototype.replaceSync=new Proxy(i,{apply:af((a,o,s)=>{const[r]=s,{id:i,styleId:c}=mf(o,t,n.styleMirror);return(i&&-1!==i||c&&-1!==c)&&e({id:i,styleId:c,replaceSync:r}),a.apply(o,s)})}));const c={};kf("CSSGroupingRule")?c.CSSGroupingRule=a.CSSGroupingRule:(kf("CSSMediaRule")&&(c.CSSMediaRule=a.CSSMediaRule),kf("CSSConditionRule")&&(c.CSSConditionRule=a.CSSConditionRule),kf("CSSSupportsRule")&&(c.CSSSupportsRule=a.CSSSupportsRule));const u={};return Object.entries(c).forEach(([a,o])=>{u[a]={insertRule:o.prototype.insertRule,deleteRule:o.prototype.deleteRule},o.prototype.insertRule=new Proxy(u[a].insertRule,{apply:af((a,o,s)=>{const[r,i]=s,{id:c,styleId:u}=mf(o.parentStyleSheet,t,n.styleMirror);return(c&&-1!==c||u&&-1!==u)&&e({id:c,styleId:u,adds:[{rule:r,index:[...df(o),i||0]}]}),a.apply(o,s)})}),o.prototype.deleteRule=new Proxy(u[a].deleteRule,{apply:af((a,o,s)=>{const[r]=s,{id:i,styleId:c}=mf(o.parentStyleSheet,t,n.styleMirror);return(i&&-1!==i||c&&-1!==c)&&e({id:i,styleId:c,removes:[{index:[...df(o),r]}]}),a.apply(o,s)})})}),af(()=>{a.CSSStyleSheet.prototype.insertRule=o,a.CSSStyleSheet.prototype.deleteRule=s,r&&(a.CSSStyleSheet.prototype.replace=r),i&&(a.CSSStyleSheet.prototype.replaceSync=i),Object.entries(c).forEach(([e,t])=>{t.prototype.insertRule=u[e].insertRule,t.prototype.deleteRule=u[e].deleteRule})})}(e,{win:n}),p=hf(e,e.doc),d=function({styleDeclarationCb:e,mirror:t,ignoreCSSAttributes:n,stylesheetManager:a},{win:o}){const s=o.CSSStyleDeclaration.prototype.setProperty;o.CSSStyleDeclaration.prototype.setProperty=new Proxy(s,{apply:af((o,r,i)=>{const[c,u,l]=i;if(n.has(c))return s.apply(r,[c,u,l]);const{id:p,styleId:d}=mf(r.parentRule?.parentStyleSheet,t,a.styleMirror);return(p&&-1!==p||d&&-1!==d)&&e({id:p,styleId:d,set:{property:c,value:u,priority:l},index:df(r.parentRule)}),o.apply(r,i)})});const r=o.CSSStyleDeclaration.prototype.removeProperty;return o.CSSStyleDeclaration.prototype.removeProperty=new Proxy(r,{apply:af((o,s,i)=>{const[c]=i;if(n.has(c))return r.apply(s,[c]);const{id:u,styleId:l}=mf(s.parentRule?.parentStyleSheet,t,a.styleMirror);return(u&&-1!==u||l&&-1!==l)&&e({id:u,styleId:l,remove:{property:c},index:df(s.parentRule)}),o.apply(s,i)})}),af(()=>{o.CSSStyleDeclaration.prototype.setProperty=s,o.CSSStyleDeclaration.prototype.removeProperty=r})}(e,{win:n}),e.collectFonts&&(m=function({fontCb:e,doc:t}){const n=t.defaultView;if(!n)return()=>{};const a=[],o=new WeakMap,s=n.FontFace;n.FontFace=function(e,t,n){const a=new s(e,t,n);return o.set(a,{family:e,buffer:"string"!=typeof t,descriptors:n,fontSource:"string"==typeof t?t:JSON.stringify(Array.from(new Uint8Array(t)))}),a};const r=jg(t.fonts,"add",function(t){return function(n){return Ug(af(()=>{const t=o.get(n);t&&(e(t),o.delete(n))}),0),t.apply(this,[n])}});return a.push(()=>{n.FontFace=s}),a.push(r),af(()=>{a.forEach(e=>e())})}(e)));const h=function(e){const{doc:t,mirror:n,blockClass:a,blockSelector:o,unblockSelector:s,selectionCb:r}=e;let i=!0;const c=af(()=>{const e=t.getSelection();if(!e||i&&e?.isCollapsed)return;i=e.isCollapsed||!1;const c=[],u=e.rangeCount||0;for(let t=0;t<u;t++){const r=e.getRangeAt(t),{startContainer:i,startOffset:u,endContainer:l,endOffset:p}=r;Cg(i,a,o,s,!0)||Cg(l,a,o,s,!0)||c.push({start:n.getId(i),startOffset:u,end:n.getId(l),endOffset:p})}r({ranges:c})});return c(),yg("selectionchange",c)}(e),g=function({doc:e,customElementCb:t}){const n=e.defaultView;return n&&n.customElements?jg(n.customElements,"define",function(e){return function(n,a,o){try{t({define:{name:n}})}catch(e){}return e.apply(this,[n,a,o])}}):()=>{}}(e),f=[];for(const t of e.plugins)f.push(t.observer(t.callback,n,t.options));return af(()=>{of.forEach(e=>e.reset()),a?.disconnect(),o(),s(),r(),i(),c(),u(),l(),p(),d(),m(),h(),g(),f.forEach(e=>e())})}function ff(e){return void 0!==window[e]}function kf(e){return Boolean(void 0!==window[e]&&window[e].prototype&&"insertRule"in window[e].prototype&&"deleteRule"in window[e].prototype)}class yf{constructor(e){this.generateIdFn=e,this.iframeIdToRemoteIdMap=new WeakMap,this.iframeRemoteIdToIdMap=new WeakMap}getId(e,t,n,a){const o=n||this.getIdToRemoteIdMap(e),s=a||this.getRemoteIdToIdMap(e);let r=o.get(t);return r||(r=this.generateIdFn(),o.set(t,r),s.set(r,t)),r}getIds(e,t){const n=this.getIdToRemoteIdMap(e),a=this.getRemoteIdToIdMap(e);return t.map(t=>this.getId(e,t,n,a))}getRemoteId(e,t,n){const a=n||this.getRemoteIdToIdMap(e);if("number"!=typeof t)return t;return a.get(t)||-1}getRemoteIds(e,t){const n=this.getRemoteIdToIdMap(e);return t.map(t=>this.getRemoteId(e,t,n))}reset(e){if(!e)return this.iframeIdToRemoteIdMap=new WeakMap,void(this.iframeRemoteIdToIdMap=new WeakMap);this.iframeIdToRemoteIdMap.delete(e),this.iframeRemoteIdToIdMap.delete(e)}getIdToRemoteIdMap(e){let t=this.iframeIdToRemoteIdMap.get(e);return t||(t=new Map,this.iframeIdToRemoteIdMap.set(e,t)),t}getRemoteIdToIdMap(e){let t=this.iframeRemoteIdToIdMap.get(e);return t||(t=new Map,this.iframeRemoteIdToIdMap.set(e,t)),t}}class bf{constructor(){this.crossOriginIframeMirror=new yf(Zh),this.crossOriginIframeRootIdMap=new WeakMap}addIframe(){}addLoadListener(){}attachIframe(){}}class wf{constructor(e){this.iframes=new WeakMap,this.crossOriginIframeMap=new WeakMap,this.crossOriginIframeMirror=new yf(Zh),this.crossOriginIframeRootIdMap=new WeakMap,this.mutationCb=e.mutationCb,this.wrappedEmit=e.wrappedEmit,this.stylesheetManager=e.stylesheetManager,this.recordCrossOriginIframes=e.recordCrossOriginIframes,this.crossOriginIframeStyleMirror=new yf(this.stylesheetManager.styleMirror.generateId.bind(this.stylesheetManager.styleMirror)),this.mirror=e.mirror,this.recordCrossOriginIframes&&window.addEventListener("message",this.handleMessage.bind(this))}addIframe(e){this.iframes.set(e,!0),e.contentWindow&&this.crossOriginIframeMap.set(e.contentWindow,e)}addLoadListener(e){this.loadListener=e}attachIframe(e,t){this.mutationCb({adds:[{parentId:this.mirror.getId(e),nextId:null,node:t}],removes:[],texts:[],attributes:[],isAttachIframe:!0}),this.recordCrossOriginIframes&&e.contentWindow?.addEventListener("message",this.handleMessage.bind(this)),this.loadListener?.(e);const n=Jg(e);n&&n.adoptedStyleSheets&&n.adoptedStyleSheets.length>0&&this.stylesheetManager.adoptStyleSheets(n.adoptedStyleSheets,this.mirror.getId(n))}handleMessage(e){const t=e;if("rrweb"!==t.data.type||t.origin!==t.data.origin)return;if(!e.source)return;const n=this.crossOriginIframeMap.get(e.source);if(!n)return;const a=this.transformCrossOriginEvent(n,t.data.event);a&&this.wrappedEmit(a,t.data.isCheckout)}transformCrossOriginEvent(e,t){switch(t.type){case Bg.FullSnapshot:{this.crossOriginIframeMirror.reset(e),this.crossOriginIframeStyleMirror.reset(e),this.replaceIdOnNode(t.data.node,e);const n=t.data.node.id;return this.crossOriginIframeRootIdMap.set(e,n),this.patchRootIdOnNode(t.data.node,n),{timestamp:t.timestamp,type:Bg.IncrementalSnapshot,data:{source:qg.Mutation,adds:[{parentId:this.mirror.getId(e),nextId:null,node:t.data.node}],removes:[],texts:[],attributes:[],isAttachIframe:!0}}}case Bg.Meta:case Bg.Load:case Bg.DomContentLoaded:return!1;case Bg.Plugin:return t;case Bg.Custom:return this.replaceIds(t.data.payload,e,["id","parentId","previousId","nextId"]),t;case Bg.IncrementalSnapshot:switch(t.data.source){case qg.Mutation:return t.data.adds.forEach(t=>{this.replaceIds(t,e,["parentId","nextId","previousId"]),this.replaceIdOnNode(t.node,e);const n=this.crossOriginIframeRootIdMap.get(e);n&&this.patchRootIdOnNode(t.node,n)}),t.data.removes.forEach(t=>{this.replaceIds(t,e,["parentId","id"])}),t.data.attributes.forEach(t=>{this.replaceIds(t,e,["id"])}),t.data.texts.forEach(t=>{this.replaceIds(t,e,["id"])}),t;case qg.Drag:case qg.TouchMove:case qg.MouseMove:return t.data.positions.forEach(t=>{this.replaceIds(t,e,["id"])}),t;case qg.ViewportResize:return!1;case qg.MediaInteraction:case qg.MouseInteraction:case qg.Scroll:case qg.CanvasMutation:case qg.Input:return this.replaceIds(t.data,e,["id"]),t;case qg.StyleSheetRule:case qg.StyleDeclaration:return this.replaceIds(t.data,e,["id"]),this.replaceStyleIds(t.data,e,["styleId"]),t;case qg.Font:return t;case qg.Selection:return t.data.ranges.forEach(t=>{this.replaceIds(t,e,["start","end"])}),t;case qg.AdoptedStyleSheet:return this.replaceIds(t.data,e,["id"]),this.replaceStyleIds(t.data,e,["styleIds"]),t.data.styles?.forEach(t=>{this.replaceStyleIds(t,e,["styleId"])}),t}}return!1}replace(e,t,n,a){for(const o of a)(Array.isArray(t[o])||"number"==typeof t[o])&&(Array.isArray(t[o])?t[o]=e.getIds(n,t[o]):t[o]=e.getId(n,t[o]));return t}replaceIds(e,t,n){return this.replace(this.crossOriginIframeMirror,e,t,n)}replaceStyleIds(e,t,n){return this.replace(this.crossOriginIframeStyleMirror,e,t,n)}replaceIdOnNode(e,t){this.replaceIds(e,t,["id","rootId"]),"childNodes"in e&&e.childNodes.forEach(e=>{this.replaceIdOnNode(e,t)})}patchRootIdOnNode(e,t){e.type===Mh.Document||e.rootId||(e.rootId=t),"childNodes"in e&&e.childNodes.forEach(e=>{this.patchRootIdOnNode(e,t)})}}class vf{init(){}addShadowRoot(){}observeAttachShadow(){}reset(){}}class _f{constructor(e){this.shadowDoms=new WeakSet,this.restoreHandlers=[],this.mutationCb=e.mutationCb,this.scrollCb=e.scrollCb,this.bypassOptions=e.bypassOptions,this.mirror=e.mirror,this.init()}init(){this.reset(),this.patchAttachShadow(Element,document)}addShadowRoot(e,t){if(!Ah(e))return;if(this.shadowDoms.has(e))return;this.shadowDoms.add(e),this.bypassOptions.canvasManager.addShadowRoot(e);const n=rf({...this.bypassOptions,doc:t,mutationCb:this.mutationCb,mirror:this.mirror,shadowDomManager:this},e);this.restoreHandlers.push(()=>n.disconnect()),this.restoreHandlers.push(cf({...this.bypassOptions,scrollCb:this.scrollCb,doc:e,mirror:this.mirror})),Ug(()=>{e.adoptedStyleSheets&&e.adoptedStyleSheets.length>0&&this.bypassOptions.stylesheetManager.adoptStyleSheets(e.adoptedStyleSheets,this.mirror.getId(e.host)),this.restoreHandlers.push(hf({mirror:this.mirror,stylesheetManager:this.bypassOptions.stylesheetManager},e))},0)}observeAttachShadow(e){const t=Jg(e),n=function(e){try{return e.contentWindow}catch(e){}}(e);t&&n&&this.patchAttachShadow(n.Element,t)}patchAttachShadow(e,t){const n=this;this.restoreHandlers.push(jg(e.prototype,"attachShadow",function(e){return function(a){const o=e.call(this,a);return this.shadowRoot&&Ng(this)&&n.addShadowRoot(this.shadowRoot,t),o}}))}reset(){this.restoreHandlers.forEach(e=>{try{e()}catch(e){}}),this.restoreHandlers=[],this.shadowDoms=new WeakSet,this.bypassOptions.canvasManager.resetShadowRoots()}}for(var jf="undefined"==typeof Uint8Array?[]:new Uint8Array(256),Sf=0;Sf<64;Sf++)jf["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charCodeAt(Sf)]=Sf;class xf{reset(){}freeze(){}unfreeze(){}lock(){}unlock(){}snapshot(){}addWindow(){}addShadowRoot(){}resetShadowRoots(){}}class zf{constructor(e){this.trackedLinkElements=new WeakSet,this.styleMirror=new Pg,this.mutationCb=e.mutationCb,this.adoptedStyleSheetCb=e.adoptedStyleSheetCb}attachLinkElement(e,t){"_cssText"in t.attributes&&this.mutationCb({adds:[],removes:[],texts:[],attributes:[{id:t.id,attributes:t.attributes}]}),this.trackLinkElement(e)}trackLinkElement(e){this.trackedLinkElements.has(e)||(this.trackedLinkElements.add(e),this.trackStylesheetInLinkElement(e))}adoptStyleSheets(e,t){if(0===e.length)return;const n={id:t,styleIds:[]},a=[];for(const t of e){let e;this.styleMirror.has(t)?e=this.styleMirror.getId(t):(e=this.styleMirror.add(t),a.push({styleId:e,rules:Array.from(t.rules||CSSRule,(e,t)=>({rule:Dh(e),index:t}))})),n.styleIds.push(e)}a.length>0&&(n.styles=a),this.adoptedStyleSheetCb(n)}reset(){this.styleMirror.reset(),this.trackedLinkElements=new WeakSet}trackStylesheetInLinkElement(e){}}class Ef{constructor(){this.nodeMap=new WeakMap,this.active=!1}inOtherBuffer(e,t){const n=this.nodeMap.get(e);return n&&Array.from(n).some(e=>e!==t)}add(e,t){this.active||(this.active=!0,function(...e){Fg("requestAnimationFrame")(...e)}(()=>{this.nodeMap=new WeakMap,this.active=!1})),this.nodeMap.set(e,(this.nodeMap.get(e)||new Set).add(t))}destroy(){}}let Tf,Cf;try{if(2!==Array.from([1],e=>2*e)[0]){const e=document.createElement("iframe");document.body.appendChild(e),Array.from=e.contentWindow?.Array.from||Array.from,document.body.removeChild(e)}}catch(e){console.debug("Unable to override Array.from",e)}const If=new Ph;function Mf(e={}){const{emit:t,checkoutEveryNms:n,checkoutEveryNth:a,blockClass:o="rr-block",blockSelector:s=null,unblockSelector:r=null,ignoreClass:i="rr-ignore",ignoreSelector:c=null,maskAllText:u=!1,maskTextClass:l="rr-mask",unmaskTextClass:p=null,maskTextSelector:d=null,unmaskTextSelector:m=null,inlineStylesheet:h=!0,maskAllInputs:g,maskInputOptions:f,slimDOMOptions:k,maskAttributeFn:y,maskInputFn:b,maskTextFn:w,maxCanvasSize:v=null,packFn:_,sampling:j={},dataURLOptions:S={},mousemoveWait:x,recordDOM:z=!0,recordCanvas:E=!1,recordCrossOriginIframes:T=!1,recordAfter:C=("DOMContentLoaded"===e.recordAfter?e.recordAfter:"load"),userTriggeredOnInput:I=!1,collectFonts:M=!1,inlineImages:R=!1,plugins:A,keepIframeSrcFn:O=()=>!1,ignoreCSSAttributes:D=new Set([]),errorHandler:P,onMutation:L,getCanvasManager:N}=e;nf=P;const $=!T||window.parent===window;let F=!1;if(!$)try{window.parent.document&&(F=!1)}catch(e){F=!0}if($&&!t)throw new Error("emit function is required");if(!$&&!F)return()=>{};void 0!==x&&void 0===j.mousemove&&(j.mousemove=x),If.reset();const U=!0===g?{color:!0,date:!0,"datetime-local":!0,email:!0,month:!0,number:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0,textarea:!0,select:!0,radio:!0,checkbox:!0}:void 0!==f?f:{},B=!0===k||"all"===k?{script:!0,comment:!0,headFavicon:!0,headWhitespace:!0,headMetaSocial:!0,headMetaRobots:!0,headMetaHttpEquiv:!0,headMetaVerification:!0,headMetaAuthorship:"all"===k,headMetaDescKeywords:"all"===k}:k||{};let q;!function(e=window){"NodeList"in e&&!e.NodeList.prototype.forEach&&(e.NodeList.prototype.forEach=Array.prototype.forEach),"DOMTokenList"in e&&!e.DOMTokenList.prototype.forEach&&(e.DOMTokenList.prototype.forEach=Array.prototype.forEach),Node.prototype.contains||(Node.prototype.contains=(...e)=>{let t=e[0];if(!(0 in e))throw new TypeError("1 argument is required");do{if(this===t)return!0}while(t=t&&t.parentNode);return!1})}();let H=0;const W=e=>{for(const t of A||[])t.eventProcessor&&(e=t.eventProcessor(e));return _&&!F&&(e=_(e)),e};Tf=(e,o)=>{const s=e;if(s.timestamp=Sg(),!of[0]?.isFrozen()||s.type===Bg.FullSnapshot||s.type===Bg.IncrementalSnapshot&&s.data.source===qg.Mutation||of.forEach(e=>e.unfreeze()),$)t?.(W(s),o);else if(F){const e={type:"rrweb",event:W(s),origin:window.location.origin,isCheckout:o};window.parent.postMessage(e,"*")}if(s.type===Bg.FullSnapshot)q=s,H=0;else if(s.type===Bg.IncrementalSnapshot){if(s.data.source===qg.Mutation&&s.data.isAttachIframe)return;H++;const e=a&&H>=a,t=n&&q&&s.timestamp-q.timestamp>n;(e||t)&&ee(!0)}};const V=e=>{Tf({type:Bg.IncrementalSnapshot,data:{source:qg.Mutation,...e}})},J=e=>Tf({type:Bg.IncrementalSnapshot,data:{source:qg.Scroll,...e}}),Y=e=>Tf({type:Bg.IncrementalSnapshot,data:{source:qg.CanvasMutation,...e}}),G=new zf({mutationCb:V,adoptedStyleSheetCb:e=>Tf({type:Bg.IncrementalSnapshot,data:{source:qg.AdoptedStyleSheet,...e}})}),K="boolean"==typeof __RRWEB_EXCLUDE_IFRAME__&&__RRWEB_EXCLUDE_IFRAME__?new bf:new wf({mirror:If,mutationCb:V,stylesheetManager:G,recordCrossOriginIframes:T,wrappedEmit:Tf});for(const e of A||[])e.getMirror&&e.getMirror({nodeMirror:If,crossOriginIframeMirror:K.crossOriginIframeMirror,crossOriginIframeStyleMirror:K.crossOriginIframeStyleMirror});const X=new Ef,Z=function(e,t){try{return e?e(t):new xf}catch{return console.warn("Unable to initialize CanvasManager"),new xf}}(N,{mirror:If,win:window,mutationCb:e=>Tf({type:Bg.IncrementalSnapshot,data:{source:qg.CanvasMutation,...e}}),recordCanvas:E,blockClass:o,blockSelector:s,unblockSelector:r,maxCanvasSize:v,sampling:j.canvas,dataURLOptions:S,errorHandler:P}),Q="boolean"==typeof __RRWEB_EXCLUDE_SHADOW_DOM__&&__RRWEB_EXCLUDE_SHADOW_DOM__?new vf:new _f({mutationCb:V,scrollCb:J,bypassOptions:{onMutation:L,blockClass:o,blockSelector:s,unblockSelector:r,maskAllText:u,maskTextClass:l,unmaskTextClass:p,maskTextSelector:d,unmaskTextSelector:m,inlineStylesheet:h,maskInputOptions:U,dataURLOptions:S,maskAttributeFn:y,maskTextFn:w,maskInputFn:b,recordCanvas:E,inlineImages:R,sampling:j,slimDOMOptions:B,iframeManager:K,stylesheetManager:G,canvasManager:Z,keepIframeSrcFn:O,processedNodeManager:X,ignoreCSSAttributes:D},mirror:If}),ee=(e=!1)=>{if(!z)return;Tf({type:Bg.Meta,data:{href:window.location.href,width:Eg(),height:zg()}},e),G.reset(),Q.init(),of.forEach(e=>e.lock());const t=function(e,t){const{mirror:n=new Ph,blockClass:a="rr-block",blockSelector:o=null,unblockSelector:s=null,maskAllText:r=!1,maskTextClass:i="rr-mask",unmaskTextClass:c=null,maskTextSelector:u=null,unmaskTextSelector:l=null,inlineStylesheet:p=!0,inlineImages:d=!1,recordCanvas:m=!1,maskAllInputs:h=!1,maskAttributeFn:g,maskTextFn:f,maskInputFn:k,slimDOM:y=!1,dataURLOptions:b,preserveWhiteSpace:w,onSerialize:v,onIframeLoad:_,iframeLoadTimeout:j,onBlockedImageLoad:S,onStylesheetLoad:x,stylesheetLoadTimeout:z,keepIframeSrcFn:E=()=>!1,ignoreCSSAttributes:T=new Set([])}=t||{};return kg(e,{doc:e,mirror:n,blockClass:a,blockSelector:o,unblockSelector:s,maskAllText:r,maskTextClass:i,unmaskTextClass:c,maskTextSelector:u,unmaskTextSelector:l,skipChild:!1,inlineStylesheet:p,maskInputOptions:!0===h?{color:!0,date:!0,"datetime-local":!0,email:!0,month:!0,number:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0,textarea:!0,select:!0}:!1===h?{}:h,maskAttributeFn:g,maskTextFn:f,maskInputFn:k,slimDOMOptions:!0===y||"all"===y?{script:!0,comment:!0,headFavicon:!0,headWhitespace:!0,headMetaDescKeywords:"all"===y,headMetaSocial:!0,headMetaRobots:!0,headMetaHttpEquiv:!0,headMetaAuthorship:!0,headMetaVerification:!0}:!1===y?{}:y,dataURLOptions:b,inlineImages:d,recordCanvas:m,preserveWhiteSpace:w,onSerialize:v,onIframeLoad:_,iframeLoadTimeout:j,onBlockedImageLoad:S,onStylesheetLoad:x,stylesheetLoadTimeout:z,keepIframeSrcFn:E,newlyAddedElement:!1,ignoreCSSAttributes:T})}(document,{mirror:If,blockClass:o,blockSelector:s,unblockSelector:r,maskAllText:u,maskTextClass:l,unmaskTextClass:p,maskTextSelector:d,unmaskTextSelector:m,inlineStylesheet:h,maskAllInputs:U,maskAttributeFn:y,maskInputFn:b,maskTextFn:w,slimDOM:B,dataURLOptions:S,recordCanvas:E,inlineImages:R,onSerialize:e=>{Ag(e,If)&&K.addIframe(e),Og(e,If)&&G.trackLinkElement(e),Dg(e)&&Q.addShadowRoot(e.shadowRoot,document)},onIframeLoad:(e,t)=>{K.attachIframe(e,t),e.contentWindow&&Z.addWindow(e.contentWindow),Q.observeAttachShadow(e)},onStylesheetLoad:(e,t)=>{G.attachLinkElement(e,t)},onBlockedImageLoad:(e,t,{width:n,height:a})=>{V({adds:[],removes:[],texts:[],attributes:[{id:t.id,attributes:{style:{width:`${n}px`,height:`${a}px`}}}]})},keepIframeSrcFn:O,ignoreCSSAttributes:D});if(!t)return console.warn("Failed to snapshot the document");Tf({type:Bg.FullSnapshot,data:{node:t,initialOffset:xg(window)}}),of.forEach(e=>e.unlock()),document.adoptedStyleSheets&&document.adoptedStyleSheets.length>0&&G.adoptStyleSheets(document.adoptedStyleSheets,If.getId(document))};Cf=ee;try{const e=[],t=e=>af(gf)({onMutation:L,mutationCb:V,mousemoveCb:(e,t)=>Tf({type:Bg.IncrementalSnapshot,data:{source:t,positions:e}}),mouseInteractionCb:e=>Tf({type:Bg.IncrementalSnapshot,data:{source:qg.MouseInteraction,...e}}),scrollCb:J,viewportResizeCb:e=>Tf({type:Bg.IncrementalSnapshot,data:{source:qg.ViewportResize,...e}}),inputCb:e=>Tf({type:Bg.IncrementalSnapshot,data:{source:qg.Input,...e}}),mediaInteractionCb:e=>Tf({type:Bg.IncrementalSnapshot,data:{source:qg.MediaInteraction,...e}}),styleSheetRuleCb:e=>Tf({type:Bg.IncrementalSnapshot,data:{source:qg.StyleSheetRule,...e}}),styleDeclarationCb:e=>Tf({type:Bg.IncrementalSnapshot,data:{source:qg.StyleDeclaration,...e}}),canvasMutationCb:Y,fontCb:e=>Tf({type:Bg.IncrementalSnapshot,data:{source:qg.Font,...e}}),selectionCb:e=>{Tf({type:Bg.IncrementalSnapshot,data:{source:qg.Selection,...e}})},customElementCb:e=>{Tf({type:Bg.IncrementalSnapshot,data:{source:qg.CustomElement,...e}})},blockClass:o,ignoreClass:i,ignoreSelector:c,maskAllText:u,maskTextClass:l,unmaskTextClass:p,maskTextSelector:d,unmaskTextSelector:m,maskInputOptions:U,inlineStylesheet:h,sampling:j,recordDOM:z,recordCanvas:E,inlineImages:R,userTriggeredOnInput:I,collectFonts:M,doc:e,maskAttributeFn:y,maskInputFn:b,maskTextFn:w,keepIframeSrcFn:O,blockSelector:s,unblockSelector:r,slimDOMOptions:B,dataURLOptions:S,mirror:If,iframeManager:K,stylesheetManager:G,shadowDomManager:Q,processedNodeManager:X,canvasManager:Z,ignoreCSSAttributes:D,plugins:A?.filter(e=>e.observer)?.map(e=>({observer:e.observer,options:e.options,callback:t=>Tf({type:Bg.Plugin,data:{plugin:e.name,payload:t}})}))||[]},{});K.addLoadListener(n=>{try{e.push(t(n.contentDocument))}catch(e){console.warn(e)}});const n=()=>{ee(),e.push(t(document))};return"interactive"===document.readyState||"complete"===document.readyState?n():(e.push(yg("DOMContentLoaded",()=>{Tf({type:Bg.DomContentLoaded,data:{}}),"DOMContentLoaded"===C&&n()})),e.push(yg("load",()=>{Tf({type:Bg.Load,data:{}}),"load"===C&&n()},window))),()=>{e.forEach(e=>e()),X.destroy(),Cf=void 0,nf=void 0}}catch(e){console.warn(e)}}var Rf,Af;function Of(e){return e>9999999999?e:1e3*e}function Df(e){return e>9999999999?e/1e3:e}function Pf(e,t){"sentry.transaction"!==t.category&&(["ui.click","ui.input"].includes(t.category)?e.triggerUserActivity():e.checkAndHandleExpiredSession(),e.addUpdate(()=>(e.throttledAddEvent({type:Bg.Custom,timestamp:1e3*(t.timestamp||0),data:{tag:"breadcrumb",payload:hn(t,10,1e3)}}),"console"===t.category)))}function Lf(e){return e.closest("button,a")||e}function Nf(e){const t=$f(e);return t&&t instanceof Element?Lf(t):t}function $f(e){return function(e){return"object"==typeof e&&!!e&&"target"in e}(e)?e.target:e}let Ff;Mf.mirror=If,Mf.takeFullSnapshot=function(e){if(!Cf)throw new Error("please take full snapshot after start recording");Cf(e)},(Af=Rf||(Rf={}))[Af.NotStarted=0]="NotStarted",Af[Af.Running=1]="Running",Af[Af.Stopped=2]="Stopped";const Uf=new Set([qg.Mutation,qg.StyleSheetRule,qg.StyleDeclaration,qg.AdoptedStyleSheet,qg.CanvasMutation,qg.Selection,qg.MediaInteraction]);class Bf{constructor(e,t,n=Pf){this._lastMutation=0,this._lastScroll=0,this._clicks=[],this._timeout=t.timeout/1e3,this._threshold=t.threshold/1e3,this._scrollTimeout=t.scrollTimeout/1e3,this._replay=e,this._ignoreSelector=t.ignoreSelector,this._addBreadcrumbEvent=n}addListeners(){const e=(t=()=>{this._lastMutation=Hf()},Ff||(Ff=[],U(jh,"open",function(e){return function(...t){if(Ff)try{Ff.forEach(e=>e())}catch{}return e.apply(jh,t)}})),Ff.push(t),()=>{const e=Ff?Ff.indexOf(t):-1;e>-1&&Ff.splice(e,1)});var t;this._teardown=()=>{e(),this._clicks=[],this._lastMutation=0,this._lastScroll=0}}removeListeners(){this._teardown&&this._teardown(),this._checkClickTimeout&&clearTimeout(this._checkClickTimeout)}handleClick(e,t){if(function(e,t){return!qf.includes(e.tagName)||("INPUT"===e.tagName&&!["submit","button"].includes(e.getAttribute("type")||"")||(!("A"!==e.tagName||!(e.hasAttribute("download")||e.hasAttribute("target")&&"_self"!==e.getAttribute("target")))||!(!t||!e.matches(t))))}(t,this._ignoreSelector)||!function(e){return!(!e.data||"number"!=typeof e.data.nodeId||!e.timestamp)}(e))return;const n={timestamp:Df(e.timestamp),clickBreadcrumb:e,clickCount:0,node:t};this._clicks.some(e=>e.node===n.node&&Math.abs(e.timestamp-n.timestamp)<1)||(this._clicks.push(n),1===this._clicks.length&&this._scheduleCheckClicks())}registerMutation(e=Date.now()){this._lastMutation=Df(e)}registerScroll(e=Date.now()){this._lastScroll=Df(e)}registerClick(e){const t=Lf(e);this._handleMultiClick(t)}_handleMultiClick(e){this._getClicks(e).forEach(e=>{e.clickCount++})}_getClicks(e){return this._clicks.filter(t=>t.node===e)}_checkClicks(){const e=[],t=Hf();this._clicks.forEach(n=>{!n.mutationAfter&&this._lastMutation&&(n.mutationAfter=n.timestamp<=this._lastMutation?this._lastMutation-n.timestamp:void 0),!n.scrollAfter&&this._lastScroll&&(n.scrollAfter=n.timestamp<=this._lastScroll?this._lastScroll-n.timestamp:void 0),n.timestamp+this._timeout<=t&&e.push(n)});for(const t of e){const e=this._clicks.indexOf(t);e>-1&&(this._generateBreadcrumbs(t),this._clicks.splice(e,1))}this._clicks.length&&this._scheduleCheckClicks()}_generateBreadcrumbs(e){const t=this._replay,n=e.scrollAfter&&e.scrollAfter<=this._scrollTimeout,a=e.mutationAfter&&e.mutationAfter<=this._threshold,o=!n&&!a,{clickCount:s,clickBreadcrumb:r}=e;if(o){const n=1e3*Math.min(e.mutationAfter||this._timeout,this._timeout),a=n<1e3*this._timeout?"mutation":"timeout",o={type:"default",message:r.message,timestamp:r.timestamp,category:"ui.slowClickDetected",data:{...r.data,url:jh.location.href,route:t.getCurrentRoute(),timeAfterClickMs:n,endReason:a,clickCount:s||1}};return void this._addBreadcrumbEvent(t,o)}if(s>1){const e={type:"default",message:r.message,timestamp:r.timestamp,category:"ui.multiClick",data:{...r.data,url:jh.location.href,route:t.getCurrentRoute(),clickCount:s,metric:!0}};this._addBreadcrumbEvent(t,e)}}_scheduleCheckClicks(){this._checkClickTimeout&&clearTimeout(this._checkClickTimeout),this._checkClickTimeout=Pi(()=>this._checkClicks(),1e3)}}const qf=["A","BUTTON","INPUT"];function Hf(){return Date.now()/1e3}function Wf(e){return{timestamp:Date.now()/1e3,type:"default",...e}}var Vf=(e=>(e[e.Document=0]="Document",e[e.DocumentType=1]="DocumentType",e[e.Element=2]="Element",e[e.Text=3]="Text",e[e.CDATA=4]="CDATA",e[e.Comment=5]="Comment",e))(Vf||{});const Jf=new Set(["id","class","aria-label","role","name","alt","title","data-test-id","data-testid","disabled","aria-disabled","data-sentry-component"]);function Yf(e){const t={};!e["data-sentry-component"]&&e["data-sentry-element"]&&(e["data-sentry-component"]=e["data-sentry-element"]);for(const n in e)if(Jf.has(n)){let a=n;"data-testid"!==n&&"data-test-id"!==n||(a="testId"),t[a]=e[n]}return t}function Gf(e,t){const n=Mf.mirror.getId(e),a=n&&Mf.mirror.getNode(n),o=a&&Mf.mirror.getMeta(a),s=o&&function(e){return e.type===Vf.Element}(o)?o:null;return{message:t,data:s?{nodeId:n,node:{id:n,tagName:s.tagName,textContent:Array.from(s.childNodes).map(e=>e.type===Vf.Text&&e.textContent).filter(Boolean).map(e=>e.trim()).join(""),attributes:Yf(s.attributes)}}:{}}}const Kf={resource:function(e){const{entryType:t,initiatorType:n,name:a,responseEnd:o,startTime:s,decodedBodySize:r,encodedBodySize:i,responseStatus:c,transferSize:u}=e;return["fetch","xmlhttprequest"].includes(n)?null:{type:`${t}.${n}`,start:Qf(s),end:Qf(o),name:a,data:{size:u,statusCode:c,decodedBodySize:r,encodedBodySize:i}}},paint:function(e){const{duration:t,entryType:n,name:a,startTime:o}=e,s=Qf(o);return{type:n,name:a,start:s,end:s+t,data:void 0}},navigation:function(e){const{entryType:t,name:n,decodedBodySize:a,duration:o,domComplete:s,encodedBodySize:r,domContentLoadedEventStart:i,domContentLoadedEventEnd:c,domInteractive:u,loadEventStart:l,loadEventEnd:p,redirectCount:d,startTime:m,transferSize:h,type:g}=e;return 0===o?null:{type:`${t}.${g}`,start:Qf(m),end:Qf(s),name:n,data:{size:h,decodedBodySize:a,encodedBodySize:r,duration:o,domInteractive:u,domContentLoadedEventStart:i,domContentLoadedEventEnd:c,loadEventStart:l,loadEventEnd:p,domComplete:s,redirectCount:d}}}};function Xf(e,t){return({metric:n})=>{t.replayPerformanceEntries.push(e(n))}}function Zf(e){const t=Kf[e.entryType];return t?t(e):null}function Qf(e){return((ve()||jh.performance.timeOrigin)+e)/1e3}function ek(e){const t=e.entries[e.entries.length-1];return ok(e,"largest-contentful-paint",t?.element?[t.element]:void 0)}function tk(e){return void 0!==e.sources}function nk(e){const t=[],n=[];for(const a of e.entries)if(tk(a)){const e=[];for(const t of a.sources)if(t.node){n.push(t.node);const a=Mf.mirror.getId(t.node);a&&e.push(a)}t.push({value:a.value,nodeIds:e.length?e:void 0})}return ok(e,"cumulative-layout-shift",n,t)}function ak(e){const t=e.entries[e.entries.length-1];return ok(e,"interaction-to-next-paint",t?.target?[t.target]:void 0)}function ok(e,t,n,a){const o=e.value,s=e.rating,r=Qf(o);return{type:"web-vital",name:t,start:r,end:r,data:{value:o,size:o,rating:s,nodeIds:n?n.map(e=>Mf.mirror.getId(e)):void 0,attributions:a}}}const sk="undefined"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__,rk=["log","warn","error"],ik="[Replay] ";function ck(e,t="info"){_r({category:"console",data:{logger:"replay"},level:t,message:`${ik}${e}`},{level:t})}const uk=function(){let e=!1,t=!1;const n={exception:()=>{},infoTick:()=>{},setConfig:n=>{e=!!n.captureExceptions,t=!!n.traceInternals}};return sk?(rk.forEach(e=>{n[e]=(...n)=>{F[e](ik,...n),t&&ck(n.join(""),jr(e))}}),n.exception=(a,...o)=>{o.length&&n.error&&n.error(...o),F.error(ik,a),e?bn(a,{mechanism:{handled:!0,type:"auto.function.replay.debug"}}):t&&ck(a,"error")},n.infoTick=(...e)=>{F.log(ik,...e),t&&setTimeout(()=>ck(e[0]),0)}):rk.forEach(e=>{n[e]=()=>{}}),n}();class lk extends Error{constructor(){super("Event buffer exceeded maximum size of 20000000.")}}class pk{constructor(){this.events=[],this._totalSize=0,this.hasCheckout=!1,this.waitForCheckout=!1}get hasEvents(){return this.events.length>0}get type(){return"sync"}destroy(){this.events=[]}async addEvent(e){const t=JSON.stringify(e).length;if(this._totalSize+=t,this._totalSize>Th)throw new lk;this.events.push(e)}finish(){return new Promise(e=>{const t=this.events;this.clear(),e(JSON.stringify(t))})}clear(){this.events=[],this._totalSize=0,this.hasCheckout=!1}getEarliestTimestamp(){const e=this.events.map(e=>e.timestamp).sort()[0];return e?Of(e):null}}class dk{constructor(e){this._worker=e,this._id=0}ensureReady(){return this._ensureReadyPromise||(this._ensureReadyPromise=new Promise((e,t)=>{this._worker.addEventListener("message",({data:n})=>{n.success?e():t()},{once:!0}),this._worker.addEventListener("error",e=>{t(e)},{once:!0})})),this._ensureReadyPromise}destroy(){sk&&uk.log("Destroying compression worker"),this._worker.terminate()}postMessage(e,t){const n=this._getAndIncrementId();return new Promise((a,o)=>{const s=({data:t})=>{const r=t;if(r.method===e&&r.id===n){if(this._worker.removeEventListener("message",s),!r.success)return sk&&uk.error("Error in compression worker: ",r.response),void o(new Error("Error in compression worker"));a(r.response)}};this._worker.addEventListener("message",s),this._worker.postMessage({id:n,method:e,arg:t})})}_getAndIncrementId(){return this._id++}}class mk{constructor(e){this._worker=new dk(e),this._earliestTimestamp=null,this._totalSize=0,this.hasCheckout=!1,this.waitForCheckout=!1}get hasEvents(){return!!this._earliestTimestamp}get type(){return"worker"}ensureReady(){return this._worker.ensureReady()}destroy(){this._worker.destroy()}addEvent(e){const t=Of(e.timestamp);(!this._earliestTimestamp||t<this._earliestTimestamp)&&(this._earliestTimestamp=t);const n=JSON.stringify(e);return this._totalSize+=n.length,this._totalSize>Th?Promise.reject(new lk):this._sendEventToWorker(n)}finish(){return this._finishRequest()}clear(){this._earliestTimestamp=null,this._totalSize=0,this.hasCheckout=!1,this._worker.postMessage("clear").then(null,e=>{sk&&uk.exception(e,'Sending "clear" message to worker failed',e)})}getEarliestTimestamp(){return this._earliestTimestamp}_sendEventToWorker(e){return this._worker.postMessage("addEvent",e)}async _finishRequest(){const e=await this._worker.postMessage("finish");return this._earliestTimestamp=null,this._totalSize=0,e}}class hk{constructor(e){this._fallback=new pk,this._compression=new mk(e),this._used=this._fallback,this._ensureWorkerIsLoadedPromise=this._ensureWorkerIsLoaded()}get waitForCheckout(){return this._used.waitForCheckout}get type(){return this._used.type}get hasEvents(){return this._used.hasEvents}get hasCheckout(){return this._used.hasCheckout}set hasCheckout(e){this._used.hasCheckout=e}set waitForCheckout(e){this._used.waitForCheckout=e}destroy(){this._fallback.destroy(),this._compression.destroy()}clear(){return this._used.clear()}getEarliestTimestamp(){return this._used.getEarliestTimestamp()}addEvent(e){return this._used.addEvent(e)}async finish(){return await this.ensureWorkerIsLoaded(),this._used.finish()}ensureWorkerIsLoaded(){return this._ensureWorkerIsLoadedPromise}async _ensureWorkerIsLoaded(){try{await this._compression.ensureReady()}catch(e){return void(sk&&uk.exception(e,"Failed to load the compression worker, falling back to simple buffer"))}await this._switchToCompressionWorker()}async _switchToCompressionWorker(){const{events:e,hasCheckout:t,waitForCheckout:n}=this._fallback,a=[];for(const t of e)a.push(this._compression.addEvent(t));this._compression.hasCheckout=t,this._compression.waitForCheckout=n,this._used=this._compression;try{await Promise.all(a),this._fallback.clear()}catch(e){sk&&uk.exception(e,"Failed to add events when switching buffers.")}}}function gk(){try{return"sessionStorage"in jh&&!!jh.sessionStorage}catch{return!1}}function fk(e){return void 0!==e&&Math.random()<e}function kk(e){if(gk())try{jh.sessionStorage.setItem(Sh,JSON.stringify(e))}catch{}}function yk(e){const t=Date.now();return{id:e.id||le(),started:e.started||t,lastActivity:e.lastActivity||t,segmentId:e.segmentId||0,sampled:e.sampled,previousSessionId:e.previousSessionId,dirty:e.dirty||!1}}function bk({sessionSampleRate:e,allowBuffering:t,stickySession:n=!1},{previousSessionId:a}={}){const o=function(e,t){return fk(e)?"session":!!t&&"buffer"}(e,t),s=yk({sampled:o,previousSessionId:a});return n&&kk(s),s}function wk(e,t,n=+new Date){return null===e||void 0===t||t<0||0!==t&&e+t<=n}function vk(e,{maxReplayDuration:t,sessionIdleExpire:n,targetTime:a=Date.now()}){return wk(e.started,t,a)||wk(e.lastActivity,n,a)}function _k(e,{sessionIdleExpire:t,maxReplayDuration:n}){return!!vk(e,{sessionIdleExpire:t,maxReplayDuration:n})&&("buffer"!==e.sampled||0!==e.segmentId)}function jk({sessionIdleExpire:e,maxReplayDuration:t,previousSessionId:n},a){const o=a.stickySession&&function(){if(!gk())return null;try{const e=jh.sessionStorage.getItem(Sh);if(!e)return null;const t=JSON.parse(e);return sk&&uk.infoTick("Loading existing session"),yk(t)}catch{return null}}();return o?_k(o,{sessionIdleExpire:e,maxReplayDuration:t})?(sk&&uk.infoTick("Session in sessionStorage is expired, creating new one..."),bk(a,{previousSessionId:o.id})):o:(sk&&uk.infoTick("Creating new session"),bk(a,{previousSessionId:n}))}function Sk(e,t,n){return!!zk(e,t)&&(xk(e,t,n),!0)}async function xk(e,t,n){const{eventBuffer:a}=e;if(!a||a.waitForCheckout&&!n)return null;const o="buffer"===e.recordingMode;try{n&&o&&a.clear(),n&&(a.hasCheckout=!0,a.waitForCheckout=!1);const s=function(e,t){try{if("function"==typeof t&&function(e){return e.type===Bg.Custom}(e))return t(e)}catch(e){return sk&&uk.exception(e,"An error occurred in the `beforeAddRecordingEvent` callback, skipping the event..."),null}return e}(t,e.getOptions().beforeAddRecordingEvent);if(!s)return;return await a.addEvent(s)}catch(t){const n=t&&t instanceof lk,s=n?"addEventSizeExceeded":"addEvent",r=Ue();if(r){const e=n?"buffer_overflow":"internal_sdk_error";r.recordDroppedEvent(e,"replay")}if(n&&o)return a.clear(),a.waitForCheckout=!0,null;e.handleException(t),await e.stop({reason:s})}}function zk(e,t){if(!e.eventBuffer||e.isPaused()||!e.isEnabled())return!1;const n=Of(t.timestamp);return!(n+e.timeouts.sessionIdlePause<Date.now()||n>e.getContext().initialTimestamp+e.getOptions().maxReplayDuration&&(sk&&uk.infoTick(`Skipping event with timestamp ${n} because it is after maxReplayDuration`),1))}function Ek(e){return!e.type}function Tk(e){return"transaction"===e.type}function Ck(e){return"feedback"===e.type}function Ik(e){return!!e.category}function Mk(){const e=Pe().getPropagationContext().dsc;e&&delete e.replay_id;const t=Xt();t&&delete on(t).replay_id}function Rk(e,t){return t.map(({type:t,start:n,end:a,name:o,data:s})=>{const r=e.throttledAddEvent({type:Bg.Custom,timestamp:n,data:{tag:"performanceSpan",payload:{op:t,description:o,startTimestamp:n,endTimestamp:a,data:s}}});return"string"==typeof r?Promise.resolve(null):r})}function Ak(e,t){e.isEnabled()&&null!==t&&(function(e,t){return(!sk||!e.getOptions()._experiments.traceInternals)&&rm(t,Ue())}(e,t.name)||e.addUpdate(()=>(Rk(e,[t]),!0)))}function Ok(e){if(!e)return;const t=new TextEncoder;try{if("string"==typeof e)return t.encode(e).length;if(e instanceof URLSearchParams)return t.encode(e.toString()).length;if(e instanceof FormData){const n=km(e);return t.encode(n).length}if(e instanceof Blob)return e.size;if(e instanceof ArrayBuffer)return e.byteLength}catch{}}function Dk(e){if(!e)return;const t=parseInt(e,10);return isNaN(t)?void 0:t}function Pk(e,t){if(!e)return{headers:{},size:void 0,_meta:{warnings:[t]}};const n={...e._meta},a=n.warnings||[];return n.warnings=[...a,t],e._meta=n,e}function Lk(e,t){if(!t)return null;const{startTimestamp:n,endTimestamp:a,url:o,method:s,statusCode:r,request:i,response:c}=t;return{type:e,start:n/1e3,end:a/1e3,name:o,data:{method:s,statusCode:r,request:i,response:c}}}function Nk(e){return{headers:{},size:e,_meta:{warnings:["URL_SKIPPED"]}}}function $k(e,t,n){if(!t&&0===Object.keys(e).length)return;if(!t)return{headers:e};if(!n)return{headers:e,size:t};const a={headers:e,size:t},{body:o,warnings:s}=function(e){if(!e||"string"!=typeof e)return{body:e};const t=e.length>zh,n=function(e){const t=e[0],n=e[e.length-1];return"["===t&&"]"===n||"{"===t&&"}"===n}(e);if(t){const t=e.slice(0,zh);return n?{body:t,warnings:["MAYBE_JSON_TRUNCATED"]}:{body:`${t}…`,warnings:["TEXT_TRUNCATED"]}}if(n)try{return{body:JSON.parse(e)}}catch{}return{body:e}}(n);return a.body=o,s?.length&&(a._meta={warnings:s}),a}function Fk(e,t){return Object.entries(e).reduce((n,[a,o])=>{const s=a.toLowerCase();return t.includes(s)&&e[a]&&(n[s]=o),n},{})}function Uk(e,t){const n=function(e,t=jh.document.baseURI){if(e.startsWith("http://")||e.startsWith("https://")||e.startsWith(jh.location.origin))return e;const n=new URL(e,t);if(n.origin!==new URL(t).origin)return e;const a=n.href;return!e.endsWith("/")&&a.endsWith("/")?a.slice(0,-1):a}(e);return ce(n,t)}function Bk(e,t){const n={};return t.forEach(t=>{e.get(t)&&(n[t]=e.get(t))}),n}function qk(e,t){if(!e)return{};const n=e.headers;return n?n instanceof Headers?Bk(n,t):Array.isArray(n)?{}:Fk(n,t):{}}function Hk(e){const t=Ue();try{const{networkDetailAllowUrls:n,networkDetailDenyUrls:a,networkCaptureBodies:o,networkRequestHeaders:s,networkResponseHeaders:r}=e.getOptions(),i={replay:e,networkDetailAllowUrls:n,networkDetailDenyUrls:a,networkCaptureBodies:o,networkRequestHeaders:s,networkResponseHeaders:r};t&&t.on("beforeAddBreadcrumb",(e,t)=>function(e,t,n){if(t.data)try{(function(e){return"xhr"===e.category})(t)&&function(e){return e?.xhr}(n)&&(function(e,t){const{xhr:n,input:a}=t;if(!n)return;const o=Ok(a),s=n.getResponseHeader("content-length")?Dk(n.getResponseHeader("content-length")):function(e,t){try{return Ok("json"===t&&e&&"object"==typeof e?JSON.stringify(e):e)}catch{return}}(n.response,n.responseType);void 0!==o&&(e.data.request_body_size=o),void 0!==s&&(e.data.response_body_size=s)}(t,n),async function(e,t,n){try{const a=function(e,t,n){const a=Date.now(),{startTimestamp:o=a,endTimestamp:s=a,input:r,xhr:i}=t,{url:c,method:u,status_code:l=0,request_body_size:p,response_body_size:d}=e.data;if(!c)return null;if(!i||!Uk(c,n.networkDetailAllowUrls)||Uk(c,n.networkDetailDenyUrls))return{startTimestamp:o,endTimestamp:s,url:c,method:u,statusCode:l,request:Nk(p),response:Nk(d)};const m=i[Nr],h=m?Fk(m.request_headers,n.networkRequestHeaders):{},g=Fk(wm(i),n.networkResponseHeaders),[f,k]=n.networkCaptureBodies?ym(r,uk):[void 0],[y,b]=n.networkCaptureBodies?function(e){const t=[];try{return[e.responseText]}catch(e){t.push(e)}try{return function(e,t){try{if("string"==typeof e)return[e];if(e instanceof Document)return[e.body.outerHTML];if("json"===t&&e&&"object"==typeof e)return[JSON.stringify(e)];if(!e)return[void 0]}catch(t){return sk&&uk.exception(t,"Failed to serialize body",e),[void 0,"BODY_PARSE_ERROR"]}return sk&&uk.log("Skipping network body because of body type",e),[void 0,"UNPARSEABLE_BODY_TYPE"]}(e.response,e.responseType)}catch(e){t.push(e)}return sk&&uk.warn("Failed to get xhr response body",...t),[void 0]}(i):[void 0],w=$k(h,p,f),v=$k(g,d,y);return{startTimestamp:o,endTimestamp:s,url:c,method:u,statusCode:l,request:k?Pk(w,k):w,response:b?Pk(v,b):v}}(e,t,n),o=Lk("resource.xhr",a);Ak(n.replay,o)}catch(e){sk&&uk.exception(e,"Failed to capture xhr breadcrumb")}}(t,n,e)),function(e){return"fetch"===e.category}(t)&&function(e){return e?.response}(n)&&(function(e,t){const{input:n,response:a}=t,o=Ok(n?bm(n):void 0),s=a?Dk(a.headers.get("content-length")):void 0;void 0!==o&&(e.data.request_body_size=o),void 0!==s&&(e.data.response_body_size=s)}(t,n),async function(e,t,n){try{const a=await async function(e,t,n){const a=Date.now(),{startTimestamp:o=a,endTimestamp:s=a}=t,{url:r,method:i,status_code:c=0,request_body_size:u,response_body_size:l}=e.data,p=Uk(r,n.networkDetailAllowUrls)&&!Uk(r,n.networkDetailDenyUrls),d=p?function({networkCaptureBodies:e,networkRequestHeaders:t},n,a){const o=n?(r=t,1===(s=n).length&&"string"!=typeof s[0]?qk(s[0],r):2===s.length?qk(s[1],r):{}):{};var s,r;if(!e)return $k(o,a,void 0);const i=bm(n),[c,u]=ym(i,uk),l=$k(o,a,c);return u?Pk(l,u):l}(n,t.input,u):Nk(u),m=await async function(e,{networkCaptureBodies:t,networkResponseHeaders:n},a,o){if(!e&&void 0!==o)return Nk(o);const s=a?Bk(a.headers,n):{};if(!a||!t&&void 0!==o)return $k(s,o,void 0);const[r,i]=await async function(e){const t=function(e){try{return e.clone()}catch(e){sk&&uk.exception(e,"Failed to clone response body")}}(e);if(!t)return[void 0,"BODY_PARSE_ERROR"];try{const e=await function(e){return new Promise((t,n)=>{const a=Pi(()=>n(new Error("Timeout while trying to read response body")),500);(async function(e){return await e.text()})(e).then(e=>t(e),e=>n(e)).finally(()=>clearTimeout(a))})}(t);return[e]}catch(e){return e instanceof Error&&e.message.indexOf("Timeout")>-1?(sk&&uk.warn("Parsing text body from response timed out"),[void 0,"BODY_PARSE_TIMEOUT"]):(sk&&uk.exception(e,"Failed to get text body from response"),[void 0,"BODY_PARSE_ERROR"])}}(a),c=function(e,{networkCaptureBodies:t,responseBodySize:n,captureDetails:a,headers:o}){try{const s=e?.length&&void 0===n?Ok(e):n;return a?$k(o,s,t?e:void 0):Nk(s)}catch(e){return sk&&uk.exception(e,"Failed to serialize response body"),$k(o,n,void 0)}}(r,{networkCaptureBodies:t,responseBodySize:o,captureDetails:e,headers:s});return i?Pk(c,i):c}(p,n,t.response,l);return{startTimestamp:o,endTimestamp:s,url:r,method:i,statusCode:c,request:d,response:m}}(e,t,n),o=Lk("resource.fetch",a);Ak(n.replay,o)}catch(e){sk&&uk.exception(e,"Failed to capture fetch breadcrumb")}}(t,n,e))}catch(e){sk&&uk.exception(e,"Error when enriching network breadcrumb")}}(i,e,t))}catch{}}function Wk(e){const{jsHeapSizeLimit:t,totalJSHeapSize:n,usedJSHeapSize:a}=e,o=Date.now()/1e3;return{type:"memory",name:"memory",start:o,end:o,data:{memory:{jsHeapSizeLimit:t,totalJSHeapSize:n,usedJSHeapSize:a}}}}const Vk=u.navigator;function Jk(e){let t=!1;return(n,a)=>{if(!e.checkAndHandleExpiredSession())return void(sk&&uk.warn("Received replay event after session expired."));const o=a||!t;t=!0,e.clickDetector&&function(e,t){try{if(!function(e){return 3===e.type}(t))return;const{source:n}=t.data;if(Uf.has(n)&&e.registerMutation(t.timestamp),n===qg.Scroll&&e.registerScroll(t.timestamp),function(e){return e.data.source===qg.MouseInteraction}(t)){const{type:n,id:a}=t.data,o=Mf.mirror.getNode(a);o instanceof HTMLElement&&n===Hg.Click&&e.registerClick(o)}}catch{}}(e.clickDetector,n),e.addUpdate(()=>{if("buffer"===e.recordingMode&&o&&e.setInitialState(),!Sk(e,n,o))return!0;if(!o)return!1;const t=e.session;if(function(e,t){t&&e.session&&0===e.session.segmentId&&Sk(e,function(e){const t=e.getOptions();return{type:Bg.Custom,timestamp:Date.now(),data:{tag:"options",payload:{shouldRecordCanvas:e.isRecordingCanvas(),sessionSampleRate:t.sessionSampleRate,errorSampleRate:t.errorSampleRate,useCompressionOption:t.useCompression,blockAllMedia:t.blockAllMedia,maskAllText:t.maskAllText,maskAllInputs:t.maskAllInputs,useCompression:!!e.eventBuffer&&"worker"===e.eventBuffer.type,networkDetailHasUrls:t.networkDetailAllowUrls.length>0,networkCaptureBodies:t.networkCaptureBodies,networkRequestHasHeaders:t.networkRequestHeaders.length>0,networkResponseHasHeaders:t.networkResponseHeaders.length>0}}}}(e),!1)}(e,o),"buffer"===e.recordingMode&&t&&e.eventBuffer&&!t.dirty){const n=e.eventBuffer.getEarliestTimestamp();n&&(sk&&uk.log(`Updating session start time to earliest event in buffer to ${new Date(n)}`),t.started=n,e.getOptions().stickySession&&kk(t))}return t?.previousSessionId||"session"===e.recordingMode&&e.flush(),!0})}}class Yk extends Error{constructor(e){super(`Transport returned status code ${e}`)}}class Gk extends Error{constructor(e){super("Rate limit hit"),this.rateLimits=e}}async function Kk(e,t={count:0,interval:5e3}){const{recordingData:n,onError:a}=e;if(n.length)try{return await async function({recordingData:e,replayId:t,segmentId:n,eventContext:a,timestamp:o,session:s}){const r=function({recordingData:e,headers:t}){let n;const a=`${JSON.stringify(t)}\n`;if("string"==typeof e)n=`${a}${e}`;else{const t=(new TextEncoder).encode(a);n=new Uint8Array(t.length+e.length),n.set(t),n.set(e,t.length)}return n}({recordingData:e,headers:{segment_id:n}}),{urls:i,errorIds:c,traceIds:u,initialTimestamp:l}=a,p=Ue(),d=Pe(),m=p?.getTransport(),h=p?.getDsn();if(!(p&&m&&h&&s.sampled))return Promise.resolve({});const g={type:"replay_event",replay_start_timestamp:l/1e3,timestamp:o/1e3,error_ids:c,trace_ids:u,urls:i,replay_id:t,segment_id:n,replay_type:s.sampled},f=await async function({client:e,scope:t,replayId:n,event:a}){const o={event_id:n,integrations:"object"!=typeof e._integrations||null===e._integrations||Array.isArray(e._integrations)?void 0:Object.keys(e._integrations)};e.emit("preprocessEvent",a,o);const s=await kn(e.getOptions(),a,o,t,e,Le());if(!s)return null;e.emit("postprocessEvent",s,o),s.platform=s.platform||"javascript";const r=e.getSdkMetadata(),{name:i,version:c,settings:u}=r?.sdk||{};return s.sdk={...s.sdk,name:i||"sentry.javascript.unknown",version:c||"0.0.0",settings:u},s}({scope:d,client:p,replayId:t,event:g});if(!f)return p.recordDroppedEvent("event_processor","replay"),sk&&uk.log("An event processor returned `null`, will not send event."),Promise.resolve({});delete f.sdkProcessingMetadata;const k=function(e,t,n,a){return Po(Jo(e,Vo(e),a,n),[[{type:"replay_event"},e],[{type:"replay_recording",length:"string"==typeof t?(new TextEncoder).encode(t).length:t.length},t]])}(f,r,h,p.getOptions().tunnel);let y;try{y=await m.send(k)}catch(e){const t=new Error(xh);try{t.cause=e}catch{}throw t}if("number"==typeof y.statusCode&&(y.statusCode<200||y.statusCode>=300))throw new Yk(y.statusCode);const b=ws({},y);if(bs(b,"replay"))throw new Gk(b);return y}(e),!0}catch(n){if(n instanceof Yk||n instanceof Gk)throw n;if(_n("Replays",{_retryCount:t.count}),a&&a(n),t.count>=3){const e=new Error(`${xh} - max retries exceeded`);try{e.cause=n}catch{}throw e}return t.interval*=++t.count,new Promise((n,a)=>{Pi(async()=>{try{await Kk(e,t),n(!0)}catch(e){a(e)}},t.interval)})}}const Xk="__THROTTLED";class Zk{constructor({options:e,recordingOptions:t}){this.eventBuffer=null,this.performanceEntries=[],this.replayPerformanceEntries=[],this.recordingMode="session",this.timeouts={sessionIdlePause:3e5,sessionIdleExpire:9e5},this._lastActivity=Date.now(),this._isEnabled=!1,this._isPaused=!1,this._requiresManualStart=!1,this._hasInitializedCoreListeners=!1,this._context={errorIds:new Set,traceIds:new Set,urls:[],initialTimestamp:Date.now(),initialUrl:""},this._recordingOptions=t,this._options=e,this._debouncedFlush=function(e,t,n){return function(e,t,n){let a,o,s;const r=n?.maxWait?Math.max(n.maxWait,t):0,i=n?.setTimeoutImpl||setTimeout;function c(){return u(),a=e(),a}function u(){void 0!==o&&clearTimeout(o),void 0!==s&&clearTimeout(s),o=s=void 0}function l(){return o&&clearTimeout(o),o=i(c,t),r&&void 0===s&&(s=i(c,r)),a}return l.cancel=u,l.flush=function(){return void 0!==o||void 0!==s?c():a},l}(e,t,{...n,setTimeoutImpl:Pi})}(()=>this._flush(),this._options.flushMinDelay,{maxWait:this._options.flushMaxDelay}),this._throttledAddEvent=function(e,t,n){const a=new Map;let o=!1;return(...s)=>{const r=Math.floor(Date.now()/1e3);if((e=>{const t=e-n;a.forEach((e,n)=>{n<t&&a.delete(n)})})(r),[...a.values()].reduce((e,t)=>e+t,0)>=t){const e=o;return o=!0,e?"__SKIPPED":Xk}o=!1;const i=a.get(r)||0;return a.set(r,i+1),e(...s)}}((e,t)=>function(e,t,n){return zk(e,t)?xk(e,t,n):Promise.resolve(null)}(this,e,t),300,5);const{slowClickTimeout:n,slowClickIgnoreSelectors:a}=this.getOptions(),o=n?{threshold:Math.min(3e3,n),timeout:n,scrollTimeout:300,ignoreSelector:a?a.join(","):""}:void 0;if(o&&(this.clickDetector=new Bf(this,o)),sk){const t=e._experiments;uk.setConfig({captureExceptions:!!t.captureExceptions,traceInternals:!!t.traceInternals})}this._handleVisibilityChange=()=>{"visible"===jh.document.visibilityState?this._doChangeToForegroundTasks():this._doChangeToBackgroundTasks()},this._handleWindowBlur=()=>{const e=Wf({category:"ui.blur"});this._doChangeToBackgroundTasks(e)},this._handleWindowFocus=()=>{const e=Wf({category:"ui.focus"});this._doChangeToForegroundTasks(e)},this._handleKeyboardEvent=e=>{!function(e,t){if(!e.isEnabled())return;e.updateUserActivity();const n=function(e){const{metaKey:t,shiftKey:n,ctrlKey:a,altKey:o,key:s,target:r}=e;if(!r||function(e){return"INPUT"===e.tagName||"TEXTAREA"===e.tagName||e.isContentEditable}(r)||!s)return null;const i=t||a||o,c=1===s.length;if(!i&&c)return null;const u=I(r,{maxStringLength:200})||"<unknown>";return Wf({category:"ui.keyDown",message:u,data:{...Gf(r,u).data,metaKey:t,shiftKey:n,ctrlKey:a,altKey:o,key:s}})}(t);n&&Pf(e,n)}(this,e)}}getContext(){return this._context}isEnabled(){return this._isEnabled}isPaused(){return this._isPaused}isRecordingCanvas(){return Boolean(this._canvas)}getOptions(){return this._options}handleException(e){sk&&uk.exception(e),this._options.onError&&this._options.onError(e)}initializeSampling(e){const{errorSampleRate:t,sessionSampleRate:n}=this._options,a=t<=0&&n<=0;this._requiresManualStart=a,a||(this._initializeSessionForSampling(e),this.session?!1!==this.session.sampled&&(this.recordingMode="buffer"===this.session.sampled&&0===this.session.segmentId?"buffer":"session",sk&&uk.infoTick(`Starting replay in ${this.recordingMode} mode`),this._initializeRecording()):sk&&uk.exception(new Error("Unable to initialize and create session")))}start(){if(this._isEnabled&&"session"===this.recordingMode)return void(sk&&uk.log("Recording is already in progress"));if(this._isEnabled&&"buffer"===this.recordingMode)return void(sk&&uk.log("Buffering is in progress, call `flush()` to save the replay"));sk&&uk.infoTick("Starting replay in session mode"),this._updateUserActivity();const e=jk({maxReplayDuration:this._options.maxReplayDuration,sessionIdleExpire:this.timeouts.sessionIdleExpire},{stickySession:this._options.stickySession,sessionSampleRate:1,allowBuffering:!1});this.session=e,this.recordingMode="session",this._initializeRecording()}startBuffering(){if(this._isEnabled)return void(sk&&uk.log("Buffering is in progress, call `flush()` to save the replay"));sk&&uk.infoTick("Starting replay in buffer mode");const e=jk({sessionIdleExpire:this.timeouts.sessionIdleExpire,maxReplayDuration:this._options.maxReplayDuration},{stickySession:this._options.stickySession,sessionSampleRate:0,allowBuffering:!0});this.session=e,this.recordingMode="buffer",this._initializeRecording()}startRecording(){try{const e=this._canvas;this._stopRecording=Mf({...this._recordingOptions,..."buffer"===this.recordingMode?{checkoutEveryNms:6e4}:this._options._experiments.continuousCheckout&&{checkoutEveryNms:Math.max(36e4,this._options._experiments.continuousCheckout)},emit:Jk(this),.../iPhone|iPad|iPod/i.test(Vk?.userAgent??"")||/Macintosh/i.test(Vk?.userAgent??"")&&Vk?.maxTouchPoints&&Vk?.maxTouchPoints>1?{sampling:{mousemove:!1}}:{},onMutation:this._onMutationHandler.bind(this),...e?{recordCanvas:e.recordCanvas,getCanvasManager:e.getCanvasManager,sampling:e.sampling,dataURLOptions:e.dataURLOptions}:{}})}catch(e){this.handleException(e)}}stopRecording(){try{return this._stopRecording&&(this._stopRecording(),this._stopRecording=void 0),!0}catch(e){return this.handleException(e),!1}}async stop({forceFlush:e=!1,reason:t}={}){if(this._isEnabled){this._isEnabled=!1,this.recordingMode="buffer";try{sk&&uk.log("Stopping Replay"+(t?` triggered by ${t}`:"")),Mk(),this._removeListeners(),this.stopRecording(),this._debouncedFlush.cancel(),e&&await this._flush({force:!0}),this.eventBuffer?.destroy(),this.eventBuffer=null,n=this,function(){if(gk())try{jh.sessionStorage.removeItem(Sh)}catch{}}(),n.session=void 0}catch(e){this.handleException(e)}}var n}pause(){this._isPaused||(this._isPaused=!0,this.stopRecording(),sk&&uk.log("Pausing replay"))}resume(){this._isPaused&&this._checkSession()&&(this._isPaused=!1,this.startRecording(),sk&&uk.log("Resuming replay"))}async sendBufferedReplayOrFlush({continueRecording:e=!0}={}){if("session"===this.recordingMode)return this.flushImmediate();const t=Date.now();sk&&uk.log("Converting buffer to session"),await this.flushImmediate();const n=this.stopRecording();e&&n&&"session"!==this.recordingMode&&(this.recordingMode="session",this.session&&(this.session.dirty=!1,this._updateUserActivity(t),this._updateSessionActivity(t),this._maybeSaveSession()),this.startRecording())}addUpdate(e){const t=e();"buffer"!==this.recordingMode&&this._isEnabled&&!0!==t&&this._debouncedFlush()}triggerUserActivity(){if(this._updateUserActivity(),this._stopRecording)this.checkAndHandleExpiredSession(),this._updateSessionActivity();else{if(!this._checkSession())return;this.resume()}}updateUserActivity(){this._updateUserActivity(),this._updateSessionActivity()}conditionalFlush(){return"buffer"===this.recordingMode?Promise.resolve():this.flushImmediate()}flush(){return this._debouncedFlush()}flushImmediate(){return this._debouncedFlush(),this._debouncedFlush.flush()}cancelFlush(){this._debouncedFlush.cancel()}getSessionId(e){if(!e||!1!==this.session?.sampled)return this.session?.id}checkAndHandleExpiredSession(){if(!(this._lastActivity&&wk(this._lastActivity,this.timeouts.sessionIdlePause)&&this.session&&"session"===this.session.sampled))return!!this._checkSession();this.pause()}setInitialState(){const e=`${jh.location.pathname}${jh.location.hash}${jh.location.search}`,t=`${jh.location.origin}${e}`;this.performanceEntries=[],this.replayPerformanceEntries=[],this._clearContext(),this._context.initialUrl=t,this._context.initialTimestamp=Date.now(),this._context.urls.push(t)}throttledAddEvent(e,t){const n=this._throttledAddEvent(e,t);if(n===Xk){const e=Wf({category:"replay.throttled"});this.addUpdate(()=>!Sk(this,{type:5,timestamp:e.timestamp||0,data:{tag:"breadcrumb",payload:e,metric:!0}}))}return n}getCurrentRoute(){const e=this.lastActiveSpan||Xt(),t=e&&Kt(e),n=(t&&qt(t).data||{})[Ge];if(t&&n&&["route","custom"].includes(n))return qt(t).description}_initializeRecording(){this.setInitialState(),this._updateSessionActivity(),this.eventBuffer=function({useCompression:e,workerUrl:t}){if(e&&window.Worker){const e=function(e){try{const t=e||("undefined"!=typeof __SENTRY_EXCLUDE_REPLAY_WORKER__&&__SENTRY_EXCLUDE_REPLAY_WORKER__?"":function(){const e=new Blob(['var t=Uint8Array,n=Uint16Array,r=Int32Array,e=new t([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),i=new t([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),s=new t([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),a=function(t,e){for(var i=new n(31),s=0;s<31;++s)i[s]=e+=1<<t[s-1];var a=new r(i[30]);for(s=1;s<30;++s)for(var o=i[s];o<i[s+1];++o)a[o]=o-i[s]<<5|s;return{b:i,r:a}},o=a(e,2),h=o.b,f=o.r;h[28]=258,f[258]=28;for(var l=a(i,0).r,u=new n(32768),c=0;c<32768;++c){var v=(43690&c)>>1|(21845&c)<<1;v=(61680&(v=(52428&v)>>2|(13107&v)<<2))>>4|(3855&v)<<4,u[c]=((65280&v)>>8|(255&v)<<8)>>1}var d=function(t,r,e){for(var i=t.length,s=0,a=new n(r);s<i;++s)t[s]&&++a[t[s]-1];var o,h=new n(r);for(s=1;s<r;++s)h[s]=h[s-1]+a[s-1]<<1;if(e){o=new n(1<<r);var f=15-r;for(s=0;s<i;++s)if(t[s])for(var l=s<<4|t[s],c=r-t[s],v=h[t[s]-1]++<<c,d=v|(1<<c)-1;v<=d;++v)o[u[v]>>f]=l}else for(o=new n(i),s=0;s<i;++s)t[s]&&(o[s]=u[h[t[s]-1]++]>>15-t[s]);return o},p=new t(288);for(c=0;c<144;++c)p[c]=8;for(c=144;c<256;++c)p[c]=9;for(c=256;c<280;++c)p[c]=7;for(c=280;c<288;++c)p[c]=8;var g=new t(32);for(c=0;c<32;++c)g[c]=5;var w=d(p,9,0),y=d(g,5,0),m=function(t){return(t+7)/8|0},b=function(n,r,e){return(null==e||e>n.length)&&(e=n.length),new t(n.subarray(r,e))},M=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],E=function(t,n,r){var e=new Error(n||M[t]);if(e.code=t,Error.captureStackTrace&&Error.captureStackTrace(e,E),!r)throw e;return e},z=function(t,n,r){r<<=7&n;var e=n/8|0;t[e]|=r,t[e+1]|=r>>8},_=function(t,n,r){r<<=7&n;var e=n/8|0;t[e]|=r,t[e+1]|=r>>8,t[e+2]|=r>>16},x=function(r,e){for(var i=[],s=0;s<r.length;++s)r[s]&&i.push({s:s,f:r[s]});var a=i.length,o=i.slice();if(!a)return{t:F,l:0};if(1==a){var h=new t(i[0].s+1);return h[i[0].s]=1,{t:h,l:1}}i.sort(function(t,n){return t.f-n.f}),i.push({s:-1,f:25001});var f=i[0],l=i[1],u=0,c=1,v=2;for(i[0]={s:-1,f:f.f+l.f,l:f,r:l};c!=a-1;)f=i[i[u].f<i[v].f?u++:v++],l=i[u!=c&&i[u].f<i[v].f?u++:v++],i[c++]={s:-1,f:f.f+l.f,l:f,r:l};var d=o[0].s;for(s=1;s<a;++s)o[s].s>d&&(d=o[s].s);var p=new n(d+1),g=A(i[c-1],p,0);if(g>e){s=0;var w=0,y=g-e,m=1<<y;for(o.sort(function(t,n){return p[n.s]-p[t.s]||t.f-n.f});s<a;++s){var b=o[s].s;if(!(p[b]>e))break;w+=m-(1<<g-p[b]),p[b]=e}for(w>>=y;w>0;){var M=o[s].s;p[M]<e?w-=1<<e-p[M]++-1:++s}for(;s>=0&&w;--s){var E=o[s].s;p[E]==e&&(--p[E],++w)}g=e}return{t:new t(p),l:g}},A=function(t,n,r){return-1==t.s?Math.max(A(t.l,n,r+1),A(t.r,n,r+1)):n[t.s]=r},D=function(t){for(var r=t.length;r&&!t[--r];);for(var e=new n(++r),i=0,s=t[0],a=1,o=function(t){e[i++]=t},h=1;h<=r;++h)if(t[h]==s&&h!=r)++a;else{if(!s&&a>2){for(;a>138;a-=138)o(32754);a>2&&(o(a>10?a-11<<5|28690:a-3<<5|12305),a=0)}else if(a>3){for(o(s),--a;a>6;a-=6)o(8304);a>2&&(o(a-3<<5|8208),a=0)}for(;a--;)o(s);a=1,s=t[h]}return{c:e.subarray(0,i),n:r}},T=function(t,n){for(var r=0,e=0;e<n.length;++e)r+=t[e]*n[e];return r},k=function(t,n,r){var e=r.length,i=m(n+2);t[i]=255&e,t[i+1]=e>>8,t[i+2]=255^t[i],t[i+3]=255^t[i+1];for(var s=0;s<e;++s)t[i+s+4]=r[s];return 8*(i+4+e)},U=function(t,r,a,o,h,f,l,u,c,v,m){z(r,m++,a),++h[256];for(var b=x(h,15),M=b.t,E=b.l,A=x(f,15),U=A.t,C=A.l,F=D(M),I=F.c,S=F.n,L=D(U),O=L.c,j=L.n,q=new n(19),B=0;B<I.length;++B)++q[31&I[B]];for(B=0;B<O.length;++B)++q[31&O[B]];for(var G=x(q,7),H=G.t,J=G.l,K=19;K>4&&!H[s[K-1]];--K);var N,P,Q,R,V=v+5<<3,W=T(h,p)+T(f,g)+l,X=T(h,M)+T(f,U)+l+14+3*K+T(q,H)+2*q[16]+3*q[17]+7*q[18];if(c>=0&&V<=W&&V<=X)return k(r,m,t.subarray(c,c+v));if(z(r,m,1+(X<W)),m+=2,X<W){N=d(M,E,0),P=M,Q=d(U,C,0),R=U;var Y=d(H,J,0);z(r,m,S-257),z(r,m+5,j-1),z(r,m+10,K-4),m+=14;for(B=0;B<K;++B)z(r,m+3*B,H[s[B]]);m+=3*K;for(var Z=[I,O],$=0;$<2;++$){var tt=Z[$];for(B=0;B<tt.length;++B){var nt=31&tt[B];z(r,m,Y[nt]),m+=H[nt],nt>15&&(z(r,m,tt[B]>>5&127),m+=tt[B]>>12)}}}else N=w,P=p,Q=y,R=g;for(B=0;B<u;++B){var rt=o[B];if(rt>255){_(r,m,N[(nt=rt>>18&31)+257]),m+=P[nt+257],nt>7&&(z(r,m,rt>>23&31),m+=e[nt]);var et=31&rt;_(r,m,Q[et]),m+=R[et],et>3&&(_(r,m,rt>>5&8191),m+=i[et])}else _(r,m,N[rt]),m+=P[rt]}return _(r,m,N[256]),m+P[256]},C=new r([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),F=new t(0),I=function(){for(var t=new Int32Array(256),n=0;n<256;++n){for(var r=n,e=9;--e;)r=(1&r&&-306674912)^r>>>1;t[n]=r}return t}(),S=function(){var t=1,n=0;return{p:function(r){for(var e=t,i=n,s=0|r.length,a=0;a!=s;){for(var o=Math.min(a+2655,s);a<o;++a)i+=e+=r[a];e=(65535&e)+15*(e>>16),i=(65535&i)+15*(i>>16)}t=e,n=i},d:function(){return(255&(t%=65521))<<24|(65280&t)<<8|(255&(n%=65521))<<8|n>>8}}},L=function(s,a,o,h,u){if(!u&&(u={l:1},a.dictionary)){var c=a.dictionary.subarray(-32768),v=new t(c.length+s.length);v.set(c),v.set(s,c.length),s=v,u.w=c.length}return function(s,a,o,h,u,c){var v=c.z||s.length,d=new t(h+v+5*(1+Math.ceil(v/7e3))+u),p=d.subarray(h,d.length-u),g=c.l,w=7&(c.r||0);if(a){w&&(p[0]=c.r>>3);for(var y=C[a-1],M=y>>13,E=8191&y,z=(1<<o)-1,_=c.p||new n(32768),x=c.h||new n(z+1),A=Math.ceil(o/3),D=2*A,T=function(t){return(s[t]^s[t+1]<<A^s[t+2]<<D)&z},F=new r(25e3),I=new n(288),S=new n(32),L=0,O=0,j=c.i||0,q=0,B=c.w||0,G=0;j+2<v;++j){var H=T(j),J=32767&j,K=x[H];if(_[J]=K,x[H]=J,B<=j){var N=v-j;if((L>7e3||q>24576)&&(N>423||!g)){w=U(s,p,0,F,I,S,O,q,G,j-G,w),q=L=O=0,G=j;for(var P=0;P<286;++P)I[P]=0;for(P=0;P<30;++P)S[P]=0}var Q=2,R=0,V=E,W=J-K&32767;if(N>2&&H==T(j-W))for(var X=Math.min(M,N)-1,Y=Math.min(32767,j),Z=Math.min(258,N);W<=Y&&--V&&J!=K;){if(s[j+Q]==s[j+Q-W]){for(var $=0;$<Z&&s[j+$]==s[j+$-W];++$);if($>Q){if(Q=$,R=W,$>X)break;var tt=Math.min(W,$-2),nt=0;for(P=0;P<tt;++P){var rt=j-W+P&32767,et=rt-_[rt]&32767;et>nt&&(nt=et,K=rt)}}}W+=(J=K)-(K=_[J])&32767}if(R){F[q++]=268435456|f[Q]<<18|l[R];var it=31&f[Q],st=31&l[R];O+=e[it]+i[st],++I[257+it],++S[st],B=j+Q,++L}else F[q++]=s[j],++I[s[j]]}}for(j=Math.max(j,B);j<v;++j)F[q++]=s[j],++I[s[j]];w=U(s,p,g,F,I,S,O,q,G,j-G,w),g||(c.r=7&w|p[w/8|0]<<3,w-=7,c.h=x,c.p=_,c.i=j,c.w=B)}else{for(j=c.w||0;j<v+g;j+=65535){var at=j+65535;at>=v&&(p[w/8|0]=g,at=v),w=k(p,w+1,s.subarray(j,at))}c.i=v}return b(d,0,h+m(w)+u)}(s,null==a.level?6:a.level,null==a.mem?u.l?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(s.length)))):20:12+a.mem,o,h,u)},O=function(t,n,r){for(;r;++n)t[n]=r,r>>>=8},j=function(){function n(n,r){if("function"==typeof n&&(r=n,n={}),this.ondata=r,this.o=n||{},this.s={l:0,i:32768,w:32768,z:32768},this.b=new t(98304),this.o.dictionary){var e=this.o.dictionary.subarray(-32768);this.b.set(e,32768-e.length),this.s.i=32768-e.length}}return n.prototype.p=function(t,n){this.ondata(L(t,this.o,0,0,this.s),n)},n.prototype.push=function(n,r){this.ondata||E(5),this.s.l&&E(4);var e=n.length+this.s.z;if(e>this.b.length){if(e>2*this.b.length-32768){var i=new t(-32768&e);i.set(this.b.subarray(0,this.s.z)),this.b=i}var s=this.b.length-this.s.z;this.b.set(n.subarray(0,s),this.s.z),this.s.z=this.b.length,this.p(this.b,!1),this.b.set(this.b.subarray(-32768)),this.b.set(n.subarray(s),32768),this.s.z=n.length-s+32768,this.s.i=32766,this.s.w=32768}else this.b.set(n,this.s.z),this.s.z+=n.length;this.s.l=1&r,(this.s.z>this.s.w+8191||r)&&(this.p(this.b,r||!1),this.s.w=this.s.i,this.s.i-=2)},n.prototype.flush=function(){this.ondata||E(5),this.s.l&&E(4),this.p(this.b,!1),this.s.w=this.s.i,this.s.i-=2},n}();function q(t,n){n||(n={});var r=function(){var t=-1;return{p:function(n){for(var r=t,e=0;e<n.length;++e)r=I[255&r^n[e]]^r>>>8;t=r},d:function(){return~t}}}(),e=t.length;r.p(t);var i,s=L(t,n,10+((i=n).filename?i.filename.length+1:0),8),a=s.length;return function(t,n){var r=n.filename;if(t[0]=31,t[1]=139,t[2]=8,t[8]=n.level<2?4:9==n.level?2:0,t[9]=3,0!=n.mtime&&O(t,4,Math.floor(new Date(n.mtime||Date.now())/1e3)),r){t[3]=8;for(var e=0;e<=r.length;++e)t[e+10]=r.charCodeAt(e)}}(s,n),O(s,a-8,r.d()),O(s,a-4,e),s}var B=function(){function t(t,n){this.c=S(),this.v=1,j.call(this,t,n)}return t.prototype.push=function(t,n){this.c.p(t),j.prototype.push.call(this,t,n)},t.prototype.p=function(t,n){var r=L(t,this.o,this.v&&(this.o.dictionary?6:2),n&&4,this.s);this.v&&(function(t,n){var r=n.level,e=0==r?0:r<6?1:9==r?3:2;if(t[0]=120,t[1]=e<<6|(n.dictionary&&32),t[1]|=31-(t[0]<<8|t[1])%31,n.dictionary){var i=S();i.p(n.dictionary),O(t,2,i.d())}}(r,this.o),this.v=0),n&&O(r,r.length-4,this.c.d()),this.ondata(r,n)},t.prototype.flush=function(){j.prototype.flush.call(this)},t}(),G="undefined"!=typeof TextEncoder&&new TextEncoder,H="undefined"!=typeof TextDecoder&&new TextDecoder;try{H.decode(F,{stream:!0})}catch(t){}var J=function(){function t(t){this.ondata=t}return t.prototype.push=function(t,n){this.ondata||E(5),this.d&&E(4),this.ondata(K(t),this.d=n||!1)},t}();function K(n,r){if(G)return G.encode(n);for(var e=n.length,i=new t(n.length+(n.length>>1)),s=0,a=function(t){i[s++]=t},o=0;o<e;++o){if(s+5>i.length){var h=new t(s+8+(e-o<<1));h.set(i),i=h}var f=n.charCodeAt(o);f<128||r?a(f):f<2048?(a(192|f>>6),a(128|63&f)):f>55295&&f<57344?(a(240|(f=65536+(1047552&f)|1023&n.charCodeAt(++o))>>18),a(128|f>>12&63),a(128|f>>6&63),a(128|63&f)):(a(224|f>>12),a(128|f>>6&63),a(128|63&f))}return b(i,0,s)}const N=new class{constructor(){this._init()}clear(){this._init()}addEvent(t){if(!t)throw new Error("Adding invalid event");const n=this._hasEvents?",":"";this.stream.push(n+t),this._hasEvents=!0}finish(){this.stream.push("]",!0);const t=function(t){let n=0;for(const r of t)n+=r.length;const r=new Uint8Array(n);for(let n=0,e=0,i=t.length;n<i;n++){const i=t[n];r.set(i,e),e+=i.length}return r}(this._deflatedData);return this._init(),t}_init(){this._hasEvents=!1,this._deflatedData=[],this.deflate=new B,this.deflate.ondata=(t,n)=>{this._deflatedData.push(t)},this.stream=new J((t,n)=>{this.deflate.push(t,n)}),this.stream.push("[")}},P={clear:()=>{N.clear()},addEvent:t=>N.addEvent(t),finish:()=>N.finish(),compress:t=>function(t){return q(K(t))}(t)};addEventListener("message",function(t){const n=t.data.method,r=t.data.id,e=t.data.arg;if(n in P&&"function"==typeof P[n])try{const t=P[n](e);postMessage({id:r,method:n,success:!0,response:t})}catch(t){postMessage({id:r,method:n,success:!1,response:t.message}),console.error(t)}}),postMessage({id:void 0,method:"init",success:!0,response:void 0});']);return URL.createObjectURL(e)}());if(!t)return;sk&&uk.log("Using compression worker"+(e?` from ${e}`:""));const n=new Worker(t);return new hk(n)}catch(e){sk&&uk.exception(e,"Failed to create compression worker")}}(t);if(e)return e}return sk&&uk.log("Using simple buffer"),new pk}({useCompression:this._options.useCompression,workerUrl:this._options.workerUrl}),this._removeListeners(),this._addListeners(),this._isEnabled=!0,this._isPaused=!1,this.startRecording()}_initializeSessionForSampling(e){const t=this._options.errorSampleRate>0,n=jk({sessionIdleExpire:this.timeouts.sessionIdleExpire,maxReplayDuration:this._options.maxReplayDuration,previousSessionId:e},{stickySession:this._options.stickySession,sessionSampleRate:this._options.sessionSampleRate,allowBuffering:t});this.session=n}_checkSession(){if(!this.session)return!1;const e=this.session;return!_k(e,{sessionIdleExpire:this.timeouts.sessionIdleExpire,maxReplayDuration:this._options.maxReplayDuration})||(this._refreshSession(e),!1)}async _refreshSession(e){this._isEnabled&&(await this.stop({reason:"refresh session"}),this.initializeSampling(e.id))}_addListeners(){try{jh.document.addEventListener("visibilitychange",this._handleVisibilityChange),jh.addEventListener("blur",this._handleWindowBlur),jh.addEventListener("focus",this._handleWindowFocus),jh.addEventListener("keydown",this._handleKeyboardEvent),this.clickDetector&&this.clickDetector.addListeners(),this._hasInitializedCoreListeners||(function(e){const t=Ue();Dr((e=>t=>{if(!e.isEnabled())return;const n=function(e){const{target:t,message:n}=function(e){const t="click"===e.name;let n,a=null;try{a=t?Nf(e.event):$f(e.event),n=I(a,{maxStringLength:200})||"<unknown>"}catch{n="<unknown>"}return{target:a,message:n}}(e);return Wf({category:`ui.${e.name}`,...Gf(t,n)})}(t);if(!n)return;const a="click"===t.name,o=a?t.event:void 0;var s,r,i;!(a&&e.clickDetector&&o?.target)||o.altKey||o.metaKey||o.ctrlKey||o.shiftKey||(s=e.clickDetector,r=n,i=Nf(t.event),s.handleClick(r,i)),Pf(e,n)})(e)),Br(function(e){return t=>{if(!e.isEnabled())return;const n=function(e){const{from:t,to:n}=e,a=Date.now()/1e3;return{type:"navigation.push",start:a,end:a,name:n,data:{previous:t}}}(t);null!==n&&(e.getContext().urls.push(n.name),e.triggerUserActivity(),e.addUpdate(()=>(Rk(e,[n]),!1)))}}(e)),function(e){const t=Ue();t&&t.on("beforeAddBreadcrumb",t=>function(e,t){if(!e.isEnabled()||!Ik(t))return;const n=function(e){return!Ik(e)||["fetch","xhr","sentry.event","sentry.transaction"].includes(e.category)||e.category.startsWith("ui.")?null:"console"===e.category?function(e){const t=e.data?.arguments;if(!Array.isArray(t)||0===t.length)return Wf(e);let n=!1;const a=t.map(e=>{if(!e)return e;if("string"==typeof e)return e.length>Eh?(n=!0,`${e.slice(0,Eh)}…`):e;if("object"==typeof e)try{const t=hn(e,7);return JSON.stringify(t).length>Eh?(n=!0,`${JSON.stringify(t,null,2).slice(0,Eh)}…`):t}catch{}return e});return Wf({...e,data:{...e.data,arguments:a,...n?{_meta:{warnings:["CONSOLE_ARG_TRUNCATED"]}}:{}}})}(e):Wf(e)}(t);n&&Pf(e,n)}(e,t))}(e),Hk(e),An(function(e){return Object.assign((t,n)=>{if(!e.isEnabled()||e.isPaused())return t;if(function(e){return"replay_event"===e.type}(t))return delete t.breadcrumbs,t;if(!Ek(t)&&!Tk(t)&&!Ck(t))return t;if(!e.checkAndHandleExpiredSession())return Mk(),t;if(Ck(t))return e.flush(),t.contexts.feedback.replay_id=e.getSessionId(),function(e,t){e.triggerUserActivity(),e.addUpdate(()=>!t.timestamp||(e.throttledAddEvent({type:Bg.Custom,timestamp:1e3*t.timestamp,data:{tag:"breadcrumb",payload:{timestamp:t.timestamp,type:"default",category:"sentry.feedback",data:{feedbackId:t.event_id}}}}),!1))}(e,t),t;if(function(e,t){return!(e.type||!e.exception?.values?.length||!t.originalException?.__rrweb__)}(t,n)&&!e.getOptions()._experiments.captureExceptions)return sk&&uk.log("Ignoring error from rrweb internals",t),null;const a=function(e,t){return"buffer"===e.recordingMode&&t.message!==xh&&!(!t.exception||t.type)&&fk(e.getOptions().errorSampleRate)}(e,t);if((a||"session"===e.recordingMode)&&(t.tags={...t.tags,replayId:e.getSessionId()}),a&&"buffer"===e.recordingMode&&"buffer"===e.session?.sampled){const t=e.session;t.dirty=!0,e.getOptions().stickySession&&kk(t)}return t},{id:"Replay"})}(e)),t&&(t.on("beforeSendEvent",function(e){return t=>{e.isEnabled()&&Ek(t)&&function(e,t){const n=t.exception?.values?.[0]?.value;"string"==typeof n&&(n.match(/(reactjs\.org\/docs\/error-decoder\.html\?invariant=|react\.dev\/errors\/)(418|419|422|423|425)/)||n.match(/(does not match server-rendered HTML|Hydration failed because)/i))&&Pf(e,Wf({category:"replay.hydrate-error",data:{url:R()}}))}(e,t)}}(e)),t.on("afterSendEvent",function(e){return(t,n)=>{if(!e.isEnabled()||!Ek(t)&&!Tk(t))return;const a=n.statusCode;!a||a<200||a>=300||(Tk(t)?function(e,t){const n=e.getContext();t.contexts?.trace?.trace_id&&n.traceIds.size<100&&n.traceIds.add(t.contexts.trace.trace_id)}(e,t):function(e,t){const n=e.getContext();if(t.event_id&&n.errorIds.size<100&&n.errorIds.add(t.event_id),"buffer"!==e.recordingMode||!t.tags||!t.tags.replayId)return;const{beforeErrorSampling:a}=e.getOptions();("function"!=typeof a||a(t))&&Pi(async()=>{try{await e.sendBufferedReplayOrFlush()}catch(t){e.handleException(t)}})}(e,t))}}(e)),t.on("createDsc",t=>{const n=e.getSessionId();n&&e.isEnabled()&&"session"===e.recordingMode&&e.checkAndHandleExpiredSession()&&(t.replay_id=n)}),t.on("spanStart",t=>{e.lastActiveSpan=t}),t.on("spanEnd",t=>{e.lastActiveSpan=t}),t.on("beforeSendFeedback",async(t,n)=>{const a=e.getSessionId();n?.includeReplay&&e.isEnabled()&&a&&t.contexts?.feedback&&("api"===t.contexts.feedback.source&&await e.sendBufferedReplayOrFlush(),t.contexts.feedback.replay_id=a)}),t.on("openFeedbackWidget",async()=>{await e.sendBufferedReplayOrFlush()}))}(this),this._hasInitializedCoreListeners=!0)}catch(e){this.handleException(e)}this._performanceCleanupCallback=function(e){function t(t){e.performanceEntries.includes(t)||e.performanceEntries.push(t)}function n({entries:e}){e.forEach(t)}const a=[];return["navigation","paint","resource"].forEach(e=>{a.push(hh(e,n))}),a.push(dh(Xf(ek,e)),ph(Xf(nk,e)),mh(Xf(ak,e))),()=>{a.forEach(e=>e())}}(this)}_removeListeners(){try{jh.document.removeEventListener("visibilitychange",this._handleVisibilityChange),jh.removeEventListener("blur",this._handleWindowBlur),jh.removeEventListener("focus",this._handleWindowFocus),jh.removeEventListener("keydown",this._handleKeyboardEvent),this.clickDetector&&this.clickDetector.removeListeners(),this._performanceCleanupCallback&&this._performanceCleanupCallback()}catch(e){this.handleException(e)}}_doChangeToBackgroundTasks(e){this.session&&(vk(this.session,{maxReplayDuration:this._options.maxReplayDuration,sessionIdleExpire:this.timeouts.sessionIdleExpire})||(e&&this._createCustomBreadcrumb(e),this.conditionalFlush()))}_doChangeToForegroundTasks(e){this.session&&(this.checkAndHandleExpiredSession()?e&&this._createCustomBreadcrumb(e):sk&&uk.log("Document has become active, but session has expired"))}_updateUserActivity(e=Date.now()){this._lastActivity=e}_updateSessionActivity(e=Date.now()){this.session&&(this.session.lastActivity=e,this._maybeSaveSession())}_createCustomBreadcrumb(e){this.addUpdate(()=>{this.throttledAddEvent({type:Bg.Custom,timestamp:e.timestamp||0,data:{tag:"breadcrumb",payload:e}})})}_addPerformanceEntries(){let e=(t=this.performanceEntries,t.map(Zf).filter(Boolean)).concat(this.replayPerformanceEntries);var t;if(this.performanceEntries=[],this.replayPerformanceEntries=[],this._requiresManualStart){const t=this._context.initialTimestamp/1e3;e=e.filter(e=>e.start>=t)}return Promise.all(Rk(this,e))}_clearContext(){this._context.errorIds.clear(),this._context.traceIds.clear(),this._context.urls=[]}_updateInitialTimestampFromEventBuffer(){const{session:e,eventBuffer:t}=this;if(!e||!t||this._requiresManualStart)return;if(e.segmentId)return;const n=t.getEarliestTimestamp();n&&n<this._context.initialTimestamp&&(this._context.initialTimestamp=n)}_popEventContext(){const e={initialTimestamp:this._context.initialTimestamp,initialUrl:this._context.initialUrl,errorIds:Array.from(this._context.errorIds),traceIds:Array.from(this._context.traceIds),urls:this._context.urls};return this._clearContext(),e}async _runFlush(){const e=this.getSessionId();if(this.session&&this.eventBuffer&&e){if(await this._addPerformanceEntries(),this.eventBuffer?.hasEvents&&(await async function(e){try{return Promise.all(Rk(e,[Wk(jh.performance.memory)]))}catch{return[]}}(this),this.eventBuffer&&e===this.getSessionId()))try{this._updateInitialTimestampFromEventBuffer();const t=Date.now();if(t-this._context.initialTimestamp>this._options.maxReplayDuration+3e4)throw new Error("Session is too long, not sending replay");const n=this._popEventContext(),a=this.session.segmentId++;this._maybeSaveSession();const o=await this.eventBuffer.finish();await Kk({replayId:e,recordingData:o,segmentId:a,eventContext:n,session:this.session,timestamp:t,onError:e=>this.handleException(e)})}catch(e){this.handleException(e),this.stop({reason:"sendReplay"});const t=Ue();if(t){const n=e instanceof Gk?"ratelimit_backoff":"send_error";t.recordDroppedEvent(n,"replay")}}}else sk&&uk.error("No session or eventBuffer found to flush.")}async _flush({force:e=!1}={}){if(!this._isEnabled&&!e)return;if(!this.checkAndHandleExpiredSession())return void(sk&&uk.error("Attempting to finish replay event after session expired."));if(!this.session)return;const t=this.session.started,n=Date.now()-t;this._debouncedFlush.cancel();const a=n<this._options.minReplayDuration,o=n>this._options.maxReplayDuration+5e3;if(a||o)return sk&&uk.log(`Session duration (${Math.floor(n/1e3)}s) is too ${a?"short":"long"}, not sending replay.`),void(a&&this._debouncedFlush());const s=this.eventBuffer;s&&0===this.session.segmentId&&!s.hasCheckout&&sk&&uk.log("Flushing initial segment without checkout.");const r=!!this._flushLock;this._flushLock||(this._flushLock=this._runFlush());try{await this._flushLock}catch(e){this.handleException(e)}finally{this._flushLock=void 0,r&&this._debouncedFlush()}}_maybeSaveSession(){this.session&&this._options.stickySession&&kk(this.session)}_onMutationHandler(e){const{ignoreMutations:t}=this._options._experiments;if(t?.length&&e.some(e=>{const n=function(e){if(!e)return null;try{return e.nodeType===e.ELEMENT_NODE?e:e.parentElement}catch{return null}}(e.target),a=t.join(",");return n?.matches(a)}))return!1;const n=e.length,a=this._options.mutationLimit,o=a&&n>a;if(n>this._options.mutationBreadcrumbLimit||o){const e=Wf({category:"replay.mutations",data:{count:n,limit:o}});this._createCustomBreadcrumb(e)}return!o||(this.stop({reason:"mutationLimit",forceFlush:"session"===this.recordingMode}),!1)}}function Qk(e,t){return[...e,...t].join(",")}const ey='img,image,svg,video,object,picture,embed,map,audio,link[rel="icon"],link[rel="apple-touch-icon"]',ty=["content-length","content-type","accept"];let ny=!1;const ay=e=>new oy(e);class oy{constructor({flushMinDelay:e=5e3,flushMaxDelay:t=5500,minReplayDuration:n=4999,maxReplayDuration:a=36e5,stickySession:o=!0,useCompression:s=!0,workerUrl:r,_experiments:i={},maskAllText:c=!0,maskAllInputs:u=!0,blockAllMedia:l=!0,mutationBreadcrumbLimit:p=750,mutationLimit:d=1e4,slowClickTimeout:m=7e3,slowClickIgnoreSelectors:h=[],networkDetailAllowUrls:g=[],networkDetailDenyUrls:f=[],networkCaptureBodies:k=!0,networkRequestHeaders:y=[],networkResponseHeaders:b=[],mask:w=[],maskAttributes:v=["title","placeholder","aria-label"],unmask:_=[],block:j=[],unblock:S=[],ignore:x=[],maskFn:z,beforeAddRecordingEvent:E,beforeErrorSampling:T,onError:C}={}){this.name="Replay";const I=function({mask:e,unmask:t,block:n,unblock:a,ignore:o}){return{maskTextSelector:Qk(e,[".sentry-mask","[data-sentry-mask]"]),unmaskTextSelector:Qk(t,[]),blockSelector:Qk(n,[".sentry-block","[data-sentry-block]","base","iframe[srcdoc]:not([src])"]),unblockSelector:Qk(a,[]),ignoreSelector:Qk(o,[".sentry-ignore","[data-sentry-ignore]",'input[type="file"]'])}}({mask:w,unmask:_,block:j,unblock:S,ignore:x});if(this._recordingOptions={maskAllInputs:u,maskAllText:c,maskInputOptions:{password:!0},maskTextFn:z,maskInputFn:z,maskAttributeFn:(e,t,n)=>function({el:e,key:t,maskAttributes:n,maskAllText:a,privacyOptions:o,value:s}){return a?o.unmaskTextSelector&&e.matches(o.unmaskTextSelector)?s:n.includes(t)||"value"===t&&"INPUT"===e.tagName&&["submit","button"].includes(e.getAttribute("type")||"")?s.replace(/[\S]/g,"*"):s:s}({maskAttributes:v,maskAllText:c,privacyOptions:I,key:e,value:t,el:n}),...I,slimDOMOptions:"all",inlineStylesheet:!0,inlineImages:!1,collectFonts:!0,errorHandler:e=>{try{e.__rrweb__=!0}catch{}},recordCrossOriginIframes:Boolean(i.recordCrossOriginIframes)},this._initialOptions={flushMinDelay:e,flushMaxDelay:t,minReplayDuration:Math.min(n,5e4),maxReplayDuration:Math.min(a,36e5),stickySession:o,useCompression:s,workerUrl:r,blockAllMedia:l,maskAllInputs:u,maskAllText:c,mutationBreadcrumbLimit:p,mutationLimit:d,slowClickTimeout:m,slowClickIgnoreSelectors:h,networkDetailAllowUrls:g,networkDetailDenyUrls:f,networkCaptureBodies:k,networkRequestHeaders:sy(y),networkResponseHeaders:sy(b),beforeAddRecordingEvent:E,beforeErrorSampling:T,onError:C,_experiments:i},this._initialOptions.blockAllMedia&&(this._recordingOptions.blockSelector=this._recordingOptions.blockSelector?`${this._recordingOptions.blockSelector},${ey}`:ey,this._recordingOptions.ignoreCSSAttributes=new Set(["background-image"])),this._isInitialized&&Hi())throw new Error("Multiple Sentry Session Replay instances are not supported");this._isInitialized=!0}get _isInitialized(){return ny}set _isInitialized(e){ny=e}afterAllSetup(e){Hi()&&!this._replay&&(this._setup(e),this._initialize(e))}start(){this._replay&&this._replay.start()}startBuffering(){this._replay&&this._replay.startBuffering()}stop(){return this._replay?this._replay.stop({forceFlush:"session"===this._replay.recordingMode}):Promise.resolve()}flush(e){return this._replay?this._replay.isEnabled()?this._replay.sendBufferedReplayOrFlush(e):(this._replay.start(),Promise.resolve()):Promise.resolve()}getReplayId(e){if(this._replay?.isEnabled())return this._replay.getSessionId(e)}getRecordingMode(){if(this._replay?.isEnabled())return this._replay.recordingMode}_initialize(e){this._replay&&(this._maybeLoadFromReplayCanvasIntegration(e),this._replay.initializeSampling())}_setup(e){const t=function(e,t){const n=t.getOptions(),a={sessionSampleRate:0,errorSampleRate:0,...e},o=It(n.replaysSessionSampleRate),s=It(n.replaysOnErrorSampleRate);return null==o&&null==s&&P(()=>{console.warn("Replay is disabled because neither `replaysSessionSampleRate` nor `replaysOnErrorSampleRate` are set.")}),null!=o&&(a.sessionSampleRate=o),null!=s&&(a.errorSampleRate=s),a}(this._initialOptions,e);this._replay=new Zk({options:t,recordingOptions:this._recordingOptions})}_maybeLoadFromReplayCanvasIntegration(e){try{const t=e.getIntegrationByName("ReplayCanvas");if(!t)return;this._replay._canvas=t.getOptions()}catch{}}}function sy(e){return[...ty,...e.map(e=>e.toLowerCase())]}function ry(){const e=Ue();return e?.getIntegrationByName("Replay")}var iy=Object.defineProperty,cy=(e,t,n)=>((e,t,n)=>t in e?iy(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n)(e,"symbol"!=typeof t?t+"":t,n);function uy(e,t,n=1/0,a=0){return e?e.nodeType!==e.ELEMENT_NODE||a>n?-1:t(e)?a:uy(e.parentNode,t,n,a+1):-1}function ly(e,t){return n=>{const a=n;if(null===a)return!1;try{if(e)if("string"==typeof e){if(a.matches(`.${e}`))return!0}else if(function(e,t){for(let n=e.classList.length;n--;){const a=e.classList[n];if(t.test(a))return!0}return!1}(a,e))return!0;return!(!t||!a.matches(t))}catch{return!1}}}const py="Please stop import mirror directly. Instead of that,\r\nnow you can use replayer.getMirror() to access the mirror instance of a replayer,\r\nor you can use record.mirror to access the mirror instance during recording.";let dy={map:{},getId:()=>(console.error(py),-1),getNode:()=>(console.error(py),null),removeNodeFromMap(){console.error(py)},has:()=>(console.error(py),!1),reset(){console.error(py)}};function my(e,t,n,a,o=window){const s=o.Object.getOwnPropertyDescriptor(e,t);return o.Object.defineProperty(e,t,a?n:{set(e){by(()=>{n.set.call(this,e)},0),s&&s.set&&s.set.call(this,e)}}),()=>my(e,t,s||{},!0)}function hy(e,t,n){try{if(!(t in e))return()=>{};const a=e[t],o=n(a);return"function"==typeof o&&(o.prototype=o.prototype||{},Object.defineProperties(o,{__rrweb_original__:{enumerable:!1,value:a}})),e[t]=o,()=>{e[t]=a}}catch{return()=>{}}}function gy(e,t,n,a,o){if(!e)return!1;const s=function(e){if(!e)return null;try{return e.nodeType===e.ELEMENT_NODE?e:e.parentElement}catch(e){return null}}(e);if(!s)return!1;const r=ly(t,n);if(!o){const e=a&&s.matches(a);return r(s)&&!e}const i=uy(s,r);let c=-1;return!(i<0)&&(a&&(c=uy(s,ly(null,a))),i>-1&&c<0||i<c)}"undefined"!=typeof window&&window.Proxy&&window.Reflect&&(dy=new Proxy(dy,{get:(e,t,n)=>("map"===t&&console.error(py),Reflect.get(e,t,n))})),Date.now().toString();const fy={};function ky(e){const t=fy[e];if(t)return t;const n=window.document;let a=window[e];if(n&&"function"==typeof n.createElement)try{const t=n.createElement("iframe");t.hidden=!0,n.head.appendChild(t);const o=t.contentWindow;o&&o[e]&&(a=o[e]),n.head.removeChild(t)}catch(e){}return fy[e]=a.bind(window)}function yy(...e){return ky("requestAnimationFrame")(...e)}function by(...e){return ky("setTimeout")(...e)}var wy=(e=>(e[e["2D"]=0]="2D",e[e.WebGL=1]="WebGL",e[e.WebGL2=2]="WebGL2",e))(wy||{});let vy;const _y=e=>vy?(...t)=>{try{return e(...t)}catch(e){if(vy&&!0===vy(e))return()=>{};throw e}}:e;for(var jy="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Sy="undefined"==typeof Uint8Array?[]:new Uint8Array(256),xy=0;xy<64;xy++)Sy[jy.charCodeAt(xy)]=xy;const zy=new Map,Ey=(e,t,n)=>{if(!e||!Iy(e,t)&&"object"!=typeof e)return;const a=function(e,t){let n=zy.get(e);return n||(n=new Map,zy.set(e,n)),n.has(t)||n.set(t,[]),n.get(t)}(n,e.constructor.name);let o=a.indexOf(e);return-1===o&&(o=a.length,a.push(e)),o};function Ty(e,t,n){if(e instanceof Array)return e.map(e=>Ty(e,t,n));if(null===e)return e;if(e instanceof Float32Array||e instanceof Float64Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Uint8Array||e instanceof Uint16Array||e instanceof Int16Array||e instanceof Int8Array||e instanceof Uint8ClampedArray)return{rr_type:e.constructor.name,args:[Object.values(e)]};if(e instanceof ArrayBuffer)return{rr_type:e.constructor.name,base64:function(e){var t,n=new Uint8Array(e),a=n.length,o="";for(t=0;t<a;t+=3)o+=jy[n[t]>>2],o+=jy[(3&n[t])<<4|n[t+1]>>4],o+=jy[(15&n[t+1])<<2|n[t+2]>>6],o+=jy[63&n[t+2]];return a%3==2?o=o.substring(0,o.length-1)+"=":a%3==1&&(o=o.substring(0,o.length-2)+"=="),o}(e)};if(e instanceof DataView)return{rr_type:e.constructor.name,args:[Ty(e.buffer,t,n),e.byteOffset,e.byteLength]};if(e instanceof HTMLImageElement){const t=e.constructor.name,{src:n}=e;return{rr_type:t,src:n}}return e instanceof HTMLCanvasElement?{rr_type:"HTMLImageElement",src:e.toDataURL()}:e instanceof ImageData?{rr_type:e.constructor.name,args:[Ty(e.data,t,n),e.width,e.height]}:Iy(e,t)||"object"==typeof e?{rr_type:e.constructor.name,index:Ey(e,t,n)}:e}const Cy=(e,t,n)=>e.map(e=>Ty(e,t,n)),Iy=(e,t)=>{const n=["WebGLActiveInfo","WebGLBuffer","WebGLFramebuffer","WebGLProgram","WebGLRenderbuffer","WebGLShader","WebGLShaderPrecisionFormat","WebGLTexture","WebGLUniformLocation","WebGLVertexArrayObject","WebGLVertexArrayObjectOES"].filter(e=>"function"==typeof t[e]);return Boolean(n.find(n=>e instanceof t[n]))};function My(e,t,n,a,o){const s=[];try{const r=hy(e.HTMLCanvasElement.prototype,"getContext",function(e){return function(s,...r){if(!gy(this,t,n,a,!0)){const e=function(e){return"experimental-webgl"===e?"webgl":e}(s);if("__context"in this||(this.__context=e),o&&["webgl","webgl2"].includes(e))if(r[0]&&"object"==typeof r[0]){const e=r[0];e.preserveDrawingBuffer||(e.preserveDrawingBuffer=!0)}else r.splice(0,1,{preserveDrawingBuffer:!0})}return e.apply(this,[s,...r])}});s.push(r)}catch{console.error("failed to patch HTMLCanvasElement.prototype.getContext")}return()=>{s.forEach(e=>e())}}function Ry(e,t,n,a,o,s,r,i){const c=[],u=Object.getOwnPropertyNames(e);for(const r of u)if(!["isContextLost","canvas","drawingBufferWidth","drawingBufferHeight"].includes(r))try{if("function"!=typeof e[r])continue;const u=hy(e,r,function(e){return function(...c){const u=e.apply(this,c);if(Ey(u,i,this),"tagName"in this.canvas&&!gy(this.canvas,a,o,s,!0)){const e=Cy(c,i,this),a={type:t,property:r,args:e};n(this.canvas,a)}return u}});c.push(u)}catch{const a=my(e,r,{set(e){n(this.canvas,{type:t,property:r,args:[e],setter:!0})}});c.push(a)}return c}class Ay{constructor(e){this.pendingCanvasMutations=new Map,this.rafStamps={latestId:0,invokeId:null},this.shadowDoms=new Set,this.windowsSet=new WeakSet,this.windows=[],this.restoreHandlers=[],this.frozen=!1,this.locked=!1,this.snapshotInProgressMap=new Map,this.worker=null,this.lastSnapshotTime=0,this.processMutation=(e,t)=>{!(this.rafStamps.invokeId&&this.rafStamps.latestId!==this.rafStamps.invokeId)&&this.rafStamps.invokeId||(this.rafStamps.invokeId=this.rafStamps.latestId),this.pendingCanvasMutations.has(e)||this.pendingCanvasMutations.set(e,[]),this.pendingCanvasMutations.get(e).push(t)};const{enableManualSnapshot:t,sampling:n="all",win:a,recordCanvas:o,errorHandler:s}=e;e.sampling=n,this.mutationCb=e.mutationCb,this.mirror=e.mirror,this.options=e,s&&(vy=s),(o&&"number"==typeof n||t)&&(this.worker=this.initFPSWorker()),this.addWindow(a),t||_y(()=>{o&&"all"===n&&(this.startRAFTimestamping(),this.startPendingCanvasMutationFlusher()),o&&"number"==typeof n&&this.initCanvasFPSObserver()})()}reset(){this.pendingCanvasMutations.clear(),this.restoreHandlers.forEach(e=>{try{e()}catch(e){}}),this.restoreHandlers=[],this.windowsSet=new WeakSet,this.windows=[],this.shadowDoms=new Set,this.worker?.terminate(),this.worker=null,this.snapshotInProgressMap=new Map}freeze(){this.frozen=!0}unfreeze(){this.frozen=!1}lock(){this.locked=!0}unlock(){this.locked=!1}addWindow(e){const{sampling:t="all",blockClass:n,blockSelector:a,unblockSelector:o,recordCanvas:s,enableManualSnapshot:r}=this.options;if(!this.windowsSet.has(e)){if(r)return this.windowsSet.add(e),void this.windows.push(new WeakRef(e));_y(()=>{if(s&&"all"===t&&this.initCanvasMutationObserver(e,n,a,o),s&&"number"==typeof t){const t=My(e,n,a,o,!0);this.restoreHandlers.push(()=>{t()})}})(),this.windowsSet.add(e),this.windows.push(new WeakRef(e))}}addShadowRoot(e){this.shadowDoms.add(new WeakRef(e))}resetShadowRoots(){this.shadowDoms=new Set}snapshot(e,t){t?.skipRequestAnimationFrame?this.takeSnapshot(performance.now(),!0,e):yy(t=>this.takeSnapshot(t,!0,e))}initFPSWorker(){const e=new Worker(function(){const e=new Blob(['for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t="undefined"==typeof Uint8Array?[]:new Uint8Array(256),a=0;a<64;a++)t[e.charCodeAt(a)]=a;var n=function(t){var a,n=new Uint8Array(t),r=n.length,s="";for(a=0;a<r;a+=3)s+=e[n[a]>>2],s+=e[(3&n[a])<<4|n[a+1]>>4],s+=e[(15&n[a+1])<<2|n[a+2]>>6],s+=e[63&n[a+2]];return r%3==2?s=s.substring(0,s.length-1)+"=":r%3==1&&(s=s.substring(0,s.length-2)+"=="),s};const r=new Map,s=new Map;const i=self;i.onmessage=async function(e){if(!("OffscreenCanvas"in globalThis))return i.postMessage({id:e.data.id});{const{id:t,bitmap:a,width:o,height:f,maxCanvasSize:c,dataURLOptions:g}=e.data,u=async function(e,t,a){const r=e+"-"+t;if("OffscreenCanvas"in globalThis){if(s.has(r))return s.get(r);const i=new OffscreenCanvas(e,t);i.getContext("2d");const o=await i.convertToBlob(a),f=await o.arrayBuffer(),c=n(f);return s.set(r,c),c}return""}(o,f,g),[h,d]=function(e,t,a){if(!a)return[e,t];const[n,r]=a;if(e<=n&&t<=r)return[e,t];let s=e,i=t;return s>n&&(i=Math.floor(n*t/e),s=n),i>r&&(s=Math.floor(r*e/t),i=r),[s,i]}(o,f,c),l=new OffscreenCanvas(h,d),w=l.getContext("bitmaprenderer"),p=h===o&&d===f?a:await createImageBitmap(a,{resizeWidth:h,resizeHeight:d,resizeQuality:"low"});w?.transferFromImageBitmap(p),a.close();const y=await l.convertToBlob(g),v=y.type,b=await y.arrayBuffer(),m=n(b);if(p.close(),!r.has(t)&&await u===m)return r.set(t,m),i.postMessage({id:t});if(r.get(t)===m)return i.postMessage({id:t});i.postMessage({id:t,type:v,base64:m,width:o,height:f}),r.set(t,m)}};']);return URL.createObjectURL(e)}());return e.onmessage=e=>{const t=e.data,{id:n}=t;if(this.snapshotInProgressMap.set(n,!1),!("base64"in t))return;const{base64:a,type:o,width:s,height:r}=t;this.mutationCb({id:n,type:wy["2D"],commands:[{property:"clearRect",args:[0,0,s,r]},{property:"drawImage",args:[{rr_type:"ImageBitmap",args:[{rr_type:"Blob",data:[{rr_type:"ArrayBuffer",base64:a}],type:o}]},0,0,s,r]}]})},e}initCanvasFPSObserver(){let e;if(!this.windows.length&&!this.shadowDoms.size)return;const t=n=>{this.takeSnapshot(n,!1),e=yy(t)};e=yy(t),this.restoreHandlers.push(()=>{e&&cancelAnimationFrame(e)})}initCanvasMutationObserver(e,t,n,a){const o=My(e,t,n,a,!1),s=function(e,t,n,a,o){const s=[],r=Object.getOwnPropertyNames(t.CanvasRenderingContext2D.prototype);for(const i of r)try{if("function"!=typeof t.CanvasRenderingContext2D.prototype[i])continue;const r=hy(t.CanvasRenderingContext2D.prototype,i,function(s){return function(...r){return gy(this.canvas,n,a,o,!0)||by(()=>{const n=Cy(r,t,this);e(this.canvas,{type:wy["2D"],property:i,args:n})},0),s.apply(this,r)}});s.push(r)}catch{const n=my(t.CanvasRenderingContext2D.prototype,i,{set(t){e(this.canvas,{type:wy["2D"],property:i,args:[t],setter:!0})}});s.push(n)}return()=>{s.forEach(e=>e())}}(this.processMutation.bind(this),e,t,n,a),r=function(e,t,n,a,o){const s=[];return s.push(...Ry(t.WebGLRenderingContext.prototype,wy.WebGL,e,n,a,o,0,t)),void 0!==t.WebGL2RenderingContext&&s.push(...Ry(t.WebGL2RenderingContext.prototype,wy.WebGL2,e,n,a,o,0,t)),()=>{s.forEach(e=>e())}}(this.processMutation.bind(this),e,t,n,a,this.mirror);this.restoreHandlers.push(()=>{o(),s(),r()})}getCanvasElements(e,t,n){const a=[],o=o=>{o.querySelectorAll("canvas").forEach(o=>{gy(o,e,t,n,!0)||a.push(o)})};for(const e of this.windows){const t=e.deref();let n;try{n=t&&t.document}catch{}n&&o(n)}for(const e of this.shadowDoms){const t=e.deref();t&&o(t)}return a}takeSnapshot(e,t,n){const{sampling:a,blockClass:o,blockSelector:s,unblockSelector:r,dataURLOptions:i,maxCanvasSize:c}=this.options,u=1e3/("all"===a?2:a||2);return!(this.lastSnapshotTime&&e-this.lastSnapshotTime<u)&&(this.lastSnapshotTime=e,(n?[n]:this.getCanvasElements(o,s,r)).forEach(e=>{const n=this.mirror.getId(e);if(this.mirror.hasNode(e)&&e.width&&e.height&&!this.snapshotInProgressMap.get(n)){if(this.snapshotInProgressMap.set(n,!0),!t&&["webgl","webgl2"].includes(e.__context)){const t=e.getContext(e.__context);!1===t?.getContextAttributes()?.preserveDrawingBuffer&&t.clear(t.COLOR_BUFFER_BIT)}createImageBitmap(e).then(t=>{this.worker?.postMessage({id:n,bitmap:t,width:e.width,height:e.height,dataURLOptions:i,maxCanvasSize:c},[t])}).catch(e=>{_y(()=>{throw this.snapshotInProgressMap.delete(n),e})()})}}),!0)}startPendingCanvasMutationFlusher(){yy(()=>this.flushPendingCanvasMutations())}startRAFTimestamping(){const e=t=>{this.rafStamps.latestId=t,yy(e)};yy(e)}flushPendingCanvasMutations(){this.pendingCanvasMutations.forEach((e,t)=>{const n=this.mirror.getId(t);this.flushPendingCanvasMutationFor(t,n)}),yy(()=>this.flushPendingCanvasMutations())}flushPendingCanvasMutationFor(e,t){if(this.frozen||this.locked)return;const n=this.pendingCanvasMutations.get(e);if(!n||-1===t)return;const a=n.map(e=>{const{type:t,...n}=e;return n}),{type:o}=n[0];this.mutationCb({id:t,type:o,commands:a}),this.pendingCanvasMutations.delete(e)}}try{if(2!==Array.from([1],e=>2*e)[0]){const e=document.createElement("iframe");document.body.appendChild(e),Array.from=e.contentWindow?.Array.from||Array.from,document.body.removeChild(e)}}catch(e){console.debug("Unable to override Array.from",e)}var Oy;new class{constructor(){cy(this,"idNodeMap",new Map),cy(this,"nodeMetaMap",new WeakMap)}getId(e){if(!e)return-1;const t=this.getMeta(e)?.id;return t??-1}getNode(e){return this.idNodeMap.get(e)||null}getIds(){return Array.from(this.idNodeMap.keys())}getMeta(e){return this.nodeMetaMap.get(e)||null}removeNodeFromMap(e){const t=this.getId(e);this.idNodeMap.delete(t),e.childNodes&&e.childNodes.forEach(e=>this.removeNodeFromMap(e))}has(e){return this.idNodeMap.has(e)}hasNode(e){return this.nodeMetaMap.has(e)}add(e,t){const n=t.id;this.idNodeMap.set(n,e),this.nodeMetaMap.set(e,t)}replace(e,t){const n=this.getNode(e);if(n){const e=this.nodeMetaMap.get(n);e&&this.nodeMetaMap.set(t,e)}this.idNodeMap.set(e,t)}reset(){this.idNodeMap=new Map,this.nodeMetaMap=new WeakMap}},function(e){e[e.NotStarted=0]="NotStarted",e[e.Running=1]="Running",e[e.Stopped=2]="Stopped"}(Oy||(Oy={}));const Dy={low:{sampling:{canvas:1},dataURLOptions:{type:"image/webp",quality:.25}},medium:{sampling:{canvas:2},dataURLOptions:{type:"image/webp",quality:.4}},high:{sampling:{canvas:4},dataURLOptions:{type:"image/webp",quality:.5}}},Py=1280,Ly=(e={})=>{const[t,n]=e.maxCanvasSize||[],a={quality:e.quality||"medium",enableManualSnapshot:e.enableManualSnapshot,maxCanvasSize:[t?Math.min(t,Py):Py,n?Math.min(n,Py):Py]};let o;const s=new Promise(e=>o=e);return{name:"ReplayCanvas",getOptions(){const{quality:e,enableManualSnapshot:t,maxCanvasSize:n}=a;return{enableManualSnapshot:t,recordCanvas:!0,getCanvasManager:e=>{const a=new Ay({...e,enableManualSnapshot:t,maxCanvasSize:n,errorHandler:e=>{try{"object"==typeof e&&(e.__rrweb__=!0)}catch{}}});return o(a),a},...Dy[e]||Dy.medium}},async snapshot(e,t){(await s).snapshot(e,t)}}};function Ny(e){return e.split(",").some(e=>e.trim().startsWith(it))}function $y(e,t,n,a){const o={url:e,type:"fetch","http.method":n,[Qe]:a,[Ze]:"http.client"};return t&&(zr(t)||(o["http.url"]=t.href,o["server.address"]=t.host),t.search&&(o["http.query"]=t.search),t.hash&&(o["http.fragment"]=t.hash)),o}function Fy(e){return"number"==typeof e&&isFinite(e)}function Uy(e,t,n,{...a}){const o=qt(e).start_timestamp;return o&&o>t&&"function"==typeof e.updateStartTime&&e.updateStartTime(t),Qu(e,()=>{const e=Xu({startTime:t,...a});return e&&e.end(n),e})}function By(e){const t=Ue();if(!t)return;const{name:n,transaction:a,attributes:o,startTime:s}=e,{release:r,environment:i,sendDefaultPii:c}=t.getOptions(),u=t.getIntegrationByName("Replay"),l=u?.getReplayId(),p=Pe(),d=p.getUser(),m=void 0!==d?d.email||d.id||d.ip_address:void 0;let h;try{h=p.getScopeData().contexts.profile.profile_id}catch{}return Xu({name:n,attributes:{release:r,environment:i,user:m||void 0,profile_id:h||void 0,replay_id:l||void 0,transaction:a,"user_agent.original":Mr.navigator?.userAgent,"client.address":c?"{{auto}}":void 0,...o},startTime:s,experimental:{standalone:!0}})}function qy(){return Mr.addEventListener&&Mr.performance}function Hy(e){return e/1e3}function Wy(e){try{return PerformanceObserver.supportedEntryTypes.includes(e)}catch{return!1}}function Vy(e,t){let n,a=!1;function o(e){!a&&n&&t(e,n),a=!0}Zm(()=>{o("pagehide")});const s=e.on("beforeStartNavigationSpan",(e,t)=>{t?.isRedirect||(o("navigation"),s(),r())}),r=e.on("afterStartPageLoadSpan",e=>{n=e.spanContext().spanId,r()})}function Jy(e){return e?((ve()||performance.timeOrigin)+e)/1e3:e}function Yy(e){const t={};if(null!=e.nextHopProtocol){const{name:n,version:a}=function(e){let t="unknown",n="unknown",a="";for(const o of e){if("/"===o){[t,n]=e.split("/");break}if(!isNaN(Number(o))){t="h"===a?"http":a,n=e.split(a)[1];break}a+=o}return a===e&&(t=a),{name:t,version:n}}(e.nextHopProtocol);t["network.protocol.version"]=a,t["network.protocol.name"]=n}return ve()||qy()?.timeOrigin?(n={...t,"http.request.redirect_start":Jy(e.redirectStart),"http.request.redirect_end":Jy(e.redirectEnd),"http.request.worker_start":Jy(e.workerStart),"http.request.fetch_start":Jy(e.fetchStart),"http.request.domain_lookup_start":Jy(e.domainLookupStart),"http.request.domain_lookup_end":Jy(e.domainLookupEnd),"http.request.connect_start":Jy(e.connectStart),"http.request.secure_connection_start":Jy(e.secureConnectionStart),"http.request.connection_end":Jy(e.connectEnd),"http.request.request_start":Jy(e.requestStart),"http.request.response_start":Jy(e.responseStart),"http.request.response_end":Jy(e.responseEnd),"http.request.time_to_first_byte":null!=e.responseStart?e.responseStart/1e3:void 0},Object.fromEntries(Object.entries(n).filter(([,e])=>null!=e))):t;var n}function Gy(e){try{return new URL(e,Qs.location.origin).href}catch{return}}function Ky(e){try{return new Headers(e)}catch{return}}const Xy=new WeakMap,Zy=new Map,Qy={traceFetch:!0,traceXHR:!0,enableHTTPTimings:!0,trackFetchStreamPerformance:!1};function eb(e,t){const{traceFetch:n,traceXHR:a,trackFetchStreamPerformance:o,shouldCreateSpanForRequest:s,enableHTTPTimings:r,tracePropagationTargets:i,onRequestSpanStart:c,onRequestSpanEnd:u}={...Qy,...t},l="function"==typeof s?s:e=>!0,p=e=>function(e,t){const n=R();if(n){let a,o;try{a=new URL(e,n),o=new URL(n).origin}catch{return!1}const s=a.origin===o;return t?ce(a.toString(),t)||s&&ce(a.pathname,t):s}{const n=!!e.match(/^\/(?!\/)/);return t?ce(e,t):n}}(e,i),d={},m=e.getOptions().propagateTraceparent;n&&(e.addEventProcessor(e=>("transaction"===e.type&&e.spans&&e.spans.forEach(e=>{if("http.client"===e.op){const t=Zy.get(e.span_id);t&&(e.timestamp=t/1e3,Zy.delete(e.span_id))}}),e)),o&&function(){const e="fetch-body-resolved";ir(e,e=>{if(e.response){const t=Xy.get(e.response);t&&e.endTimestamp&&Zy.set(t,e.endTimestamp)}}),cr(e,()=>fr(kr))}(),gr(e=>{const t=function(e,t,n,a,o){if(!e.fetchData)return;const{method:s,url:r}=e.fetchData,i=wt()&&t(r);if(e.endTimestamp&&i){const t=e.fetchData.__span;if(!t)return;const n=a[t];return void(n&&(function(e,t){if(t.response){xt(e,t.response.status);const n=t.response?.headers?.get("content-length");if(n){const t=parseInt(n);t>0&&e.setAttribute("http.response_content_length",t)}}else t.error&&e.setStatus({code:jt,message:"internal_error"});e.end()}(n,e),function(e,t,n){const a="object"==typeof n&&null!==n?n.onRequestSpanEnd:void 0;a?.(e,{headers:t.response?.headers,error:t.error})}(n,e,o),delete a[t]))}const{spanOrigin:c="auto.http.browser",propagateTraceparent:u=!1}="object"==typeof o?o:{spanOrigin:o},l=!!Xt(),p=i&&l?Xu(function(e,t,n){const a=Er(e);return{name:a?`${t} ${Tr(a)}`:t,attributes:$y(e,a,t,n)}}(r,s,c)):new Bu;if(e.fetchData.__span=p.spanContext().spanId,a[p.spanContext().spanId]=p,n(e.fetchData.url)){const t=e.args[0],n=e.args[1]||{},a=function(e,t,n,a){const o=jp({span:n,propagateTraceparent:a}),s=o["sentry-trace"],r=o.baggage,i=o.traceparent;if(!s)return;const c=t.headers||(E(e)?e.headers:void 0);if(c){if(function(e){return"undefined"!=typeof Headers&&x(e,Headers)}(c)){const e=new Headers(c);if(e.get("sentry-trace")||e.set("sentry-trace",s),a&&i&&!e.get("traceparent")&&e.set("traceparent",i),r){const t=e.get("baggage");t?Ny(t)||e.set("baggage",`${t},${r}`):e.set("baggage",r)}return e}if(Array.isArray(c)){const e=[...c];c.find(e=>"sentry-trace"===e[0])||e.push(["sentry-trace",s]),a&&i&&!c.find(e=>"traceparent"===e[0])&&e.push(["traceparent",i]);const t=c.find(e=>"baggage"===e[0]&&Ny(e[1]));return r&&!t&&e.push(["baggage",r]),e}{const e="sentry-trace"in c?c["sentry-trace"]:void 0,t="traceparent"in c?c.traceparent:void 0,n="baggage"in c?c.baggage:void 0,o=n?Array.isArray(n)?[...n]:[n]:[],u=n&&(Array.isArray(n)?n.find(e=>Ny(e)):Ny(n));r&&!u&&o.push(r);const l={...c,"sentry-trace":e??s,baggage:o.length>0?o.join(","):void 0};return a&&i&&!t&&(l.traceparent=i),l}}return{...o}}(t,n,wt()&&l?p:void 0,u);a&&(e.args[1]=n,n.headers=a)}const d=Ue();if(d){const t={input:e.args,response:e.response,startTimestamp:e.startTimestamp,endTimestamp:e.endTimestamp};d.emit("beforeOutgoingRequestSpan",p,t)}return p}(e,l,p,d,{propagateTraceparent:m,onRequestSpanEnd:u});if(e.response&&e.fetchData.__span&&Xy.set(e.response,e.fetchData.__span),t){const n=Gy(e.fetchData.url),a=n?Cr(n).host:void 0;t.setAttributes({"http.url":n,"server.address":a}),r&&tb(t),c?.(t,{headers:e.headers})}})),a&&$r(e=>{const t=function(e,t,n,a,o,s){const r=e.xhr,i=r?.[Nr];if(!r||r.__sentry_own_request__||!i)return;const{url:c,method:u}=i,l=wt()&&t(c);if(e.endTimestamp&&l){const t=r.__sentry_xhr_span_id__;if(!t)return;const n=a[t];return void(n&&void 0!==i.status_code&&(xt(n,i.status_code),n.end(),s?.(n,{headers:Ky(wm(r)),error:e.error}),delete a[t]))}const p=Gy(c),d=Cr(p||c),m=Ir(c),h=!!Xt(),g=l&&h?Xu({name:`${u} ${m}`,attributes:{url:c,type:"xhr","http.method":u,"http.url":p,"server.address":d?.host,[Qe]:"auto.http.browser",[Ze]:"http.client",...d?.search&&{"http.query":d?.search},...d?.hash&&{"http.fragment":d?.hash}}}):new Bu;r.__sentry_xhr_span_id__=g.spanContext().spanId,a[r.__sentry_xhr_span_id__]=g,n(c)&&function(e,t,n){const{"sentry-trace":a,baggage:o,traceparent:s}=jp({span:t,propagateTraceparent:n});a&&function(e,t,n,a){const o=e.__sentry_xhr_v3__?.request_headers;if(!o?.["sentry-trace"]&&e.setRequestHeader)try{if(e.setRequestHeader("sentry-trace",t),a&&!o?.traceparent&&e.setRequestHeader("traceparent",a),n){const t=o?.baggage;t&&t.split(",").some(e=>e.trim().startsWith("sentry-"))||e.setRequestHeader("baggage",n)}}catch{}}(e,a,o,s)}(r,wt()&&h?g:void 0,o);const f=Ue();return f&&f.emit("beforeOutgoingRequestSpan",g,e),g}(e,l,p,d,m,u);t&&(r&&tb(t),c?.(t,{headers:Ky(e.xhr.__sentry_xhr_v3__?.request_headers)}))})}function tb(e){const{url:t}=qt(e).data;if(!t||"string"!=typeof t)return;const n=hh("resource",({entries:a})=>{a.forEach(a=>{(function(e){return"resource"===e.entryType&&"initiatorType"in e&&"string"==typeof e.nextHopProtocol&&("fetch"===e.initiatorType||"xmlhttprequest"===e.initiatorType)})(a)&&a.name.endsWith(t)&&(e.setAttributes(Yy(a)),setTimeout(n))})})}const nb={idleTimeout:1e3,finalTimeout:3e4,childSpanTimeout:15e3};function ab(e,t={}){const n=new Map;let a,o=!1,s="externalFinish",r=!t.disableAutoFinish;const i=[],{idleTimeout:c=nb.idleTimeout,finalTimeout:u=nb.finalTimeout,childSpanTimeout:l=nb.childSpanTimeout,beforeSpanEnd:p,trimIdleSpanEndTimestamp:d=!0}=t,h=Ue();if(!h||!wt()){const e=new Bu;return tn(e,{sample_rate:"0",sampled:"false",...on(e)}),e}const g=Pe(),f=Xt(),k=function(e){const t=Xu(e);return Ee(Pe(),t),m&&F.log("[Tracing] Started span is an idle span"),t}(e);function y(){a&&(clearTimeout(a),a=void 0)}function b(e){y(),a=setTimeout(()=>{!o&&0===n.size&&r&&(s="idleTimeout",k.end(e))},c)}function w(e){a=setTimeout(()=>{!o&&r&&(s="heartbeatFailed",k.end(e))},l)}function v(e){o=!0,n.clear(),i.forEach(e=>e()),Ee(g,f);const t=qt(k),{start_timestamp:a}=t;if(!a)return;t.data[et]||k.setAttribute(et,s);const r=t.status;r&&"unknown"!==r||k.setStatus({code:_t}),F.log(`[Tracing] Idle span "${t.op}" finished`);const l=Gt(k).filter(e=>e!==k);let p=0;l.forEach(t=>{t.isRecording()&&(t.setStatus({code:jt,message:"cancelled"}),t.end(e),m&&F.log("[Tracing] Cancelling span since span ended early",JSON.stringify(t,void 0,2)));const n=qt(t),{timestamp:a=0,start_timestamp:o=0}=n,s=o<=e,r=a-o<=(u+c)/1e3;if(m){const e=JSON.stringify(t,void 0,2);s?r||F.log("[Tracing] Discarding span since it finished after idle span final timeout",e):F.log("[Tracing] Discarding span since it happened after idle span was finished",e)}r&&s||(function(e,t){e[Vt]&&e[Vt].delete(t)}(k,t),p++)}),p>0&&k.setAttribute("sentry.idle_span_discarded_spans",p)}return k.end=new Proxy(k.end,{apply(e,t,n){if(p&&p(k),t instanceof Bu)return;const[a,...o]=n,s=Ut(a||we()),r=Gt(k).filter(e=>e!==k),i=qt(k);if(!r.length||!d)return v(s),Reflect.apply(e,t,[s,...o]);const c=h.getOptions().ignoreSpans,l=r?.reduce((e,t)=>{const n=qt(t);return n.timestamp?c&&Go(n,c)?e:e?Math.max(e,n.timestamp):n.timestamp:e},void 0),m=i.start_timestamp,g=Math.min(m?m+u/1e3:1/0,Math.max(m||-1/0,Math.min(s,l||1/0)));return v(g),Reflect.apply(e,t,[g,...o])}}),i.push(h.on("spanStart",e=>{var t;o||e===k||qt(e).timestamp||e instanceof Wu&&e.isStandaloneSpan()||Gt(k).includes(e)&&(t=e.spanContext().spanId,y(),n.set(t,!0),w(we()+l/1e3))})),i.push(h.on("spanEnd",e=>{var t;o||(t=e.spanContext().spanId,n.has(t)&&n.delete(t),0===n.size&&b(we()+c/1e3))})),i.push(h.on("idleSpanEnableAutoFinish",e=>{e===k&&(r=!0,b(),n.size&&w())})),t.disableAutoFinish||b(),setTimeout(()=>{o||(k.setStatus({code:jt,message:"deadline_exceeded"}),s="finalTimeout",k.end())},u),k}let ob,sb,rb=0,ib={};function cb({recordClsStandaloneSpans:e,recordLcpStandaloneSpans:t,client:n}){const a=qy();if(a&&ve()){a.mark&&Mr.performance.mark("sentry-tracing-init");const o=t?function(e){let t,n=0;if(!Wy("largest-contentful-paint"))return;const a=dh(({metric:e})=>{const a=e.entries[e.entries.length-1];a&&(n=e.value,t=a)},!0);Vy(e,(e,o)=>{!function(e,t,n,a){Ai&&F.log(`Sending LCP span (${e})`);const o=Hy((ve()||0)+(t?.startTime||0)),s=Pe().getScopeData().transactionName,r=t?I(t.element):"Largest contentful paint",i={[Qe]:"auto.http.browser.lcp",[Ze]:"ui.webvital.lcp",[st]:0,"sentry.pageload.span_id":n,"sentry.report_event":a};t&&(t.element&&(i["lcp.element"]=I(t.element)),t.id&&(i["lcp.id"]=t.id),t.url&&(i["lcp.url"]=t.url),null!=t.loadTime&&(i["lcp.loadTime"]=t.loadTime),null!=t.renderTime&&(i["lcp.renderTime"]=t.renderTime),null!=t.size&&(i["lcp.size"]=t.size));const c=By({name:r,transaction:s,attributes:i,startTime:o});c&&(c.addEvent("lcp",{[tt]:"millisecond",[nt]:e}),c.end(o))}(n,t,o,e),a()})}(n):dh(({metric:e})=>{const t=e.entries[e.entries.length-1];t&&(ib.lcp={value:e.value,unit:"millisecond"},ob=t)},!0),s=wh("ttfb",({metric:e})=>{e.entries[e.entries.length-1]&&(ib.ttfb={value:e.value,unit:"millisecond"})},yh,uh),r=e?function(e){let t,n=0;if(!Wy("layout-shift"))return;const a=ph(({metric:e})=>{const a=e.entries[e.entries.length-1];a&&(n=e.value,t=a)},!0);Vy(e,(e,o)=>{!function(e,t,n,a){Ai&&F.log(`Sending CLS span (${e})`);const o=t?Hy((ve()||0)+t.startTime):we(),s=Pe().getScopeData().transactionName,r=t?I(t.sources[0]?.node):"Layout shift",i={[Qe]:"auto.http.browser.cls",[Ze]:"ui.webvital.cls",[st]:0,"sentry.pageload.span_id":n,"sentry.report_event":a};t?.sources&&t.sources.forEach((e,t)=>{i[`cls.source.${t+1}`]=I(e.node)});const c=By({name:r,transaction:s,attributes:i,startTime:o});c&&(c.addEvent("cls",{[tt]:"",[nt]:e}),c.end(o))}(n,t,o,e),a()})}(n):ph(({metric:e})=>{const t=e.entries[e.entries.length-1];t&&(ib.cls={value:e.value,unit:""},sb=t)},!0);return()=>{o?.(),s(),r?.()}}return()=>{}}function ub(e,t,n,a,o=n){const s=function(e){return"secureConnection"===e?"connectEnd":"fetch"===e?"domainLookupStart":`${e}End`}(n),r=t[s],i=t[`${n}Start`];i&&r&&Uy(e,a+Hy(i),a+Hy(r),{op:`browser.${o}`,name:t.name,attributes:{[Qe]:"auto.ui.browser.metrics",..."redirect"===n&&null!=t.redirectCount?{"http.redirect_count":t.redirectCount}:{}}})}const lb=[],pb=new Map,db=new Map;const mb={click:"click",pointerdown:"click",pointerup:"click",mousedown:"click",mouseup:"click",touchstart:"click",touchend:"click",mouseover:"hover",mouseout:"hover",mouseenter:"hover",mouseleave:"hover",pointerover:"hover",pointerout:"hover",pointerenter:"hover",pointerleave:"hover",dragstart:"drag",dragend:"drag",drag:"drag",dragenter:"drag",dragleave:"drag",dragover:"drag",drop:"drag",keydown:"press",keyup:"press",keypress:"press",input:"press"},hb=({metric:e})=>{if(null==e.value)return;const t=Hy(e.value);if(t>60)return;const n=e.entries.find(t=>t.duration===e.value&&mb[t.name]);if(!n)return;const{interactionId:a}=n,o=mb[n.name],s=Hy(ve()+n.startTime),r=Xt(),i=r?Kt(r):void 0,c=null!=a?pb.get(a):void 0,u=c?.span||i,l=u?qt(u).description:Pe().getScopeData().transactionName,p=By({name:c?.elementName||I(n.target),transaction:l,attributes:{[Qe]:"auto.http.browser.inp",[Ze]:`ui.interaction.${o}`,[st]:n.duration},startTime:s});p&&(p.addEvent("inp",{[tt]:"millisecond",[nt]:e.value}),p.end(s+t))};const gb=({entries:e})=>{const t=Xt(),n=t?Kt(t):void 0,a=n?qt(n).description:Pe().getScopeData().transactionName;e.forEach(e=>{const t=e;if(!t.identifier)return;const n=t.name,o=t.renderTime,s=t.loadTime,[r,i]=s?[Hy(s),"load-time"]:o?[Hy(o),"render-time"]:[we(),"entry-emission"],c="image-paint"===n?Hy(Math.max(0,(o??0)-(s??0))):0,u={[Qe]:"auto.ui.browser.elementtiming",[Ze]:"ui.elementtiming",[Ge]:"component","sentry.span_start_time_source":i,"sentry.transaction_name":a,"element.id":t.id,"element.type":t.element?.tagName?.toLowerCase()||"unknown","element.size":t.naturalWidth&&t.naturalHeight?`${t.naturalWidth}x${t.naturalHeight}`:void 0,"element.render_time":o,"element.load_time":s,"element.url":t.url||void 0,"element.identifier":t.identifier,"element.paint_type":n};Gu({name:`element[${t.identifier}]`,attributes:u,startTime:r,onlyIfParent:!0},e=>{e.end(r+c)})})},fb="sentry_previous_trace";function kb(e){return 1===e.traceFlags}const yb={...nb,instrumentNavigation:!0,instrumentPageLoad:!0,markBackgroundSpan:!0,enableLongTask:!0,enableLongAnimationFrame:!0,enableInp:!0,enableElementTiming:!0,ignoreResourceSpans:[],ignorePerformanceApiSpans:[],detectRedirects:!0,linkPreviousTrace:"in-memory",consistentTraceSampling:!1,enableReportPageLoaded:!1,_experiments:{},...Qy},bb=(e={})=>{const t={name:void 0,source:void 0},n=Qs.document,{enableInp:a,enableElementTiming:o,enableLongTask:s,enableLongAnimationFrame:r,_experiments:{enableInteractions:i,enableStandaloneClsSpans:c,enableStandaloneLcpSpans:l},beforeStartSpan:p,idleTimeout:d,finalTimeout:m,childSpanTimeout:h,markBackgroundSpan:g,traceFetch:f,traceXHR:k,trackFetchStreamPerformance:y,shouldCreateSpanForRequest:b,enableHTTPTimings:w,ignoreResourceSpans:_,ignorePerformanceApiSpans:j,instrumentPageLoad:S,instrumentNavigation:x,detectRedirects:z,linkPreviousTrace:E,consistentTraceSampling:T,enableReportPageLoaded:C,onRequestSpanStart:M,onRequestSpanEnd:O}={...yb,...e};let D,P,L;function N(e,a,o=!0){const s="pageload"===a.op,r=a.name,i=p?p(a):a,u=i.attributes||{};if(r!==i.name&&(u[Ge]="custom",i.attributes=u),!o){const e=ke();return void Xu({...i,startTime:e}).end(e)}t.name=i.name,t.source=u[Ge];const g=ab(i,{idleTimeout:d,finalTimeout:m,childSpanTimeout:h,disableAutoFinish:s,beforeSpanEnd:t=>{D?.(),function(e,t){const n=qy(),a=ve();if(!n?.getEntries||!a)return;const o=Hy(a),s=n.getEntries(),{op:r,start_timestamp:i}=qt(e);s.slice(rb).forEach(n=>{const a=Hy(n.startTime),s=Hy(Math.max(0,n.duration));if(!("navigation"===r&&i&&o+a<i))switch(n.entryType){case"navigation":!function(e,t,n){["unloadEvent","redirect","domContentLoadedEvent","loadEvent","connect"].forEach(a=>{ub(e,t,a,n)}),ub(e,t,"secureConnection",n,"TLS/SSL"),ub(e,t,"fetch",n,"cache"),ub(e,t,"domainLookup",n,"DNS"),function(e,t,n){const a=n+Hy(t.requestStart),o=n+Hy(t.responseEnd),s=n+Hy(t.responseStart);t.responseEnd&&(Uy(e,a,o,{op:"browser.request",name:t.name,attributes:{[Qe]:"auto.ui.browser.metrics"}}),Uy(e,s,o,{op:"browser.response",name:t.name,attributes:{[Qe]:"auto.ui.browser.metrics"}}))}(e,t,n)}(e,n,o);break;case"mark":case"paint":case"measure":{!function(e,t,n,a,o,s){if(function(e){if("measure"===e?.entryType)try{return"Components ⚛"===e.detail.devtools.track}catch{return}}(t))return;if(["mark","measure"].includes(t.entryType)&&ce(t.name,s))return;const r=zm(!1),i=Hy(r?r.requestStart:0),c=o+Math.max(n,i),u=o+n,l=u+a,p={[Qe]:"auto.resource.browser.metrics"};c!==u&&(p["sentry.browser.measure_happened_before_request"]=!0,p["sentry.browser.measure_start_time"]=c),function(e,t){try{const n=t.detail;if(!n)return;if("object"==typeof n){for(const[t,a]of Object.entries(n))if(a&&v(a))e[`sentry.browser.measure.detail.${t}`]=a;else if(void 0!==a)try{e[`sentry.browser.measure.detail.${t}`]=JSON.stringify(a)}catch{}return}if(v(n))return void(e["sentry.browser.measure.detail"]=n);try{e["sentry.browser.measure.detail"]=JSON.stringify(n)}catch{}}catch{}}(p,t),c<=l&&Uy(e,c,l,{name:t.name,op:t.entryType,attributes:p})}(e,n,a,s,o,t.ignorePerformanceApiSpans);const r=Am(),i=n.startTime<r.firstHiddenTime;"first-paint"===n.name&&i&&(ib.fp={value:n.startTime,unit:"millisecond"}),"first-contentful-paint"===n.name&&i&&(ib.fcp={value:n.startTime,unit:"millisecond"});break}case"resource":!function(e,t,n,a,o,s,r){if("xmlhttprequest"===t.initiatorType||"fetch"===t.initiatorType)return;const i=t.initiatorType?`resource.${t.initiatorType}`:"resource.other";if(r?.includes(i))return;const c={[Qe]:"auto.resource.browser.metrics"},u=Cr(n);u.protocol&&(c["url.scheme"]=u.protocol.split(":").pop()),u.host&&(c["server.address"]=u.host),c["url.same_origin"]=n.includes(Mr.location.origin),function(e,t){[["responseStatus","http.response.status_code"],["transferSize","http.response_transfer_size"],["encodedBodySize","http.response_content_length"],["decodedBodySize","http.decoded_response_content_length"],["renderBlockingStatus","resource.render_blocking_status"],["deliveryType","http.response_delivery_type"]].forEach(([n,a])=>{const o=e[n];null!=o&&("number"==typeof o&&o<2147483647||"string"==typeof o)&&(t[a]=o)})}(t,c);const l={...c,...Yy(t)},p=s+a;Uy(e,p,p+o,{name:n.replace(Mr.location.origin,""),op:i,attributes:l})}(e,n,n.name,a,s,o,t.ignoreResourceSpans)}}),rb=Math.max(s.length-1,0),function(e){const t=Mr.navigator;if(!t)return;const n=t.connection;n&&(n.effectiveType&&e.setAttribute("effectiveConnectionType",n.effectiveType),n.type&&e.setAttribute("connectionType",n.type),Fy(n.rtt)&&(ib["connection.rtt"]={value:n.rtt,unit:"millisecond"})),Fy(t.deviceMemory)&&e.setAttribute("deviceMemory",`${t.deviceMemory} GB`),Fy(t.hardwareConcurrency)&&e.setAttribute("hardwareConcurrency",String(t.hardwareConcurrency))}(e),"pageload"===r&&(function(e){const t=zm(!1);if(!t)return;const{responseStart:n,requestStart:a}=t;a<=n&&(e["ttfb.requestTime"]={value:n-a,unit:"millisecond"})}(ib),t.recordClsOnPageloadSpan||delete ib.cls,t.recordLcpOnPageloadSpan||delete ib.lcp,Object.entries(ib).forEach(([e,t])=>{qu(e,t.value,t.unit)}),e.setAttribute("performance.timeOrigin",o),e.setAttribute("performance.activationStart",Em()),function(e,t){ob&&t.recordLcpOnPageloadSpan&&(ob.element&&e.setAttribute("lcp.element",I(ob.element)),ob.id&&e.setAttribute("lcp.id",ob.id),ob.url&&e.setAttribute("lcp.url",ob.url.trim().slice(0,200)),null!=ob.loadTime&&e.setAttribute("lcp.loadTime",ob.loadTime),null!=ob.renderTime&&e.setAttribute("lcp.renderTime",ob.renderTime),e.setAttribute("lcp.size",ob.size)),sb?.sources&&t.recordClsOnPageloadSpan&&sb.sources.forEach((t,n)=>e.setAttribute(`cls.source.${n+1}`,I(t.node)))}(e,t)),ob=void 0,sb=void 0,ib={}}(t,{recordClsOnPageloadSpan:!c,recordLcpOnPageloadSpan:!l,ignoreResourceSpans:_,ignorePerformanceApiSpans:j}),xb(e,void 0);const n=Pe(),a=n.getPropagationContext();n.setPropagationContext({...a,traceId:g.spanContext().traceId,sampled:Ht(g),dsc:on(t)}),s&&(L=void 0)},trimIdleSpanEndTimestamp:!C});function f(){n&&["interactive","complete"].includes(n.readyState)&&e.emit("idleSpanEnableAutoFinish",g)}s&&C&&(L=g),xb(e,g),s&&!C&&n&&(n.addEventListener("readystatechange",()=>{f()}),f())}return{name:"BrowserTracing",setup(e){if(qd(),D=cb({recordClsStandaloneSpans:c||!1,recordLcpStandaloneSpans:l||!1,client:e}),a&&function(){if(qy()&&ve()){const e=mh(hb);return()=>{e()}}}(),o&&qy()&&ve()&&hh("element",gb),r&&u.PerformanceObserver&&PerformanceObserver.supportedEntryTypes&&PerformanceObserver.supportedEntryTypes.includes("long-animation-frame")?new PerformanceObserver(e=>{const t=Xt();if(t)for(const n of e.getEntries()){if(!n.scripts[0])continue;const e=Hy(ve()+n.startTime),{start_timestamp:a,op:o}=qt(t);if("navigation"===o&&a&&e<a)continue;const s=Hy(n.duration),r={[Qe]:"auto.ui.browser.metrics"},i=n.scripts[0],{invoker:c,invokerType:u,sourceURL:l,sourceFunctionName:p,sourceCharPosition:d}=i;r["browser.script.invoker"]=c,r["browser.script.invoker_type"]=u,l&&(r["code.filepath"]=l),p&&(r["code.function"]=p),-1!==d&&(r["browser.script.source_char_position"]=d),Uy(t,e,e+s,{name:"Main UI thread blocked",op:"ui.long-animation-frame",attributes:r})}}).observe({type:"long-animation-frame",buffered:!0}):s&&hh("longtask",({entries:e})=>{const t=Xt();if(!t)return;const{op:n,start_timestamp:a}=qt(t);for(const o of e){const e=Hy(ve()+o.startTime),s=Hy(o.duration);"navigation"===n&&a&&e<a||Uy(t,e,e+s,{name:"Main UI thread blocked",op:"ui.long-task",attributes:{[Qe]:"auto.ui.browser.metrics"}})}}),i&&hh("event",({entries:e})=>{const t=Xt();if(t)for(const n of e)if("click"===n.name){const e=Hy(ve()+n.startTime),a=Hy(n.duration),o={name:I(n.target),op:`ui.interaction.${n.name}`,startTime:e,attributes:{[Qe]:"auto.ui.browser.metrics"}},s=A(n.target);s&&(o.attributes["ui.component_name"]=s),Uy(t,e,e+a,o)}}),z&&n){const e=()=>{P=we()};addEventListener("click",e,{capture:!0}),addEventListener("keydown",e,{capture:!0,passive:!0})}function t(){const t=Sb(e);t&&!qt(t).timestamp&&(Hr&&F.log(`[Tracing] Finishing current active span with op: ${qt(t).op}`),t.setAttribute(et,"cancelled"),t.end())}e.on("startNavigationSpan",(n,a)=>{if(Ue()!==e)return;if(a?.isRedirect)return Hr&&F.warn("[Tracing] Detected redirect, navigation span will not be the root span, but a child span."),void N(e,{op:"navigation.redirect",...n},!1);P=void 0,t(),Le().setPropagationContext({traceId:Se(),sampleRand:Math.random(),propagationSpanId:wt()?void 0:xe()});const o=Pe();o.setPropagationContext({traceId:Se(),sampleRand:Math.random(),propagationSpanId:wt()?void 0:xe()}),o.setSDKProcessingMetadata({normalizedRequest:void 0}),N(e,{op:"navigation",...n,parentSpan:null,forceTransaction:!0})}),e.on("startPageLoadSpan",(n,a={})=>{if(Ue()!==e)return;t();const o=Rt(a.sentryTrace||_b("sentry-trace"),a.baggage||_b("baggage")),s=Pe();s.setPropagationContext(o),wt()||(s.getPropagationContext().propagationSpanId=xe()),s.setSDKProcessingMetadata({normalizedRequest:ar()}),N(e,{op:"pageload",...n})}),e.on("endPageloadSpan",()=>{C&&L&&(L.setAttribute(et,"reportPageLoaded"),L.end())})},afterAllSetup(e){let n=R();if("off"!==E&&function(e,{linkPreviousTrace:t,consistentTraceSampling:n}){const a="session-storage"===t;let o=a?function(){try{const e=Qs.sessionStorage?.getItem(fb);return JSON.parse(e)}catch{return}}():void 0;e.on("spanStart",e=>{if(Kt(e)!==e)return;const t=Pe().getPropagationContext();o=function(e,t,n){const a=qt(t),o={spanContext:t.spanContext(),startTimestamp:a.start_timestamp,sampleRate:function(){try{return Number(n.dsc?.sample_rate)??Number(a.data?.[Ke])}catch{return 0}}(),sampleRand:n.sampleRand};if(!e)return o;const s=e.spanContext;return s.traceId===a.trace_id?e:(Date.now()/1e3-e.startTimestamp<=3600&&(Hr&&F.log(`Adding previous_trace ${s} link to span ${{op:a.op,...t.spanContext()}}`),t.addLink({context:s,attributes:{[rt]:"previous_trace"}}),t.setAttribute("sentry.previous_trace",`${s.traceId}-${s.spanId}-${kb(s)?1:0}`)),o)}(o,e,t),a&&function(e){try{Qs.sessionStorage.setItem(fb,JSON.stringify(e))}catch(e){Hr&&F.warn("Could not store previous trace in sessionStorage",e)}}(o)});let s=!0;n&&e.on("beforeSampling",e=>{if(!o)return;const t=Pe(),n=t.getPropagationContext();s&&n.parentSpanId?s=!1:(t.setPropagationContext({...n,dsc:{...n.dsc,sample_rate:String(o.sampleRate),sampled:String(kb(o.spanContext))},sampleRand:o.sampleRand}),e.parentSampled=kb(o.spanContext),e.parentSampleRate=o.sampleRate,e.spanAttributes={...e.spanAttributes,[Xe]:o.sampleRate})})}(e,{linkPreviousTrace:E,consistentTraceSampling:T}),Qs.location){if(S){const t=ve();wb(e,{name:Qs.location.pathname,startTime:t?t/1e3:void 0,attributes:{[Ge]:"url",[Qe]:"auto.pageload.browser"}})}x&&Br(({to:t,from:a})=>{if(void 0===a&&-1!==n?.indexOf(t))return void(n=void 0);n=void 0;const o=Er(t),s=Sb(e),r=s&&z&&function(e,t){const n=qt(e),a=ke();return!(a-n.start_timestamp>zb)&&!(t&&a-t<=zb)}(s,P);vb(e,{name:o?.pathname||Qs.location.pathname,attributes:{[Ge]:"url",[Qe]:"auto.navigation.browser"}},{url:t,isRedirect:r})})}g&&(Qs.document?Qs.document.addEventListener("visibilitychange",()=>{const e=Xt();if(!e)return;const t=Kt(e);if(Qs.document.hidden&&t){const e="cancelled",{op:n,status:a}=qt(t);Hr&&F.log(`[Tracing] Transaction: ${e} -> since tab moved to the background, op: ${n}`),a||t.setStatus({code:jt,message:e}),t.setAttribute("sentry.cancellation_reason","document.hidden"),t.end()}}):Hr&&F.warn("[Tracing] Could not set up background tab detection due to lack of global document")),i&&function(e,t,n,a,o){let s;Qs.document&&addEventListener("click",()=>{const r="ui.action.click",i=Sb(e);if(i){const e=qt(i).op;if(["navigation","pageload"].includes(e))return void(Hr&&F.warn(`[Tracing] Did not create ${r} span because a pageload or navigation span is in progress.`))}s&&(s.setAttribute(et,"interactionInterrupted"),s.end(),s=void 0),o.name?s=ab({name:o.name,op:r,attributes:{[Ge]:o.source||"url"}},{idleTimeout:t,finalTimeout:n,childSpanTimeout:a}):Hr&&F.warn(`[Tracing] Did not create ${r} transaction because _latestRouteName is missing.`)},{capture:!0})}(e,d,m,h,t),a&&function(){const e=Object.keys(mb);function t(e){const t=e.target;if(!t)return;const n=I(t),a=Math.round(e.timeStamp);if(db.set(a,n),db.size>50){const e=db.keys().next().value;void 0!==e&&db.delete(e)}}Hi()&&e.forEach(e=>{Mr.addEventListener(e,t,{capture:!0,passive:!0})});const n=({entries:e})=>{const t=Xt(),n=t&&Kt(t);e.forEach(e=>{if(!function(e){return"duration"in e}(e))return;const t=e.interactionId;if(null==t)return;if(pb.has(t))return;const a=e.target?I(e.target):function(e){const t=Math.round(e.startTime);let n=db.get(t);if(!n)for(let e=-5;e<=5;e++){const a=db.get(t+e);if(a){n=a;break}}return n||"<unknown>"}(e);if(lb.length>10){const e=lb.shift();pb.delete(e)}lb.push(t),pb.set(t,{span:n,elementName:a})})};hh("event",n),hh("first-input",n)}(),eb(e,{traceFetch:f,traceXHR:k,trackFetchStreamPerformance:y,tracePropagationTargets:e.getOptions().tracePropagationTargets,shouldCreateSpanForRequest:b,enableHTTPTimings:w,onRequestSpanStart:M,onRequestSpanEnd:O})}}};function wb(e,t,n){e.emit("startPageLoadSpan",t,n),Pe().setTransactionName(t.name);const a=Sb(e);return a&&e.emit("afterStartPageLoadSpan",a),a}function vb(e,t,n){const{url:a,isRedirect:o}=n||{};e.emit("beforeStartNavigationSpan",t,{isRedirect:o}),e.emit("startNavigationSpan",t,{isRedirect:o});const s=Pe();return s.setTransactionName(t.name),a&&!o&&s.setSDKProcessingMetadata({normalizedRequest:{...ar(),url:a}}),Sb(e)}function _b(e){const t=Qs.document,n=t?.querySelector(`meta[name=${e}]`);return n?.getAttribute("content")||void 0}const jb="_sentry_idleSpan";function Sb(e){return e[jb]}function xb(e,t){B(e,jb,t)}const zb=1.5;function Eb(e=Ue()){e?.emit("endPageloadSpan")}function Tb(e){const t=Xt();if(t===e)return;const n=Pe();e.end=new Proxy(e.end,{apply:(e,a,o)=>(Ee(n,t),Reflect.apply(e,a,o))}),Ee(n,e)}const Cb=100,Ib=5e3,Mb=36e5;function Rb(e){return new Promise((t,n)=>{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>n(e.error)})}function Ab(e){return Rb(e.getAllKeys())}function Ob(e){let t;function n(){return null==t&&(t=function(e,t){const n=indexedDB.open(e);n.onupgradeneeded=()=>n.result.createObjectStore(t);const a=Rb(n);return e=>a.then(n=>e(n.transaction(t,"readwrite").objectStore(t)))}(e.dbName||"sentry-offline",e.storeName||"queue")),t}return{push:async t=>{try{const a=await Uo(t);await function(e,t,n){return e(e=>Ab(e).then(a=>{if(!(a.length>=n))return e.put(t,Math.max(...a,0)+1),Rb(e.transaction)}))}(n(),a,e.maxQueueSize||30)}catch{}},unshift:async t=>{try{const a=await Uo(t);await function(e,t,n){return e(e=>Ab(e).then(a=>{if(!(a.length>=n))return e.put(t,Math.min(...a,0)-1),Rb(e.transaction)}))}(n(),a,e.maxQueueSize||30)}catch{}},shift:async()=>{try{const e=await function(e){return e(e=>Ab(e).then(t=>{const n=t[0];if(null!=n)return Rb(e.get(n)).then(t=>(e.delete(n),Rb(e.transaction).then(()=>t)))}))}(n());if(e)return function(e){let t="string"==typeof e?Fo(e):e;function n(e){const n=t.subarray(0,e);return t=t.subarray(e+1),n}function a(){let e=t.indexOf(10);return e<0&&(e=t.length),JSON.parse(function(e){const t=p(u);return t.decodePolyfill?t.decodePolyfill(e):(new TextDecoder).decode(e)}(n(e)))}const o=a(),s=[];for(;t.length;){const e=a(),t="number"==typeof e.length?e.length:void 0;s.push([e,t?n(t):a()])}return[o,s]}(e)}catch{}}}}function Db(e=Ni){return function(e){return t=>{const n=e({...t,createStore:Ob});return Qs.addEventListener("online",async e=>{await n.flush()}),n}}(function(e){function t(...e){m&&F.log("[Offline]:",...e)}return n=>{const a=e(n);if(!n.createStore)throw new Error("No `createStore` function was provided");const o=n.createStore(n);let s,r=Ib;function i(e){s&&clearTimeout(s),s=setTimeout(async()=>{s=void 0;const e=await o.shift();e&&(t("Attempting to send previously queued event"),e[0].sent_at=(new Date).toISOString(),u(e,!0).catch(e=>{t("Failed to retry sending",e)}))},e),"number"!=typeof s&&s.unref&&s.unref()}function c(){s||(i(r),r=Math.min(2*r,Mb))}async function u(e,s=!1){if(!s&&$o(e,["replay_event","replay_recording"]))return await o.push(e),i(Cb),{};try{if(n.shouldSend&&!1===await n.shouldSend(e))throw new Error("Envelope not sent because `shouldSend` callback returned false");const t=await a.send(e);let o=Cb;if(t)if(t.headers?.["retry-after"])o=ys(t.headers["retry-after"]);else if(t.headers?.["x-sentry-rate-limits"])o=6e4;else if((t.statusCode||0)>=400)return t;return i(o),r=Ib,t}catch(a){if(await function(e,t,a){return!$o(e,["client_report"])&&(!n.shouldStore||n.shouldStore(e,t,a))}(e,a,r))return s?await o.unshift(e):await o.push(e),c(),t("Error sending. Event queued.",a),{};throw a}}return n.flushAtStartup&&c(),{send:u,flush:e=>(void 0===e&&(r=Ib,i(Cb)),a.flush(e))}}}(e))}const Pb=1e6,Lb="window"in u&&u.window===u&&"undefined"==typeof importScripts,Nb=String(0),$b=Lb?"main":"worker",Fb=Qs.navigator;let Ub="",Bb="",qb="",Hb=Fb?.userAgent||"",Wb="";const Vb=Fb?.language||Fb?.languages?.[0]||"",Jb=Fb?.userAgentData;var Yb;function Gb(e,t,n,a){if("transaction"!==a.type)throw new TypeError("Profiling events may only be attached to transactions, this should never occur.");if(null==n)throw new TypeError(`Cannot construct profiling event envelope without a valid profile. Got ${n} instead.`);const o=function(e){const t=e.contexts?.trace?.trace_id;return"string"==typeof t&&32!==t.length&&Hr&&F.log(`[Profiling] Invalid traceId: ${t} on profiled event`),"string"!=typeof t?"":t}(a),s=function(e){return!("thread_metadata"in e)}(c=n)?function(e){let t,n=0;const a={samples:[],stacks:[],frames:[],thread_metadata:{[Nb]:{name:$b}}},o=e.samples[0];if(!o)return a;const s=o.timestamp,r=ve(),i="number"==typeof performance.timeOrigin?performance.timeOrigin:r||0,c=i-(r||i);return e.samples.forEach((o,r)=>{if(void 0===o.stackId)return void 0===t&&(t=n,a.stacks[t]=[],n++),void(a.samples[r]={elapsed_since_start_ns:((o.timestamp+c-s)*Pb).toFixed(0),stack_id:t,thread_id:Nb});let i=e.stacks[o.stackId];const u=[];for(;i;){u.push(i.frameId);const t=e.frames[i.frameId];t&&void 0===a.frames[i.frameId]&&(a.frames[i.frameId]={function:t.name,abs_path:"number"==typeof t.resourceId?e.resources[t.resourceId]:void 0,lineno:t.line,colno:t.column}),i=void 0===i.parentId?void 0:e.stacks[i.parentId]}const l={elapsed_since_start_ns:((o.timestamp+c-s)*Pb).toFixed(0),stack_id:n,thread_id:Nb};a.stacks[n]=u,a.samples[r]=l,n++}),a}(c):c,r=t||("number"==typeof a.start_timestamp?1e3*a.start_timestamp:1e3*we()),i="number"==typeof a.timestamp?1e3*a.timestamp:1e3*we();var c;return{event_id:e,timestamp:new Date(r).toISOString(),platform:"javascript",version:"1",release:a.release||"",environment:a.environment||qe,runtime:{name:"javascript",version:Qs.navigator.userAgent},os:{name:Ub,version:Bb,build_number:Hb},device:{locale:Vb,model:Wb,manufacturer:Hb,architecture:qb,is_emulator:!1},debug_meta:{images:Xb(n.resources)},profile:s,transactions:[{name:a.transaction||"",id:a.event_id||le(),trace_id:o,active_thread_id:Nb,relative_start_ns:"0",relative_end_ns:(1e6*(i-r)).toFixed(0)}]}}function Kb(e){return"pageload"===qt(e).op}function Xb(e){const t=Ue(),n=t?.getOptions(),a=n?.stackParser;return a?function(e,t){const n=mn(e);if(!n)return[];const a=[];for(const e of t)e&&n[e]&&a.push({type:"sourcemap",code_file:e,debug_id:n[e]});return a}(a,e):[]}function Zb(e){return"number"!=typeof e&&"boolean"!=typeof e||"number"==typeof e&&isNaN(e)?(Hr&&F.warn(`[Profiling] Invalid sample rate. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(e)} of type ${JSON.stringify(typeof e)}.`),!1):!0===e||!1===e||!(e<0||e>1)||(Hr&&F.warn(`[Profiling] Invalid sample rate. Sample rate must be between 0 and 1. Got ${e}.`),!1)}"object"==typeof(Yb=Jb)&&null!==Yb&&"getHighEntropyValues"in Yb&&Jb.getHighEntropyValues(["architecture","model","platform","platformVersion","fullVersionList"]).then(e=>{if(Ub=e.platform||"",qb=e.architecture||"",Wb=e.model||"",Bb=e.platformVersion||"",e.fullVersionList?.length){const t=e.fullVersionList[e.fullVersionList.length-1];Hb=`${t.brand} ${t.version}`}}).catch(e=>{});let Qb=!1;function ew(){const e=Qs.Profiler;if("function"!=typeof e)return void(Hr&&F.log("[Profiling] Profiling is not supported by this browser, Profiler interface missing on window object."));const t=Math.floor(3e3);try{return new e({sampleInterval:10,maxBufferSize:t})}catch(e){Hr&&(F.log("[Profiling] Failed to initialize the Profiling constructor, this is likely due to a missing 'Document-Policy': 'js-profiling' header."),F.log("[Profiling] Disabling profiling for current user session.")),Qb=!0}}function tw(e){if(Qb)return Hr&&F.log("[Profiling] Profiling has been disabled for the duration of the current user session."),!1;if(!e.isRecording())return Hr&&F.log("[Profiling] Discarding profile because root span was not sampled."),!1;const t=Ue(),n=t?.getOptions();if(!n)return Hr&&F.log("[Profiling] Profiling disabled, no options found."),!1;const a=n.profilesSampleRate;return Zb(a)?a?!!(!0===a||Math.random()<a)||(Hr&&F.log(`[Profiling] Discarding profile because it's not included in the random sample (sampling rate = ${Number(a)})`),!1):(Hr&&F.log("[Profiling] Discarding profile because a negative sampling decision was inherited or profileSampleRate is set to 0"),!1):(Hr&&F.warn("[Profiling] Discarding profile because of invalid sample rate."),!1)}function nw(e){return void 0!==e.profilesSampleRate}function aw(e,t,n,a){return function(e){return e.samples.length<2?(Hr&&F.log("[Profiling] Discarding profile because it contains less than 2 samples"),!1):!!e.frames.length||(Hr&&F.log("[Profiling] Discarding profile because it contains no frames"),!1)}(n)?Gb(e,t,n,a):null}const ow=new Map;function sw(e){const t=ow.get(e);return t&&ow.delete(e),t}function rw(e){let t;Kb(e)&&(t=1e3*we());const n=ew();if(!n)return;Hr&&F.log(`[Profiling] started profiling span: ${qt(e).description}`);const a=le();let o=null;async function s(){if(e&&n){if(!o)return n.stop().then(t=>{r&&(Qs.clearTimeout(r),r=void 0),Hr&&F.log(`[Profiling] stopped profiling of span: ${qt(e).description}`),t?(o=t,function(e,t){if(ow.set(e,t),ow.size>30){const e=ow.keys().next().value;void 0!==e&&ow.delete(e)}}(a,t)):Hr&&F.log(`[Profiling] profiler returned null profile for: ${qt(e).description}`,"this may indicate an overlapping span or a call to stopProfiling with a profile title that was never started")}).catch(e=>{Hr&&F.log("[Profiling] error while stopping profiler:",e)});Hr&&F.log("[Profiling] profile for:",qt(e).description,"already exists, returning early")}}Pe().setContext("profile",{profile_id:a,start_timestamp:t});let r=Qs.setTimeout(()=>{Hr&&F.log("[Profiling] max profile duration elapsed, stopping profiling for:",qt(e).description),s()},3e4);const i=e.end.bind(e);e.end=function(){return e?(s().then(()=>{i()},()=>{i()}),e):i()}}class iw{constructor(){this._client=void 0,this._profiler=void 0,this._chunkTimer=void 0,this._profilerId=void 0,this._isRunning=!1,this._sessionSampled=!1,this._lifecycleMode=void 0,this._activeRootSpanIds=new Set,this._rootSpanTimeouts=new Map}initialize(e){const t=e.getOptions().profileLifecycle,n=function(e){if(Qb)return Hr&&F.log("[Profiling] Profiling has been disabled for the duration of the current user session as the JS Profiler could not be started."),!1;if("trace"!==e.profileLifecycle&&"manual"!==e.profileLifecycle)return Hr&&F.warn("[Profiling] Session not sampled. Invalid `profileLifecycle` option."),!1;const t=e.profileSessionSampleRate;return Zb(t)?t?Math.random()<=t:(Hr&&F.log("[Profiling] Discarding profile because profileSessionSampleRate is not defined or set to 0"),!1):(Hr&&F.warn("[Profiling] Discarding profile because of invalid profileSessionSampleRate."),!1)}(e.getOptions());Hr&&F.log(`[Profiling] Initializing profiler (lifecycle='${t}').`),n||Hr&&F.log("[Profiling] Session not sampled. Skipping lifecycle profiler initialization."),this._profilerId=le(),this._client=e,this._sessionSampled=n,this._lifecycleMode=t,"trace"===t&&this._setupTraceLifecycleListeners(e)}start(){"trace"!==this._lifecycleMode?this._isRunning?Hr&&F.warn("[Profiling] Profile session is already running, `uiProfiler.start()` is a no-op."):this._sessionSampled?this._beginProfiling():Hr&&F.warn("[Profiling] Session is not sampled, `uiProfiler.start()` is a no-op."):Hr&&F.warn('[Profiling] `profileLifecycle` is set to "trace". Calls to `uiProfiler.start()` are ignored in trace mode.')}stop(){"trace"!==this._lifecycleMode?this._isRunning?this._endProfiling():Hr&&F.warn("[Profiling] Profiler is not running, `uiProfiler.stop()` is a no-op."):Hr&&F.warn('[Profiling] `profileLifecycle` is set to "trace". Calls to `uiProfiler.stop()` are ignored in trace mode.')}notifyRootSpanActive(e){if("trace"!==this._lifecycleMode||!this._sessionSampled)return;const t=e.spanContext().spanId;if(!t||this._activeRootSpanIds.has(t))return;this._registerTraceRootSpan(t);const n=this._activeRootSpanIds.size;1===n&&(Hr&&F.log("[Profiling] Detected already active root span during setup. Active root spans now:",n),this._beginProfiling())}_beginProfiling(){if(!this._isRunning){if(this._isRunning=!0,Hr&&F.log("[Profiling] Started profiling with profiler ID:",this._profilerId),Ne().setContext("profile",{profiler_id:this._profilerId}),this._startProfilerInstance(),!this._profiler)return Hr&&F.log("[Profiling] Failed to start JS Profiler; stopping."),void this._resetProfilerInfo();this._startPeriodicChunking()}}_endProfiling(){this._isRunning&&(this._isRunning=!1,this._chunkTimer&&(clearTimeout(this._chunkTimer),this._chunkTimer=void 0),this._clearAllRootSpanTimeouts(),this._collectCurrentChunk().catch(e=>{Hr&&F.error("[Profiling] Failed to collect current profile chunk on `stop()`:",e)}),"manual"===this._lifecycleMode&&Ne().setContext("profile",{}))}_setupTraceLifecycleListeners(e){e.on("spanStart",e=>{if(!this._sessionSampled)return void(Hr&&F.log("[Profiling] Session not sampled because of negative sampling decision."));if(e!==Kt(e))return;if(!e.isRecording())return void(Hr&&F.log("[Profiling] Discarding profile because root span was not sampled."));const t=e.spanContext().spanId;if(!t||this._activeRootSpanIds.has(t))return;this._registerTraceRootSpan(t);const n=this._activeRootSpanIds.size;1===n&&(Hr&&F.log(`[Profiling] Root span ${t} started. Profiling active while there are active root spans (count=${n}).`),this._beginProfiling())}),e.on("spanEnd",e=>{if(!this._sessionSampled)return;const t=e.spanContext().spanId;if(!t||!this._activeRootSpanIds.has(t))return;this._activeRootSpanIds.delete(t);const n=this._activeRootSpanIds.size;Hr&&F.log(`[Profiling] Root span with ID ${t} ended. Will continue profiling for as long as there are active root spans (currently: ${n}).`),0===n&&(this._collectCurrentChunk().catch(e=>{Hr&&F.error("[Profiling] Failed to collect current profile chunk on last `spanEnd`:",e)}),this._endProfiling())})}_resetProfilerInfo(){this._isRunning=!1,Ne().setContext("profile",{})}_clearAllRootSpanTimeouts(){this._rootSpanTimeouts.forEach(e=>clearTimeout(e)),this._rootSpanTimeouts.clear()}_registerTraceRootSpan(e){this._activeRootSpanIds.add(e);const t=setTimeout(()=>this._onRootSpanTimeout(e),3e5);this._rootSpanTimeouts.set(e,t)}_startProfilerInstance(){if(!1===this._profiler?.stopped)return;const e=ew();e?this._profiler=e:Hr&&F.log("[Profiling] Failed to start JS Profiler.")}_startPeriodicChunking(){this._isRunning&&(this._chunkTimer=setTimeout(()=>{if(this._collectCurrentChunk().catch(e=>{Hr&&F.error("[Profiling] Failed to collect current profile chunk during periodic chunking:",e)}),this._isRunning){if(this._startProfilerInstance(),!this._profiler)return void this._resetProfilerInfo();this._startPeriodicChunking()}},6e4))}_onRootSpanTimeout(e){this._rootSpanTimeouts.has(e)&&(this._rootSpanTimeouts.delete(e),this._activeRootSpanIds.has(e)&&(Hr&&F.log(`[Profiling] Reached 5-minute timeout for root span ${e}. You likely started a manual root span that never called \`.end()\`.`),this._activeRootSpanIds.delete(e),0===this._activeRootSpanIds.size&&this._endProfiling()))}async _collectCurrentChunk(){const e=this._profiler;if(this._profiler=void 0,e)try{const t=function(e,t,n){if(null==e)throw new TypeError(`Cannot construct profiling event envelope without a valid profile. Got ${e} instead.`);const a=function(e){const t=[];for(let n=0;n<e.frames.length;n++){const a=e.frames[n];a&&(t[n]={function:a.name,abs_path:"number"==typeof a.resourceId?e.resources[a.resourceId]:void 0,lineno:a.line,colno:a.column})}const n=[];for(let t=0;t<e.stacks.length;t++){const a=e.stacks[t];if(!a)continue;const o=[];let s=a;for(;s;)o.push(s.frameId),s=void 0===s.parentId?void 0:e.stacks[s.parentId];n[t]=o}const a=ve(),o="number"==typeof performance.timeOrigin?performance.timeOrigin:a||0,s=o-(a||o),r=[];for(let t=0;t<e.samples.length;t++){const n=e.samples[t];if(!n)continue;const a=(o+(n.timestamp-s))/1e3;r[t]={stack_id:n.stackId??0,thread_id:Nb,timestamp:a}}return{frames:t,stacks:n,samples:r,thread_metadata:{[Nb]:{name:$b}}}}(e),o=t.getOptions(),s=t.getSdkMetadata?.()?.sdk;return{chunk_id:le(),client_sdk:{name:s?.name??"sentry.javascript.browser",version:s?.version??"0.0.0"},profiler_id:n||le(),platform:"javascript",version:"2",release:o.release??"",environment:o.environment??"production",debug_meta:{images:Xb(e.resources)},profile:a}}(await e.stop(),this._client,this._profilerId),n=function(e){try{if(!e||"object"!=typeof e)return{reason:"chunk is not an object"};const t=e=>"string"==typeof e&&/^[a-f0-9]{32}$/.test(e);if(!t(e.profiler_id))return{reason:"missing or invalid profiler_id"};if(!t(e.chunk_id))return{reason:"missing or invalid chunk_id"};if(!e.client_sdk)return{reason:"missing client_sdk metadata"};const n=e.profile;return n?Array.isArray(n.frames)&&n.frames.length?Array.isArray(n.stacks)&&n.stacks.length?Array.isArray(n.samples)&&n.samples.length?{valid:!0}:{reason:"profile has no samples"}:{reason:"profile has no stacks"}:{reason:"profile has no frames"}:{reason:"missing profile data"}}catch(e){return{reason:`unknown validation error: ${e}`}}}(t);if("reason"in n)return void(Hr&&F.log("[Profiling] Discarding invalid profile chunk (this is probably a bug in the SDK):",n.reason));this._sendProfileChunk(t),Hr&&F.log("[Profiling] Collected browser profile chunk.")}catch(e){Hr&&F.log("[Profiling] Error while stopping JS Profiler for chunk:",e)}}_sendProfileChunk(e){const t=this._client,n=Vo(t.getSdkMetadata?.()),a=t.getDsn(),o=t.getOptions().tunnel,s=Po({event_id:le(),sent_at:(new Date).toISOString(),...n&&{sdk:n},...!!o&&a&&{dsn:gt(a)}},[[{type:"profile_chunk"},e]]);t.sendEnvelope(s).then(null,e=>{Hr&&F.error("Error while sending profile chunk envelope:",e)})}}const cw=()=>({name:"BrowserProfiling",setup(e){const t=e.getOptions(),n=new iw;if(nw(t)||t.profileLifecycle||(t.profileLifecycle="manual"),nw(t)&&!t.profilesSampleRate)return void(Hr&&F.log("[Profiling] Profiling disabled, no profiling options found."));const a=Xt(),o=a&&Kt(a);if(nw(t)&&void 0!==t.profileSessionSampleRate&&Hr&&F.warn("[Profiling] Both legacy profiling (`profilesSampleRate`) and UI profiling settings are defined. `profileSessionSampleRate` has no effect when legacy profiling is enabled."),nw(t))o&&Kb(o)&&tw(o)&&rw(o),e.on("spanStart",e=>{e===Kt(e)&&tw(e)&&rw(e)}),e.on("beforeEnvelope",e=>{if(!ow.size)return;const t=function(e){const t=[];return No(e,(e,n)=>{if("transaction"===n)for(let n=1;n<e.length;n++){const a=e[n];a?.contexts?.profile?.profile_id&&t.push(e[n])}}),t}(e);if(!t.length)return;const n=[];for(const e of t){const t=e?.contexts,a=t?.profile?.profile_id,o=t?.profile?.start_timestamp;if("string"!=typeof a){Hr&&F.log("[Profiling] cannot find profile for a span without a profile context");continue}if(!a){Hr&&F.log("[Profiling] cannot find profile for a span without a profile context");continue}t?.profile&&delete t.profile;const s=sw(a);if(!s){Hr&&F.log(`[Profiling] Could not retrieve profile for span: ${a}`);continue}const r=aw(a,o,s,e);r&&n.push(r)}!function(e,t){if(!t.length)return e;for(const n of t)e[1].push([{type:"profile"},n])}(e,n)});else{const a=t.profileLifecycle;if(e.on("startUIProfiler",()=>n.start()),e.on("stopUIProfiler",()=>n.stop()),"manual"===a)n.initialize(e);else if("trace"===a){if(!wt(t))return void(Hr&&F.warn("[Profiling] `profileLifecycle` is 'trace' but tracing is disabled. Set a `tracesSampleRate` or `tracesSampler` to enable span tracing."));n.initialize(e),o&&n.notifyRootSpanActive(o),Qs.setTimeout(()=>{const e=Xt(),t=e&&Kt(e);t&&n.notifyRootSpanActive(t)},0)}}},processEvent:e=>function(e){return e?.contexts?.profile&&e.contexts?(e.contexts.trace={...e.contexts?.trace??{},data:{...e.contexts?.trace?.data??{},"thread.id":Nb,"thread.name":$b}},e.spans?.forEach(e=>{e.data={...e.data||{},"thread.id":Nb,"thread.name":$b}}),e):e}(e)}),uw=(e={})=>{const t=e.sidecarUrl||"http://localhost:8969/stream";return{name:"SpotlightBrowser",setup:()=>{Hr&&F.log("Using Sidecar URL",t)},processEvent:e=>function(e){return Boolean("transaction"===e.type&&e.spans&&e.contexts?.trace&&"ui.action.click"===e.contexts.trace.op&&e.spans.some(({description:e})=>e?.includes("#sentry-spotlight")))}(e)?null:e,afterAllSetup:e=>{!function(e,t){const n=Di("fetch");let a=0;e.on("beforeEnvelope",e=>{a>3?F.warn("[Spotlight] Disabled Sentry -> Spotlight integration due to too many failed requests:",a):n(t,{method:"POST",body:Uo(e),headers:{"Content-Type":"application/x-sentry-envelope"},mode:"cors"}).then(e=>{e.status>=200&&e.status<400&&(a=0)},e=>{a++,F.error("Sentry SDK can't connect to Sidecar is it running? See: https://spotlightjs.com/sidecar/npx/",e)})})}(e,t)}}},lw=()=>({name:"LaunchDarkly",processEvent:(e,t,n)=>bp(e)});function pw(){return{name:"sentry-flag-auditor",type:"flag-used",synchronous:!0,method:(e,t,n)=>{wp(e,t.value),vp(e,t.value)}}}const dw=()=>({name:"OpenFeature",processEvent:(e,t,n)=>bp(e)});class mw{after(e,t){wp(t.flagKey,t.value),vp(t.flagKey,t.value)}error(e,t,n){wp(e.flagKey,e.defaultValue),vp(e.flagKey,e.defaultValue)}}const hw=({featureFlagClientClass:e})=>({name:"Unleash",setupOnce(){U(e.prototype,"isEnabled",gw)},processEvent:(e,t,n)=>bp(e)});function gw(e){return function(...t){const n=t[0],a=e.apply(this,t);return"string"==typeof n&&"boolean"==typeof a?(wp(n,a),vp(n,a)):Hr&&F.error(`[Feature Flags] UnleashClient.isEnabled does not match expected signature. arg0: ${n} (${typeof n}), result: ${a} (${typeof a})`),a}}function fw(e){return function(...t){const n=t[0],a=e.apply(this,t);return"string"==typeof n&&"boolean"==typeof a&&(wp(n,a),vp(n,a)),a}}const kw=({growthbookClass:e})=>(({growthbookClass:e})=>({name:"GrowthBook",setupOnce(){const t=e.prototype;"function"==typeof t.isOn&&U(t,"isOn",fw),"function"==typeof t.getFeatureValue&&U(t,"getFeatureValue",fw)},processEvent:(e,t,n)=>bp(e)}))({growthbookClass:e}),yw=({featureFlagClient:e})=>({name:"Statsig",setup(t){e.on("gate_evaluation",e=>{wp(e.gate.name,e.gate.value),vp(e.gate.name,e.gate.value)})},processEvent:(e,t,n)=>bp(e)});async function bw(){const e=Ue();if(!e)return"no-client-active";if(!e.getDsn())return"no-dsn-configured";try{await el(()=>fetch("https://o447951.ingest.sentry.io/api/4509632503087104/envelope/?sentry_version=7&sentry_key=c1dfb07d783ad5325c245c1fd3725390&sentry_client=sentry.javascript.browser%2F1.33.7",{body:"{}",method:"POST",mode:"cors",credentials:"omit"}))}catch{return"sentry-unreachable"}}const ww=({worker:e})=>({name:"WebWorker",setupOnce:()=>{(Array.isArray(e)?e:[e]).forEach(e=>vw(e))},addWorker:e=>vw(e)});function vw(e){e.addEventListener("message",e=>{(function(e){if(!_(e)||!0!==e._sentryMessage)return!1;const t="_sentryDebugIds"in e,n="_sentryWorkerError"in e;return!(!t&&!n)&&(!(t&&!_(e._sentryDebugIds)&&void 0!==e._sentryDebugIds)&&!(n&&!_(e._sentryWorkerError)))})(e.data)&&(e.stopImmediatePropagation(),e.data._sentryDebugIds&&(Hr&&F.log("Sentry debugId web worker message received",e.data),Qs._sentryDebugIds={...e.data._sentryDebugIds,...Qs._sentryDebugIds}),e.data._sentryWorkerError&&(Hr&&F.log("Sentry worker rejection message received",e.data._sentryWorkerError),function(e){const t=Ue();if(!t)return;const n=t.getOptions().stackParser,a=t.getOptions().attachStacktrace,o=e.reason,s=v(o)?ri(o):Ks(n,o,void 0,a,!0);s.level="error",e.filename&&(s.contexts={...s.contexts,worker:{filename:e.filename}}),vn(s,{originalException:o,mechanism:{handled:!1,type:"auto.browser.web_worker.onunhandledrejection"}}),Hr&&F.log("Captured worker unhandled rejection",o)}(e.data._sentryWorkerError)))})}function _w({self:e}){e.postMessage({_sentryMessage:!0,_sentryDebugIds:e._sentryDebugIds??void 0}),e.addEventListener("unhandledrejection",t=>{const n={reason:si(t),filename:e.location?.href};e.postMessage({_sentryMessage:!0,_sentryWorkerError:n}),Hr&&F.log("[Sentry Worker] Forwarding unhandled rejection to parent",n)}),Hr&&F.log("[Sentry Worker] Registered worker with unhandled rejection handling")}const jw=chrome.runtime.getManifest(),Sw={extension:`${chrome.runtime.id}-${jw.version}`,"extension.id":chrome.runtime.id,"extension.version":jw.version,"extension.name":jw.name},xw=a,zw=function(e,t,n){return{id:e,handlers:n,isMessageForThisServer:t=>"object"==typeof t&&null!==t&&"serverId"in t&&t.serverId===e&&"handlerId"in t&&"string"==typeof t.handlerId,handleMessage(t,a,o){const s=n[t.handlerId];if(!s)throw new Error(`Unhandled ${e} message type ${t.handlerId.toString()}`);s("payload"in t?t.payload:void 0,a).then(e=>{o({success:!0,response:e})}).catch(e=>{(e=>{xw.captureException(e)})(e),console.error("Uncaught error in async message handler",t,e);const n=function(e){return e instanceof Error?e.message:"string"==typeof e?e:"object"==typeof e&&null!==e&&"message"in e&&"string"==typeof e.message?e.message:`Unknown error: ${String(e)}`}(e);o({success:!1,errorMessage:n})})}}}("DIRECTO_CORE_BACKGROUND",0,{getSessionId:async()=>await ha(),sendConversionEvent:async(e,t)=>{await Xn().post("/v2/conversion-details",{body:Un.B64Json(e)})},sendConversionHTMLEvent:async(e,t)=>{await Xn().post("/v2/conversion-details-html",{body:Un.Json(e)})},getCrossSellWasChecked:async({crossSellId:e},t)=>{const n=t.tab?.id;return void 0!==n&&ka(wa,_a({crossSellId:e,tabId:n}),{dropIfPresent:!0,area:va})},setCrossSellWasChecked:async({crossSellId:e,checked:t},n)=>{const a=n.tab?.id;if(void 0===a)return!1;const o=_a({crossSellId:e,tabId:a});return t?fa(wa,o,{area:va}):function(e,t,n={}){const{area:a="local"}=n,o=ga(a);o.get(e,n=>{const a=n[e]||[],s=new Set(a);s.has(t)&&(s.delete(t),o.set({[e]:Array.from(s.values())}))})}(wa,o,{area:va}),!0},openKayakCrossSellTab:async(e,t)=>{const{checkin:n,checkout:a}=e,o=ia.unsafe_fromRaw(n),s=ia.unsafe_fromRaw(a);let r;try{const t=await Qn().get("/guess-kayak-place-id",{params:{searchTerm:e.destination,language:eo()},parser:new Hn});r=to(e.trackingLabel,e.partnerKey,{destination:{name:t.fullName,placeId:t.placeId},checkin:o,checkout:s,adults:e.adults,children:e.children})}catch(t){r=to(e.trackingLabel,e.partnerKey,{destination:{name:e.destination},checkin:o,checkout:s,adults:e.adults,children:e.children})}const i=t.tab?t.tab.index+1:void 0,c=await chrome.tabs.create({url:r,active:!1,index:i});await Ka({sessionId:await ha(),sourceUrl:e.sourceUrl,targetUrl:r,cta:"CHECKBOX_CROSS_SELL",sourceId:null,sourceTabId:t.tab?.id??null,targetTabId:c.id??null},{checkin:o.toDashYYYYMMDD(),checkout:s.toDashYYYYMMDD(),adults:e.adults.toString(),currency:e.currency,children:e.children.toString()})},openActivitiesCrossSellTab:async(e,t)=>{const{provider:n,destination:a,checkin:o,checkout:s,adults:r,currency:i,children:c,sourceId:u}=e,l=function(e,t){switch(e){case"viator":return(e=>{const t=new URL("/searchResults/all","https://www.viator.com");return t.searchParams.append("text",e),t.searchParams.append("pid","P00253809"),t.searchParams.append("mcid","42383"),t.searchParams.append("medium","link"),t.toString()})(t);case"civitatis":return(e=>{const t=new URL("/es/buscar","https://www.civitatis.com");return t.searchParams.append("q",e),t.searchParams.append("aid","110241"),t.toString()})(t);default:Nn(e)}}(n,a),p=t.tab?t.tab.index+1:void 0,d=await chrome.tabs.create({url:l,active:!1,index:p});await Ka({sessionId:await ha(),sourceUrl:e.sourceUrl,targetUrl:l,cta:"CHECKBOX_CROSS_SELL",sourceId:u,sourceTabId:t.tab?.id??null,targetTabId:d.id??null},{checkin:o?ia.fromRaw(o)?.toDashYYYYMMDD()??null:null,checkout:s?ia.fromRaw(s)?.toDashYYYYMMDD()??null:null,currency:i,adults:r.toString(),children:c.toString()})},getConfig:async()=>{if(!oa){const e=await chrome.storage[aa].get(na);oa=e[na]||null}if(!oa)throw new Error("Config has not been set");return oa},openOutclickTab:async(e,t)=>{const n=await Qa()||eo(),a=e.useRedirectEngine?function(e,t,n){const{coupon:a,discount:o}=n,s={url:e,...null!==a?{coupon:a}:{},...null!==o?{discount:o}:{}};return`https://engine.getdirecto.com/${t}/${btoa(encodeURIComponent(JSON.stringify(s)))}`}(e.targetUrl,n,e.redirectEngineParams??{coupon:null,discount:null}):e.targetUrl,o=t.tab?t.tab.index+1:void 0,s=(await chrome.tabs.create({url:a,active:!0,index:o})).id??null;s&&async function(e,t){const n=Ra(Ma(t).hostname);await chrome.storage.session.set({[Ha(e)]:{outclicked:n,additional:null,sinceMsecs:Date.now()}})}(s,e.targetUrl),await Ka({sessionId:await ha(),sourceUrl:e.sourceUrl,targetUrl:e.targetUrl,cta:e.cta,sourceId:e.sourceId,sourceTabId:t.tab?.id??null,targetTabId:s},e.stayParams)},maybeOpenTempTab:async(e,t)=>{const{url:n,closeDelay:a=no}=e,o=t.tab?t.tab.index+1:void 0,s=Aa(new URL(n)),r=await async function(e){if(await ka(ao,e,{area:oo}))return!0;var t;return await(t=e,ka(Ba,Ra(t)))}(s);if(r)return;const i=await chrome.tabs.create({url:n,index:o,active:!1,pinned:!0});fa(ao,s,{area:oo}),setTimeout(()=>{void 0!==i.id&&chrome.tabs.remove(i.id)},a)},getAlternativeOffersByCompoundIds:async(e,t)=>{try{const t=await async function(e){return Qn().get("/v2/offers-by-hotel-id",{params:e,parser:new Hn})}(e);return{...t,offers:t.offers.map(t=>({...t,source_id:t.source_id.listingId,stayParams:{checkin:e.checkin,checkout:e.checkout,adults:e.adults.toString(),children:e.children?.toString()??null,currency:e.currency??null}}))}}catch(e){return console.error("Error fetching alternative offers by hotel ids",e),{offers:[]}}},storeCachedDisplayPrices:async(e,t)=>{ya(ro,Oa(e.source_id,e.platform),e,{area:so})},getCachedDisplayPrices:async(e,t)=>await ba(ro,Oa(e.source_id,e.platform),{area:so})??null,fetchDirectoInfo:async(e,t)=>{try{const{ids:t,platform:n,...a}=e,o=a.checkin&&a.checkout?a:{checkin:null,checkout:null,adults:null,children:null,currency:null};return(await async function(e){return Gn.get().get("/listingids",{params:e,parser:new Hn})}({id:t,platform:n,...o})).map(e=>({...e,stayParams:o}))}catch(e){return console.error("Error fetching Directo info for listing IDs:",e),[]}},storeCachedDirectoInfo:async(e,t)=>{ya(co,Oa(e.source_id,e.platform),e,{area:io})},getCachedDirectoInfo:async(e,t)=>await ba(co,Oa(e.source_id,e.platform),{area:io})??null,getGrowthbookFeature:async(e,t)=>await ba(uo,e,{area:lo}),setGrowthbookFeature:async(e,t)=>{ya(uo,e.key,e,{area:lo})},storeCachedListingPrice:async(e,t)=>{ya(mo,Oa(e.source_id,e.platform),e,{area:po})},getCachedListingPrice:async(e,t)=>await ba(mo,Oa(e.source_id,e.platform),{area:po})??null});function Ew(e){return zw.isMessageForThisServer(e)}Fi(function(e){const t=chrome.runtime.id.replace(/[^a-z0-9]/gi,"-");return{debug:!1,dsn:"https://7828ac544c6e096e4c0e9cc2cd02e1a8@o4510509937328128.ingest.de.sentry.io/4510510038843472",transport:Ni,stackParser:Mi,integrations:e.integrations,sendDefaultPii:!1,enableLogs:!1,enableMetrics:!1,environment:"production",release:"0.1.0",dist:`${t}-${jw.version}`}}({integrations:$i()})),xn({...Sw,scope:"background"});class Tw{#e;ready;constructor(e){this.#e=e,this.#t(),this.ready=this.#n()}async#n(){await this.#a(),this.#o(this.#e)}#o(e){sa(e);const t={partnerKey:e.partnerKey,appVersion:"adunit-0.1.0"};Gn.initialize(t),Kn.initialize(t),Zn.initialize(t),ea.initialize(t),ta.initialize(t)}#t(){chrome.runtime.onMessage.addListener((e,t,n)=>{if(Ew(e))return this.ready.then(()=>{zw.handleMessage(e,t,n)}).catch(e=>{console.error("Error handling core message",e),function(e){return e instanceof s||e instanceof r&&401===e.status}(e)||bn(e),n({success:!1,errorMessage:e.message})}),!0})}async#a(){const e=await pa();En({id:e.id}),await async function(e,t){Na=e,Fa=t,await chrome.storage[La].set({[Da]:e,[Pa]:t})}(e.id,e.email)}}const Cw=new class{#s=null;initialize(e){return this.#s||(this.#s=new Tw(e)),this.#s.ready}};function Iw(e){if(!e)throw new Error("partnerKey is required");return function(e){return xn({partnerKey:e.partnerKey}),Cw.initialize(e)}({partnerKey:e})}console.log("Directo AdUnit Background Service - Version: adunit-0.1.0");export{Iw as initializeAdUnit,Ew as isAdUnitMessage};
1
+ function a(a){throw new Error(`Non-never value at runtime: ${a}`)}function o(o,s,e,i){void 0===e?o.searchParams[i](s,"undefined"):null===e?o.searchParams[i](s,"null"):"boolean"==typeof e?o.searchParams[i](s,e?"true":"false"):"number"==typeof e?o.searchParams[i](s,e.toString(10)):"string"==typeof e?o.searchParams[i](s,e):"object"==typeof e?o.searchParams[i](s,JSON.stringify(e)):a(e)}class s extends Error{source;constructor(a,o){super(a),this.name="ApiError",this.source=o}}class e extends s{constructor(a){super(`Fetch error: ${a.message}`,a)}}class i extends s{status;statusText;response;constructor(a){const{status:o,statusText:s}=a;super(`Status error (${o}): ${s}`),this.status=o,this.statusText=s,this.response=a}}class n extends s{response;constructor(a,o){const[s,e]="string"==typeof o?[o,void 0]:[o.message,o];super(`Response body error: ${s}`,e),this.response=a}}async function t(a,o){try{return await fetch(a,o)}catch(a){if(a instanceof TypeError)throw new e(a);throw a}}class r{body;constructor(a){this.body=a}static Json(a){return new r({type:"json",json:a})}static B64Json(a){return new r({type:"b64json",json:a})}static String(a){return new r({type:"string",string:a})}getContentType(){switch(this.body.type){case"json":return"application/json";case"b64json":case"string":return"text/plain";default:a(this.body)}}getSerialized(){switch(this.body.type){case"json":return JSON.stringify(this.body.json);case"b64json":return o=JSON.stringify(this.body.json),function(a){const o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";let s="",e=0;for(;e+2<a.length;e+=3){const i=a[e]<<16|a[e+1]<<8|a[e+2];s+=o[i>>>18&63]+o[i>>>12&63]+o[i>>>6&63]+o[63&i]}if(e<a.length){const i=a[e]<<16|(e+1<a.length?a[e+1]:0)<<8;s+=o[i>>>18&63]+o[i>>>12&63]+(e+1<a.length?o[i>>>6&63]:"=")+"="}return s}((new TextEncoder).encode(o));case"string":return this.body.string;default:a(this.body)}var o}}function m(a){return new Promise(o=>{setTimeout(o,a)})}function c(a,{backoffMultiplier:o=1,retryAfter:s=null}={}){if(s){const a=function(a){const o=function(a){const o=function(a){const o=a.trim();return/^[+-]?\d+$/.test(o)?parseInt(o,10):null}(a);return null===o||o<0?null:o}(a);if(null!==o)return 1e3*o;const s=Date.parse(a);return isNaN(s)?null:s-Date.now()}(s);if(null!==a)return Math.max(Math.min(a,1e4),500)}return Math.min(500*Math.pow(2,a),1e4)*o*(1+.1*(2*Math.random()-1))}class p{name="JsonBodyParser";async parse(a){try{return a.json()}catch(o){throw new n(a,o instanceof Error?o:"Failed to parse JSON")}}checkContentType(a){return a?.includes("application/json")??!1}}class u{name="VoidBodyParser";async parse(a){}checkContentType(a){return!0}}async function l(a,o,s,e,t){if(a.status>=200&&a.status<300){const{parser:s,ignoreContentTypeHeader:e=!1}=o??{},i=a.headers.get("Content-Type");if(!e&&!s.checkContentType(i))throw new n(a,`Did not expect Content-Type "${i}" for parser ${s.name}`);return o.parser.parse(a)}if(s>=5)throw new i(a);if(401===a.status&&t)return t(s+1);if(429===a.status||503===a.status){const o=c(s+2,{backoffMultiplier:2,retryAfter:a.headers.get("Retry-After")});return await m(o),e(s+3)}if(a.status>=400&&a.status<=499)throw new i(a);{const a=c(s);return await m(a),e(s+1)}}class k{rootUrl;appVersion;truesignEndpoint;tsToken=null;injectInto;partnerKey;constructor(a,o){this.truesignEndpoint=o?.truesignEndpoint,this.rootUrl=a,this.injectInto=o.injectInto??"query",this.appVersion=o.appVersion,this.partnerKey=o.partnerKey}async createTSToken(){try{const a={signal:AbortSignal.timeout(1e3)},o=await fetch(`https://edge.truesign.ai/v2/${this.truesignEndpoint}`,{...a}),s=await o.json();return this.tsToken=s.token,this.tsToken||"no-token"}catch(a){return console.error("Unable to request authentication token",a),this.tsToken="unauthenticated",this.tsToken}}async getTsToken(){return this.tsToken?this.tsToken:await this.createTSToken()}buildUrl(a){return new URL(`${this.rootUrl}${a}`)}async applyQueryParams(a,s){return function(a,s){const e=new URL(a);for(const[a,i]of Object.entries(s))if(Array.isArray(i)){e.searchParams.delete(a);for(const s of i)o(e,a,s,"append")}else o(e,a,i,"set");return e}(a,{...s,..."query"===this.injectInto?{...this.truesignEndpoint?{tsToken:await this.getTsToken()}:{},...this.partnerKey?{partnerKey:this.partnerKey}:{},appVersion:this.appVersion}:{}})}async applyHeaders(a){const o=new Headers(a);return"headers"===this.injectInto&&(this.truesignEndpoint&&o.set("X-TS-Token",await this.getTsToken()),this.partnerKey&&o.set("X-Partner-Key",this.partnerKey),o.set("X-App-Version",this.appVersion)),o}async get(a,{params:o={},request:s={},parser:e=new p,ignoreContentTypeHeader:i}={}){const n=this.buildUrl(a),t=await this.applyQueryParams(n,o),r=await this.applyHeaders(s?.headers);return this._get(t,0,{...s,headers:r},{parser:e,ignoreContentTypeHeader:i})}async _get(a,o,s,e){try{return l(await t(a,{...s,body:void 0,method:"GET"}),e,o,o=>this._get(a,o,s,e),this.truesignEndpoint?async o=>{await this.createTSToken();const i=await this.applyQueryParams(a),n=await this.applyHeaders(s.headers);return this._get(i,o,{...s,headers:n},e)}:null)}catch(o){throw console.error(`Error on get ${a.origin}${a.pathname}`,o),o}}async post(a,{params:o={},body:s=null,request:e={},parser:i=new u,ignoreContentTypeHeader:n}={}){const t=this.buildUrl(a),r=await this.applyQueryParams(t,o),m=await this.applyHeaders(e?.headers);s&&!m.has("Content-Type")&&m.set("Content-Type",s.getContentType());const c=s?s.getSerialized():null;return this._post(r,c,0,{...e,headers:m},{parser:i,ignoreContentTypeHeader:n})}async _post(a,o,s,e,i){try{return l(await t(a,{...e,body:o,method:"POST"}),i,s,s=>this._post(a,o,s,e,i),this.truesignEndpoint?async s=>{await this.createTSToken();const n=await this.applyQueryParams(a),t=await this.applyHeaders(e.headers);return this._post(n,o,s,{...e,headers:t},i)}:null)}catch(o){throw console.error(`Error on post ${a.origin}${a.pathname}`,o),o}}}class g{apiService=null;rootUrl;options;constructor(a,o){this.rootUrl=a,this.options=o,this.apiService=null}initialize(a){if(this.apiService)throw new Error("APIService already initialized");this.apiService=new k(this.rootUrl,{...this.options,...a})}get(){if(!this.apiService)throw new Error("APIService not initialized");return this.apiService}}const d=new g("https://api.getdirecto.com",{truesignEndpoint:"1558123949",injectInto:"headers"});d.get.bind(d);const h=new g("https://events.getdirecto.com",{truesignEndpoint:"80298941"}),j=h.get.bind(h),w=new g("https://vio-wrapper-api-cd-6981968610.europe-west4.run.app",{truesignEndpoint:"1678801807",injectInto:"headers"}),b=w.get.bind(w),y=new g("https://rateshops.getdirecto.com",{truesignEndpoint:"1010119886",injectInto:"headers"});y.get.bind(y);const f=new g("https://htmlql-6981968610.europe-west4.run.app",{truesignEndpoint:"465050282"});f.get.bind(f);const v="DIRECTO_CORE_BACKGROUND_CONFIG",z="local";let x=null;const I=a=>{x=a,chrome.storage[z].set({[v]:a})};function T(a,o=2){const s="0".repeat(o)+a;return s.slice(s.length-o,s.length)}class D{year;month;day;constructor(a,o,s){this.year=a,this.month=o,this.day=s}static unsafe_new(a,o,s){if(isNaN(a)||isNaN(o)||isNaN(s))throw new Error(`Invalid date: ${a}-${o}-${s}`);const e=new D(a,o,s),i=e.unsafe_toDate();if(isNaN(i.getTime())||i.getFullYear()!==a||i.getMonth()+1!==o||i.getDate()!==s)throw new Error(`Invalid date: ${a}-${o}-${s}`);return e}static new(a,o,s){try{return D.unsafe_new(a,o,s)}catch{return null}}static today(){return D.unsafe_fromDate(new Date)}static unsafe_fromRaw(a){return D.unsafe_new(a.year,a.month,a.day)}static fromRaw(a){return D.new(a.year,a.month,a.day)}static unsafe_fromDate(a){if(isNaN(a.getTime()))throw new Error("Invalid Date object");return D.unsafe_new(a.getFullYear(),a.getMonth()+1,a.getDate())}static fromDate(a){try{return D.unsafe_fromDate(a)}catch{return null}}static tryFromSlashDDMMYY(a){const o=a.match(/^(?<dd>\d{2})\/(?<mm>\d{2})\/(?<yy>\d{2})$/);if(!o)return null;const{dd:s,mm:e,yy:i}=o.groups;return D.new(2e3+parseInt(i,10),parseInt(e,10),parseInt(s,10))}static tryFromSlashDMY(a){const o=a.match(/^(?<d>\d{1,2})\/(?<m>\d{1,2})\/(?<y>\d{1,2})$/);if(!o)return null;const{d:s,m:e,y:i}=o.groups;return D.new(2e3+parseInt(i,10),parseInt(e,10),parseInt(s,10))}static tryFromDashYYYYMMDD(a){const o=a.match(/^(?<yyyy>\d{4})-(?<mm>\d{2})-(?<dd>\d{2})$/);if(!o)return null;const{yyyy:s,mm:e,dd:i}=o.groups;return D.new(parseInt(s,10),parseInt(e,10),parseInt(i,10))}static tryFromDashDDMMYYYY(a){const o=a.match(/^(?<dd>\d{2})-(?<mm>\d{2})-(?<yyyy>\d{4})$/);if(!o)return null;const{dd:s,mm:e,yyyy:i}=o.groups;return D.new(parseInt(i,10),parseInt(e,10),parseInt(s,10))}static tryFromSlashDDMMYYYY(a){const o=a.match(/^(?<dd>\d{2})\/(?<mm>\d{2})\/(?<yyyy>\d{4})$/);if(!o)return null;const{yyyy:s,mm:e,dd:i}=o.groups;return D.new(parseInt(s,10),parseInt(e,10),parseInt(i,10))}static tryFromSlashMMDDYYYY(a){const o=a.match(/^(?<mm>\d{2})\/(?<dd>\d{2})\/(?<yyyy>\d{4})$/);if(!o)return null;const{yyyy:s,mm:e,dd:i}=o.groups;return D.new(parseInt(s,10),parseInt(e,10),parseInt(i,10))}toDashYYYYMMDD(){return`${T(this.year,4)}-${T(this.month)}-${T(this.day)}`}unsafe_toDate(){return function(a,o,s){const e=new Date;return e.setFullYear(a,o,s),e.setHours(0,0,0,0),e}(this.year,this.month-1,this.day)}}const S="userUUID",_="local";async function q(){let{[S]:a}=await chrome.storage[_].get(S);return a||(a=crypto.randomUUID(),await chrome.storage[_].set({[S]:a})),a}async function C(){if(void 0!==chrome.identity?.getProfileUserInfo){const a=await chrome.identity.getProfileUserInfo({accountStatus:chrome.identity.AccountStatus.ANY});return{id:a.id||await q(),email:a.email}}return{id:await q(),email:""}}const U="directoSessionInfo",E="session";async function A(){const{[U]:a}=await chrome.storage[E].get(U),o=Date.now();if(a?.sessionId&&a.lastTimestamp&&o-a.lastTimestamp<144e5)return chrome.storage[E].set({[U]:{...a,lastTimestamp:o}}),a.sessionId;const s=`${(await C()).id}-${e=new Date(o),`${e.getUTCFullYear()}${T(e.getUTCMonth())+1}${T(e.getUTCDate())}-${T(e.getUTCHours())}${T(e.getUTCMinutes())}`}`;var e;return chrome.storage[E].set({[U]:{sessionId:s,lastTimestamp:o}}),s}function O(o){switch(o){case"local":return chrome.storage.local;case"session":return chrome.storage.session;default:a(o)}}function M(a,o,s={}){const{area:e="local"}=s,i=O(e);i.get(a,s=>{const e=s[a]||[],n=new Set(e);n.add(o),i.set({[a]:Array.from(n.values())})})}function $(a,o,s={}){return new Promise(e=>{const{dropIfPresent:i=!1,area:n="local"}=s,t=O(n);t.get(a,s=>{const n=s[a]||[],r=new Set(n),m=r.has(o);m&&i&&(r.delete(o),t.set({[a]:Array.from(r.values())})),e(m)})})}function P(a,o,s,e={}){const{area:i="local"}=e,n=O(i);n.get(a,e=>{const i=e[a]||[],t=new Map(i);t.set(o,s),n.set({[a]:Array.from(t.entries())})})}function L(a,o,s={}){const{dropIfPresent:e=!1,area:i="local"}=s;return new Promise(s=>{const n=O(i);n.get(a,i=>{const t=i[a]||[],r=new Map(t),m=r.get(o);m&&e&&setTimeout(()=>{r.delete(o),n.set({[a]:Array.from(r.entries())})},5e3),s(m)})})}const Y="crossSellWasChecked",R="session",N=({crossSellId:a,tabId:o})=>`${a}-${o}`;function H(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var B,F;const K=H(function(){if(F)return B;F=1;const a=2147483647,o=36,s=/^xn--/,e=/[^\0-\x7F]/,i=/[\x2E\u3002\uFF0E\uFF61]/g,n={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},t=Math.floor,r=String.fromCharCode;function m(a){throw new RangeError(n[a])}function c(a,o){const s=a.split("@");let e="";s.length>1&&(e=s[0]+"@",a=s[1]);const n=function(a,o){const s=[];let e=a.length;for(;e--;)s[e]=o(a[e]);return s}((a=a.replace(i,".")).split("."),o).join(".");return e+n}function p(a){const o=[];let s=0;const e=a.length;for(;s<e;){const i=a.charCodeAt(s++);if(i>=55296&&i<=56319&&s<e){const e=a.charCodeAt(s++);56320==(64512&e)?o.push(((1023&i)<<10)+(1023&e)+65536):(o.push(i),s--)}else o.push(i)}return o}const u=function(a){return a>=48&&a<58?a-48+26:a>=65&&a<91?a-65:a>=97&&a<123?a-97:o},l=function(a,o){return a+22+75*(a<26)-((0!=o)<<5)},k=function(a,s,e){let i=0;for(a=e?t(a/700):a>>1,a+=t(a/s);a>455;i+=o)a=t(a/35);return t(i+36*a/(a+38))},g=function(s){const e=[],i=s.length;let n=0,r=128,c=72,p=s.lastIndexOf("-");p<0&&(p=0);for(let a=0;a<p;++a)s.charCodeAt(a)>=128&&m("not-basic"),e.push(s.charCodeAt(a));for(let l=p>0?p+1:0;l<i;){const p=n;for(let e=1,r=o;;r+=o){l>=i&&m("invalid-input");const p=u(s.charCodeAt(l++));p>=o&&m("invalid-input"),p>t((a-n)/e)&&m("overflow"),n+=p*e;const k=r<=c?1:r>=c+26?26:r-c;if(p<k)break;const g=o-k;e>t(a/g)&&m("overflow"),e*=g}const g=e.length+1;c=k(n-p,g,0==p),t(n/g)>a-r&&m("overflow"),r+=t(n/g),n%=g,e.splice(n++,0,r)}return String.fromCodePoint(...e)},d=function(s){const e=[],i=(s=p(s)).length;let n=128,c=0,u=72;for(const a of s)a<128&&e.push(r(a));const g=e.length;let d=g;for(g&&e.push("-");d<i;){let i=a;for(const a of s)a>=n&&a<i&&(i=a);const p=d+1;i-n>t((a-c)/p)&&m("overflow"),c+=(i-n)*p,n=i;for(const i of s)if(i<n&&++c>a&&m("overflow"),i===n){let a=c;for(let s=o;;s+=o){const i=s<=u?1:s>=u+26?26:s-u;if(a<i)break;const n=a-i,m=o-i;e.push(r(l(i+n%m,0))),a=t(n/m)}e.push(r(l(a,0))),u=k(c,p,d===g),c=0,++d}++c,++n}return e.join("")};return B={version:"2.3.1",ucs2:{decode:p,encode:a=>String.fromCodePoint(...a)},decode:g,encode:d,toASCII:function(a){return c(a,function(a){return e.test(a)?"xn--"+d(a):a})},toUnicode:function(a){return c(a,function(a){return s.test(a)?g(a.slice(4).toLowerCase()):a})}}}()),V=["ac","com.ac","edu.ac","gov.ac","mil.ac","net.ac","org.ac","ad","ae","ac.ae","co.ae","gov.ae","mil.ae","net.ae","org.ae","sch.ae","aero","airline.aero","airport.aero","accident-investigation.aero","accident-prevention.aero","aerobatic.aero","aeroclub.aero","aerodrome.aero","agents.aero","air-surveillance.aero","air-traffic-control.aero","aircraft.aero","airtraffic.aero","ambulance.aero","association.aero","author.aero","ballooning.aero","broker.aero","caa.aero","cargo.aero","catering.aero","certification.aero","championship.aero","charter.aero","civilaviation.aero","club.aero","conference.aero","consultant.aero","consulting.aero","control.aero","council.aero","crew.aero","design.aero","dgca.aero","educator.aero","emergency.aero","engine.aero","engineer.aero","entertainment.aero","equipment.aero","exchange.aero","express.aero","federation.aero","flight.aero","freight.aero","fuel.aero","gliding.aero","government.aero","groundhandling.aero","group.aero","hanggliding.aero","homebuilt.aero","insurance.aero","journal.aero","journalist.aero","leasing.aero","logistics.aero","magazine.aero","maintenance.aero","marketplace.aero","media.aero","microlight.aero","modelling.aero","navigation.aero","parachuting.aero","paragliding.aero","passenger-association.aero","pilot.aero","press.aero","production.aero","recreation.aero","repbody.aero","res.aero","research.aero","rotorcraft.aero","safety.aero","scientist.aero","services.aero","show.aero","skydiving.aero","software.aero","student.aero","taxi.aero","trader.aero","trading.aero","trainer.aero","union.aero","workinggroup.aero","works.aero","af","com.af","edu.af","gov.af","net.af","org.af","ag","co.ag","com.ag","net.ag","nom.ag","org.ag","ai","com.ai","net.ai","off.ai","org.ai","al","com.al","edu.al","gov.al","mil.al","net.al","org.al","am","co.am","com.am","commune.am","net.am","org.am","ao","co.ao","ed.ao","edu.ao","gov.ao","gv.ao","it.ao","og.ao","org.ao","pb.ao","aq","ar","bet.ar","com.ar","coop.ar","edu.ar","gob.ar","gov.ar","int.ar","mil.ar","musica.ar","mutual.ar","net.ar","org.ar","senasa.ar","tur.ar","arpa","e164.arpa","home.arpa","in-addr.arpa","ip6.arpa","iris.arpa","uri.arpa","urn.arpa","as","gov.as","asia","at","ac.at","sth.ac.at","co.at","gv.at","or.at","au","asn.au","com.au","edu.au","gov.au","id.au","net.au","org.au","conf.au","oz.au","act.au","nsw.au","nt.au","qld.au","sa.au","tas.au","vic.au","wa.au","act.edu.au","catholic.edu.au","nsw.edu.au","nt.edu.au","qld.edu.au","sa.edu.au","tas.edu.au","vic.edu.au","wa.edu.au","qld.gov.au","sa.gov.au","tas.gov.au","vic.gov.au","wa.gov.au","schools.nsw.edu.au","aw","com.aw","ax","az","biz.az","com.az","edu.az","gov.az","info.az","int.az","mil.az","name.az","net.az","org.az","pp.az","pro.az","ba","com.ba","edu.ba","gov.ba","mil.ba","net.ba","org.ba","bb","biz.bb","co.bb","com.bb","edu.bb","gov.bb","info.bb","net.bb","org.bb","store.bb","tv.bb","*.bd","be","ac.be","bf","gov.bf","bg","0.bg","1.bg","2.bg","3.bg","4.bg","5.bg","6.bg","7.bg","8.bg","9.bg","a.bg","b.bg","c.bg","d.bg","e.bg","f.bg","g.bg","h.bg","i.bg","j.bg","k.bg","l.bg","m.bg","n.bg","o.bg","p.bg","q.bg","r.bg","s.bg","t.bg","u.bg","v.bg","w.bg","x.bg","y.bg","z.bg","bh","com.bh","edu.bh","gov.bh","net.bh","org.bh","bi","co.bi","com.bi","edu.bi","or.bi","org.bi","biz","bj","africa.bj","agro.bj","architectes.bj","assur.bj","avocats.bj","co.bj","com.bj","eco.bj","econo.bj","edu.bj","info.bj","loisirs.bj","money.bj","net.bj","org.bj","ote.bj","restaurant.bj","resto.bj","tourism.bj","univ.bj","bm","com.bm","edu.bm","gov.bm","net.bm","org.bm","bn","com.bn","edu.bn","gov.bn","net.bn","org.bn","bo","com.bo","edu.bo","gob.bo","int.bo","mil.bo","net.bo","org.bo","tv.bo","web.bo","academia.bo","agro.bo","arte.bo","blog.bo","bolivia.bo","ciencia.bo","cooperativa.bo","democracia.bo","deporte.bo","ecologia.bo","economia.bo","empresa.bo","indigena.bo","industria.bo","info.bo","medicina.bo","movimiento.bo","musica.bo","natural.bo","nombre.bo","noticias.bo","patria.bo","plurinacional.bo","politica.bo","profesional.bo","pueblo.bo","revista.bo","salud.bo","tecnologia.bo","tksat.bo","transporte.bo","wiki.bo","br","9guacu.br","abc.br","adm.br","adv.br","agr.br","aju.br","am.br","anani.br","aparecida.br","app.br","arq.br","art.br","ato.br","b.br","barueri.br","belem.br","bet.br","bhz.br","bib.br","bio.br","blog.br","bmd.br","boavista.br","bsb.br","campinagrande.br","campinas.br","caxias.br","cim.br","cng.br","cnt.br","com.br","contagem.br","coop.br","coz.br","cri.br","cuiaba.br","curitiba.br","def.br","des.br","det.br","dev.br","ecn.br","eco.br","edu.br","emp.br","enf.br","eng.br","esp.br","etc.br","eti.br","far.br","feira.br","flog.br","floripa.br","fm.br","fnd.br","fortal.br","fot.br","foz.br","fst.br","g12.br","geo.br","ggf.br","goiania.br","gov.br","ac.gov.br","al.gov.br","am.gov.br","ap.gov.br","ba.gov.br","ce.gov.br","df.gov.br","es.gov.br","go.gov.br","ma.gov.br","mg.gov.br","ms.gov.br","mt.gov.br","pa.gov.br","pb.gov.br","pe.gov.br","pi.gov.br","pr.gov.br","rj.gov.br","rn.gov.br","ro.gov.br","rr.gov.br","rs.gov.br","sc.gov.br","se.gov.br","sp.gov.br","to.gov.br","gru.br","imb.br","ind.br","inf.br","jab.br","jampa.br","jdf.br","joinville.br","jor.br","jus.br","leg.br","leilao.br","lel.br","log.br","londrina.br","macapa.br","maceio.br","manaus.br","maringa.br","mat.br","med.br","mil.br","morena.br","mp.br","mus.br","natal.br","net.br","niteroi.br","*.nom.br","not.br","ntr.br","odo.br","ong.br","org.br","osasco.br","palmas.br","poa.br","ppg.br","pro.br","psc.br","psi.br","pvh.br","qsl.br","radio.br","rec.br","recife.br","rep.br","ribeirao.br","rio.br","riobranco.br","riopreto.br","salvador.br","sampa.br","santamaria.br","santoandre.br","saobernardo.br","saogonca.br","seg.br","sjc.br","slg.br","slz.br","sorocaba.br","srv.br","taxi.br","tc.br","tec.br","teo.br","the.br","tmp.br","trd.br","tur.br","tv.br","udi.br","vet.br","vix.br","vlog.br","wiki.br","zlg.br","bs","com.bs","edu.bs","gov.bs","net.bs","org.bs","bt","com.bt","edu.bt","gov.bt","net.bt","org.bt","bv","bw","co.bw","org.bw","by","gov.by","mil.by","com.by","of.by","bz","co.bz","com.bz","edu.bz","gov.bz","net.bz","org.bz","ca","ab.ca","bc.ca","mb.ca","nb.ca","nf.ca","nl.ca","ns.ca","nt.ca","nu.ca","on.ca","pe.ca","qc.ca","sk.ca","yk.ca","gc.ca","cat","cc","cd","gov.cd","cf","cg","ch","ci","ac.ci","aéroport.ci","asso.ci","co.ci","com.ci","ed.ci","edu.ci","go.ci","gouv.ci","int.ci","net.ci","or.ci","org.ci","*.ck","!www.ck","cl","co.cl","gob.cl","gov.cl","mil.cl","cm","co.cm","com.cm","gov.cm","net.cm","cn","ac.cn","com.cn","edu.cn","gov.cn","mil.cn","net.cn","org.cn","公司.cn","網絡.cn","网络.cn","ah.cn","bj.cn","cq.cn","fj.cn","gd.cn","gs.cn","gx.cn","gz.cn","ha.cn","hb.cn","he.cn","hi.cn","hk.cn","hl.cn","hn.cn","jl.cn","js.cn","jx.cn","ln.cn","mo.cn","nm.cn","nx.cn","qh.cn","sc.cn","sd.cn","sh.cn","sn.cn","sx.cn","tj.cn","tw.cn","xj.cn","xz.cn","yn.cn","zj.cn","co","com.co","edu.co","gov.co","mil.co","net.co","nom.co","org.co","com","coop","cr","ac.cr","co.cr","ed.cr","fi.cr","go.cr","or.cr","sa.cr","cu","com.cu","edu.cu","gob.cu","inf.cu","nat.cu","net.cu","org.cu","cv","com.cv","edu.cv","id.cv","int.cv","net.cv","nome.cv","org.cv","publ.cv","cw","com.cw","edu.cw","net.cw","org.cw","cx","gov.cx","cy","ac.cy","biz.cy","com.cy","ekloges.cy","gov.cy","ltd.cy","mil.cy","net.cy","org.cy","press.cy","pro.cy","tm.cy","cz","de","dj","dk","dm","co.dm","com.dm","edu.dm","gov.dm","net.dm","org.dm","do","art.do","com.do","edu.do","gob.do","gov.do","mil.do","net.do","org.do","sld.do","web.do","dz","art.dz","asso.dz","com.dz","edu.dz","gov.dz","net.dz","org.dz","pol.dz","soc.dz","tm.dz","ec","com.ec","edu.ec","fin.ec","gob.ec","gov.ec","info.ec","k12.ec","med.ec","mil.ec","net.ec","org.ec","pro.ec","edu","ee","aip.ee","com.ee","edu.ee","fie.ee","gov.ee","lib.ee","med.ee","org.ee","pri.ee","riik.ee","eg","ac.eg","com.eg","edu.eg","eun.eg","gov.eg","info.eg","me.eg","mil.eg","name.eg","net.eg","org.eg","sci.eg","sport.eg","tv.eg","*.er","es","com.es","edu.es","gob.es","nom.es","org.es","et","biz.et","com.et","edu.et","gov.et","info.et","name.et","net.et","org.et","eu","fi","aland.fi","fj","ac.fj","biz.fj","com.fj","gov.fj","info.fj","mil.fj","name.fj","net.fj","org.fj","pro.fj","*.fk","fm","com.fm","edu.fm","net.fm","org.fm","fo","fr","asso.fr","com.fr","gouv.fr","nom.fr","prd.fr","tm.fr","avoues.fr","cci.fr","greta.fr","huissier-justice.fr","ga","gb","gd","edu.gd","gov.gd","ge","com.ge","edu.ge","gov.ge","net.ge","org.ge","pvt.ge","school.ge","gf","gg","co.gg","net.gg","org.gg","gh","com.gh","edu.gh","gov.gh","mil.gh","org.gh","gi","com.gi","edu.gi","gov.gi","ltd.gi","mod.gi","org.gi","gl","co.gl","com.gl","edu.gl","net.gl","org.gl","gm","gn","ac.gn","com.gn","edu.gn","gov.gn","net.gn","org.gn","gov","gp","asso.gp","com.gp","edu.gp","mobi.gp","net.gp","org.gp","gq","gr","com.gr","edu.gr","gov.gr","net.gr","org.gr","gs","gt","com.gt","edu.gt","gob.gt","ind.gt","mil.gt","net.gt","org.gt","gu","com.gu","edu.gu","gov.gu","guam.gu","info.gu","net.gu","org.gu","web.gu","gw","gy","co.gy","com.gy","edu.gy","gov.gy","net.gy","org.gy","hk","com.hk","edu.hk","gov.hk","idv.hk","net.hk","org.hk","个人.hk","個人.hk","公司.hk","政府.hk","敎育.hk","教育.hk","箇人.hk","組織.hk","組织.hk","網絡.hk","網络.hk","组織.hk","组织.hk","网絡.hk","网络.hk","hm","hn","com.hn","edu.hn","gob.hn","mil.hn","net.hn","org.hn","hr","com.hr","from.hr","iz.hr","name.hr","ht","adult.ht","art.ht","asso.ht","com.ht","coop.ht","edu.ht","firm.ht","gouv.ht","info.ht","med.ht","net.ht","org.ht","perso.ht","pol.ht","pro.ht","rel.ht","shop.ht","hu","2000.hu","agrar.hu","bolt.hu","casino.hu","city.hu","co.hu","erotica.hu","erotika.hu","film.hu","forum.hu","games.hu","hotel.hu","info.hu","ingatlan.hu","jogasz.hu","konyvelo.hu","lakas.hu","media.hu","news.hu","org.hu","priv.hu","reklam.hu","sex.hu","shop.hu","sport.hu","suli.hu","szex.hu","tm.hu","tozsde.hu","utazas.hu","video.hu","id","ac.id","biz.id","co.id","desa.id","go.id","mil.id","my.id","net.id","or.id","ponpes.id","sch.id","web.id","ie","gov.ie","il","ac.il","co.il","gov.il","idf.il","k12.il","muni.il","net.il","org.il","ישראל","אקדמיה.ישראל","ישוב.ישראל","צהל.ישראל","ממשל.ישראל","im","ac.im","co.im","ltd.co.im","plc.co.im","com.im","net.im","org.im","tt.im","tv.im","in","5g.in","6g.in","ac.in","ai.in","am.in","bihar.in","biz.in","business.in","ca.in","cn.in","co.in","com.in","coop.in","cs.in","delhi.in","dr.in","edu.in","er.in","firm.in","gen.in","gov.in","gujarat.in","ind.in","info.in","int.in","internet.in","io.in","me.in","mil.in","net.in","nic.in","org.in","pg.in","post.in","pro.in","res.in","travel.in","tv.in","uk.in","up.in","us.in","info","int","eu.int","io","co.io","com.io","edu.io","gov.io","mil.io","net.io","nom.io","org.io","iq","com.iq","edu.iq","gov.iq","mil.iq","net.iq","org.iq","ir","ac.ir","co.ir","gov.ir","id.ir","net.ir","org.ir","sch.ir","ایران.ir","ايران.ir","is","it","edu.it","gov.it","abr.it","abruzzo.it","aosta-valley.it","aostavalley.it","bas.it","basilicata.it","cal.it","calabria.it","cam.it","campania.it","emilia-romagna.it","emiliaromagna.it","emr.it","friuli-v-giulia.it","friuli-ve-giulia.it","friuli-vegiulia.it","friuli-venezia-giulia.it","friuli-veneziagiulia.it","friuli-vgiulia.it","friuliv-giulia.it","friulive-giulia.it","friulivegiulia.it","friulivenezia-giulia.it","friuliveneziagiulia.it","friulivgiulia.it","fvg.it","laz.it","lazio.it","lig.it","liguria.it","lom.it","lombardia.it","lombardy.it","lucania.it","mar.it","marche.it","mol.it","molise.it","piedmont.it","piemonte.it","pmn.it","pug.it","puglia.it","sar.it","sardegna.it","sardinia.it","sic.it","sicilia.it","sicily.it","taa.it","tos.it","toscana.it","trentin-sud-tirol.it","trentin-süd-tirol.it","trentin-sudtirol.it","trentin-südtirol.it","trentin-sued-tirol.it","trentin-suedtirol.it","trentino.it","trentino-a-adige.it","trentino-aadige.it","trentino-alto-adige.it","trentino-altoadige.it","trentino-s-tirol.it","trentino-stirol.it","trentino-sud-tirol.it","trentino-süd-tirol.it","trentino-sudtirol.it","trentino-südtirol.it","trentino-sued-tirol.it","trentino-suedtirol.it","trentinoa-adige.it","trentinoaadige.it","trentinoalto-adige.it","trentinoaltoadige.it","trentinos-tirol.it","trentinostirol.it","trentinosud-tirol.it","trentinosüd-tirol.it","trentinosudtirol.it","trentinosüdtirol.it","trentinosued-tirol.it","trentinosuedtirol.it","trentinsud-tirol.it","trentinsüd-tirol.it","trentinsudtirol.it","trentinsüdtirol.it","trentinsued-tirol.it","trentinsuedtirol.it","tuscany.it","umb.it","umbria.it","val-d-aosta.it","val-daosta.it","vald-aosta.it","valdaosta.it","valle-aosta.it","valle-d-aosta.it","valle-daosta.it","valleaosta.it","valled-aosta.it","valledaosta.it","vallee-aoste.it","vallée-aoste.it","vallee-d-aoste.it","vallée-d-aoste.it","valleeaoste.it","valléeaoste.it","valleedaoste.it","valléedaoste.it","vao.it","vda.it","ven.it","veneto.it","ag.it","agrigento.it","al.it","alessandria.it","alto-adige.it","altoadige.it","an.it","ancona.it","andria-barletta-trani.it","andria-trani-barletta.it","andriabarlettatrani.it","andriatranibarletta.it","ao.it","aosta.it","aoste.it","ap.it","aq.it","aquila.it","ar.it","arezzo.it","ascoli-piceno.it","ascolipiceno.it","asti.it","at.it","av.it","avellino.it","ba.it","balsan.it","balsan-sudtirol.it","balsan-südtirol.it","balsan-suedtirol.it","bari.it","barletta-trani-andria.it","barlettatraniandria.it","belluno.it","benevento.it","bergamo.it","bg.it","bi.it","biella.it","bl.it","bn.it","bo.it","bologna.it","bolzano.it","bolzano-altoadige.it","bozen.it","bozen-sudtirol.it","bozen-südtirol.it","bozen-suedtirol.it","br.it","brescia.it","brindisi.it","bs.it","bt.it","bulsan.it","bulsan-sudtirol.it","bulsan-südtirol.it","bulsan-suedtirol.it","bz.it","ca.it","cagliari.it","caltanissetta.it","campidano-medio.it","campidanomedio.it","campobasso.it","carbonia-iglesias.it","carboniaiglesias.it","carrara-massa.it","carraramassa.it","caserta.it","catania.it","catanzaro.it","cb.it","ce.it","cesena-forli.it","cesena-forlì.it","cesenaforli.it","cesenaforlì.it","ch.it","chieti.it","ci.it","cl.it","cn.it","co.it","como.it","cosenza.it","cr.it","cremona.it","crotone.it","cs.it","ct.it","cuneo.it","cz.it","dell-ogliastra.it","dellogliastra.it","en.it","enna.it","fc.it","fe.it","fermo.it","ferrara.it","fg.it","fi.it","firenze.it","florence.it","fm.it","foggia.it","forli-cesena.it","forlì-cesena.it","forlicesena.it","forlìcesena.it","fr.it","frosinone.it","ge.it","genoa.it","genova.it","go.it","gorizia.it","gr.it","grosseto.it","iglesias-carbonia.it","iglesiascarbonia.it","im.it","imperia.it","is.it","isernia.it","kr.it","la-spezia.it","laquila.it","laspezia.it","latina.it","lc.it","le.it","lecce.it","lecco.it","li.it","livorno.it","lo.it","lodi.it","lt.it","lu.it","lucca.it","macerata.it","mantova.it","massa-carrara.it","massacarrara.it","matera.it","mb.it","mc.it","me.it","medio-campidano.it","mediocampidano.it","messina.it","mi.it","milan.it","milano.it","mn.it","mo.it","modena.it","monza.it","monza-brianza.it","monza-e-della-brianza.it","monzabrianza.it","monzaebrianza.it","monzaedellabrianza.it","ms.it","mt.it","na.it","naples.it","napoli.it","no.it","novara.it","nu.it","nuoro.it","og.it","ogliastra.it","olbia-tempio.it","olbiatempio.it","or.it","oristano.it","ot.it","pa.it","padova.it","padua.it","palermo.it","parma.it","pavia.it","pc.it","pd.it","pe.it","perugia.it","pesaro-urbino.it","pesarourbino.it","pescara.it","pg.it","pi.it","piacenza.it","pisa.it","pistoia.it","pn.it","po.it","pordenone.it","potenza.it","pr.it","prato.it","pt.it","pu.it","pv.it","pz.it","ra.it","ragusa.it","ravenna.it","rc.it","re.it","reggio-calabria.it","reggio-emilia.it","reggiocalabria.it","reggioemilia.it","rg.it","ri.it","rieti.it","rimini.it","rm.it","rn.it","ro.it","roma.it","rome.it","rovigo.it","sa.it","salerno.it","sassari.it","savona.it","si.it","siena.it","siracusa.it","so.it","sondrio.it","sp.it","sr.it","ss.it","südtirol.it","suedtirol.it","sv.it","ta.it","taranto.it","te.it","tempio-olbia.it","tempioolbia.it","teramo.it","terni.it","tn.it","to.it","torino.it","tp.it","tr.it","trani-andria-barletta.it","trani-barletta-andria.it","traniandriabarletta.it","tranibarlettaandria.it","trapani.it","trento.it","treviso.it","trieste.it","ts.it","turin.it","tv.it","ud.it","udine.it","urbino-pesaro.it","urbinopesaro.it","va.it","varese.it","vb.it","vc.it","ve.it","venezia.it","venice.it","verbania.it","vercelli.it","verona.it","vi.it","vibo-valentia.it","vibovalentia.it","vicenza.it","viterbo.it","vr.it","vs.it","vt.it","vv.it","je","co.je","net.je","org.je","*.jm","jo","agri.jo","ai.jo","com.jo","edu.jo","eng.jo","fm.jo","gov.jo","mil.jo","net.jo","org.jo","per.jo","phd.jo","sch.jo","tv.jo","jobs","jp","ac.jp","ad.jp","co.jp","ed.jp","go.jp","gr.jp","lg.jp","ne.jp","or.jp","aichi.jp","akita.jp","aomori.jp","chiba.jp","ehime.jp","fukui.jp","fukuoka.jp","fukushima.jp","gifu.jp","gunma.jp","hiroshima.jp","hokkaido.jp","hyogo.jp","ibaraki.jp","ishikawa.jp","iwate.jp","kagawa.jp","kagoshima.jp","kanagawa.jp","kochi.jp","kumamoto.jp","kyoto.jp","mie.jp","miyagi.jp","miyazaki.jp","nagano.jp","nagasaki.jp","nara.jp","niigata.jp","oita.jp","okayama.jp","okinawa.jp","osaka.jp","saga.jp","saitama.jp","shiga.jp","shimane.jp","shizuoka.jp","tochigi.jp","tokushima.jp","tokyo.jp","tottori.jp","toyama.jp","wakayama.jp","yamagata.jp","yamaguchi.jp","yamanashi.jp","三重.jp","京都.jp","佐賀.jp","兵庫.jp","北海道.jp","千葉.jp","和歌山.jp","埼玉.jp","大分.jp","大阪.jp","奈良.jp","宮城.jp","宮崎.jp","富山.jp","山口.jp","山形.jp","山梨.jp","岐阜.jp","岡山.jp","岩手.jp","島根.jp","広島.jp","徳島.jp","愛媛.jp","愛知.jp","新潟.jp","東京.jp","栃木.jp","沖縄.jp","滋賀.jp","熊本.jp","石川.jp","神奈川.jp","福井.jp","福岡.jp","福島.jp","秋田.jp","群馬.jp","茨城.jp","長崎.jp","長野.jp","青森.jp","静岡.jp","香川.jp","高知.jp","鳥取.jp","鹿児島.jp","*.kawasaki.jp","!city.kawasaki.jp","*.kitakyushu.jp","!city.kitakyushu.jp","*.kobe.jp","!city.kobe.jp","*.nagoya.jp","!city.nagoya.jp","*.sapporo.jp","!city.sapporo.jp","*.sendai.jp","!city.sendai.jp","*.yokohama.jp","!city.yokohama.jp","aisai.aichi.jp","ama.aichi.jp","anjo.aichi.jp","asuke.aichi.jp","chiryu.aichi.jp","chita.aichi.jp","fuso.aichi.jp","gamagori.aichi.jp","handa.aichi.jp","hazu.aichi.jp","hekinan.aichi.jp","higashiura.aichi.jp","ichinomiya.aichi.jp","inazawa.aichi.jp","inuyama.aichi.jp","isshiki.aichi.jp","iwakura.aichi.jp","kanie.aichi.jp","kariya.aichi.jp","kasugai.aichi.jp","kira.aichi.jp","kiyosu.aichi.jp","komaki.aichi.jp","konan.aichi.jp","kota.aichi.jp","mihama.aichi.jp","miyoshi.aichi.jp","nishio.aichi.jp","nisshin.aichi.jp","obu.aichi.jp","oguchi.aichi.jp","oharu.aichi.jp","okazaki.aichi.jp","owariasahi.aichi.jp","seto.aichi.jp","shikatsu.aichi.jp","shinshiro.aichi.jp","shitara.aichi.jp","tahara.aichi.jp","takahama.aichi.jp","tobishima.aichi.jp","toei.aichi.jp","togo.aichi.jp","tokai.aichi.jp","tokoname.aichi.jp","toyoake.aichi.jp","toyohashi.aichi.jp","toyokawa.aichi.jp","toyone.aichi.jp","toyota.aichi.jp","tsushima.aichi.jp","yatomi.aichi.jp","akita.akita.jp","daisen.akita.jp","fujisato.akita.jp","gojome.akita.jp","hachirogata.akita.jp","happou.akita.jp","higashinaruse.akita.jp","honjo.akita.jp","honjyo.akita.jp","ikawa.akita.jp","kamikoani.akita.jp","kamioka.akita.jp","katagami.akita.jp","kazuno.akita.jp","kitaakita.akita.jp","kosaka.akita.jp","kyowa.akita.jp","misato.akita.jp","mitane.akita.jp","moriyoshi.akita.jp","nikaho.akita.jp","noshiro.akita.jp","odate.akita.jp","oga.akita.jp","ogata.akita.jp","semboku.akita.jp","yokote.akita.jp","yurihonjo.akita.jp","aomori.aomori.jp","gonohe.aomori.jp","hachinohe.aomori.jp","hashikami.aomori.jp","hiranai.aomori.jp","hirosaki.aomori.jp","itayanagi.aomori.jp","kuroishi.aomori.jp","misawa.aomori.jp","mutsu.aomori.jp","nakadomari.aomori.jp","noheji.aomori.jp","oirase.aomori.jp","owani.aomori.jp","rokunohe.aomori.jp","sannohe.aomori.jp","shichinohe.aomori.jp","shingo.aomori.jp","takko.aomori.jp","towada.aomori.jp","tsugaru.aomori.jp","tsuruta.aomori.jp","abiko.chiba.jp","asahi.chiba.jp","chonan.chiba.jp","chosei.chiba.jp","choshi.chiba.jp","chuo.chiba.jp","funabashi.chiba.jp","futtsu.chiba.jp","hanamigawa.chiba.jp","ichihara.chiba.jp","ichikawa.chiba.jp","ichinomiya.chiba.jp","inzai.chiba.jp","isumi.chiba.jp","kamagaya.chiba.jp","kamogawa.chiba.jp","kashiwa.chiba.jp","katori.chiba.jp","katsuura.chiba.jp","kimitsu.chiba.jp","kisarazu.chiba.jp","kozaki.chiba.jp","kujukuri.chiba.jp","kyonan.chiba.jp","matsudo.chiba.jp","midori.chiba.jp","mihama.chiba.jp","minamiboso.chiba.jp","mobara.chiba.jp","mutsuzawa.chiba.jp","nagara.chiba.jp","nagareyama.chiba.jp","narashino.chiba.jp","narita.chiba.jp","noda.chiba.jp","oamishirasato.chiba.jp","omigawa.chiba.jp","onjuku.chiba.jp","otaki.chiba.jp","sakae.chiba.jp","sakura.chiba.jp","shimofusa.chiba.jp","shirako.chiba.jp","shiroi.chiba.jp","shisui.chiba.jp","sodegaura.chiba.jp","sosa.chiba.jp","tako.chiba.jp","tateyama.chiba.jp","togane.chiba.jp","tohnosho.chiba.jp","tomisato.chiba.jp","urayasu.chiba.jp","yachimata.chiba.jp","yachiyo.chiba.jp","yokaichiba.chiba.jp","yokoshibahikari.chiba.jp","yotsukaido.chiba.jp","ainan.ehime.jp","honai.ehime.jp","ikata.ehime.jp","imabari.ehime.jp","iyo.ehime.jp","kamijima.ehime.jp","kihoku.ehime.jp","kumakogen.ehime.jp","masaki.ehime.jp","matsuno.ehime.jp","matsuyama.ehime.jp","namikata.ehime.jp","niihama.ehime.jp","ozu.ehime.jp","saijo.ehime.jp","seiyo.ehime.jp","shikokuchuo.ehime.jp","tobe.ehime.jp","toon.ehime.jp","uchiko.ehime.jp","uwajima.ehime.jp","yawatahama.ehime.jp","echizen.fukui.jp","eiheiji.fukui.jp","fukui.fukui.jp","ikeda.fukui.jp","katsuyama.fukui.jp","mihama.fukui.jp","minamiechizen.fukui.jp","obama.fukui.jp","ohi.fukui.jp","ono.fukui.jp","sabae.fukui.jp","sakai.fukui.jp","takahama.fukui.jp","tsuruga.fukui.jp","wakasa.fukui.jp","ashiya.fukuoka.jp","buzen.fukuoka.jp","chikugo.fukuoka.jp","chikuho.fukuoka.jp","chikujo.fukuoka.jp","chikushino.fukuoka.jp","chikuzen.fukuoka.jp","chuo.fukuoka.jp","dazaifu.fukuoka.jp","fukuchi.fukuoka.jp","hakata.fukuoka.jp","higashi.fukuoka.jp","hirokawa.fukuoka.jp","hisayama.fukuoka.jp","iizuka.fukuoka.jp","inatsuki.fukuoka.jp","kaho.fukuoka.jp","kasuga.fukuoka.jp","kasuya.fukuoka.jp","kawara.fukuoka.jp","keisen.fukuoka.jp","koga.fukuoka.jp","kurate.fukuoka.jp","kurogi.fukuoka.jp","kurume.fukuoka.jp","minami.fukuoka.jp","miyako.fukuoka.jp","miyama.fukuoka.jp","miyawaka.fukuoka.jp","mizumaki.fukuoka.jp","munakata.fukuoka.jp","nakagawa.fukuoka.jp","nakama.fukuoka.jp","nishi.fukuoka.jp","nogata.fukuoka.jp","ogori.fukuoka.jp","okagaki.fukuoka.jp","okawa.fukuoka.jp","oki.fukuoka.jp","omuta.fukuoka.jp","onga.fukuoka.jp","onojo.fukuoka.jp","oto.fukuoka.jp","saigawa.fukuoka.jp","sasaguri.fukuoka.jp","shingu.fukuoka.jp","shinyoshitomi.fukuoka.jp","shonai.fukuoka.jp","soeda.fukuoka.jp","sue.fukuoka.jp","tachiarai.fukuoka.jp","tagawa.fukuoka.jp","takata.fukuoka.jp","toho.fukuoka.jp","toyotsu.fukuoka.jp","tsuiki.fukuoka.jp","ukiha.fukuoka.jp","umi.fukuoka.jp","usui.fukuoka.jp","yamada.fukuoka.jp","yame.fukuoka.jp","yanagawa.fukuoka.jp","yukuhashi.fukuoka.jp","aizubange.fukushima.jp","aizumisato.fukushima.jp","aizuwakamatsu.fukushima.jp","asakawa.fukushima.jp","bandai.fukushima.jp","date.fukushima.jp","fukushima.fukushima.jp","furudono.fukushima.jp","futaba.fukushima.jp","hanawa.fukushima.jp","higashi.fukushima.jp","hirata.fukushima.jp","hirono.fukushima.jp","iitate.fukushima.jp","inawashiro.fukushima.jp","ishikawa.fukushima.jp","iwaki.fukushima.jp","izumizaki.fukushima.jp","kagamiishi.fukushima.jp","kaneyama.fukushima.jp","kawamata.fukushima.jp","kitakata.fukushima.jp","kitashiobara.fukushima.jp","koori.fukushima.jp","koriyama.fukushima.jp","kunimi.fukushima.jp","miharu.fukushima.jp","mishima.fukushima.jp","namie.fukushima.jp","nango.fukushima.jp","nishiaizu.fukushima.jp","nishigo.fukushima.jp","okuma.fukushima.jp","omotego.fukushima.jp","ono.fukushima.jp","otama.fukushima.jp","samegawa.fukushima.jp","shimogo.fukushima.jp","shirakawa.fukushima.jp","showa.fukushima.jp","soma.fukushima.jp","sukagawa.fukushima.jp","taishin.fukushima.jp","tamakawa.fukushima.jp","tanagura.fukushima.jp","tenei.fukushima.jp","yabuki.fukushima.jp","yamato.fukushima.jp","yamatsuri.fukushima.jp","yanaizu.fukushima.jp","yugawa.fukushima.jp","anpachi.gifu.jp","ena.gifu.jp","gifu.gifu.jp","ginan.gifu.jp","godo.gifu.jp","gujo.gifu.jp","hashima.gifu.jp","hichiso.gifu.jp","hida.gifu.jp","higashishirakawa.gifu.jp","ibigawa.gifu.jp","ikeda.gifu.jp","kakamigahara.gifu.jp","kani.gifu.jp","kasahara.gifu.jp","kasamatsu.gifu.jp","kawaue.gifu.jp","kitagata.gifu.jp","mino.gifu.jp","minokamo.gifu.jp","mitake.gifu.jp","mizunami.gifu.jp","motosu.gifu.jp","nakatsugawa.gifu.jp","ogaki.gifu.jp","sakahogi.gifu.jp","seki.gifu.jp","sekigahara.gifu.jp","shirakawa.gifu.jp","tajimi.gifu.jp","takayama.gifu.jp","tarui.gifu.jp","toki.gifu.jp","tomika.gifu.jp","wanouchi.gifu.jp","yamagata.gifu.jp","yaotsu.gifu.jp","yoro.gifu.jp","annaka.gunma.jp","chiyoda.gunma.jp","fujioka.gunma.jp","higashiagatsuma.gunma.jp","isesaki.gunma.jp","itakura.gunma.jp","kanna.gunma.jp","kanra.gunma.jp","katashina.gunma.jp","kawaba.gunma.jp","kiryu.gunma.jp","kusatsu.gunma.jp","maebashi.gunma.jp","meiwa.gunma.jp","midori.gunma.jp","minakami.gunma.jp","naganohara.gunma.jp","nakanojo.gunma.jp","nanmoku.gunma.jp","numata.gunma.jp","oizumi.gunma.jp","ora.gunma.jp","ota.gunma.jp","shibukawa.gunma.jp","shimonita.gunma.jp","shinto.gunma.jp","showa.gunma.jp","takasaki.gunma.jp","takayama.gunma.jp","tamamura.gunma.jp","tatebayashi.gunma.jp","tomioka.gunma.jp","tsukiyono.gunma.jp","tsumagoi.gunma.jp","ueno.gunma.jp","yoshioka.gunma.jp","asaminami.hiroshima.jp","daiwa.hiroshima.jp","etajima.hiroshima.jp","fuchu.hiroshima.jp","fukuyama.hiroshima.jp","hatsukaichi.hiroshima.jp","higashihiroshima.hiroshima.jp","hongo.hiroshima.jp","jinsekikogen.hiroshima.jp","kaita.hiroshima.jp","kui.hiroshima.jp","kumano.hiroshima.jp","kure.hiroshima.jp","mihara.hiroshima.jp","miyoshi.hiroshima.jp","naka.hiroshima.jp","onomichi.hiroshima.jp","osakikamijima.hiroshima.jp","otake.hiroshima.jp","saka.hiroshima.jp","sera.hiroshima.jp","seranishi.hiroshima.jp","shinichi.hiroshima.jp","shobara.hiroshima.jp","takehara.hiroshima.jp","abashiri.hokkaido.jp","abira.hokkaido.jp","aibetsu.hokkaido.jp","akabira.hokkaido.jp","akkeshi.hokkaido.jp","asahikawa.hokkaido.jp","ashibetsu.hokkaido.jp","ashoro.hokkaido.jp","assabu.hokkaido.jp","atsuma.hokkaido.jp","bibai.hokkaido.jp","biei.hokkaido.jp","bifuka.hokkaido.jp","bihoro.hokkaido.jp","biratori.hokkaido.jp","chippubetsu.hokkaido.jp","chitose.hokkaido.jp","date.hokkaido.jp","ebetsu.hokkaido.jp","embetsu.hokkaido.jp","eniwa.hokkaido.jp","erimo.hokkaido.jp","esan.hokkaido.jp","esashi.hokkaido.jp","fukagawa.hokkaido.jp","fukushima.hokkaido.jp","furano.hokkaido.jp","furubira.hokkaido.jp","haboro.hokkaido.jp","hakodate.hokkaido.jp","hamatonbetsu.hokkaido.jp","hidaka.hokkaido.jp","higashikagura.hokkaido.jp","higashikawa.hokkaido.jp","hiroo.hokkaido.jp","hokuryu.hokkaido.jp","hokuto.hokkaido.jp","honbetsu.hokkaido.jp","horokanai.hokkaido.jp","horonobe.hokkaido.jp","ikeda.hokkaido.jp","imakane.hokkaido.jp","ishikari.hokkaido.jp","iwamizawa.hokkaido.jp","iwanai.hokkaido.jp","kamifurano.hokkaido.jp","kamikawa.hokkaido.jp","kamishihoro.hokkaido.jp","kamisunagawa.hokkaido.jp","kamoenai.hokkaido.jp","kayabe.hokkaido.jp","kembuchi.hokkaido.jp","kikonai.hokkaido.jp","kimobetsu.hokkaido.jp","kitahiroshima.hokkaido.jp","kitami.hokkaido.jp","kiyosato.hokkaido.jp","koshimizu.hokkaido.jp","kunneppu.hokkaido.jp","kuriyama.hokkaido.jp","kuromatsunai.hokkaido.jp","kushiro.hokkaido.jp","kutchan.hokkaido.jp","kyowa.hokkaido.jp","mashike.hokkaido.jp","matsumae.hokkaido.jp","mikasa.hokkaido.jp","minamifurano.hokkaido.jp","mombetsu.hokkaido.jp","moseushi.hokkaido.jp","mukawa.hokkaido.jp","muroran.hokkaido.jp","naie.hokkaido.jp","nakagawa.hokkaido.jp","nakasatsunai.hokkaido.jp","nakatombetsu.hokkaido.jp","nanae.hokkaido.jp","nanporo.hokkaido.jp","nayoro.hokkaido.jp","nemuro.hokkaido.jp","niikappu.hokkaido.jp","niki.hokkaido.jp","nishiokoppe.hokkaido.jp","noboribetsu.hokkaido.jp","numata.hokkaido.jp","obihiro.hokkaido.jp","obira.hokkaido.jp","oketo.hokkaido.jp","okoppe.hokkaido.jp","otaru.hokkaido.jp","otobe.hokkaido.jp","otofuke.hokkaido.jp","otoineppu.hokkaido.jp","oumu.hokkaido.jp","ozora.hokkaido.jp","pippu.hokkaido.jp","rankoshi.hokkaido.jp","rebun.hokkaido.jp","rikubetsu.hokkaido.jp","rishiri.hokkaido.jp","rishirifuji.hokkaido.jp","saroma.hokkaido.jp","sarufutsu.hokkaido.jp","shakotan.hokkaido.jp","shari.hokkaido.jp","shibecha.hokkaido.jp","shibetsu.hokkaido.jp","shikabe.hokkaido.jp","shikaoi.hokkaido.jp","shimamaki.hokkaido.jp","shimizu.hokkaido.jp","shimokawa.hokkaido.jp","shinshinotsu.hokkaido.jp","shintoku.hokkaido.jp","shiranuka.hokkaido.jp","shiraoi.hokkaido.jp","shiriuchi.hokkaido.jp","sobetsu.hokkaido.jp","sunagawa.hokkaido.jp","taiki.hokkaido.jp","takasu.hokkaido.jp","takikawa.hokkaido.jp","takinoue.hokkaido.jp","teshikaga.hokkaido.jp","tobetsu.hokkaido.jp","tohma.hokkaido.jp","tomakomai.hokkaido.jp","tomari.hokkaido.jp","toya.hokkaido.jp","toyako.hokkaido.jp","toyotomi.hokkaido.jp","toyoura.hokkaido.jp","tsubetsu.hokkaido.jp","tsukigata.hokkaido.jp","urakawa.hokkaido.jp","urausu.hokkaido.jp","uryu.hokkaido.jp","utashinai.hokkaido.jp","wakkanai.hokkaido.jp","wassamu.hokkaido.jp","yakumo.hokkaido.jp","yoichi.hokkaido.jp","aioi.hyogo.jp","akashi.hyogo.jp","ako.hyogo.jp","amagasaki.hyogo.jp","aogaki.hyogo.jp","asago.hyogo.jp","ashiya.hyogo.jp","awaji.hyogo.jp","fukusaki.hyogo.jp","goshiki.hyogo.jp","harima.hyogo.jp","himeji.hyogo.jp","ichikawa.hyogo.jp","inagawa.hyogo.jp","itami.hyogo.jp","kakogawa.hyogo.jp","kamigori.hyogo.jp","kamikawa.hyogo.jp","kasai.hyogo.jp","kasuga.hyogo.jp","kawanishi.hyogo.jp","miki.hyogo.jp","minamiawaji.hyogo.jp","nishinomiya.hyogo.jp","nishiwaki.hyogo.jp","ono.hyogo.jp","sanda.hyogo.jp","sannan.hyogo.jp","sasayama.hyogo.jp","sayo.hyogo.jp","shingu.hyogo.jp","shinonsen.hyogo.jp","shiso.hyogo.jp","sumoto.hyogo.jp","taishi.hyogo.jp","taka.hyogo.jp","takarazuka.hyogo.jp","takasago.hyogo.jp","takino.hyogo.jp","tamba.hyogo.jp","tatsuno.hyogo.jp","toyooka.hyogo.jp","yabu.hyogo.jp","yashiro.hyogo.jp","yoka.hyogo.jp","yokawa.hyogo.jp","ami.ibaraki.jp","asahi.ibaraki.jp","bando.ibaraki.jp","chikusei.ibaraki.jp","daigo.ibaraki.jp","fujishiro.ibaraki.jp","hitachi.ibaraki.jp","hitachinaka.ibaraki.jp","hitachiomiya.ibaraki.jp","hitachiota.ibaraki.jp","ibaraki.ibaraki.jp","ina.ibaraki.jp","inashiki.ibaraki.jp","itako.ibaraki.jp","iwama.ibaraki.jp","joso.ibaraki.jp","kamisu.ibaraki.jp","kasama.ibaraki.jp","kashima.ibaraki.jp","kasumigaura.ibaraki.jp","koga.ibaraki.jp","miho.ibaraki.jp","mito.ibaraki.jp","moriya.ibaraki.jp","naka.ibaraki.jp","namegata.ibaraki.jp","oarai.ibaraki.jp","ogawa.ibaraki.jp","omitama.ibaraki.jp","ryugasaki.ibaraki.jp","sakai.ibaraki.jp","sakuragawa.ibaraki.jp","shimodate.ibaraki.jp","shimotsuma.ibaraki.jp","shirosato.ibaraki.jp","sowa.ibaraki.jp","suifu.ibaraki.jp","takahagi.ibaraki.jp","tamatsukuri.ibaraki.jp","tokai.ibaraki.jp","tomobe.ibaraki.jp","tone.ibaraki.jp","toride.ibaraki.jp","tsuchiura.ibaraki.jp","tsukuba.ibaraki.jp","uchihara.ibaraki.jp","ushiku.ibaraki.jp","yachiyo.ibaraki.jp","yamagata.ibaraki.jp","yawara.ibaraki.jp","yuki.ibaraki.jp","anamizu.ishikawa.jp","hakui.ishikawa.jp","hakusan.ishikawa.jp","kaga.ishikawa.jp","kahoku.ishikawa.jp","kanazawa.ishikawa.jp","kawakita.ishikawa.jp","komatsu.ishikawa.jp","nakanoto.ishikawa.jp","nanao.ishikawa.jp","nomi.ishikawa.jp","nonoichi.ishikawa.jp","noto.ishikawa.jp","shika.ishikawa.jp","suzu.ishikawa.jp","tsubata.ishikawa.jp","tsurugi.ishikawa.jp","uchinada.ishikawa.jp","wajima.ishikawa.jp","fudai.iwate.jp","fujisawa.iwate.jp","hanamaki.iwate.jp","hiraizumi.iwate.jp","hirono.iwate.jp","ichinohe.iwate.jp","ichinoseki.iwate.jp","iwaizumi.iwate.jp","iwate.iwate.jp","joboji.iwate.jp","kamaishi.iwate.jp","kanegasaki.iwate.jp","karumai.iwate.jp","kawai.iwate.jp","kitakami.iwate.jp","kuji.iwate.jp","kunohe.iwate.jp","kuzumaki.iwate.jp","miyako.iwate.jp","mizusawa.iwate.jp","morioka.iwate.jp","ninohe.iwate.jp","noda.iwate.jp","ofunato.iwate.jp","oshu.iwate.jp","otsuchi.iwate.jp","rikuzentakata.iwate.jp","shiwa.iwate.jp","shizukuishi.iwate.jp","sumita.iwate.jp","tanohata.iwate.jp","tono.iwate.jp","yahaba.iwate.jp","yamada.iwate.jp","ayagawa.kagawa.jp","higashikagawa.kagawa.jp","kanonji.kagawa.jp","kotohira.kagawa.jp","manno.kagawa.jp","marugame.kagawa.jp","mitoyo.kagawa.jp","naoshima.kagawa.jp","sanuki.kagawa.jp","tadotsu.kagawa.jp","takamatsu.kagawa.jp","tonosho.kagawa.jp","uchinomi.kagawa.jp","utazu.kagawa.jp","zentsuji.kagawa.jp","akune.kagoshima.jp","amami.kagoshima.jp","hioki.kagoshima.jp","isa.kagoshima.jp","isen.kagoshima.jp","izumi.kagoshima.jp","kagoshima.kagoshima.jp","kanoya.kagoshima.jp","kawanabe.kagoshima.jp","kinko.kagoshima.jp","kouyama.kagoshima.jp","makurazaki.kagoshima.jp","matsumoto.kagoshima.jp","minamitane.kagoshima.jp","nakatane.kagoshima.jp","nishinoomote.kagoshima.jp","satsumasendai.kagoshima.jp","soo.kagoshima.jp","tarumizu.kagoshima.jp","yusui.kagoshima.jp","aikawa.kanagawa.jp","atsugi.kanagawa.jp","ayase.kanagawa.jp","chigasaki.kanagawa.jp","ebina.kanagawa.jp","fujisawa.kanagawa.jp","hadano.kanagawa.jp","hakone.kanagawa.jp","hiratsuka.kanagawa.jp","isehara.kanagawa.jp","kaisei.kanagawa.jp","kamakura.kanagawa.jp","kiyokawa.kanagawa.jp","matsuda.kanagawa.jp","minamiashigara.kanagawa.jp","miura.kanagawa.jp","nakai.kanagawa.jp","ninomiya.kanagawa.jp","odawara.kanagawa.jp","oi.kanagawa.jp","oiso.kanagawa.jp","sagamihara.kanagawa.jp","samukawa.kanagawa.jp","tsukui.kanagawa.jp","yamakita.kanagawa.jp","yamato.kanagawa.jp","yokosuka.kanagawa.jp","yugawara.kanagawa.jp","zama.kanagawa.jp","zushi.kanagawa.jp","aki.kochi.jp","geisei.kochi.jp","hidaka.kochi.jp","higashitsuno.kochi.jp","ino.kochi.jp","kagami.kochi.jp","kami.kochi.jp","kitagawa.kochi.jp","kochi.kochi.jp","mihara.kochi.jp","motoyama.kochi.jp","muroto.kochi.jp","nahari.kochi.jp","nakamura.kochi.jp","nankoku.kochi.jp","nishitosa.kochi.jp","niyodogawa.kochi.jp","ochi.kochi.jp","okawa.kochi.jp","otoyo.kochi.jp","otsuki.kochi.jp","sakawa.kochi.jp","sukumo.kochi.jp","susaki.kochi.jp","tosa.kochi.jp","tosashimizu.kochi.jp","toyo.kochi.jp","tsuno.kochi.jp","umaji.kochi.jp","yasuda.kochi.jp","yusuhara.kochi.jp","amakusa.kumamoto.jp","arao.kumamoto.jp","aso.kumamoto.jp","choyo.kumamoto.jp","gyokuto.kumamoto.jp","kamiamakusa.kumamoto.jp","kikuchi.kumamoto.jp","kumamoto.kumamoto.jp","mashiki.kumamoto.jp","mifune.kumamoto.jp","minamata.kumamoto.jp","minamioguni.kumamoto.jp","nagasu.kumamoto.jp","nishihara.kumamoto.jp","oguni.kumamoto.jp","ozu.kumamoto.jp","sumoto.kumamoto.jp","takamori.kumamoto.jp","uki.kumamoto.jp","uto.kumamoto.jp","yamaga.kumamoto.jp","yamato.kumamoto.jp","yatsushiro.kumamoto.jp","ayabe.kyoto.jp","fukuchiyama.kyoto.jp","higashiyama.kyoto.jp","ide.kyoto.jp","ine.kyoto.jp","joyo.kyoto.jp","kameoka.kyoto.jp","kamo.kyoto.jp","kita.kyoto.jp","kizu.kyoto.jp","kumiyama.kyoto.jp","kyotamba.kyoto.jp","kyotanabe.kyoto.jp","kyotango.kyoto.jp","maizuru.kyoto.jp","minami.kyoto.jp","minamiyamashiro.kyoto.jp","miyazu.kyoto.jp","muko.kyoto.jp","nagaokakyo.kyoto.jp","nakagyo.kyoto.jp","nantan.kyoto.jp","oyamazaki.kyoto.jp","sakyo.kyoto.jp","seika.kyoto.jp","tanabe.kyoto.jp","uji.kyoto.jp","ujitawara.kyoto.jp","wazuka.kyoto.jp","yamashina.kyoto.jp","yawata.kyoto.jp","asahi.mie.jp","inabe.mie.jp","ise.mie.jp","kameyama.mie.jp","kawagoe.mie.jp","kiho.mie.jp","kisosaki.mie.jp","kiwa.mie.jp","komono.mie.jp","kumano.mie.jp","kuwana.mie.jp","matsusaka.mie.jp","meiwa.mie.jp","mihama.mie.jp","minamiise.mie.jp","misugi.mie.jp","miyama.mie.jp","nabari.mie.jp","shima.mie.jp","suzuka.mie.jp","tado.mie.jp","taiki.mie.jp","taki.mie.jp","tamaki.mie.jp","toba.mie.jp","tsu.mie.jp","udono.mie.jp","ureshino.mie.jp","watarai.mie.jp","yokkaichi.mie.jp","furukawa.miyagi.jp","higashimatsushima.miyagi.jp","ishinomaki.miyagi.jp","iwanuma.miyagi.jp","kakuda.miyagi.jp","kami.miyagi.jp","kawasaki.miyagi.jp","marumori.miyagi.jp","matsushima.miyagi.jp","minamisanriku.miyagi.jp","misato.miyagi.jp","murata.miyagi.jp","natori.miyagi.jp","ogawara.miyagi.jp","ohira.miyagi.jp","onagawa.miyagi.jp","osaki.miyagi.jp","rifu.miyagi.jp","semine.miyagi.jp","shibata.miyagi.jp","shichikashuku.miyagi.jp","shikama.miyagi.jp","shiogama.miyagi.jp","shiroishi.miyagi.jp","tagajo.miyagi.jp","taiwa.miyagi.jp","tome.miyagi.jp","tomiya.miyagi.jp","wakuya.miyagi.jp","watari.miyagi.jp","yamamoto.miyagi.jp","zao.miyagi.jp","aya.miyazaki.jp","ebino.miyazaki.jp","gokase.miyazaki.jp","hyuga.miyazaki.jp","kadogawa.miyazaki.jp","kawaminami.miyazaki.jp","kijo.miyazaki.jp","kitagawa.miyazaki.jp","kitakata.miyazaki.jp","kitaura.miyazaki.jp","kobayashi.miyazaki.jp","kunitomi.miyazaki.jp","kushima.miyazaki.jp","mimata.miyazaki.jp","miyakonojo.miyazaki.jp","miyazaki.miyazaki.jp","morotsuka.miyazaki.jp","nichinan.miyazaki.jp","nishimera.miyazaki.jp","nobeoka.miyazaki.jp","saito.miyazaki.jp","shiiba.miyazaki.jp","shintomi.miyazaki.jp","takaharu.miyazaki.jp","takanabe.miyazaki.jp","takazaki.miyazaki.jp","tsuno.miyazaki.jp","achi.nagano.jp","agematsu.nagano.jp","anan.nagano.jp","aoki.nagano.jp","asahi.nagano.jp","azumino.nagano.jp","chikuhoku.nagano.jp","chikuma.nagano.jp","chino.nagano.jp","fujimi.nagano.jp","hakuba.nagano.jp","hara.nagano.jp","hiraya.nagano.jp","iida.nagano.jp","iijima.nagano.jp","iiyama.nagano.jp","iizuna.nagano.jp","ikeda.nagano.jp","ikusaka.nagano.jp","ina.nagano.jp","karuizawa.nagano.jp","kawakami.nagano.jp","kiso.nagano.jp","kisofukushima.nagano.jp","kitaaiki.nagano.jp","komagane.nagano.jp","komoro.nagano.jp","matsukawa.nagano.jp","matsumoto.nagano.jp","miasa.nagano.jp","minamiaiki.nagano.jp","minamimaki.nagano.jp","minamiminowa.nagano.jp","minowa.nagano.jp","miyada.nagano.jp","miyota.nagano.jp","mochizuki.nagano.jp","nagano.nagano.jp","nagawa.nagano.jp","nagiso.nagano.jp","nakagawa.nagano.jp","nakano.nagano.jp","nozawaonsen.nagano.jp","obuse.nagano.jp","ogawa.nagano.jp","okaya.nagano.jp","omachi.nagano.jp","omi.nagano.jp","ookuwa.nagano.jp","ooshika.nagano.jp","otaki.nagano.jp","otari.nagano.jp","sakae.nagano.jp","sakaki.nagano.jp","saku.nagano.jp","sakuho.nagano.jp","shimosuwa.nagano.jp","shinanomachi.nagano.jp","shiojiri.nagano.jp","suwa.nagano.jp","suzaka.nagano.jp","takagi.nagano.jp","takamori.nagano.jp","takayama.nagano.jp","tateshina.nagano.jp","tatsuno.nagano.jp","togakushi.nagano.jp","togura.nagano.jp","tomi.nagano.jp","ueda.nagano.jp","wada.nagano.jp","yamagata.nagano.jp","yamanouchi.nagano.jp","yasaka.nagano.jp","yasuoka.nagano.jp","chijiwa.nagasaki.jp","futsu.nagasaki.jp","goto.nagasaki.jp","hasami.nagasaki.jp","hirado.nagasaki.jp","iki.nagasaki.jp","isahaya.nagasaki.jp","kawatana.nagasaki.jp","kuchinotsu.nagasaki.jp","matsuura.nagasaki.jp","nagasaki.nagasaki.jp","obama.nagasaki.jp","omura.nagasaki.jp","oseto.nagasaki.jp","saikai.nagasaki.jp","sasebo.nagasaki.jp","seihi.nagasaki.jp","shimabara.nagasaki.jp","shinkamigoto.nagasaki.jp","togitsu.nagasaki.jp","tsushima.nagasaki.jp","unzen.nagasaki.jp","ando.nara.jp","gose.nara.jp","heguri.nara.jp","higashiyoshino.nara.jp","ikaruga.nara.jp","ikoma.nara.jp","kamikitayama.nara.jp","kanmaki.nara.jp","kashiba.nara.jp","kashihara.nara.jp","katsuragi.nara.jp","kawai.nara.jp","kawakami.nara.jp","kawanishi.nara.jp","koryo.nara.jp","kurotaki.nara.jp","mitsue.nara.jp","miyake.nara.jp","nara.nara.jp","nosegawa.nara.jp","oji.nara.jp","ouda.nara.jp","oyodo.nara.jp","sakurai.nara.jp","sango.nara.jp","shimoichi.nara.jp","shimokitayama.nara.jp","shinjo.nara.jp","soni.nara.jp","takatori.nara.jp","tawaramoto.nara.jp","tenkawa.nara.jp","tenri.nara.jp","uda.nara.jp","yamatokoriyama.nara.jp","yamatotakada.nara.jp","yamazoe.nara.jp","yoshino.nara.jp","aga.niigata.jp","agano.niigata.jp","gosen.niigata.jp","itoigawa.niigata.jp","izumozaki.niigata.jp","joetsu.niigata.jp","kamo.niigata.jp","kariwa.niigata.jp","kashiwazaki.niigata.jp","minamiuonuma.niigata.jp","mitsuke.niigata.jp","muika.niigata.jp","murakami.niigata.jp","myoko.niigata.jp","nagaoka.niigata.jp","niigata.niigata.jp","ojiya.niigata.jp","omi.niigata.jp","sado.niigata.jp","sanjo.niigata.jp","seiro.niigata.jp","seirou.niigata.jp","sekikawa.niigata.jp","shibata.niigata.jp","tagami.niigata.jp","tainai.niigata.jp","tochio.niigata.jp","tokamachi.niigata.jp","tsubame.niigata.jp","tsunan.niigata.jp","uonuma.niigata.jp","yahiko.niigata.jp","yoita.niigata.jp","yuzawa.niigata.jp","beppu.oita.jp","bungoono.oita.jp","bungotakada.oita.jp","hasama.oita.jp","hiji.oita.jp","himeshima.oita.jp","hita.oita.jp","kamitsue.oita.jp","kokonoe.oita.jp","kuju.oita.jp","kunisaki.oita.jp","kusu.oita.jp","oita.oita.jp","saiki.oita.jp","taketa.oita.jp","tsukumi.oita.jp","usa.oita.jp","usuki.oita.jp","yufu.oita.jp","akaiwa.okayama.jp","asakuchi.okayama.jp","bizen.okayama.jp","hayashima.okayama.jp","ibara.okayama.jp","kagamino.okayama.jp","kasaoka.okayama.jp","kibichuo.okayama.jp","kumenan.okayama.jp","kurashiki.okayama.jp","maniwa.okayama.jp","misaki.okayama.jp","nagi.okayama.jp","niimi.okayama.jp","nishiawakura.okayama.jp","okayama.okayama.jp","satosho.okayama.jp","setouchi.okayama.jp","shinjo.okayama.jp","shoo.okayama.jp","soja.okayama.jp","takahashi.okayama.jp","tamano.okayama.jp","tsuyama.okayama.jp","wake.okayama.jp","yakage.okayama.jp","aguni.okinawa.jp","ginowan.okinawa.jp","ginoza.okinawa.jp","gushikami.okinawa.jp","haebaru.okinawa.jp","higashi.okinawa.jp","hirara.okinawa.jp","iheya.okinawa.jp","ishigaki.okinawa.jp","ishikawa.okinawa.jp","itoman.okinawa.jp","izena.okinawa.jp","kadena.okinawa.jp","kin.okinawa.jp","kitadaito.okinawa.jp","kitanakagusuku.okinawa.jp","kumejima.okinawa.jp","kunigami.okinawa.jp","minamidaito.okinawa.jp","motobu.okinawa.jp","nago.okinawa.jp","naha.okinawa.jp","nakagusuku.okinawa.jp","nakijin.okinawa.jp","nanjo.okinawa.jp","nishihara.okinawa.jp","ogimi.okinawa.jp","okinawa.okinawa.jp","onna.okinawa.jp","shimoji.okinawa.jp","taketomi.okinawa.jp","tarama.okinawa.jp","tokashiki.okinawa.jp","tomigusuku.okinawa.jp","tonaki.okinawa.jp","urasoe.okinawa.jp","uruma.okinawa.jp","yaese.okinawa.jp","yomitan.okinawa.jp","yonabaru.okinawa.jp","yonaguni.okinawa.jp","zamami.okinawa.jp","abeno.osaka.jp","chihayaakasaka.osaka.jp","chuo.osaka.jp","daito.osaka.jp","fujiidera.osaka.jp","habikino.osaka.jp","hannan.osaka.jp","higashiosaka.osaka.jp","higashisumiyoshi.osaka.jp","higashiyodogawa.osaka.jp","hirakata.osaka.jp","ibaraki.osaka.jp","ikeda.osaka.jp","izumi.osaka.jp","izumiotsu.osaka.jp","izumisano.osaka.jp","kadoma.osaka.jp","kaizuka.osaka.jp","kanan.osaka.jp","kashiwara.osaka.jp","katano.osaka.jp","kawachinagano.osaka.jp","kishiwada.osaka.jp","kita.osaka.jp","kumatori.osaka.jp","matsubara.osaka.jp","minato.osaka.jp","minoh.osaka.jp","misaki.osaka.jp","moriguchi.osaka.jp","neyagawa.osaka.jp","nishi.osaka.jp","nose.osaka.jp","osakasayama.osaka.jp","sakai.osaka.jp","sayama.osaka.jp","sennan.osaka.jp","settsu.osaka.jp","shijonawate.osaka.jp","shimamoto.osaka.jp","suita.osaka.jp","tadaoka.osaka.jp","taishi.osaka.jp","tajiri.osaka.jp","takaishi.osaka.jp","takatsuki.osaka.jp","tondabayashi.osaka.jp","toyonaka.osaka.jp","toyono.osaka.jp","yao.osaka.jp","ariake.saga.jp","arita.saga.jp","fukudomi.saga.jp","genkai.saga.jp","hamatama.saga.jp","hizen.saga.jp","imari.saga.jp","kamimine.saga.jp","kanzaki.saga.jp","karatsu.saga.jp","kashima.saga.jp","kitagata.saga.jp","kitahata.saga.jp","kiyama.saga.jp","kouhoku.saga.jp","kyuragi.saga.jp","nishiarita.saga.jp","ogi.saga.jp","omachi.saga.jp","ouchi.saga.jp","saga.saga.jp","shiroishi.saga.jp","taku.saga.jp","tara.saga.jp","tosu.saga.jp","yoshinogari.saga.jp","arakawa.saitama.jp","asaka.saitama.jp","chichibu.saitama.jp","fujimi.saitama.jp","fujimino.saitama.jp","fukaya.saitama.jp","hanno.saitama.jp","hanyu.saitama.jp","hasuda.saitama.jp","hatogaya.saitama.jp","hatoyama.saitama.jp","hidaka.saitama.jp","higashichichibu.saitama.jp","higashimatsuyama.saitama.jp","honjo.saitama.jp","ina.saitama.jp","iruma.saitama.jp","iwatsuki.saitama.jp","kamiizumi.saitama.jp","kamikawa.saitama.jp","kamisato.saitama.jp","kasukabe.saitama.jp","kawagoe.saitama.jp","kawaguchi.saitama.jp","kawajima.saitama.jp","kazo.saitama.jp","kitamoto.saitama.jp","koshigaya.saitama.jp","kounosu.saitama.jp","kuki.saitama.jp","kumagaya.saitama.jp","matsubushi.saitama.jp","minano.saitama.jp","misato.saitama.jp","miyashiro.saitama.jp","miyoshi.saitama.jp","moroyama.saitama.jp","nagatoro.saitama.jp","namegawa.saitama.jp","niiza.saitama.jp","ogano.saitama.jp","ogawa.saitama.jp","ogose.saitama.jp","okegawa.saitama.jp","omiya.saitama.jp","otaki.saitama.jp","ranzan.saitama.jp","ryokami.saitama.jp","saitama.saitama.jp","sakado.saitama.jp","satte.saitama.jp","sayama.saitama.jp","shiki.saitama.jp","shiraoka.saitama.jp","soka.saitama.jp","sugito.saitama.jp","toda.saitama.jp","tokigawa.saitama.jp","tokorozawa.saitama.jp","tsurugashima.saitama.jp","urawa.saitama.jp","warabi.saitama.jp","yashio.saitama.jp","yokoze.saitama.jp","yono.saitama.jp","yorii.saitama.jp","yoshida.saitama.jp","yoshikawa.saitama.jp","yoshimi.saitama.jp","aisho.shiga.jp","gamo.shiga.jp","higashiomi.shiga.jp","hikone.shiga.jp","koka.shiga.jp","konan.shiga.jp","kosei.shiga.jp","koto.shiga.jp","kusatsu.shiga.jp","maibara.shiga.jp","moriyama.shiga.jp","nagahama.shiga.jp","nishiazai.shiga.jp","notogawa.shiga.jp","omihachiman.shiga.jp","otsu.shiga.jp","ritto.shiga.jp","ryuoh.shiga.jp","takashima.shiga.jp","takatsuki.shiga.jp","torahime.shiga.jp","toyosato.shiga.jp","yasu.shiga.jp","akagi.shimane.jp","ama.shimane.jp","gotsu.shimane.jp","hamada.shimane.jp","higashiizumo.shimane.jp","hikawa.shimane.jp","hikimi.shimane.jp","izumo.shimane.jp","kakinoki.shimane.jp","masuda.shimane.jp","matsue.shimane.jp","misato.shimane.jp","nishinoshima.shimane.jp","ohda.shimane.jp","okinoshima.shimane.jp","okuizumo.shimane.jp","shimane.shimane.jp","tamayu.shimane.jp","tsuwano.shimane.jp","unnan.shimane.jp","yakumo.shimane.jp","yasugi.shimane.jp","yatsuka.shimane.jp","arai.shizuoka.jp","atami.shizuoka.jp","fuji.shizuoka.jp","fujieda.shizuoka.jp","fujikawa.shizuoka.jp","fujinomiya.shizuoka.jp","fukuroi.shizuoka.jp","gotemba.shizuoka.jp","haibara.shizuoka.jp","hamamatsu.shizuoka.jp","higashiizu.shizuoka.jp","ito.shizuoka.jp","iwata.shizuoka.jp","izu.shizuoka.jp","izunokuni.shizuoka.jp","kakegawa.shizuoka.jp","kannami.shizuoka.jp","kawanehon.shizuoka.jp","kawazu.shizuoka.jp","kikugawa.shizuoka.jp","kosai.shizuoka.jp","makinohara.shizuoka.jp","matsuzaki.shizuoka.jp","minamiizu.shizuoka.jp","mishima.shizuoka.jp","morimachi.shizuoka.jp","nishiizu.shizuoka.jp","numazu.shizuoka.jp","omaezaki.shizuoka.jp","shimada.shizuoka.jp","shimizu.shizuoka.jp","shimoda.shizuoka.jp","shizuoka.shizuoka.jp","susono.shizuoka.jp","yaizu.shizuoka.jp","yoshida.shizuoka.jp","ashikaga.tochigi.jp","bato.tochigi.jp","haga.tochigi.jp","ichikai.tochigi.jp","iwafune.tochigi.jp","kaminokawa.tochigi.jp","kanuma.tochigi.jp","karasuyama.tochigi.jp","kuroiso.tochigi.jp","mashiko.tochigi.jp","mibu.tochigi.jp","moka.tochigi.jp","motegi.tochigi.jp","nasu.tochigi.jp","nasushiobara.tochigi.jp","nikko.tochigi.jp","nishikata.tochigi.jp","nogi.tochigi.jp","ohira.tochigi.jp","ohtawara.tochigi.jp","oyama.tochigi.jp","sakura.tochigi.jp","sano.tochigi.jp","shimotsuke.tochigi.jp","shioya.tochigi.jp","takanezawa.tochigi.jp","tochigi.tochigi.jp","tsuga.tochigi.jp","ujiie.tochigi.jp","utsunomiya.tochigi.jp","yaita.tochigi.jp","aizumi.tokushima.jp","anan.tokushima.jp","ichiba.tokushima.jp","itano.tokushima.jp","kainan.tokushima.jp","komatsushima.tokushima.jp","matsushige.tokushima.jp","mima.tokushima.jp","minami.tokushima.jp","miyoshi.tokushima.jp","mugi.tokushima.jp","nakagawa.tokushima.jp","naruto.tokushima.jp","sanagochi.tokushima.jp","shishikui.tokushima.jp","tokushima.tokushima.jp","wajiki.tokushima.jp","adachi.tokyo.jp","akiruno.tokyo.jp","akishima.tokyo.jp","aogashima.tokyo.jp","arakawa.tokyo.jp","bunkyo.tokyo.jp","chiyoda.tokyo.jp","chofu.tokyo.jp","chuo.tokyo.jp","edogawa.tokyo.jp","fuchu.tokyo.jp","fussa.tokyo.jp","hachijo.tokyo.jp","hachioji.tokyo.jp","hamura.tokyo.jp","higashikurume.tokyo.jp","higashimurayama.tokyo.jp","higashiyamato.tokyo.jp","hino.tokyo.jp","hinode.tokyo.jp","hinohara.tokyo.jp","inagi.tokyo.jp","itabashi.tokyo.jp","katsushika.tokyo.jp","kita.tokyo.jp","kiyose.tokyo.jp","kodaira.tokyo.jp","koganei.tokyo.jp","kokubunji.tokyo.jp","komae.tokyo.jp","koto.tokyo.jp","kouzushima.tokyo.jp","kunitachi.tokyo.jp","machida.tokyo.jp","meguro.tokyo.jp","minato.tokyo.jp","mitaka.tokyo.jp","mizuho.tokyo.jp","musashimurayama.tokyo.jp","musashino.tokyo.jp","nakano.tokyo.jp","nerima.tokyo.jp","ogasawara.tokyo.jp","okutama.tokyo.jp","ome.tokyo.jp","oshima.tokyo.jp","ota.tokyo.jp","setagaya.tokyo.jp","shibuya.tokyo.jp","shinagawa.tokyo.jp","shinjuku.tokyo.jp","suginami.tokyo.jp","sumida.tokyo.jp","tachikawa.tokyo.jp","taito.tokyo.jp","tama.tokyo.jp","toshima.tokyo.jp","chizu.tottori.jp","hino.tottori.jp","kawahara.tottori.jp","koge.tottori.jp","kotoura.tottori.jp","misasa.tottori.jp","nanbu.tottori.jp","nichinan.tottori.jp","sakaiminato.tottori.jp","tottori.tottori.jp","wakasa.tottori.jp","yazu.tottori.jp","yonago.tottori.jp","asahi.toyama.jp","fuchu.toyama.jp","fukumitsu.toyama.jp","funahashi.toyama.jp","himi.toyama.jp","imizu.toyama.jp","inami.toyama.jp","johana.toyama.jp","kamiichi.toyama.jp","kurobe.toyama.jp","nakaniikawa.toyama.jp","namerikawa.toyama.jp","nanto.toyama.jp","nyuzen.toyama.jp","oyabe.toyama.jp","taira.toyama.jp","takaoka.toyama.jp","tateyama.toyama.jp","toga.toyama.jp","tonami.toyama.jp","toyama.toyama.jp","unazuki.toyama.jp","uozu.toyama.jp","yamada.toyama.jp","arida.wakayama.jp","aridagawa.wakayama.jp","gobo.wakayama.jp","hashimoto.wakayama.jp","hidaka.wakayama.jp","hirogawa.wakayama.jp","inami.wakayama.jp","iwade.wakayama.jp","kainan.wakayama.jp","kamitonda.wakayama.jp","katsuragi.wakayama.jp","kimino.wakayama.jp","kinokawa.wakayama.jp","kitayama.wakayama.jp","koya.wakayama.jp","koza.wakayama.jp","kozagawa.wakayama.jp","kudoyama.wakayama.jp","kushimoto.wakayama.jp","mihama.wakayama.jp","misato.wakayama.jp","nachikatsuura.wakayama.jp","shingu.wakayama.jp","shirahama.wakayama.jp","taiji.wakayama.jp","tanabe.wakayama.jp","wakayama.wakayama.jp","yuasa.wakayama.jp","yura.wakayama.jp","asahi.yamagata.jp","funagata.yamagata.jp","higashine.yamagata.jp","iide.yamagata.jp","kahoku.yamagata.jp","kaminoyama.yamagata.jp","kaneyama.yamagata.jp","kawanishi.yamagata.jp","mamurogawa.yamagata.jp","mikawa.yamagata.jp","murayama.yamagata.jp","nagai.yamagata.jp","nakayama.yamagata.jp","nanyo.yamagata.jp","nishikawa.yamagata.jp","obanazawa.yamagata.jp","oe.yamagata.jp","oguni.yamagata.jp","ohkura.yamagata.jp","oishida.yamagata.jp","sagae.yamagata.jp","sakata.yamagata.jp","sakegawa.yamagata.jp","shinjo.yamagata.jp","shirataka.yamagata.jp","shonai.yamagata.jp","takahata.yamagata.jp","tendo.yamagata.jp","tozawa.yamagata.jp","tsuruoka.yamagata.jp","yamagata.yamagata.jp","yamanobe.yamagata.jp","yonezawa.yamagata.jp","yuza.yamagata.jp","abu.yamaguchi.jp","hagi.yamaguchi.jp","hikari.yamaguchi.jp","hofu.yamaguchi.jp","iwakuni.yamaguchi.jp","kudamatsu.yamaguchi.jp","mitou.yamaguchi.jp","nagato.yamaguchi.jp","oshima.yamaguchi.jp","shimonoseki.yamaguchi.jp","shunan.yamaguchi.jp","tabuse.yamaguchi.jp","tokuyama.yamaguchi.jp","toyota.yamaguchi.jp","ube.yamaguchi.jp","yuu.yamaguchi.jp","chuo.yamanashi.jp","doshi.yamanashi.jp","fuefuki.yamanashi.jp","fujikawa.yamanashi.jp","fujikawaguchiko.yamanashi.jp","fujiyoshida.yamanashi.jp","hayakawa.yamanashi.jp","hokuto.yamanashi.jp","ichikawamisato.yamanashi.jp","kai.yamanashi.jp","kofu.yamanashi.jp","koshu.yamanashi.jp","kosuge.yamanashi.jp","minami-alps.yamanashi.jp","minobu.yamanashi.jp","nakamichi.yamanashi.jp","nanbu.yamanashi.jp","narusawa.yamanashi.jp","nirasaki.yamanashi.jp","nishikatsura.yamanashi.jp","oshino.yamanashi.jp","otsuki.yamanashi.jp","showa.yamanashi.jp","tabayama.yamanashi.jp","tsuru.yamanashi.jp","uenohara.yamanashi.jp","yamanakako.yamanashi.jp","yamanashi.yamanashi.jp","ke","ac.ke","co.ke","go.ke","info.ke","me.ke","mobi.ke","ne.ke","or.ke","sc.ke","kg","com.kg","edu.kg","gov.kg","mil.kg","net.kg","org.kg","*.kh","ki","biz.ki","com.ki","edu.ki","gov.ki","info.ki","net.ki","org.ki","km","ass.km","com.km","edu.km","gov.km","mil.km","nom.km","org.km","prd.km","tm.km","asso.km","coop.km","gouv.km","medecin.km","notaires.km","pharmaciens.km","presse.km","veterinaire.km","kn","edu.kn","gov.kn","net.kn","org.kn","kp","com.kp","edu.kp","gov.kp","org.kp","rep.kp","tra.kp","kr","ac.kr","co.kr","es.kr","go.kr","hs.kr","kg.kr","mil.kr","ms.kr","ne.kr","or.kr","pe.kr","re.kr","sc.kr","busan.kr","chungbuk.kr","chungnam.kr","daegu.kr","daejeon.kr","gangwon.kr","gwangju.kr","gyeongbuk.kr","gyeonggi.kr","gyeongnam.kr","incheon.kr","jeju.kr","jeonbuk.kr","jeonnam.kr","seoul.kr","ulsan.kr","kw","com.kw","edu.kw","emb.kw","gov.kw","ind.kw","net.kw","org.kw","ky","com.ky","edu.ky","net.ky","org.ky","kz","com.kz","edu.kz","gov.kz","mil.kz","net.kz","org.kz","la","com.la","edu.la","gov.la","info.la","int.la","net.la","org.la","per.la","lb","com.lb","edu.lb","gov.lb","net.lb","org.lb","lc","co.lc","com.lc","edu.lc","gov.lc","net.lc","org.lc","li","lk","ac.lk","assn.lk","com.lk","edu.lk","gov.lk","grp.lk","hotel.lk","int.lk","ltd.lk","net.lk","ngo.lk","org.lk","sch.lk","soc.lk","web.lk","lr","com.lr","edu.lr","gov.lr","net.lr","org.lr","ls","ac.ls","biz.ls","co.ls","edu.ls","gov.ls","info.ls","net.ls","org.ls","sc.ls","lt","gov.lt","lu","lv","asn.lv","com.lv","conf.lv","edu.lv","gov.lv","id.lv","mil.lv","net.lv","org.lv","ly","com.ly","edu.ly","gov.ly","id.ly","med.ly","net.ly","org.ly","plc.ly","sch.ly","ma","ac.ma","co.ma","gov.ma","net.ma","org.ma","press.ma","mc","asso.mc","tm.mc","md","me","ac.me","co.me","edu.me","gov.me","its.me","net.me","org.me","priv.me","mg","co.mg","com.mg","edu.mg","gov.mg","mil.mg","nom.mg","org.mg","prd.mg","mh","mil","mk","com.mk","edu.mk","gov.mk","inf.mk","name.mk","net.mk","org.mk","ml","com.ml","edu.ml","gouv.ml","gov.ml","net.ml","org.ml","presse.ml","*.mm","mn","edu.mn","gov.mn","org.mn","mo","com.mo","edu.mo","gov.mo","net.mo","org.mo","mobi","mp","mq","mr","gov.mr","ms","com.ms","edu.ms","gov.ms","net.ms","org.ms","mt","com.mt","edu.mt","net.mt","org.mt","mu","ac.mu","co.mu","com.mu","gov.mu","net.mu","or.mu","org.mu","museum","mv","aero.mv","biz.mv","com.mv","coop.mv","edu.mv","gov.mv","info.mv","int.mv","mil.mv","museum.mv","name.mv","net.mv","org.mv","pro.mv","mw","ac.mw","biz.mw","co.mw","com.mw","coop.mw","edu.mw","gov.mw","int.mw","net.mw","org.mw","mx","com.mx","edu.mx","gob.mx","net.mx","org.mx","my","biz.my","com.my","edu.my","gov.my","mil.my","name.my","net.my","org.my","mz","ac.mz","adv.mz","co.mz","edu.mz","gov.mz","mil.mz","net.mz","org.mz","na","alt.na","co.na","com.na","gov.na","net.na","org.na","name","nc","asso.nc","nom.nc","ne","net","nf","arts.nf","com.nf","firm.nf","info.nf","net.nf","other.nf","per.nf","rec.nf","store.nf","web.nf","ng","com.ng","edu.ng","gov.ng","i.ng","mil.ng","mobi.ng","name.ng","net.ng","org.ng","sch.ng","ni","ac.ni","biz.ni","co.ni","com.ni","edu.ni","gob.ni","in.ni","info.ni","int.ni","mil.ni","net.ni","nom.ni","org.ni","web.ni","nl","no","fhs.no","folkebibl.no","fylkesbibl.no","idrett.no","museum.no","priv.no","vgs.no","dep.no","herad.no","kommune.no","mil.no","stat.no","aa.no","ah.no","bu.no","fm.no","hl.no","hm.no","jan-mayen.no","mr.no","nl.no","nt.no","of.no","ol.no","oslo.no","rl.no","sf.no","st.no","svalbard.no","tm.no","tr.no","va.no","vf.no","gs.aa.no","gs.ah.no","gs.bu.no","gs.fm.no","gs.hl.no","gs.hm.no","gs.jan-mayen.no","gs.mr.no","gs.nl.no","gs.nt.no","gs.of.no","gs.ol.no","gs.oslo.no","gs.rl.no","gs.sf.no","gs.st.no","gs.svalbard.no","gs.tm.no","gs.tr.no","gs.va.no","gs.vf.no","akrehamn.no","åkrehamn.no","algard.no","ålgård.no","arna.no","bronnoysund.no","brønnøysund.no","brumunddal.no","bryne.no","drobak.no","drøbak.no","egersund.no","fetsund.no","floro.no","florø.no","fredrikstad.no","hokksund.no","honefoss.no","hønefoss.no","jessheim.no","jorpeland.no","jørpeland.no","kirkenes.no","kopervik.no","krokstadelva.no","langevag.no","langevåg.no","leirvik.no","mjondalen.no","mjøndalen.no","mo-i-rana.no","mosjoen.no","mosjøen.no","nesoddtangen.no","orkanger.no","osoyro.no","osøyro.no","raholt.no","råholt.no","sandnessjoen.no","sandnessjøen.no","skedsmokorset.no","slattum.no","spjelkavik.no","stathelle.no","stavern.no","stjordalshalsen.no","stjørdalshalsen.no","tananger.no","tranby.no","vossevangen.no","aarborte.no","aejrie.no","afjord.no","åfjord.no","agdenes.no","nes.akershus.no","aknoluokta.no","ákŋoluokta.no","al.no","ål.no","alaheadju.no","álaheadju.no","alesund.no","ålesund.no","alstahaug.no","alta.no","áltá.no","alvdal.no","amli.no","åmli.no","amot.no","åmot.no","andasuolo.no","andebu.no","andoy.no","andøy.no","ardal.no","årdal.no","aremark.no","arendal.no","ås.no","aseral.no","åseral.no","asker.no","askim.no","askoy.no","askøy.no","askvoll.no","asnes.no","åsnes.no","audnedaln.no","aukra.no","aure.no","aurland.no","aurskog-holand.no","aurskog-høland.no","austevoll.no","austrheim.no","averoy.no","averøy.no","badaddja.no","bådåddjå.no","bærum.no","bahcavuotna.no","báhcavuotna.no","bahccavuotna.no","báhccavuotna.no","baidar.no","báidár.no","bajddar.no","bájddar.no","balat.no","bálát.no","balestrand.no","ballangen.no","balsfjord.no","bamble.no","bardu.no","barum.no","batsfjord.no","båtsfjord.no","bearalvahki.no","bearalváhki.no","beardu.no","beiarn.no","berg.no","bergen.no","berlevag.no","berlevåg.no","bievat.no","bievát.no","bindal.no","birkenes.no","bjarkoy.no","bjarkøy.no","bjerkreim.no","bjugn.no","bodo.no","bodø.no","bokn.no","bomlo.no","bømlo.no","bremanger.no","bronnoy.no","brønnøy.no","budejju.no","nes.buskerud.no","bygland.no","bykle.no","cahcesuolo.no","čáhcesuolo.no","davvenjarga.no","davvenjárga.no","davvesiida.no","deatnu.no","dielddanuorri.no","divtasvuodna.no","divttasvuotna.no","donna.no","dønna.no","dovre.no","drammen.no","drangedal.no","dyroy.no","dyrøy.no","eid.no","eidfjord.no","eidsberg.no","eidskog.no","eidsvoll.no","eigersund.no","elverum.no","enebakk.no","engerdal.no","etne.no","etnedal.no","evenassi.no","evenášši.no","evenes.no","evje-og-hornnes.no","farsund.no","fauske.no","fedje.no","fet.no","finnoy.no","finnøy.no","fitjar.no","fjaler.no","fjell.no","fla.no","flå.no","flakstad.no","flatanger.no","flekkefjord.no","flesberg.no","flora.no","folldal.no","forde.no","førde.no","forsand.no","fosnes.no","fræna.no","frana.no","frei.no","frogn.no","froland.no","frosta.no","froya.no","frøya.no","fuoisku.no","fuossko.no","fusa.no","fyresdal.no","gaivuotna.no","gáivuotna.no","galsa.no","gálsá.no","gamvik.no","gangaviika.no","gáŋgaviika.no","gaular.no","gausdal.no","giehtavuoatna.no","gildeskal.no","gildeskål.no","giske.no","gjemnes.no","gjerdrum.no","gjerstad.no","gjesdal.no","gjovik.no","gjøvik.no","gloppen.no","gol.no","gran.no","grane.no","granvin.no","gratangen.no","grimstad.no","grong.no","grue.no","gulen.no","guovdageaidnu.no","ha.no","hå.no","habmer.no","hábmer.no","hadsel.no","hægebostad.no","hagebostad.no","halden.no","halsa.no","hamar.no","hamaroy.no","hammarfeasta.no","hámmárfeasta.no","hammerfest.no","hapmir.no","hápmir.no","haram.no","hareid.no","harstad.no","hasvik.no","hattfjelldal.no","haugesund.no","os.hedmark.no","valer.hedmark.no","våler.hedmark.no","hemne.no","hemnes.no","hemsedal.no","hitra.no","hjartdal.no","hjelmeland.no","hobol.no","hobøl.no","hof.no","hol.no","hole.no","holmestrand.no","holtalen.no","holtålen.no","os.hordaland.no","hornindal.no","horten.no","hoyanger.no","høyanger.no","hoylandet.no","høylandet.no","hurdal.no","hurum.no","hvaler.no","hyllestad.no","ibestad.no","inderoy.no","inderøy.no","iveland.no","ivgu.no","jevnaker.no","jolster.no","jølster.no","jondal.no","kafjord.no","kåfjord.no","karasjohka.no","kárášjohka.no","karasjok.no","karlsoy.no","karmoy.no","karmøy.no","kautokeino.no","klabu.no","klæbu.no","klepp.no","kongsberg.no","kongsvinger.no","kraanghke.no","kråanghke.no","kragero.no","kragerø.no","kristiansand.no","kristiansund.no","krodsherad.no","krødsherad.no","kvæfjord.no","kvænangen.no","kvafjord.no","kvalsund.no","kvam.no","kvanangen.no","kvinesdal.no","kvinnherad.no","kviteseid.no","kvitsoy.no","kvitsøy.no","laakesvuemie.no","lærdal.no","lahppi.no","láhppi.no","lardal.no","larvik.no","lavagis.no","lavangen.no","leangaviika.no","leaŋgaviika.no","lebesby.no","leikanger.no","leirfjord.no","leka.no","leksvik.no","lenvik.no","lerdal.no","lesja.no","levanger.no","lier.no","lierne.no","lillehammer.no","lillesand.no","lindas.no","lindås.no","lindesnes.no","loabat.no","loabát.no","lodingen.no","lødingen.no","lom.no","loppa.no","lorenskog.no","lørenskog.no","loten.no","løten.no","lund.no","lunner.no","luroy.no","lurøy.no","luster.no","lyngdal.no","lyngen.no","malatvuopmi.no","málatvuopmi.no","malselv.no","målselv.no","malvik.no","mandal.no","marker.no","marnardal.no","masfjorden.no","masoy.no","måsøy.no","matta-varjjat.no","mátta-várjjat.no","meland.no","meldal.no","melhus.no","meloy.no","meløy.no","meraker.no","meråker.no","midsund.no","midtre-gauldal.no","moareke.no","moåreke.no","modalen.no","modum.no","molde.no","heroy.more-og-romsdal.no","sande.more-og-romsdal.no","herøy.møre-og-romsdal.no","sande.møre-og-romsdal.no","moskenes.no","moss.no","mosvik.no","muosat.no","muosát.no","naamesjevuemie.no","nååmesjevuemie.no","nærøy.no","namdalseid.no","namsos.no","namsskogan.no","nannestad.no","naroy.no","narviika.no","narvik.no","naustdal.no","navuotna.no","návuotna.no","nedre-eiker.no","nesna.no","nesodden.no","nesseby.no","nesset.no","nissedal.no","nittedal.no","nord-aurdal.no","nord-fron.no","nord-odal.no","norddal.no","nordkapp.no","bo.nordland.no","bø.nordland.no","heroy.nordland.no","herøy.nordland.no","nordre-land.no","nordreisa.no","nore-og-uvdal.no","notodden.no","notteroy.no","nøtterøy.no","odda.no","oksnes.no","øksnes.no","omasvuotna.no","oppdal.no","oppegard.no","oppegård.no","orkdal.no","orland.no","ørland.no","orskog.no","ørskog.no","orsta.no","ørsta.no","osen.no","osteroy.no","osterøy.no","valer.ostfold.no","våler.østfold.no","ostre-toten.no","østre-toten.no","overhalla.no","ovre-eiker.no","øvre-eiker.no","oyer.no","øyer.no","oygarden.no","øygarden.no","oystre-slidre.no","øystre-slidre.no","porsanger.no","porsangu.no","porsáŋgu.no","porsgrunn.no","rade.no","råde.no","radoy.no","radøy.no","rælingen.no","rahkkeravju.no","ráhkkerávju.no","raisa.no","ráisa.no","rakkestad.no","ralingen.no","rana.no","randaberg.no","rauma.no","rendalen.no","rennebu.no","rennesoy.no","rennesøy.no","rindal.no","ringebu.no","ringerike.no","ringsaker.no","risor.no","risør.no","rissa.no","roan.no","rodoy.no","rødøy.no","rollag.no","romsa.no","romskog.no","rømskog.no","roros.no","røros.no","rost.no","røst.no","royken.no","røyken.no","royrvik.no","røyrvik.no","ruovat.no","rygge.no","salangen.no","salat.no","sálat.no","sálát.no","saltdal.no","samnanger.no","sandefjord.no","sandnes.no","sandoy.no","sandøy.no","sarpsborg.no","sauda.no","sauherad.no","sel.no","selbu.no","selje.no","seljord.no","siellak.no","sigdal.no","siljan.no","sirdal.no","skanit.no","skánit.no","skanland.no","skånland.no","skaun.no","skedsmo.no","ski.no","skien.no","skierva.no","skiervá.no","skiptvet.no","skjak.no","skjåk.no","skjervoy.no","skjervøy.no","skodje.no","smola.no","smøla.no","snaase.no","snåase.no","snasa.no","snåsa.no","snillfjord.no","snoasa.no","sogndal.no","sogne.no","søgne.no","sokndal.no","sola.no","solund.no","somna.no","sømna.no","sondre-land.no","søndre-land.no","songdalen.no","sor-aurdal.no","sør-aurdal.no","sor-fron.no","sør-fron.no","sor-odal.no","sør-odal.no","sor-varanger.no","sør-varanger.no","sorfold.no","sørfold.no","sorreisa.no","sørreisa.no","sortland.no","sorum.no","sørum.no","spydeberg.no","stange.no","stavanger.no","steigen.no","steinkjer.no","stjordal.no","stjørdal.no","stokke.no","stor-elvdal.no","stord.no","stordal.no","storfjord.no","strand.no","stranda.no","stryn.no","sula.no","suldal.no","sund.no","sunndal.no","surnadal.no","sveio.no","svelvik.no","sykkylven.no","tana.no","bo.telemark.no","bø.telemark.no","time.no","tingvoll.no","tinn.no","tjeldsund.no","tjome.no","tjøme.no","tokke.no","tolga.no","tonsberg.no","tønsberg.no","torsken.no","træna.no","trana.no","tranoy.no","tranøy.no","troandin.no","trogstad.no","trøgstad.no","tromsa.no","tromso.no","tromsø.no","trondheim.no","trysil.no","tvedestrand.no","tydal.no","tynset.no","tysfjord.no","tysnes.no","tysvær.no","tysvar.no","ullensaker.no","ullensvang.no","ulvik.no","unjarga.no","unjárga.no","utsira.no","vaapste.no","vadso.no","vadsø.no","værøy.no","vaga.no","vågå.no","vagan.no","vågan.no","vagsoy.no","vågsøy.no","vaksdal.no","valle.no","vang.no","vanylven.no","vardo.no","vardø.no","varggat.no","várggát.no","varoy.no","vefsn.no","vega.no","vegarshei.no","vegårshei.no","vennesla.no","verdal.no","verran.no","vestby.no","sande.vestfold.no","vestnes.no","vestre-slidre.no","vestre-toten.no","vestvagoy.no","vestvågøy.no","vevelstad.no","vik.no","vikna.no","vindafjord.no","voagat.no","volda.no","voss.no","*.np","nr","biz.nr","com.nr","edu.nr","gov.nr","info.nr","net.nr","org.nr","nu","nz","ac.nz","co.nz","cri.nz","geek.nz","gen.nz","govt.nz","health.nz","iwi.nz","kiwi.nz","maori.nz","māori.nz","mil.nz","net.nz","org.nz","parliament.nz","school.nz","om","co.om","com.om","edu.om","gov.om","med.om","museum.om","net.om","org.om","pro.om","onion","org","pa","abo.pa","ac.pa","com.pa","edu.pa","gob.pa","ing.pa","med.pa","net.pa","nom.pa","org.pa","sld.pa","pe","com.pe","edu.pe","gob.pe","mil.pe","net.pe","nom.pe","org.pe","pf","com.pf","edu.pf","org.pf","*.pg","ph","com.ph","edu.ph","gov.ph","i.ph","mil.ph","net.ph","ngo.ph","org.ph","pk","ac.pk","biz.pk","com.pk","edu.pk","fam.pk","gkp.pk","gob.pk","gog.pk","gok.pk","gon.pk","gop.pk","gos.pk","gov.pk","net.pk","org.pk","web.pk","pl","com.pl","net.pl","org.pl","agro.pl","aid.pl","atm.pl","auto.pl","biz.pl","edu.pl","gmina.pl","gsm.pl","info.pl","mail.pl","media.pl","miasta.pl","mil.pl","nieruchomosci.pl","nom.pl","pc.pl","powiat.pl","priv.pl","realestate.pl","rel.pl","sex.pl","shop.pl","sklep.pl","sos.pl","szkola.pl","targi.pl","tm.pl","tourism.pl","travel.pl","turystyka.pl","gov.pl","ap.gov.pl","griw.gov.pl","ic.gov.pl","is.gov.pl","kmpsp.gov.pl","konsulat.gov.pl","kppsp.gov.pl","kwp.gov.pl","kwpsp.gov.pl","mup.gov.pl","mw.gov.pl","oia.gov.pl","oirm.gov.pl","oke.gov.pl","oow.gov.pl","oschr.gov.pl","oum.gov.pl","pa.gov.pl","pinb.gov.pl","piw.gov.pl","po.gov.pl","pr.gov.pl","psp.gov.pl","psse.gov.pl","pup.gov.pl","rzgw.gov.pl","sa.gov.pl","sdn.gov.pl","sko.gov.pl","so.gov.pl","sr.gov.pl","starostwo.gov.pl","ug.gov.pl","ugim.gov.pl","um.gov.pl","umig.gov.pl","upow.gov.pl","uppo.gov.pl","us.gov.pl","uw.gov.pl","uzs.gov.pl","wif.gov.pl","wiih.gov.pl","winb.gov.pl","wios.gov.pl","witd.gov.pl","wiw.gov.pl","wkz.gov.pl","wsa.gov.pl","wskr.gov.pl","wsse.gov.pl","wuoz.gov.pl","wzmiuw.gov.pl","zp.gov.pl","zpisdn.gov.pl","augustow.pl","babia-gora.pl","bedzin.pl","beskidy.pl","bialowieza.pl","bialystok.pl","bielawa.pl","bieszczady.pl","boleslawiec.pl","bydgoszcz.pl","bytom.pl","cieszyn.pl","czeladz.pl","czest.pl","dlugoleka.pl","elblag.pl","elk.pl","glogow.pl","gniezno.pl","gorlice.pl","grajewo.pl","ilawa.pl","jaworzno.pl","jelenia-gora.pl","jgora.pl","kalisz.pl","karpacz.pl","kartuzy.pl","kaszuby.pl","katowice.pl","kazimierz-dolny.pl","kepno.pl","ketrzyn.pl","klodzko.pl","kobierzyce.pl","kolobrzeg.pl","konin.pl","konskowola.pl","kutno.pl","lapy.pl","lebork.pl","legnica.pl","lezajsk.pl","limanowa.pl","lomza.pl","lowicz.pl","lubin.pl","lukow.pl","malbork.pl","malopolska.pl","mazowsze.pl","mazury.pl","mielec.pl","mielno.pl","mragowo.pl","naklo.pl","nowaruda.pl","nysa.pl","olawa.pl","olecko.pl","olkusz.pl","olsztyn.pl","opoczno.pl","opole.pl","ostroda.pl","ostroleka.pl","ostrowiec.pl","ostrowwlkp.pl","pila.pl","pisz.pl","podhale.pl","podlasie.pl","polkowice.pl","pomorskie.pl","pomorze.pl","prochowice.pl","pruszkow.pl","przeworsk.pl","pulawy.pl","radom.pl","rawa-maz.pl","rybnik.pl","rzeszow.pl","sanok.pl","sejny.pl","skoczow.pl","slask.pl","slupsk.pl","sosnowiec.pl","stalowa-wola.pl","starachowice.pl","stargard.pl","suwalki.pl","swidnica.pl","swiebodzin.pl","swinoujscie.pl","szczecin.pl","szczytno.pl","tarnobrzeg.pl","tgory.pl","turek.pl","tychy.pl","ustka.pl","walbrzych.pl","warmia.pl","warszawa.pl","waw.pl","wegrow.pl","wielun.pl","wlocl.pl","wloclawek.pl","wodzislaw.pl","wolomin.pl","wroclaw.pl","zachpomor.pl","zagan.pl","zarow.pl","zgora.pl","zgorzelec.pl","pm","pn","co.pn","edu.pn","gov.pn","net.pn","org.pn","post","pr","biz.pr","com.pr","edu.pr","gov.pr","info.pr","isla.pr","name.pr","net.pr","org.pr","pro.pr","ac.pr","est.pr","prof.pr","pro","aaa.pro","aca.pro","acct.pro","avocat.pro","bar.pro","cpa.pro","eng.pro","jur.pro","law.pro","med.pro","recht.pro","ps","com.ps","edu.ps","gov.ps","net.ps","org.ps","plo.ps","sec.ps","pt","com.pt","edu.pt","gov.pt","int.pt","net.pt","nome.pt","org.pt","publ.pt","pw","belau.pw","co.pw","ed.pw","go.pw","or.pw","py","com.py","coop.py","edu.py","gov.py","mil.py","net.py","org.py","qa","com.qa","edu.qa","gov.qa","mil.qa","name.qa","net.qa","org.qa","sch.qa","re","asso.re","com.re","ro","arts.ro","com.ro","firm.ro","info.ro","nom.ro","nt.ro","org.ro","rec.ro","store.ro","tm.ro","www.ro","rs","ac.rs","co.rs","edu.rs","gov.rs","in.rs","org.rs","ru","rw","ac.rw","co.rw","coop.rw","gov.rw","mil.rw","net.rw","org.rw","sa","com.sa","edu.sa","gov.sa","med.sa","net.sa","org.sa","pub.sa","sch.sa","sb","com.sb","edu.sb","gov.sb","net.sb","org.sb","sc","com.sc","edu.sc","gov.sc","net.sc","org.sc","sd","com.sd","edu.sd","gov.sd","info.sd","med.sd","net.sd","org.sd","tv.sd","se","a.se","ac.se","b.se","bd.se","brand.se","c.se","d.se","e.se","f.se","fh.se","fhsk.se","fhv.se","g.se","h.se","i.se","k.se","komforb.se","kommunalforbund.se","komvux.se","l.se","lanbib.se","m.se","n.se","naturbruksgymn.se","o.se","org.se","p.se","parti.se","pp.se","press.se","r.se","s.se","t.se","tm.se","u.se","w.se","x.se","y.se","z.se","sg","com.sg","edu.sg","gov.sg","net.sg","org.sg","sh","com.sh","gov.sh","mil.sh","net.sh","org.sh","si","sj","sk","sl","com.sl","edu.sl","gov.sl","net.sl","org.sl","sm","sn","art.sn","com.sn","edu.sn","gouv.sn","org.sn","perso.sn","univ.sn","so","com.so","edu.so","gov.so","me.so","net.so","org.so","sr","ss","biz.ss","co.ss","com.ss","edu.ss","gov.ss","me.ss","net.ss","org.ss","sch.ss","st","co.st","com.st","consulado.st","edu.st","embaixada.st","mil.st","net.st","org.st","principe.st","saotome.st","store.st","su","sv","com.sv","edu.sv","gob.sv","org.sv","red.sv","sx","gov.sx","sy","com.sy","edu.sy","gov.sy","mil.sy","net.sy","org.sy","sz","ac.sz","co.sz","org.sz","tc","td","tel","tf","tg","th","ac.th","co.th","go.th","in.th","mi.th","net.th","or.th","tj","ac.tj","biz.tj","co.tj","com.tj","edu.tj","go.tj","gov.tj","int.tj","mil.tj","name.tj","net.tj","nic.tj","org.tj","test.tj","web.tj","tk","tl","gov.tl","tm","co.tm","com.tm","edu.tm","gov.tm","mil.tm","net.tm","nom.tm","org.tm","tn","com.tn","ens.tn","fin.tn","gov.tn","ind.tn","info.tn","intl.tn","mincom.tn","nat.tn","net.tn","org.tn","perso.tn","tourism.tn","to","com.to","edu.to","gov.to","mil.to","net.to","org.to","tr","av.tr","bbs.tr","bel.tr","biz.tr","com.tr","dr.tr","edu.tr","gen.tr","gov.tr","info.tr","k12.tr","kep.tr","mil.tr","name.tr","net.tr","org.tr","pol.tr","tel.tr","tsk.tr","tv.tr","web.tr","nc.tr","gov.nc.tr","tt","biz.tt","co.tt","com.tt","edu.tt","gov.tt","info.tt","mil.tt","name.tt","net.tt","org.tt","pro.tt","tv","tw","club.tw","com.tw","ebiz.tw","edu.tw","game.tw","gov.tw","idv.tw","mil.tw","net.tw","org.tw","tz","ac.tz","co.tz","go.tz","hotel.tz","info.tz","me.tz","mil.tz","mobi.tz","ne.tz","or.tz","sc.tz","tv.tz","ua","com.ua","edu.ua","gov.ua","in.ua","net.ua","org.ua","cherkassy.ua","cherkasy.ua","chernigov.ua","chernihiv.ua","chernivtsi.ua","chernovtsy.ua","ck.ua","cn.ua","cr.ua","crimea.ua","cv.ua","dn.ua","dnepropetrovsk.ua","dnipropetrovsk.ua","donetsk.ua","dp.ua","if.ua","ivano-frankivsk.ua","kh.ua","kharkiv.ua","kharkov.ua","kherson.ua","khmelnitskiy.ua","khmelnytskyi.ua","kiev.ua","kirovograd.ua","km.ua","kr.ua","kropyvnytskyi.ua","krym.ua","ks.ua","kv.ua","kyiv.ua","lg.ua","lt.ua","lugansk.ua","luhansk.ua","lutsk.ua","lv.ua","lviv.ua","mk.ua","mykolaiv.ua","nikolaev.ua","od.ua","odesa.ua","odessa.ua","pl.ua","poltava.ua","rivne.ua","rovno.ua","rv.ua","sb.ua","sebastopol.ua","sevastopol.ua","sm.ua","sumy.ua","te.ua","ternopil.ua","uz.ua","uzhgorod.ua","uzhhorod.ua","vinnica.ua","vinnytsia.ua","vn.ua","volyn.ua","yalta.ua","zakarpattia.ua","zaporizhzhe.ua","zaporizhzhia.ua","zhitomir.ua","zhytomyr.ua","zp.ua","zt.ua","ug","ac.ug","co.ug","com.ug","go.ug","ne.ug","or.ug","org.ug","sc.ug","uk","ac.uk","co.uk","gov.uk","ltd.uk","me.uk","net.uk","nhs.uk","org.uk","plc.uk","police.uk","*.sch.uk","us","dni.us","fed.us","isa.us","kids.us","nsn.us","ak.us","al.us","ar.us","as.us","az.us","ca.us","co.us","ct.us","dc.us","de.us","fl.us","ga.us","gu.us","hi.us","ia.us","id.us","il.us","in.us","ks.us","ky.us","la.us","ma.us","md.us","me.us","mi.us","mn.us","mo.us","ms.us","mt.us","nc.us","nd.us","ne.us","nh.us","nj.us","nm.us","nv.us","ny.us","oh.us","ok.us","or.us","pa.us","pr.us","ri.us","sc.us","sd.us","tn.us","tx.us","ut.us","va.us","vi.us","vt.us","wa.us","wi.us","wv.us","wy.us","k12.ak.us","k12.al.us","k12.ar.us","k12.as.us","k12.az.us","k12.ca.us","k12.co.us","k12.ct.us","k12.dc.us","k12.fl.us","k12.ga.us","k12.gu.us","k12.ia.us","k12.id.us","k12.il.us","k12.in.us","k12.ks.us","k12.ky.us","k12.la.us","k12.ma.us","k12.md.us","k12.me.us","k12.mi.us","k12.mn.us","k12.mo.us","k12.ms.us","k12.mt.us","k12.nc.us","k12.ne.us","k12.nh.us","k12.nj.us","k12.nm.us","k12.nv.us","k12.ny.us","k12.oh.us","k12.ok.us","k12.or.us","k12.pa.us","k12.pr.us","k12.sc.us","k12.tn.us","k12.tx.us","k12.ut.us","k12.va.us","k12.vi.us","k12.vt.us","k12.wa.us","k12.wi.us","cc.ak.us","lib.ak.us","cc.al.us","lib.al.us","cc.ar.us","lib.ar.us","cc.as.us","lib.as.us","cc.az.us","lib.az.us","cc.ca.us","lib.ca.us","cc.co.us","lib.co.us","cc.ct.us","lib.ct.us","cc.dc.us","lib.dc.us","cc.de.us","cc.fl.us","cc.ga.us","cc.gu.us","cc.hi.us","cc.ia.us","cc.id.us","cc.il.us","cc.in.us","cc.ks.us","cc.ky.us","cc.la.us","cc.ma.us","cc.md.us","cc.me.us","cc.mi.us","cc.mn.us","cc.mo.us","cc.ms.us","cc.mt.us","cc.nc.us","cc.nd.us","cc.ne.us","cc.nh.us","cc.nj.us","cc.nm.us","cc.nv.us","cc.ny.us","cc.oh.us","cc.ok.us","cc.or.us","cc.pa.us","cc.pr.us","cc.ri.us","cc.sc.us","cc.sd.us","cc.tn.us","cc.tx.us","cc.ut.us","cc.va.us","cc.vi.us","cc.vt.us","cc.wa.us","cc.wi.us","cc.wv.us","cc.wy.us","k12.wy.us","lib.fl.us","lib.ga.us","lib.gu.us","lib.hi.us","lib.ia.us","lib.id.us","lib.il.us","lib.in.us","lib.ks.us","lib.ky.us","lib.la.us","lib.ma.us","lib.md.us","lib.me.us","lib.mi.us","lib.mn.us","lib.mo.us","lib.ms.us","lib.mt.us","lib.nc.us","lib.nd.us","lib.ne.us","lib.nh.us","lib.nj.us","lib.nm.us","lib.nv.us","lib.ny.us","lib.oh.us","lib.ok.us","lib.or.us","lib.pa.us","lib.pr.us","lib.ri.us","lib.sc.us","lib.sd.us","lib.tn.us","lib.tx.us","lib.ut.us","lib.va.us","lib.vi.us","lib.vt.us","lib.wa.us","lib.wi.us","lib.wy.us","chtr.k12.ma.us","paroch.k12.ma.us","pvt.k12.ma.us","ann-arbor.mi.us","cog.mi.us","dst.mi.us","eaton.mi.us","gen.mi.us","mus.mi.us","tec.mi.us","washtenaw.mi.us","uy","com.uy","edu.uy","gub.uy","mil.uy","net.uy","org.uy","uz","co.uz","com.uz","net.uz","org.uz","va","vc","com.vc","edu.vc","gov.vc","mil.vc","net.vc","org.vc","ve","arts.ve","bib.ve","co.ve","com.ve","e12.ve","edu.ve","firm.ve","gob.ve","gov.ve","info.ve","int.ve","mil.ve","net.ve","nom.ve","org.ve","rar.ve","rec.ve","store.ve","tec.ve","web.ve","vg","vi","co.vi","com.vi","k12.vi","net.vi","org.vi","vn","ac.vn","ai.vn","biz.vn","com.vn","edu.vn","gov.vn","health.vn","id.vn","info.vn","int.vn","io.vn","name.vn","net.vn","org.vn","pro.vn","angiang.vn","bacgiang.vn","backan.vn","baclieu.vn","bacninh.vn","baria-vungtau.vn","bentre.vn","binhdinh.vn","binhduong.vn","binhphuoc.vn","binhthuan.vn","camau.vn","cantho.vn","caobang.vn","daklak.vn","daknong.vn","danang.vn","dienbien.vn","dongnai.vn","dongthap.vn","gialai.vn","hagiang.vn","haiduong.vn","haiphong.vn","hanam.vn","hanoi.vn","hatinh.vn","haugiang.vn","hoabinh.vn","hungyen.vn","khanhhoa.vn","kiengiang.vn","kontum.vn","laichau.vn","lamdong.vn","langson.vn","laocai.vn","longan.vn","namdinh.vn","nghean.vn","ninhbinh.vn","ninhthuan.vn","phutho.vn","phuyen.vn","quangbinh.vn","quangnam.vn","quangngai.vn","quangninh.vn","quangtri.vn","soctrang.vn","sonla.vn","tayninh.vn","thaibinh.vn","thainguyen.vn","thanhhoa.vn","thanhphohochiminh.vn","thuathienhue.vn","tiengiang.vn","travinh.vn","tuyenquang.vn","vinhlong.vn","vinhphuc.vn","yenbai.vn","vu","com.vu","edu.vu","net.vu","org.vu","wf","ws","com.ws","edu.ws","gov.ws","net.ws","org.ws","yt","امارات","հայ","বাংলা","бг","البحرين","бел","中国","中國","الجزائر","مصر","ею","ευ","موريتانيا","გე","ελ","香港","個人.香港","公司.香港","政府.香港","教育.香港","組織.香港","網絡.香港","ಭಾರತ","ଭାରତ","ভাৰত","भारतम्","भारोत","ڀارت","ഭാരതം","भारत","بارت","بھارت","భారత్","ભારત","ਭਾਰਤ","ভারত","இந்தியா","ایران","ايران","عراق","الاردن","한국","қаз","ລາວ","ලංකා","இலங்கை","المغرب","мкд","мон","澳門","澳门","مليسيا","عمان","پاکستان","پاكستان","فلسطين","срб","ак.срб","обр.срб","од.срб","орг.срб","пр.срб","упр.срб","рф","قطر","السعودية","السعودیة","السعودیۃ","السعوديه","سودان","新加坡","சிங்கப்பூர்","سورية","سوريا","ไทย","ทหาร.ไทย","ธุรกิจ.ไทย","เน็ต.ไทย","รัฐบาล.ไทย","ศึกษา.ไทย","องค์กร.ไทย","تونس","台灣","台湾","臺灣","укр","اليمن","xxx","ye","com.ye","edu.ye","gov.ye","mil.ye","net.ye","org.ye","ac.za","agric.za","alt.za","co.za","edu.za","gov.za","grondar.za","law.za","mil.za","net.za","ngo.za","nic.za","nis.za","nom.za","org.za","school.za","tm.za","web.za","zm","ac.zm","biz.zm","co.zm","com.zm","edu.zm","gov.zm","info.zm","mil.zm","net.zm","org.zm","sch.zm","zw","ac.zw","co.zw","gov.zw","mil.zw","org.zw","aaa","aarp","abb","abbott","abbvie","abc","able","abogado","abudhabi","academy","accenture","accountant","accountants","aco","actor","ads","adult","aeg","aetna","afl","africa","agakhan","agency","aig","airbus","airforce","airtel","akdn","alibaba","alipay","allfinanz","allstate","ally","alsace","alstom","amazon","americanexpress","americanfamily","amex","amfam","amica","amsterdam","analytics","android","anquan","anz","aol","apartments","app","apple","aquarelle","arab","aramco","archi","army","art","arte","asda","associates","athleta","attorney","auction","audi","audible","audio","auspost","author","auto","autos","aws","axa","azure","baby","baidu","banamex","band","bank","bar","barcelona","barclaycard","barclays","barefoot","bargains","baseball","basketball","bauhaus","bayern","bbc","bbt","bbva","bcg","bcn","beats","beauty","beer","bentley","berlin","best","bestbuy","bet","bharti","bible","bid","bike","bing","bingo","bio","black","blackfriday","blockbuster","blog","bloomberg","blue","bms","bmw","bnpparibas","boats","boehringer","bofa","bom","bond","boo","book","booking","bosch","bostik","boston","bot","boutique","box","bradesco","bridgestone","broadway","broker","brother","brussels","build","builders","business","buy","buzz","bzh","cab","cafe","cal","call","calvinklein","cam","camera","camp","canon","capetown","capital","capitalone","car","caravan","cards","care","career","careers","cars","casa","case","cash","casino","catering","catholic","cba","cbn","cbre","center","ceo","cern","cfa","cfd","chanel","channel","charity","chase","chat","cheap","chintai","christmas","chrome","church","cipriani","circle","cisco","citadel","citi","citic","city","claims","cleaning","click","clinic","clinique","clothing","cloud","club","clubmed","coach","codes","coffee","college","cologne","commbank","community","company","compare","computer","comsec","condos","construction","consulting","contact","contractors","cooking","cool","corsica","country","coupon","coupons","courses","cpa","credit","creditcard","creditunion","cricket","crown","crs","cruise","cruises","cuisinella","cymru","cyou","dad","dance","data","date","dating","datsun","day","dclk","dds","deal","dealer","deals","degree","delivery","dell","deloitte","delta","democrat","dental","dentist","desi","design","dev","dhl","diamonds","diet","digital","direct","directory","discount","discover","dish","diy","dnp","docs","doctor","dog","domains","dot","download","drive","dtv","dubai","dunlop","dupont","durban","dvag","dvr","earth","eat","eco","edeka","education","email","emerck","energy","engineer","engineering","enterprises","epson","equipment","ericsson","erni","esq","estate","eurovision","eus","events","exchange","expert","exposed","express","extraspace","fage","fail","fairwinds","faith","family","fan","fans","farm","farmers","fashion","fast","fedex","feedback","ferrari","ferrero","fidelity","fido","film","final","finance","financial","fire","firestone","firmdale","fish","fishing","fit","fitness","flickr","flights","flir","florist","flowers","fly","foo","food","football","ford","forex","forsale","forum","foundation","fox","free","fresenius","frl","frogans","frontier","ftr","fujitsu","fun","fund","furniture","futbol","fyi","gal","gallery","gallo","gallup","game","games","gap","garden","gay","gbiz","gdn","gea","gent","genting","george","ggee","gift","gifts","gives","giving","glass","gle","global","globo","gmail","gmbh","gmo","gmx","godaddy","gold","goldpoint","golf","goo","goodyear","goog","google","gop","got","grainger","graphics","gratis","green","gripe","grocery","group","gucci","guge","guide","guitars","guru","hair","hamburg","hangout","haus","hbo","hdfc","hdfcbank","health","healthcare","help","helsinki","here","hermes","hiphop","hisamitsu","hitachi","hiv","hkt","hockey","holdings","holiday","homedepot","homegoods","homes","homesense","honda","horse","hospital","host","hosting","hot","hotels","hotmail","house","how","hsbc","hughes","hyatt","hyundai","ibm","icbc","ice","icu","ieee","ifm","ikano","imamat","imdb","immo","immobilien","inc","industries","infiniti","ing","ink","institute","insurance","insure","international","intuit","investments","ipiranga","irish","ismaili","ist","istanbul","itau","itv","jaguar","java","jcb","jeep","jetzt","jewelry","jio","jll","jmp","jnj","joburg","jot","joy","jpmorgan","jprs","juegos","juniper","kaufen","kddi","kerryhotels","kerrylogistics","kerryproperties","kfh","kia","kids","kim","kindle","kitchen","kiwi","koeln","komatsu","kosher","kpmg","kpn","krd","kred","kuokgroup","kyoto","lacaixa","lamborghini","lamer","lancaster","land","landrover","lanxess","lasalle","lat","latino","latrobe","law","lawyer","lds","lease","leclerc","lefrak","legal","lego","lexus","lgbt","lidl","life","lifeinsurance","lifestyle","lighting","like","lilly","limited","limo","lincoln","link","lipsy","live","living","llc","llp","loan","loans","locker","locus","lol","london","lotte","lotto","love","lpl","lplfinancial","ltd","ltda","lundbeck","luxe","luxury","madrid","maif","maison","makeup","man","management","mango","map","market","marketing","markets","marriott","marshalls","mattel","mba","mckinsey","med","media","meet","melbourne","meme","memorial","men","menu","merck","merckmsd","miami","microsoft","mini","mint","mit","mitsubishi","mlb","mls","mma","mobile","moda","moe","moi","mom","monash","money","monster","mormon","mortgage","moscow","moto","motorcycles","mov","movie","msd","mtn","mtr","music","nab","nagoya","navy","nba","nec","netbank","netflix","network","neustar","new","news","next","nextdirect","nexus","nfl","ngo","nhk","nico","nike","nikon","ninja","nissan","nissay","nokia","norton","now","nowruz","nowtv","nra","nrw","ntt","nyc","obi","observer","office","okinawa","olayan","olayangroup","ollo","omega","one","ong","onl","online","ooo","open","oracle","orange","organic","origins","osaka","otsuka","ott","ovh","page","panasonic","paris","pars","partners","parts","party","pay","pccw","pet","pfizer","pharmacy","phd","philips","phone","photo","photography","photos","physio","pics","pictet","pictures","pid","pin","ping","pink","pioneer","pizza","place","play","playstation","plumbing","plus","pnc","pohl","poker","politie","porn","pramerica","praxi","press","prime","prod","productions","prof","progressive","promo","properties","property","protection","pru","prudential","pub","pwc","qpon","quebec","quest","racing","radio","read","realestate","realtor","realty","recipes","red","redstone","redumbrella","rehab","reise","reisen","reit","reliance","ren","rent","rentals","repair","report","republican","rest","restaurant","review","reviews","rexroth","rich","richardli","ricoh","ril","rio","rip","rocks","rodeo","rogers","room","rsvp","rugby","ruhr","run","rwe","ryukyu","saarland","safe","safety","sakura","sale","salon","samsclub","samsung","sandvik","sandvikcoromant","sanofi","sap","sarl","sas","save","saxo","sbi","sbs","scb","schaeffler","schmidt","scholarships","school","schule","schwarz","science","scot","search","seat","secure","security","seek","select","sener","services","seven","sew","sex","sexy","sfr","shangrila","sharp","shell","shia","shiksha","shoes","shop","shopping","shouji","show","silk","sina","singles","site","ski","skin","sky","skype","sling","smart","smile","sncf","soccer","social","softbank","software","sohu","solar","solutions","song","sony","soy","spa","space","sport","spot","srl","stada","staples","star","statebank","statefarm","stc","stcgroup","stockholm","storage","store","stream","studio","study","style","sucks","supplies","supply","support","surf","surgery","suzuki","swatch","swiss","sydney","systems","tab","taipei","talk","taobao","target","tatamotors","tatar","tattoo","tax","taxi","tci","tdk","team","tech","technology","temasek","tennis","teva","thd","theater","theatre","tiaa","tickets","tienda","tips","tires","tirol","tjmaxx","tjx","tkmaxx","tmall","today","tokyo","tools","top","toray","toshiba","total","tours","town","toyota","toys","trade","trading","training","travel","travelers","travelersinsurance","trust","trv","tube","tui","tunes","tushu","tvs","ubank","ubs","unicom","university","uno","uol","ups","vacations","vana","vanguard","vegas","ventures","verisign","versicherung","vet","viajes","video","vig","viking","villas","vin","vip","virgin","visa","vision","viva","vivo","vlaanderen","vodka","volvo","vote","voting","voto","voyage","wales","walmart","walter","wang","wanggou","watch","watches","weather","weatherchannel","webcam","weber","website","wed","wedding","weibo","weir","whoswho","wien","wiki","williamhill","win","windows","wine","winners","wme","wolterskluwer","woodside","work","works","world","wow","wtc","wtf","xbox","xerox","xihuan","xin","कॉम","セール","佛山","慈善","集团","在线","点看","คอม","八卦","موقع","公益","公司","香格里拉","网站","移动","我爱你","москва","католик","онлайн","сайт","联通","קום","时尚","微博","淡马锡","ファッション","орг","नेट","ストア","アマゾン","삼성","商标","商店","商城","дети","ポイント","新闻","家電","كوم","中文网","中信","娱乐","谷歌","電訊盈科","购物","クラウド","通販","网店","संगठन","餐厅","网络","ком","亚马逊","食品","飞利浦","手机","ارامكو","العليان","بازار","ابوظبي","كاثوليك","همراه","닷컴","政府","شبكة","بيتك","عرب","机构","组织机构","健康","招聘","рус","大拿","みんな","グーグル","世界","書籍","网址","닷넷","コム","天主教","游戏","vermögensberater","vermögensberatung","企业","信息","嘉里大酒店","嘉里","广东","政务","xyz","yachts","yahoo","yamaxun","yandex","yodobashi","yoga","yokohama","you","youtube","yun","zappos","zara","zero","zip","zone","zuerich","co.krd","edu.krd","art.pl","gliwice.pl","krakow.pl","poznan.pl","wroc.pl","zakopane.pl","lib.de.us","12chars.dev","12chars.it","12chars.pro","cc.ua","inf.ua","ltd.ua","611.to","a2hosted.com","cpserver.com","aaa.vodka","*.on-acorn.io","activetrail.biz","adaptable.app","adobeaemcloud.com","*.dev.adobeaemcloud.com","aem.live","hlx.live","adobeaemcloud.net","aem.page","hlx.page","hlx3.page","adobeio-static.net","adobeioruntime.net","africa.com","beep.pl","airkitapps.com","airkitapps-au.com","airkitapps.eu","aivencloud.com","akadns.net","akamai.net","akamai-staging.net","akamaiedge.net","akamaiedge-staging.net","akamaihd.net","akamaihd-staging.net","akamaiorigin.net","akamaiorigin-staging.net","akamaized.net","akamaized-staging.net","edgekey.net","edgekey-staging.net","edgesuite.net","edgesuite-staging.net","barsy.ca","*.compute.estate","*.alces.network","kasserver.com","altervista.org","alwaysdata.net","myamaze.net","execute-api.cn-north-1.amazonaws.com.cn","execute-api.cn-northwest-1.amazonaws.com.cn","execute-api.af-south-1.amazonaws.com","execute-api.ap-east-1.amazonaws.com","execute-api.ap-northeast-1.amazonaws.com","execute-api.ap-northeast-2.amazonaws.com","execute-api.ap-northeast-3.amazonaws.com","execute-api.ap-south-1.amazonaws.com","execute-api.ap-south-2.amazonaws.com","execute-api.ap-southeast-1.amazonaws.com","execute-api.ap-southeast-2.amazonaws.com","execute-api.ap-southeast-3.amazonaws.com","execute-api.ap-southeast-4.amazonaws.com","execute-api.ap-southeast-5.amazonaws.com","execute-api.ca-central-1.amazonaws.com","execute-api.ca-west-1.amazonaws.com","execute-api.eu-central-1.amazonaws.com","execute-api.eu-central-2.amazonaws.com","execute-api.eu-north-1.amazonaws.com","execute-api.eu-south-1.amazonaws.com","execute-api.eu-south-2.amazonaws.com","execute-api.eu-west-1.amazonaws.com","execute-api.eu-west-2.amazonaws.com","execute-api.eu-west-3.amazonaws.com","execute-api.il-central-1.amazonaws.com","execute-api.me-central-1.amazonaws.com","execute-api.me-south-1.amazonaws.com","execute-api.sa-east-1.amazonaws.com","execute-api.us-east-1.amazonaws.com","execute-api.us-east-2.amazonaws.com","execute-api.us-gov-east-1.amazonaws.com","execute-api.us-gov-west-1.amazonaws.com","execute-api.us-west-1.amazonaws.com","execute-api.us-west-2.amazonaws.com","cloudfront.net","auth.af-south-1.amazoncognito.com","auth.ap-east-1.amazoncognito.com","auth.ap-northeast-1.amazoncognito.com","auth.ap-northeast-2.amazoncognito.com","auth.ap-northeast-3.amazoncognito.com","auth.ap-south-1.amazoncognito.com","auth.ap-south-2.amazoncognito.com","auth.ap-southeast-1.amazoncognito.com","auth.ap-southeast-2.amazoncognito.com","auth.ap-southeast-3.amazoncognito.com","auth.ap-southeast-4.amazoncognito.com","auth.ca-central-1.amazoncognito.com","auth.ca-west-1.amazoncognito.com","auth.eu-central-1.amazoncognito.com","auth.eu-central-2.amazoncognito.com","auth.eu-north-1.amazoncognito.com","auth.eu-south-1.amazoncognito.com","auth.eu-south-2.amazoncognito.com","auth.eu-west-1.amazoncognito.com","auth.eu-west-2.amazoncognito.com","auth.eu-west-3.amazoncognito.com","auth.il-central-1.amazoncognito.com","auth.me-central-1.amazoncognito.com","auth.me-south-1.amazoncognito.com","auth.sa-east-1.amazoncognito.com","auth.us-east-1.amazoncognito.com","auth-fips.us-east-1.amazoncognito.com","auth.us-east-2.amazoncognito.com","auth-fips.us-east-2.amazoncognito.com","auth-fips.us-gov-west-1.amazoncognito.com","auth.us-west-1.amazoncognito.com","auth-fips.us-west-1.amazoncognito.com","auth.us-west-2.amazoncognito.com","auth-fips.us-west-2.amazoncognito.com","*.compute.amazonaws.com.cn","*.compute.amazonaws.com","*.compute-1.amazonaws.com","us-east-1.amazonaws.com","emrappui-prod.cn-north-1.amazonaws.com.cn","emrnotebooks-prod.cn-north-1.amazonaws.com.cn","emrstudio-prod.cn-north-1.amazonaws.com.cn","emrappui-prod.cn-northwest-1.amazonaws.com.cn","emrnotebooks-prod.cn-northwest-1.amazonaws.com.cn","emrstudio-prod.cn-northwest-1.amazonaws.com.cn","emrappui-prod.af-south-1.amazonaws.com","emrnotebooks-prod.af-south-1.amazonaws.com","emrstudio-prod.af-south-1.amazonaws.com","emrappui-prod.ap-east-1.amazonaws.com","emrnotebooks-prod.ap-east-1.amazonaws.com","emrstudio-prod.ap-east-1.amazonaws.com","emrappui-prod.ap-northeast-1.amazonaws.com","emrnotebooks-prod.ap-northeast-1.amazonaws.com","emrstudio-prod.ap-northeast-1.amazonaws.com","emrappui-prod.ap-northeast-2.amazonaws.com","emrnotebooks-prod.ap-northeast-2.amazonaws.com","emrstudio-prod.ap-northeast-2.amazonaws.com","emrappui-prod.ap-northeast-3.amazonaws.com","emrnotebooks-prod.ap-northeast-3.amazonaws.com","emrstudio-prod.ap-northeast-3.amazonaws.com","emrappui-prod.ap-south-1.amazonaws.com","emrnotebooks-prod.ap-south-1.amazonaws.com","emrstudio-prod.ap-south-1.amazonaws.com","emrappui-prod.ap-south-2.amazonaws.com","emrnotebooks-prod.ap-south-2.amazonaws.com","emrstudio-prod.ap-south-2.amazonaws.com","emrappui-prod.ap-southeast-1.amazonaws.com","emrnotebooks-prod.ap-southeast-1.amazonaws.com","emrstudio-prod.ap-southeast-1.amazonaws.com","emrappui-prod.ap-southeast-2.amazonaws.com","emrnotebooks-prod.ap-southeast-2.amazonaws.com","emrstudio-prod.ap-southeast-2.amazonaws.com","emrappui-prod.ap-southeast-3.amazonaws.com","emrnotebooks-prod.ap-southeast-3.amazonaws.com","emrstudio-prod.ap-southeast-3.amazonaws.com","emrappui-prod.ap-southeast-4.amazonaws.com","emrnotebooks-prod.ap-southeast-4.amazonaws.com","emrstudio-prod.ap-southeast-4.amazonaws.com","emrappui-prod.ca-central-1.amazonaws.com","emrnotebooks-prod.ca-central-1.amazonaws.com","emrstudio-prod.ca-central-1.amazonaws.com","emrappui-prod.ca-west-1.amazonaws.com","emrnotebooks-prod.ca-west-1.amazonaws.com","emrstudio-prod.ca-west-1.amazonaws.com","emrappui-prod.eu-central-1.amazonaws.com","emrnotebooks-prod.eu-central-1.amazonaws.com","emrstudio-prod.eu-central-1.amazonaws.com","emrappui-prod.eu-central-2.amazonaws.com","emrnotebooks-prod.eu-central-2.amazonaws.com","emrstudio-prod.eu-central-2.amazonaws.com","emrappui-prod.eu-north-1.amazonaws.com","emrnotebooks-prod.eu-north-1.amazonaws.com","emrstudio-prod.eu-north-1.amazonaws.com","emrappui-prod.eu-south-1.amazonaws.com","emrnotebooks-prod.eu-south-1.amazonaws.com","emrstudio-prod.eu-south-1.amazonaws.com","emrappui-prod.eu-south-2.amazonaws.com","emrnotebooks-prod.eu-south-2.amazonaws.com","emrstudio-prod.eu-south-2.amazonaws.com","emrappui-prod.eu-west-1.amazonaws.com","emrnotebooks-prod.eu-west-1.amazonaws.com","emrstudio-prod.eu-west-1.amazonaws.com","emrappui-prod.eu-west-2.amazonaws.com","emrnotebooks-prod.eu-west-2.amazonaws.com","emrstudio-prod.eu-west-2.amazonaws.com","emrappui-prod.eu-west-3.amazonaws.com","emrnotebooks-prod.eu-west-3.amazonaws.com","emrstudio-prod.eu-west-3.amazonaws.com","emrappui-prod.il-central-1.amazonaws.com","emrnotebooks-prod.il-central-1.amazonaws.com","emrstudio-prod.il-central-1.amazonaws.com","emrappui-prod.me-central-1.amazonaws.com","emrnotebooks-prod.me-central-1.amazonaws.com","emrstudio-prod.me-central-1.amazonaws.com","emrappui-prod.me-south-1.amazonaws.com","emrnotebooks-prod.me-south-1.amazonaws.com","emrstudio-prod.me-south-1.amazonaws.com","emrappui-prod.sa-east-1.amazonaws.com","emrnotebooks-prod.sa-east-1.amazonaws.com","emrstudio-prod.sa-east-1.amazonaws.com","emrappui-prod.us-east-1.amazonaws.com","emrnotebooks-prod.us-east-1.amazonaws.com","emrstudio-prod.us-east-1.amazonaws.com","emrappui-prod.us-east-2.amazonaws.com","emrnotebooks-prod.us-east-2.amazonaws.com","emrstudio-prod.us-east-2.amazonaws.com","emrappui-prod.us-gov-east-1.amazonaws.com","emrnotebooks-prod.us-gov-east-1.amazonaws.com","emrstudio-prod.us-gov-east-1.amazonaws.com","emrappui-prod.us-gov-west-1.amazonaws.com","emrnotebooks-prod.us-gov-west-1.amazonaws.com","emrstudio-prod.us-gov-west-1.amazonaws.com","emrappui-prod.us-west-1.amazonaws.com","emrnotebooks-prod.us-west-1.amazonaws.com","emrstudio-prod.us-west-1.amazonaws.com","emrappui-prod.us-west-2.amazonaws.com","emrnotebooks-prod.us-west-2.amazonaws.com","emrstudio-prod.us-west-2.amazonaws.com","*.cn-north-1.airflow.amazonaws.com.cn","*.cn-northwest-1.airflow.amazonaws.com.cn","*.af-south-1.airflow.amazonaws.com","*.ap-east-1.airflow.amazonaws.com","*.ap-northeast-1.airflow.amazonaws.com","*.ap-northeast-2.airflow.amazonaws.com","*.ap-northeast-3.airflow.amazonaws.com","*.ap-south-1.airflow.amazonaws.com","*.ap-south-2.airflow.amazonaws.com","*.ap-southeast-1.airflow.amazonaws.com","*.ap-southeast-2.airflow.amazonaws.com","*.ap-southeast-3.airflow.amazonaws.com","*.ap-southeast-4.airflow.amazonaws.com","*.ca-central-1.airflow.amazonaws.com","*.ca-west-1.airflow.amazonaws.com","*.eu-central-1.airflow.amazonaws.com","*.eu-central-2.airflow.amazonaws.com","*.eu-north-1.airflow.amazonaws.com","*.eu-south-1.airflow.amazonaws.com","*.eu-south-2.airflow.amazonaws.com","*.eu-west-1.airflow.amazonaws.com","*.eu-west-2.airflow.amazonaws.com","*.eu-west-3.airflow.amazonaws.com","*.il-central-1.airflow.amazonaws.com","*.me-central-1.airflow.amazonaws.com","*.me-south-1.airflow.amazonaws.com","*.sa-east-1.airflow.amazonaws.com","*.us-east-1.airflow.amazonaws.com","*.us-east-2.airflow.amazonaws.com","*.us-west-1.airflow.amazonaws.com","*.us-west-2.airflow.amazonaws.com","s3.dualstack.cn-north-1.amazonaws.com.cn","s3-accesspoint.dualstack.cn-north-1.amazonaws.com.cn","s3-website.dualstack.cn-north-1.amazonaws.com.cn","s3.cn-north-1.amazonaws.com.cn","s3-accesspoint.cn-north-1.amazonaws.com.cn","s3-deprecated.cn-north-1.amazonaws.com.cn","s3-object-lambda.cn-north-1.amazonaws.com.cn","s3-website.cn-north-1.amazonaws.com.cn","s3.dualstack.cn-northwest-1.amazonaws.com.cn","s3-accesspoint.dualstack.cn-northwest-1.amazonaws.com.cn","s3.cn-northwest-1.amazonaws.com.cn","s3-accesspoint.cn-northwest-1.amazonaws.com.cn","s3-object-lambda.cn-northwest-1.amazonaws.com.cn","s3-website.cn-northwest-1.amazonaws.com.cn","s3.dualstack.af-south-1.amazonaws.com","s3-accesspoint.dualstack.af-south-1.amazonaws.com","s3-website.dualstack.af-south-1.amazonaws.com","s3.af-south-1.amazonaws.com","s3-accesspoint.af-south-1.amazonaws.com","s3-object-lambda.af-south-1.amazonaws.com","s3-website.af-south-1.amazonaws.com","s3.dualstack.ap-east-1.amazonaws.com","s3-accesspoint.dualstack.ap-east-1.amazonaws.com","s3.ap-east-1.amazonaws.com","s3-accesspoint.ap-east-1.amazonaws.com","s3-object-lambda.ap-east-1.amazonaws.com","s3-website.ap-east-1.amazonaws.com","s3.dualstack.ap-northeast-1.amazonaws.com","s3-accesspoint.dualstack.ap-northeast-1.amazonaws.com","s3-website.dualstack.ap-northeast-1.amazonaws.com","s3.ap-northeast-1.amazonaws.com","s3-accesspoint.ap-northeast-1.amazonaws.com","s3-object-lambda.ap-northeast-1.amazonaws.com","s3-website.ap-northeast-1.amazonaws.com","s3.dualstack.ap-northeast-2.amazonaws.com","s3-accesspoint.dualstack.ap-northeast-2.amazonaws.com","s3-website.dualstack.ap-northeast-2.amazonaws.com","s3.ap-northeast-2.amazonaws.com","s3-accesspoint.ap-northeast-2.amazonaws.com","s3-object-lambda.ap-northeast-2.amazonaws.com","s3-website.ap-northeast-2.amazonaws.com","s3.dualstack.ap-northeast-3.amazonaws.com","s3-accesspoint.dualstack.ap-northeast-3.amazonaws.com","s3-website.dualstack.ap-northeast-3.amazonaws.com","s3.ap-northeast-3.amazonaws.com","s3-accesspoint.ap-northeast-3.amazonaws.com","s3-object-lambda.ap-northeast-3.amazonaws.com","s3-website.ap-northeast-3.amazonaws.com","s3.dualstack.ap-south-1.amazonaws.com","s3-accesspoint.dualstack.ap-south-1.amazonaws.com","s3-website.dualstack.ap-south-1.amazonaws.com","s3.ap-south-1.amazonaws.com","s3-accesspoint.ap-south-1.amazonaws.com","s3-object-lambda.ap-south-1.amazonaws.com","s3-website.ap-south-1.amazonaws.com","s3.dualstack.ap-south-2.amazonaws.com","s3-accesspoint.dualstack.ap-south-2.amazonaws.com","s3-website.dualstack.ap-south-2.amazonaws.com","s3.ap-south-2.amazonaws.com","s3-accesspoint.ap-south-2.amazonaws.com","s3-object-lambda.ap-south-2.amazonaws.com","s3-website.ap-south-2.amazonaws.com","s3.dualstack.ap-southeast-1.amazonaws.com","s3-accesspoint.dualstack.ap-southeast-1.amazonaws.com","s3-website.dualstack.ap-southeast-1.amazonaws.com","s3.ap-southeast-1.amazonaws.com","s3-accesspoint.ap-southeast-1.amazonaws.com","s3-object-lambda.ap-southeast-1.amazonaws.com","s3-website.ap-southeast-1.amazonaws.com","s3.dualstack.ap-southeast-2.amazonaws.com","s3-accesspoint.dualstack.ap-southeast-2.amazonaws.com","s3-website.dualstack.ap-southeast-2.amazonaws.com","s3.ap-southeast-2.amazonaws.com","s3-accesspoint.ap-southeast-2.amazonaws.com","s3-object-lambda.ap-southeast-2.amazonaws.com","s3-website.ap-southeast-2.amazonaws.com","s3.dualstack.ap-southeast-3.amazonaws.com","s3-accesspoint.dualstack.ap-southeast-3.amazonaws.com","s3-website.dualstack.ap-southeast-3.amazonaws.com","s3.ap-southeast-3.amazonaws.com","s3-accesspoint.ap-southeast-3.amazonaws.com","s3-object-lambda.ap-southeast-3.amazonaws.com","s3-website.ap-southeast-3.amazonaws.com","s3.dualstack.ap-southeast-4.amazonaws.com","s3-accesspoint.dualstack.ap-southeast-4.amazonaws.com","s3-website.dualstack.ap-southeast-4.amazonaws.com","s3.ap-southeast-4.amazonaws.com","s3-accesspoint.ap-southeast-4.amazonaws.com","s3-object-lambda.ap-southeast-4.amazonaws.com","s3-website.ap-southeast-4.amazonaws.com","s3.dualstack.ap-southeast-5.amazonaws.com","s3-accesspoint.dualstack.ap-southeast-5.amazonaws.com","s3-website.dualstack.ap-southeast-5.amazonaws.com","s3.ap-southeast-5.amazonaws.com","s3-accesspoint.ap-southeast-5.amazonaws.com","s3-deprecated.ap-southeast-5.amazonaws.com","s3-object-lambda.ap-southeast-5.amazonaws.com","s3-website.ap-southeast-5.amazonaws.com","s3.dualstack.ca-central-1.amazonaws.com","s3-accesspoint.dualstack.ca-central-1.amazonaws.com","s3-accesspoint-fips.dualstack.ca-central-1.amazonaws.com","s3-fips.dualstack.ca-central-1.amazonaws.com","s3-website.dualstack.ca-central-1.amazonaws.com","s3.ca-central-1.amazonaws.com","s3-accesspoint.ca-central-1.amazonaws.com","s3-accesspoint-fips.ca-central-1.amazonaws.com","s3-fips.ca-central-1.amazonaws.com","s3-object-lambda.ca-central-1.amazonaws.com","s3-website.ca-central-1.amazonaws.com","s3.dualstack.ca-west-1.amazonaws.com","s3-accesspoint.dualstack.ca-west-1.amazonaws.com","s3-accesspoint-fips.dualstack.ca-west-1.amazonaws.com","s3-fips.dualstack.ca-west-1.amazonaws.com","s3-website.dualstack.ca-west-1.amazonaws.com","s3.ca-west-1.amazonaws.com","s3-accesspoint.ca-west-1.amazonaws.com","s3-accesspoint-fips.ca-west-1.amazonaws.com","s3-fips.ca-west-1.amazonaws.com","s3-object-lambda.ca-west-1.amazonaws.com","s3-website.ca-west-1.amazonaws.com","s3.dualstack.eu-central-1.amazonaws.com","s3-accesspoint.dualstack.eu-central-1.amazonaws.com","s3-website.dualstack.eu-central-1.amazonaws.com","s3.eu-central-1.amazonaws.com","s3-accesspoint.eu-central-1.amazonaws.com","s3-object-lambda.eu-central-1.amazonaws.com","s3-website.eu-central-1.amazonaws.com","s3.dualstack.eu-central-2.amazonaws.com","s3-accesspoint.dualstack.eu-central-2.amazonaws.com","s3-website.dualstack.eu-central-2.amazonaws.com","s3.eu-central-2.amazonaws.com","s3-accesspoint.eu-central-2.amazonaws.com","s3-object-lambda.eu-central-2.amazonaws.com","s3-website.eu-central-2.amazonaws.com","s3.dualstack.eu-north-1.amazonaws.com","s3-accesspoint.dualstack.eu-north-1.amazonaws.com","s3.eu-north-1.amazonaws.com","s3-accesspoint.eu-north-1.amazonaws.com","s3-object-lambda.eu-north-1.amazonaws.com","s3-website.eu-north-1.amazonaws.com","s3.dualstack.eu-south-1.amazonaws.com","s3-accesspoint.dualstack.eu-south-1.amazonaws.com","s3-website.dualstack.eu-south-1.amazonaws.com","s3.eu-south-1.amazonaws.com","s3-accesspoint.eu-south-1.amazonaws.com","s3-object-lambda.eu-south-1.amazonaws.com","s3-website.eu-south-1.amazonaws.com","s3.dualstack.eu-south-2.amazonaws.com","s3-accesspoint.dualstack.eu-south-2.amazonaws.com","s3-website.dualstack.eu-south-2.amazonaws.com","s3.eu-south-2.amazonaws.com","s3-accesspoint.eu-south-2.amazonaws.com","s3-object-lambda.eu-south-2.amazonaws.com","s3-website.eu-south-2.amazonaws.com","s3.dualstack.eu-west-1.amazonaws.com","s3-accesspoint.dualstack.eu-west-1.amazonaws.com","s3-website.dualstack.eu-west-1.amazonaws.com","s3.eu-west-1.amazonaws.com","s3-accesspoint.eu-west-1.amazonaws.com","s3-deprecated.eu-west-1.amazonaws.com","s3-object-lambda.eu-west-1.amazonaws.com","s3-website.eu-west-1.amazonaws.com","s3.dualstack.eu-west-2.amazonaws.com","s3-accesspoint.dualstack.eu-west-2.amazonaws.com","s3.eu-west-2.amazonaws.com","s3-accesspoint.eu-west-2.amazonaws.com","s3-object-lambda.eu-west-2.amazonaws.com","s3-website.eu-west-2.amazonaws.com","s3.dualstack.eu-west-3.amazonaws.com","s3-accesspoint.dualstack.eu-west-3.amazonaws.com","s3-website.dualstack.eu-west-3.amazonaws.com","s3.eu-west-3.amazonaws.com","s3-accesspoint.eu-west-3.amazonaws.com","s3-object-lambda.eu-west-3.amazonaws.com","s3-website.eu-west-3.amazonaws.com","s3.dualstack.il-central-1.amazonaws.com","s3-accesspoint.dualstack.il-central-1.amazonaws.com","s3-website.dualstack.il-central-1.amazonaws.com","s3.il-central-1.amazonaws.com","s3-accesspoint.il-central-1.amazonaws.com","s3-object-lambda.il-central-1.amazonaws.com","s3-website.il-central-1.amazonaws.com","s3.dualstack.me-central-1.amazonaws.com","s3-accesspoint.dualstack.me-central-1.amazonaws.com","s3-website.dualstack.me-central-1.amazonaws.com","s3.me-central-1.amazonaws.com","s3-accesspoint.me-central-1.amazonaws.com","s3-object-lambda.me-central-1.amazonaws.com","s3-website.me-central-1.amazonaws.com","s3.dualstack.me-south-1.amazonaws.com","s3-accesspoint.dualstack.me-south-1.amazonaws.com","s3.me-south-1.amazonaws.com","s3-accesspoint.me-south-1.amazonaws.com","s3-object-lambda.me-south-1.amazonaws.com","s3-website.me-south-1.amazonaws.com","s3.amazonaws.com","s3-1.amazonaws.com","s3-ap-east-1.amazonaws.com","s3-ap-northeast-1.amazonaws.com","s3-ap-northeast-2.amazonaws.com","s3-ap-northeast-3.amazonaws.com","s3-ap-south-1.amazonaws.com","s3-ap-southeast-1.amazonaws.com","s3-ap-southeast-2.amazonaws.com","s3-ca-central-1.amazonaws.com","s3-eu-central-1.amazonaws.com","s3-eu-north-1.amazonaws.com","s3-eu-west-1.amazonaws.com","s3-eu-west-2.amazonaws.com","s3-eu-west-3.amazonaws.com","s3-external-1.amazonaws.com","s3-fips-us-gov-east-1.amazonaws.com","s3-fips-us-gov-west-1.amazonaws.com","mrap.accesspoint.s3-global.amazonaws.com","s3-me-south-1.amazonaws.com","s3-sa-east-1.amazonaws.com","s3-us-east-2.amazonaws.com","s3-us-gov-east-1.amazonaws.com","s3-us-gov-west-1.amazonaws.com","s3-us-west-1.amazonaws.com","s3-us-west-2.amazonaws.com","s3-website-ap-northeast-1.amazonaws.com","s3-website-ap-southeast-1.amazonaws.com","s3-website-ap-southeast-2.amazonaws.com","s3-website-eu-west-1.amazonaws.com","s3-website-sa-east-1.amazonaws.com","s3-website-us-east-1.amazonaws.com","s3-website-us-gov-west-1.amazonaws.com","s3-website-us-west-1.amazonaws.com","s3-website-us-west-2.amazonaws.com","s3.dualstack.sa-east-1.amazonaws.com","s3-accesspoint.dualstack.sa-east-1.amazonaws.com","s3-website.dualstack.sa-east-1.amazonaws.com","s3.sa-east-1.amazonaws.com","s3-accesspoint.sa-east-1.amazonaws.com","s3-object-lambda.sa-east-1.amazonaws.com","s3-website.sa-east-1.amazonaws.com","s3.dualstack.us-east-1.amazonaws.com","s3-accesspoint.dualstack.us-east-1.amazonaws.com","s3-accesspoint-fips.dualstack.us-east-1.amazonaws.com","s3-fips.dualstack.us-east-1.amazonaws.com","s3-website.dualstack.us-east-1.amazonaws.com","s3.us-east-1.amazonaws.com","s3-accesspoint.us-east-1.amazonaws.com","s3-accesspoint-fips.us-east-1.amazonaws.com","s3-deprecated.us-east-1.amazonaws.com","s3-fips.us-east-1.amazonaws.com","s3-object-lambda.us-east-1.amazonaws.com","s3-website.us-east-1.amazonaws.com","s3.dualstack.us-east-2.amazonaws.com","s3-accesspoint.dualstack.us-east-2.amazonaws.com","s3-accesspoint-fips.dualstack.us-east-2.amazonaws.com","s3-fips.dualstack.us-east-2.amazonaws.com","s3-website.dualstack.us-east-2.amazonaws.com","s3.us-east-2.amazonaws.com","s3-accesspoint.us-east-2.amazonaws.com","s3-accesspoint-fips.us-east-2.amazonaws.com","s3-deprecated.us-east-2.amazonaws.com","s3-fips.us-east-2.amazonaws.com","s3-object-lambda.us-east-2.amazonaws.com","s3-website.us-east-2.amazonaws.com","s3.dualstack.us-gov-east-1.amazonaws.com","s3-accesspoint.dualstack.us-gov-east-1.amazonaws.com","s3-accesspoint-fips.dualstack.us-gov-east-1.amazonaws.com","s3-fips.dualstack.us-gov-east-1.amazonaws.com","s3.us-gov-east-1.amazonaws.com","s3-accesspoint.us-gov-east-1.amazonaws.com","s3-accesspoint-fips.us-gov-east-1.amazonaws.com","s3-fips.us-gov-east-1.amazonaws.com","s3-object-lambda.us-gov-east-1.amazonaws.com","s3-website.us-gov-east-1.amazonaws.com","s3.dualstack.us-gov-west-1.amazonaws.com","s3-accesspoint.dualstack.us-gov-west-1.amazonaws.com","s3-accesspoint-fips.dualstack.us-gov-west-1.amazonaws.com","s3-fips.dualstack.us-gov-west-1.amazonaws.com","s3.us-gov-west-1.amazonaws.com","s3-accesspoint.us-gov-west-1.amazonaws.com","s3-accesspoint-fips.us-gov-west-1.amazonaws.com","s3-fips.us-gov-west-1.amazonaws.com","s3-object-lambda.us-gov-west-1.amazonaws.com","s3-website.us-gov-west-1.amazonaws.com","s3.dualstack.us-west-1.amazonaws.com","s3-accesspoint.dualstack.us-west-1.amazonaws.com","s3-accesspoint-fips.dualstack.us-west-1.amazonaws.com","s3-fips.dualstack.us-west-1.amazonaws.com","s3-website.dualstack.us-west-1.amazonaws.com","s3.us-west-1.amazonaws.com","s3-accesspoint.us-west-1.amazonaws.com","s3-accesspoint-fips.us-west-1.amazonaws.com","s3-fips.us-west-1.amazonaws.com","s3-object-lambda.us-west-1.amazonaws.com","s3-website.us-west-1.amazonaws.com","s3.dualstack.us-west-2.amazonaws.com","s3-accesspoint.dualstack.us-west-2.amazonaws.com","s3-accesspoint-fips.dualstack.us-west-2.amazonaws.com","s3-fips.dualstack.us-west-2.amazonaws.com","s3-website.dualstack.us-west-2.amazonaws.com","s3.us-west-2.amazonaws.com","s3-accesspoint.us-west-2.amazonaws.com","s3-accesspoint-fips.us-west-2.amazonaws.com","s3-deprecated.us-west-2.amazonaws.com","s3-fips.us-west-2.amazonaws.com","s3-object-lambda.us-west-2.amazonaws.com","s3-website.us-west-2.amazonaws.com","labeling.ap-northeast-1.sagemaker.aws","labeling.ap-northeast-2.sagemaker.aws","labeling.ap-south-1.sagemaker.aws","labeling.ap-southeast-1.sagemaker.aws","labeling.ap-southeast-2.sagemaker.aws","labeling.ca-central-1.sagemaker.aws","labeling.eu-central-1.sagemaker.aws","labeling.eu-west-1.sagemaker.aws","labeling.eu-west-2.sagemaker.aws","labeling.us-east-1.sagemaker.aws","labeling.us-east-2.sagemaker.aws","labeling.us-west-2.sagemaker.aws","notebook.af-south-1.sagemaker.aws","notebook.ap-east-1.sagemaker.aws","notebook.ap-northeast-1.sagemaker.aws","notebook.ap-northeast-2.sagemaker.aws","notebook.ap-northeast-3.sagemaker.aws","notebook.ap-south-1.sagemaker.aws","notebook.ap-south-2.sagemaker.aws","notebook.ap-southeast-1.sagemaker.aws","notebook.ap-southeast-2.sagemaker.aws","notebook.ap-southeast-3.sagemaker.aws","notebook.ap-southeast-4.sagemaker.aws","notebook.ca-central-1.sagemaker.aws","notebook-fips.ca-central-1.sagemaker.aws","notebook.ca-west-1.sagemaker.aws","notebook-fips.ca-west-1.sagemaker.aws","notebook.eu-central-1.sagemaker.aws","notebook.eu-central-2.sagemaker.aws","notebook.eu-north-1.sagemaker.aws","notebook.eu-south-1.sagemaker.aws","notebook.eu-south-2.sagemaker.aws","notebook.eu-west-1.sagemaker.aws","notebook.eu-west-2.sagemaker.aws","notebook.eu-west-3.sagemaker.aws","notebook.il-central-1.sagemaker.aws","notebook.me-central-1.sagemaker.aws","notebook.me-south-1.sagemaker.aws","notebook.sa-east-1.sagemaker.aws","notebook.us-east-1.sagemaker.aws","notebook-fips.us-east-1.sagemaker.aws","notebook.us-east-2.sagemaker.aws","notebook-fips.us-east-2.sagemaker.aws","notebook.us-gov-east-1.sagemaker.aws","notebook-fips.us-gov-east-1.sagemaker.aws","notebook.us-gov-west-1.sagemaker.aws","notebook-fips.us-gov-west-1.sagemaker.aws","notebook.us-west-1.sagemaker.aws","notebook-fips.us-west-1.sagemaker.aws","notebook.us-west-2.sagemaker.aws","notebook-fips.us-west-2.sagemaker.aws","notebook.cn-north-1.sagemaker.com.cn","notebook.cn-northwest-1.sagemaker.com.cn","studio.af-south-1.sagemaker.aws","studio.ap-east-1.sagemaker.aws","studio.ap-northeast-1.sagemaker.aws","studio.ap-northeast-2.sagemaker.aws","studio.ap-northeast-3.sagemaker.aws","studio.ap-south-1.sagemaker.aws","studio.ap-southeast-1.sagemaker.aws","studio.ap-southeast-2.sagemaker.aws","studio.ap-southeast-3.sagemaker.aws","studio.ca-central-1.sagemaker.aws","studio.eu-central-1.sagemaker.aws","studio.eu-north-1.sagemaker.aws","studio.eu-south-1.sagemaker.aws","studio.eu-south-2.sagemaker.aws","studio.eu-west-1.sagemaker.aws","studio.eu-west-2.sagemaker.aws","studio.eu-west-3.sagemaker.aws","studio.il-central-1.sagemaker.aws","studio.me-central-1.sagemaker.aws","studio.me-south-1.sagemaker.aws","studio.sa-east-1.sagemaker.aws","studio.us-east-1.sagemaker.aws","studio.us-east-2.sagemaker.aws","studio.us-gov-east-1.sagemaker.aws","studio-fips.us-gov-east-1.sagemaker.aws","studio.us-gov-west-1.sagemaker.aws","studio-fips.us-gov-west-1.sagemaker.aws","studio.us-west-1.sagemaker.aws","studio.us-west-2.sagemaker.aws","studio.cn-north-1.sagemaker.com.cn","studio.cn-northwest-1.sagemaker.com.cn","*.experiments.sagemaker.aws","analytics-gateway.ap-northeast-1.amazonaws.com","analytics-gateway.ap-northeast-2.amazonaws.com","analytics-gateway.ap-south-1.amazonaws.com","analytics-gateway.ap-southeast-1.amazonaws.com","analytics-gateway.ap-southeast-2.amazonaws.com","analytics-gateway.eu-central-1.amazonaws.com","analytics-gateway.eu-west-1.amazonaws.com","analytics-gateway.us-east-1.amazonaws.com","analytics-gateway.us-east-2.amazonaws.com","analytics-gateway.us-west-2.amazonaws.com","amplifyapp.com","*.awsapprunner.com","webview-assets.aws-cloud9.af-south-1.amazonaws.com","vfs.cloud9.af-south-1.amazonaws.com","webview-assets.cloud9.af-south-1.amazonaws.com","webview-assets.aws-cloud9.ap-east-1.amazonaws.com","vfs.cloud9.ap-east-1.amazonaws.com","webview-assets.cloud9.ap-east-1.amazonaws.com","webview-assets.aws-cloud9.ap-northeast-1.amazonaws.com","vfs.cloud9.ap-northeast-1.amazonaws.com","webview-assets.cloud9.ap-northeast-1.amazonaws.com","webview-assets.aws-cloud9.ap-northeast-2.amazonaws.com","vfs.cloud9.ap-northeast-2.amazonaws.com","webview-assets.cloud9.ap-northeast-2.amazonaws.com","webview-assets.aws-cloud9.ap-northeast-3.amazonaws.com","vfs.cloud9.ap-northeast-3.amazonaws.com","webview-assets.cloud9.ap-northeast-3.amazonaws.com","webview-assets.aws-cloud9.ap-south-1.amazonaws.com","vfs.cloud9.ap-south-1.amazonaws.com","webview-assets.cloud9.ap-south-1.amazonaws.com","webview-assets.aws-cloud9.ap-southeast-1.amazonaws.com","vfs.cloud9.ap-southeast-1.amazonaws.com","webview-assets.cloud9.ap-southeast-1.amazonaws.com","webview-assets.aws-cloud9.ap-southeast-2.amazonaws.com","vfs.cloud9.ap-southeast-2.amazonaws.com","webview-assets.cloud9.ap-southeast-2.amazonaws.com","webview-assets.aws-cloud9.ca-central-1.amazonaws.com","vfs.cloud9.ca-central-1.amazonaws.com","webview-assets.cloud9.ca-central-1.amazonaws.com","webview-assets.aws-cloud9.eu-central-1.amazonaws.com","vfs.cloud9.eu-central-1.amazonaws.com","webview-assets.cloud9.eu-central-1.amazonaws.com","webview-assets.aws-cloud9.eu-north-1.amazonaws.com","vfs.cloud9.eu-north-1.amazonaws.com","webview-assets.cloud9.eu-north-1.amazonaws.com","webview-assets.aws-cloud9.eu-south-1.amazonaws.com","vfs.cloud9.eu-south-1.amazonaws.com","webview-assets.cloud9.eu-south-1.amazonaws.com","webview-assets.aws-cloud9.eu-west-1.amazonaws.com","vfs.cloud9.eu-west-1.amazonaws.com","webview-assets.cloud9.eu-west-1.amazonaws.com","webview-assets.aws-cloud9.eu-west-2.amazonaws.com","vfs.cloud9.eu-west-2.amazonaws.com","webview-assets.cloud9.eu-west-2.amazonaws.com","webview-assets.aws-cloud9.eu-west-3.amazonaws.com","vfs.cloud9.eu-west-3.amazonaws.com","webview-assets.cloud9.eu-west-3.amazonaws.com","webview-assets.aws-cloud9.il-central-1.amazonaws.com","vfs.cloud9.il-central-1.amazonaws.com","webview-assets.aws-cloud9.me-south-1.amazonaws.com","vfs.cloud9.me-south-1.amazonaws.com","webview-assets.cloud9.me-south-1.amazonaws.com","webview-assets.aws-cloud9.sa-east-1.amazonaws.com","vfs.cloud9.sa-east-1.amazonaws.com","webview-assets.cloud9.sa-east-1.amazonaws.com","webview-assets.aws-cloud9.us-east-1.amazonaws.com","vfs.cloud9.us-east-1.amazonaws.com","webview-assets.cloud9.us-east-1.amazonaws.com","webview-assets.aws-cloud9.us-east-2.amazonaws.com","vfs.cloud9.us-east-2.amazonaws.com","webview-assets.cloud9.us-east-2.amazonaws.com","webview-assets.aws-cloud9.us-west-1.amazonaws.com","vfs.cloud9.us-west-1.amazonaws.com","webview-assets.cloud9.us-west-1.amazonaws.com","webview-assets.aws-cloud9.us-west-2.amazonaws.com","vfs.cloud9.us-west-2.amazonaws.com","webview-assets.cloud9.us-west-2.amazonaws.com","awsapps.com","cn-north-1.eb.amazonaws.com.cn","cn-northwest-1.eb.amazonaws.com.cn","elasticbeanstalk.com","af-south-1.elasticbeanstalk.com","ap-east-1.elasticbeanstalk.com","ap-northeast-1.elasticbeanstalk.com","ap-northeast-2.elasticbeanstalk.com","ap-northeast-3.elasticbeanstalk.com","ap-south-1.elasticbeanstalk.com","ap-southeast-1.elasticbeanstalk.com","ap-southeast-2.elasticbeanstalk.com","ap-southeast-3.elasticbeanstalk.com","ca-central-1.elasticbeanstalk.com","eu-central-1.elasticbeanstalk.com","eu-north-1.elasticbeanstalk.com","eu-south-1.elasticbeanstalk.com","eu-west-1.elasticbeanstalk.com","eu-west-2.elasticbeanstalk.com","eu-west-3.elasticbeanstalk.com","il-central-1.elasticbeanstalk.com","me-south-1.elasticbeanstalk.com","sa-east-1.elasticbeanstalk.com","us-east-1.elasticbeanstalk.com","us-east-2.elasticbeanstalk.com","us-gov-east-1.elasticbeanstalk.com","us-gov-west-1.elasticbeanstalk.com","us-west-1.elasticbeanstalk.com","us-west-2.elasticbeanstalk.com","*.elb.amazonaws.com.cn","*.elb.amazonaws.com","awsglobalaccelerator.com","*.private.repost.aws","eero.online","eero-stage.online","apigee.io","panel.dev","siiites.com","appspacehosted.com","appspaceusercontent.com","appudo.net","on-aptible.com","f5.si","arvanedge.ir","user.aseinet.ne.jp","gv.vc","d.gv.vc","user.party.eus","pimienta.org","poivron.org","potager.org","sweetpepper.org","myasustor.com","cdn.prod.atlassian-dev.net","translated.page","myfritz.link","myfritz.net","onavstack.net","*.awdev.ca","*.advisor.ws","ecommerce-shop.pl","b-data.io","balena-devices.com","base.ec","official.ec","buyshop.jp","fashionstore.jp","handcrafted.jp","kawaiishop.jp","supersale.jp","theshop.jp","shopselect.net","base.shop","beagleboard.io","*.beget.app","pages.gay","bnr.la","bitbucket.io","blackbaudcdn.net","of.je","bluebite.io","boomla.net","boutir.com","boxfuse.io","square7.ch","bplaced.com","bplaced.de","square7.de","bplaced.net","square7.net","*.s.brave.io","shop.brendly.hr","shop.brendly.rs","browsersafetymark.io","radio.am","radio.fm","uk0.bigv.io","dh.bytemark.co.uk","vm.bytemark.co.uk","cafjs.com","canva-apps.cn","*.my.canvasite.cn","canva-apps.com","*.my.canva.site","drr.ac","uwu.ai","carrd.co","crd.co","ju.mp","api.gov.uk","cdn77-storage.com","rsc.contentproxy9.cz","r.cdn77.net","cdn77-ssl.net","c.cdn77.org","rsc.cdn77.org","ssl.origin.cdn77-secure.org","za.bz","br.com","cn.com","de.com","eu.com","jpn.com","mex.com","ru.com","sa.com","uk.com","us.com","za.com","com.de","gb.net","hu.net","jp.net","se.net","uk.net","ae.org","com.se","cx.ua","discourse.group","discourse.team","clerk.app","clerkstage.app","*.lcl.dev","*.lclstage.dev","*.stg.dev","*.stgstage.dev","cleverapps.cc","*.services.clever-cloud.com","cleverapps.io","cleverapps.tech","clickrising.net","cloudns.asia","cloudns.be","cloud-ip.biz","cloudns.biz","cloudns.cc","cloudns.ch","cloudns.cl","cloudns.club","dnsabr.com","ip-ddns.com","cloudns.cx","cloudns.eu","cloudns.in","cloudns.info","ddns-ip.net","dns-cloud.net","dns-dynamic.net","cloudns.nz","cloudns.org","ip-dynamic.org","cloudns.ph","cloudns.pro","cloudns.pw","cloudns.us","c66.me","cloud66.ws","cloud66.zone","jdevcloud.com","wpdevcloud.com","cloudaccess.host","freesite.host","cloudaccess.net","*.cloudera.site","cf-ipfs.com","cloudflare-ipfs.com","trycloudflare.com","pages.dev","r2.dev","workers.dev","cloudflare.net","cdn.cloudflare.net","cdn.cloudflareanycast.net","cdn.cloudflarecn.net","cdn.cloudflareglobal.net","cust.cloudscale.ch","objects.lpg.cloudscale.ch","objects.rma.cloudscale.ch","wnext.app","cnpy.gdn","*.otap.co","co.ca","co.com","codeberg.page","csb.app","preview.csb.app","co.nl","co.no","webhosting.be","hosting-cluster.nl","ctfcloud.net","convex.site","ac.ru","edu.ru","gov.ru","int.ru","mil.ru","test.ru","dyn.cosidns.de","dnsupdater.de","dynamisches-dns.de","internet-dns.de","l-o-g-i-n.de","dynamic-dns.info","feste-ip.net","knx-server.net","static-access.net","craft.me","realm.cz","on.crisp.email","*.cryptonomic.net","curv.dev","cfolks.pl","cyon.link","cyon.site","platform0.app","fnwk.site","folionetwork.site","biz.dk","co.dk","firm.dk","reg.dk","store.dk","dyndns.dappnode.io","builtwithdark.com","darklang.io","demo.datadetect.com","instance.datadetect.com","edgestack.me","dattolocal.com","dattorelay.com","dattoweb.com","mydatto.com","dattolocal.net","mydatto.net","ddnss.de","dyn.ddnss.de","dyndns.ddnss.de","dyn-ip24.de","dyndns1.de","home-webserver.de","dyn.home-webserver.de","myhome-server.de","ddnss.org","debian.net","definima.io","definima.net","deno.dev","deno-staging.dev","dedyn.io","deta.app","deta.dev","dfirma.pl","dkonto.pl","you2.pl","ondigitalocean.app","*.digitaloceanspaces.com","us.kg","rss.my.id","diher.solutions","discordsays.com","discordsez.com","jozi.biz","dnshome.de","online.th","shop.th","drayddns.com","shoparena.pl","dreamhosters.com","durumis.com","mydrobo.com","drud.io","drud.us","duckdns.org","dy.fi","tunk.org","dyndns.biz","for-better.biz","for-more.biz","for-some.biz","for-the.biz","selfip.biz","webhop.biz","ftpaccess.cc","game-server.cc","myphotos.cc","scrapping.cc","blogdns.com","cechire.com","dnsalias.com","dnsdojo.com","doesntexist.com","dontexist.com","doomdns.com","dyn-o-saur.com","dynalias.com","dyndns-at-home.com","dyndns-at-work.com","dyndns-blog.com","dyndns-free.com","dyndns-home.com","dyndns-ip.com","dyndns-mail.com","dyndns-office.com","dyndns-pics.com","dyndns-remote.com","dyndns-server.com","dyndns-web.com","dyndns-wiki.com","dyndns-work.com","est-a-la-maison.com","est-a-la-masion.com","est-le-patron.com","est-mon-blogueur.com","from-ak.com","from-al.com","from-ar.com","from-ca.com","from-ct.com","from-dc.com","from-de.com","from-fl.com","from-ga.com","from-hi.com","from-ia.com","from-id.com","from-il.com","from-in.com","from-ks.com","from-ky.com","from-ma.com","from-md.com","from-mi.com","from-mn.com","from-mo.com","from-ms.com","from-mt.com","from-nc.com","from-nd.com","from-ne.com","from-nh.com","from-nj.com","from-nm.com","from-nv.com","from-oh.com","from-ok.com","from-or.com","from-pa.com","from-pr.com","from-ri.com","from-sc.com","from-sd.com","from-tn.com","from-tx.com","from-ut.com","from-va.com","from-vt.com","from-wa.com","from-wi.com","from-wv.com","from-wy.com","getmyip.com","gotdns.com","hobby-site.com","homelinux.com","homeunix.com","iamallama.com","is-a-anarchist.com","is-a-blogger.com","is-a-bookkeeper.com","is-a-bulls-fan.com","is-a-caterer.com","is-a-chef.com","is-a-conservative.com","is-a-cpa.com","is-a-cubicle-slave.com","is-a-democrat.com","is-a-designer.com","is-a-doctor.com","is-a-financialadvisor.com","is-a-geek.com","is-a-green.com","is-a-guru.com","is-a-hard-worker.com","is-a-hunter.com","is-a-landscaper.com","is-a-lawyer.com","is-a-liberal.com","is-a-libertarian.com","is-a-llama.com","is-a-musician.com","is-a-nascarfan.com","is-a-nurse.com","is-a-painter.com","is-a-personaltrainer.com","is-a-photographer.com","is-a-player.com","is-a-republican.com","is-a-rockstar.com","is-a-socialist.com","is-a-student.com","is-a-teacher.com","is-a-techie.com","is-a-therapist.com","is-an-accountant.com","is-an-actor.com","is-an-actress.com","is-an-anarchist.com","is-an-artist.com","is-an-engineer.com","is-an-entertainer.com","is-certified.com","is-gone.com","is-into-anime.com","is-into-cars.com","is-into-cartoons.com","is-into-games.com","is-leet.com","is-not-certified.com","is-slick.com","is-uberleet.com","is-with-theband.com","isa-geek.com","isa-hockeynut.com","issmarterthanyou.com","likes-pie.com","likescandy.com","neat-url.com","saves-the-whales.com","selfip.com","sells-for-less.com","sells-for-u.com","servebbs.com","simple-url.com","space-to-rent.com","teaches-yoga.com","writesthisblog.com","ath.cx","fuettertdasnetz.de","isteingeek.de","istmein.de","lebtimnetz.de","leitungsen.de","traeumtgerade.de","barrel-of-knowledge.info","barrell-of-knowledge.info","dyndns.info","for-our.info","groks-the.info","groks-this.info","here-for-more.info","knowsitall.info","selfip.info","webhop.info","forgot.her.name","forgot.his.name","at-band-camp.net","blogdns.net","broke-it.net","buyshouses.net","dnsalias.net","dnsdojo.net","does-it.net","dontexist.net","dynalias.net","dynathome.net","endofinternet.net","from-az.net","from-co.net","from-la.net","from-ny.net","gets-it.net","ham-radio-op.net","homeftp.net","homeip.net","homelinux.net","homeunix.net","in-the-band.net","is-a-chef.net","is-a-geek.net","isa-geek.net","kicks-ass.net","office-on-the.net","podzone.net","scrapper-site.net","selfip.net","sells-it.net","servebbs.net","serveftp.net","thruhere.net","webhop.net","merseine.nu","mine.nu","shacknet.nu","blogdns.org","blogsite.org","boldlygoingnowhere.org","dnsalias.org","dnsdojo.org","doesntexist.org","dontexist.org","doomdns.org","dvrdns.org","dynalias.org","dyndns.org","go.dyndns.org","home.dyndns.org","endofinternet.org","endoftheinternet.org","from-me.org","game-host.org","gotdns.org","hobby-site.org","homedns.org","homeftp.org","homelinux.org","homeunix.org","is-a-bruinsfan.org","is-a-candidate.org","is-a-celticsfan.org","is-a-chef.org","is-a-geek.org","is-a-knight.org","is-a-linux-user.org","is-a-patsfan.org","is-a-soxfan.org","is-found.org","is-lost.org","is-saved.org","is-very-bad.org","is-very-evil.org","is-very-good.org","is-very-nice.org","is-very-sweet.org","isa-geek.org","kicks-ass.org","misconfused.org","podzone.org","readmyblog.org","selfip.org","sellsyourhome.org","servebbs.org","serveftp.org","servegame.org","stuff-4-sale.org","webhop.org","better-than.tv","dyndns.tv","on-the-web.tv","worse-than.tv","is-by.us","land-4-sale.us","stuff-4-sale.us","dyndns.ws","mypets.ws","ddnsfree.com","ddnsgeek.com","giize.com","gleeze.com","kozow.com","loseyourip.com","ooguy.com","theworkpc.com","casacam.net","dynu.net","accesscam.org","camdvr.org","freeddns.org","mywire.org","webredirect.org","myddns.rocks","dynv6.net","e4.cz","easypanel.app","easypanel.host","*.ewp.live","twmail.cc","twmail.net","twmail.org","mymailer.com.tw","url.tw","at.emf.camp","rt.ht","elementor.cloud","elementor.cool","en-root.fr","mytuleap.com","tuleap-partners.com","encr.app","encoreapi.com","eu.encoway.cloud","eu.org","al.eu.org","asso.eu.org","at.eu.org","au.eu.org","be.eu.org","bg.eu.org","ca.eu.org","cd.eu.org","ch.eu.org","cn.eu.org","cy.eu.org","cz.eu.org","de.eu.org","dk.eu.org","edu.eu.org","ee.eu.org","es.eu.org","fi.eu.org","fr.eu.org","gr.eu.org","hr.eu.org","hu.eu.org","ie.eu.org","il.eu.org","in.eu.org","int.eu.org","is.eu.org","it.eu.org","jp.eu.org","kr.eu.org","lt.eu.org","lu.eu.org","lv.eu.org","me.eu.org","mk.eu.org","mt.eu.org","my.eu.org","net.eu.org","ng.eu.org","nl.eu.org","no.eu.org","nz.eu.org","pl.eu.org","pt.eu.org","ro.eu.org","ru.eu.org","se.eu.org","si.eu.org","sk.eu.org","tr.eu.org","uk.eu.org","us.eu.org","eurodir.ru","eu-1.evennode.com","eu-2.evennode.com","eu-3.evennode.com","eu-4.evennode.com","us-1.evennode.com","us-2.evennode.com","us-3.evennode.com","us-4.evennode.com","relay.evervault.app","relay.evervault.dev","expo.app","staging.expo.app","onfabrica.com","ru.net","adygeya.ru","bashkiria.ru","bir.ru","cbg.ru","com.ru","dagestan.ru","grozny.ru","kalmykia.ru","kustanai.ru","marine.ru","mordovia.ru","msk.ru","mytis.ru","nalchik.ru","nov.ru","pyatigorsk.ru","spb.ru","vladikavkaz.ru","vladimir.ru","abkhazia.su","adygeya.su","aktyubinsk.su","arkhangelsk.su","armenia.su","ashgabad.su","azerbaijan.su","balashov.su","bashkiria.su","bryansk.su","bukhara.su","chimkent.su","dagestan.su","east-kazakhstan.su","exnet.su","georgia.su","grozny.su","ivanovo.su","jambyl.su","kalmykia.su","kaluga.su","karacol.su","karaganda.su","karelia.su","khakassia.su","krasnodar.su","kurgan.su","kustanai.su","lenug.su","mangyshlak.su","mordovia.su","msk.su","murmansk.su","nalchik.su","navoi.su","north-kazakhstan.su","nov.su","obninsk.su","penza.su","pokrovsk.su","sochi.su","spb.su","tashkent.su","termez.su","togliatti.su","troitsk.su","tselinograd.su","tula.su","tuva.su","vladikavkaz.su","vladimir.su","vologda.su","channelsdvr.net","u.channelsdvr.net","edgecompute.app","fastly-edge.com","fastly-terrarium.com","freetls.fastly.net","map.fastly.net","a.prod.fastly.net","global.prod.fastly.net","a.ssl.fastly.net","b.ssl.fastly.net","global.ssl.fastly.net","fastlylb.net","map.fastlylb.net","*.user.fm","fastvps-server.com","fastvps.host","myfast.host","fastvps.site","myfast.space","conn.uk","copro.uk","hosp.uk","fedorainfracloud.org","fedorapeople.org","cloud.fedoraproject.org","app.os.fedoraproject.org","app.os.stg.fedoraproject.org","mydobiss.com","fh-muenster.io","filegear.me","firebaseapp.com","fldrv.com","flutterflow.app","fly.dev","shw.io","edgeapp.net","forgeblocks.com","id.forgerock.io","framer.ai","framer.app","framercanvas.com","framer.media","framer.photos","framer.website","framer.wiki","0e.vc","freebox-os.com","freeboxos.com","fbx-os.fr","fbxos.fr","freebox-os.fr","freeboxos.fr","freedesktop.org","freemyip.com","*.frusky.de","wien.funkfeuer.at","daemon.asia","dix.asia","mydns.bz","0am.jp","0g0.jp","0j0.jp","0t0.jp","mydns.jp","pgw.jp","wjg.jp","keyword-on.net","live-on.net","server-on.net","mydns.tw","mydns.vc","*.futurecms.at","*.ex.futurecms.at","*.in.futurecms.at","futurehosting.at","futuremailing.at","*.ex.ortsinfo.at","*.kunden.ortsinfo.at","*.statics.cloud","aliases121.com","campaign.gov.uk","service.gov.uk","independent-commission.uk","independent-inquest.uk","independent-inquiry.uk","independent-panel.uk","independent-review.uk","public-inquiry.uk","royal-commission.uk","gehirn.ne.jp","usercontent.jp","gentapps.com","gentlentapis.com","lab.ms","cdn-edges.net","localcert.net","localhostcert.net","gsj.bz","githubusercontent.com","githubpreview.dev","github.io","gitlab.io","gitapp.si","gitpage.si","glitch.me","nog.community","co.ro","shop.ro","lolipop.io","angry.jp","babyblue.jp","babymilk.jp","backdrop.jp","bambina.jp","bitter.jp","blush.jp","boo.jp","boy.jp","boyfriend.jp","but.jp","candypop.jp","capoo.jp","catfood.jp","cheap.jp","chicappa.jp","chillout.jp","chips.jp","chowder.jp","chu.jp","ciao.jp","cocotte.jp","coolblog.jp","cranky.jp","cutegirl.jp","daa.jp","deca.jp","deci.jp","digick.jp","egoism.jp","fakefur.jp","fem.jp","flier.jp","floppy.jp","fool.jp","frenchkiss.jp","girlfriend.jp","girly.jp","gloomy.jp","gonna.jp","greater.jp","hacca.jp","heavy.jp","her.jp","hiho.jp","hippy.jp","holy.jp","hungry.jp","icurus.jp","itigo.jp","jellybean.jp","kikirara.jp","kill.jp","kilo.jp","kuron.jp","littlestar.jp","lolipopmc.jp","lolitapunk.jp","lomo.jp","lovepop.jp","lovesick.jp","main.jp","mods.jp","mond.jp","mongolian.jp","moo.jp","namaste.jp","nikita.jp","nobushi.jp","noor.jp","oops.jp","parallel.jp","parasite.jp","pecori.jp","peewee.jp","penne.jp","pepper.jp","perma.jp","pigboat.jp","pinoko.jp","punyu.jp","pupu.jp","pussycat.jp","pya.jp","raindrop.jp","readymade.jp","sadist.jp","schoolbus.jp","secret.jp","staba.jp","stripper.jp","sub.jp","sunnyday.jp","thick.jp","tonkotsu.jp","under.jp","upper.jp","velvet.jp","verse.jp","versus.jp","vivian.jp","watson.jp","weblike.jp","whitesnow.jp","zombie.jp","heteml.net","graphic.design","goip.de","blogspot.ae","blogspot.al","blogspot.am","*.hosted.app","*.run.app","web.app","blogspot.com.ar","blogspot.co.at","blogspot.com.au","blogspot.ba","blogspot.be","blogspot.bg","blogspot.bj","blogspot.com.br","blogspot.com.by","blogspot.ca","blogspot.cf","blogspot.ch","blogspot.cl","blogspot.com.co","*.0emm.com","appspot.com","*.r.appspot.com","blogspot.com","codespot.com","googleapis.com","googlecode.com","pagespeedmobilizer.com","withgoogle.com","withyoutube.com","blogspot.cv","blogspot.com.cy","blogspot.cz","blogspot.de","*.gateway.dev","blogspot.dk","blogspot.com.ee","blogspot.com.eg","blogspot.com.es","blogspot.fi","blogspot.fr","cloud.goog","translate.goog","*.usercontent.goog","blogspot.gr","blogspot.hk","blogspot.hr","blogspot.hu","blogspot.co.id","blogspot.ie","blogspot.co.il","blogspot.in","blogspot.is","blogspot.it","blogspot.jp","blogspot.co.ke","blogspot.kr","blogspot.li","blogspot.lt","blogspot.lu","blogspot.md","blogspot.mk","blogspot.com.mt","blogspot.mx","blogspot.my","cloudfunctions.net","blogspot.com.ng","blogspot.nl","blogspot.no","blogspot.co.nz","blogspot.pe","blogspot.pt","blogspot.qa","blogspot.re","blogspot.ro","blogspot.rs","blogspot.ru","blogspot.se","blogspot.sg","blogspot.si","blogspot.sk","blogspot.sn","blogspot.td","blogspot.com.tr","blogspot.tw","blogspot.ug","blogspot.co.uk","blogspot.com.uy","blogspot.vn","blogspot.co.za","goupile.fr","pymnt.uk","cloudapps.digital","london.cloudapps.digital","gov.nl","grafana-dev.net","grayjayleagues.com","günstigbestellen.de","günstigliefern.de","fin.ci","free.hr","caa.li","ua.rs","conf.se","häkkinen.fi","hrsn.dev","hashbang.sh","hasura.app","hasura-app.io","hatenablog.com","hatenadiary.com","hateblo.jp","hatenablog.jp","hatenadiary.jp","hatenadiary.org","pages.it.hs-heilbronn.de","pages-research.it.hs-heilbronn.de","heiyu.space","helioho.st","heliohost.us","hepforge.org","herokuapp.com","herokussl.com","heyflow.page","heyflow.site","ravendb.cloud","ravendb.community","development.run","ravendb.run","homesklep.pl","*.kin.one","*.id.pub","*.kin.pub","secaas.hk","hoplix.shop","orx.biz","biz.gl","biz.ng","co.biz.ng","dl.biz.ng","go.biz.ng","lg.biz.ng","on.biz.ng","col.ng","firm.ng","gen.ng","ltd.ng","ngo.ng","plc.ng","ie.ua","hostyhosting.io","hf.space","static.hf.space","hypernode.io","iobb.net","co.cz","*.moonscale.io","moonscale.net","gr.com","iki.fi","ibxos.it","iliadboxos.it","smushcdn.com","wphostedmail.com","wpmucdn.com","tempurl.host","wpmudev.host","dyn-berlin.de","in-berlin.de","in-brb.de","in-butter.de","in-dsl.de","in-vpn.de","in-dsl.net","in-vpn.net","in-dsl.org","in-vpn.org","biz.at","info.at","info.cx","ac.leg.br","al.leg.br","am.leg.br","ap.leg.br","ba.leg.br","ce.leg.br","df.leg.br","es.leg.br","go.leg.br","ma.leg.br","mg.leg.br","ms.leg.br","mt.leg.br","pa.leg.br","pb.leg.br","pe.leg.br","pi.leg.br","pr.leg.br","rj.leg.br","rn.leg.br","ro.leg.br","rr.leg.br","rs.leg.br","sc.leg.br","se.leg.br","sp.leg.br","to.leg.br","pixolino.com","na4u.ru","apps-1and1.com","live-website.com","apps-1and1.net","websitebuilder.online","app-ionos.space","iopsys.se","*.dweb.link","ipifony.net","ir.md","is-a-good.dev","is-a.dev","iservschule.de","mein-iserv.de","schulplattform.de","schulserver.de","test-iserv.de","iserv.dev","mel.cloudlets.com.au","cloud.interhostsolutions.be","alp1.ae.flow.ch","appengine.flow.ch","es-1.axarnet.cloud","diadem.cloud","vip.jelastic.cloud","jele.cloud","it1.eur.aruba.jenv-aruba.cloud","it1.jenv-aruba.cloud","keliweb.cloud","cs.keliweb.cloud","oxa.cloud","tn.oxa.cloud","uk.oxa.cloud","primetel.cloud","uk.primetel.cloud","ca.reclaim.cloud","uk.reclaim.cloud","us.reclaim.cloud","ch.trendhosting.cloud","de.trendhosting.cloud","jele.club","dopaas.com","paas.hosted-by-previder.com","rag-cloud.hosteur.com","rag-cloud-ch.hosteur.com","jcloud.ik-server.com","jcloud-ver-jpc.ik-server.com","demo.jelastic.com","paas.massivegrid.com","jed.wafaicloud.com","ryd.wafaicloud.com","j.scaleforce.com.cy","jelastic.dogado.eu","fi.cloudplatform.fi","demo.datacenter.fi","paas.datacenter.fi","jele.host","mircloud.host","paas.beebyte.io","sekd1.beebyteapp.io","jele.io","jc.neen.it","jcloud.kz","cloudjiffy.net","fra1-de.cloudjiffy.net","west1-us.cloudjiffy.net","jls-sto1.elastx.net","jls-sto2.elastx.net","jls-sto3.elastx.net","fr-1.paas.massivegrid.net","lon-1.paas.massivegrid.net","lon-2.paas.massivegrid.net","ny-1.paas.massivegrid.net","ny-2.paas.massivegrid.net","sg-1.paas.massivegrid.net","jelastic.saveincloud.net","nordeste-idc.saveincloud.net","j.scaleforce.net","sdscloud.pl","unicloud.pl","mircloud.ru","enscaled.sg","jele.site","jelastic.team","orangecloud.tn","j.layershift.co.uk","phx.enscaled.us","mircloud.us","myjino.ru","*.hosting.myjino.ru","*.landing.myjino.ru","*.spectrum.myjino.ru","*.vps.myjino.ru","jotelulu.cloud","webadorsite.com","jouwweb.site","*.cns.joyent.com","*.triton.zone","js.org","kaas.gg","khplay.nl","kapsi.fi","ezproxy.kuleuven.be","kuleuven.cloud","keymachine.de","kinghost.net","uni5.net","knightpoint.systems","koobin.events","webthings.io","krellian.net","oya.to","git-repos.de","lcube-server.de","svn-repos.de","leadpages.co","lpages.co","lpusercontent.com","lelux.site","libp2p.direct","runcontainers.dev","co.business","co.education","co.events","co.financial","co.network","co.place","co.technology","linkyard-cloud.ch","linkyard.cloud","members.linode.com","*.nodebalancer.linode.com","*.linodeobjects.com","ip.linodeusercontent.com","we.bs","filegear-sg.me","ggff.net","*.user.localcert.dev","lodz.pl","pabianice.pl","plock.pl","sieradz.pl","skierniewice.pl","zgierz.pl","loginline.app","loginline.dev","loginline.io","loginline.services","loginline.site","lohmus.me","servers.run","krasnik.pl","leczna.pl","lubartow.pl","lublin.pl","poniatowa.pl","swidnik.pl","glug.org.uk","lug.org.uk","lugs.org.uk","barsy.bg","barsy.club","barsycenter.com","barsyonline.com","barsy.de","barsy.dev","barsy.eu","barsy.gr","barsy.in","barsy.info","barsy.io","barsy.me","barsy.menu","barsyonline.menu","barsy.mobi","barsy.net","barsy.online","barsy.org","barsy.pro","barsy.pub","barsy.ro","barsy.rs","barsy.shop","barsyonline.shop","barsy.site","barsy.store","barsy.support","barsy.uk","barsy.co.uk","barsyonline.co.uk","*.magentosite.cloud","hb.cldmail.ru","matlab.cloud","modelscape.com","mwcloudnonprod.com","polyspace.com","mayfirst.info","mayfirst.org","mazeplay.com","mcdir.me","mcdir.ru","vps.mcdir.ru","mcpre.ru","mediatech.by","mediatech.dev","hra.health","medusajs.app","miniserver.com","memset.net","messerli.app","atmeta.com","apps.fbsbx.com","*.cloud.metacentrum.cz","custom.metacentrum.cz","flt.cloud.muni.cz","usr.cloud.muni.cz","meteorapp.com","eu.meteorapp.com","co.pl","*.azurecontainer.io","azure-api.net","azure-mobile.net","azureedge.net","azurefd.net","azurestaticapps.net","1.azurestaticapps.net","2.azurestaticapps.net","3.azurestaticapps.net","4.azurestaticapps.net","5.azurestaticapps.net","6.azurestaticapps.net","7.azurestaticapps.net","centralus.azurestaticapps.net","eastasia.azurestaticapps.net","eastus2.azurestaticapps.net","westeurope.azurestaticapps.net","westus2.azurestaticapps.net","azurewebsites.net","cloudapp.net","trafficmanager.net","blob.core.windows.net","servicebus.windows.net","routingthecloud.com","sn.mynetname.net","routingthecloud.net","routingthecloud.org","csx.cc","mydbserver.com","webspaceconfig.de","mittwald.info","mittwaldserver.info","typo3server.info","project.space","modx.dev","bmoattachments.org","net.ru","org.ru","pp.ru","hostedpi.com","caracal.mythic-beasts.com","customer.mythic-beasts.com","fentiger.mythic-beasts.com","lynx.mythic-beasts.com","ocelot.mythic-beasts.com","oncilla.mythic-beasts.com","onza.mythic-beasts.com","sphinx.mythic-beasts.com","vs.mythic-beasts.com","x.mythic-beasts.com","yali.mythic-beasts.com","cust.retrosnub.co.uk","ui.nabu.casa","cloud.nospamproxy.com","netfy.app","netlify.app","4u.com","nfshost.com","ipfs.nftstorage.link","ngo.us","ngrok.app","ngrok-free.app","ngrok.dev","ngrok-free.dev","ngrok.io","ap.ngrok.io","au.ngrok.io","eu.ngrok.io","in.ngrok.io","jp.ngrok.io","sa.ngrok.io","us.ngrok.io","ngrok.pizza","ngrok.pro","torun.pl","nh-serv.co.uk","nimsite.uk","mmafan.biz","myftp.biz","no-ip.biz","no-ip.ca","fantasyleague.cc","gotdns.ch","3utilities.com","blogsyte.com","ciscofreak.com","damnserver.com","ddnsking.com","ditchyourip.com","dnsiskinky.com","dynns.com","geekgalaxy.com","health-carereform.com","homesecuritymac.com","homesecuritypc.com","myactivedirectory.com","mysecuritycamera.com","myvnc.com","net-freaks.com","onthewifi.com","point2this.com","quicksytes.com","securitytactics.com","servebeer.com","servecounterstrike.com","serveexchange.com","serveftp.com","servegame.com","servehalflife.com","servehttp.com","servehumour.com","serveirc.com","servemp3.com","servep2p.com","servepics.com","servequake.com","servesarcasm.com","stufftoread.com","unusualperson.com","workisboring.com","dvrcam.info","ilovecollege.info","no-ip.info","brasilia.me","ddns.me","dnsfor.me","hopto.me","loginto.me","noip.me","webhop.me","bounceme.net","ddns.net","eating-organic.net","mydissent.net","myeffect.net","mymediapc.net","mypsx.net","mysecuritycamera.net","nhlfan.net","no-ip.net","pgafan.net","privatizehealthinsurance.net","redirectme.net","serveblog.net","serveminecraft.net","sytes.net","cable-modem.org","collegefan.org","couchpotatofries.org","hopto.org","mlbfan.org","myftp.org","mysecuritycamera.org","nflfan.org","no-ip.org","read-books.org","ufcfan.org","zapto.org","no-ip.co.uk","golffan.us","noip.us","pointto.us","stage.nodeart.io","*.developer.app","noop.app","*.northflank.app","*.build.run","*.code.run","*.database.run","*.migration.run","noticeable.news","notion.site","dnsking.ch","mypi.co","n4t.co","001www.com","myiphost.com","forumz.info","soundcast.me","tcp4.me","dnsup.net","hicam.net","now-dns.net","ownip.net","vpndns.net","dynserv.org","now-dns.org","x443.pw","now-dns.top","ntdll.top","freeddns.us","nsupdate.info","nerdpol.ovh","nyc.mn","prvcy.page","obl.ong","observablehq.cloud","static.observableusercontent.com","omg.lol","cloudycluster.net","omniwe.site","123webseite.at","123website.be","simplesite.com.br","123website.ch","simplesite.com","123webseite.de","123hjemmeside.dk","123miweb.es","123kotisivu.fi","123siteweb.fr","simplesite.gr","123homepage.it","123website.lu","123website.nl","123hjemmeside.no","service.one","simplesite.pl","123paginaweb.pt","123minsida.se","is-a-fullstack.dev","is-cool.dev","is-not-a.dev","localplayer.dev","is-local.org","opensocial.site","opencraft.hosting","16-b.it","32-b.it","64-b.it","orsites.com","operaunite.com","*.customer-oci.com","*.oci.customer-oci.com","*.ocp.customer-oci.com","*.ocs.customer-oci.com","*.oraclecloudapps.com","*.oraclegovcloudapps.com","*.oraclegovcloudapps.uk","tech.orange","can.re","authgear-staging.com","authgearapps.com","skygearapp.com","outsystemscloud.com","*.hosting.ovh.net","*.webpaas.ovh.net","ownprovider.com","own.pm","*.owo.codes","ox.rs","oy.lc","pgfog.com","pagexl.com","gotpantheon.com","pantheonsite.io","*.paywhirl.com","*.xmit.co","xmit.dev","madethis.site","srv.us","gh.srv.us","gl.srv.us","lk3.ru","mypep.link","perspecta.cloud","on-web.fr","*.upsun.app","upsunapp.com","ent.platform.sh","eu.platform.sh","us.platform.sh","*.platformsh.site","*.tst.site","platter-app.com","platter-app.dev","platterp.us","pley.games","onporter.run","co.bn","postman-echo.com","pstmn.io","mock.pstmn.io","httpbin.org","prequalifyme.today","xen.prgmr.com","priv.at","protonet.io","chirurgiens-dentistes-en-france.fr","byen.site","pubtls.org","pythonanywhere.com","eu.pythonanywhere.com","qa2.com","qcx.io","*.sys.qcx.io","myqnapcloud.cn","alpha-myqnapcloud.com","dev-myqnapcloud.com","mycloudnas.com","mynascloud.com","myqnapcloud.com","qoto.io","qualifioapp.com","ladesk.com","qbuser.com","*.quipelements.com","vapor.cloud","vaporcloud.io","rackmaze.com","rackmaze.net","cloudsite.builders","myradweb.net","servername.us","web.in","in.net","myrdbx.io","site.rb-hosting.io","*.on-rancher.cloud","*.on-k3s.io","*.on-rio.io","ravpage.co.il","readthedocs-hosted.com","readthedocs.io","rhcloud.com","instances.spawn.cc","onrender.com","app.render.com","replit.app","id.replit.app","firewalledreplit.co","id.firewalledreplit.co","repl.co","id.repl.co","replit.dev","archer.replit.dev","bones.replit.dev","canary.replit.dev","global.replit.dev","hacker.replit.dev","id.replit.dev","janeway.replit.dev","kim.replit.dev","kira.replit.dev","kirk.replit.dev","odo.replit.dev","paris.replit.dev","picard.replit.dev","pike.replit.dev","prerelease.replit.dev","reed.replit.dev","riker.replit.dev","sisko.replit.dev","spock.replit.dev","staging.replit.dev","sulu.replit.dev","tarpit.replit.dev","teams.replit.dev","tucker.replit.dev","wesley.replit.dev","worf.replit.dev","repl.run","resindevice.io","devices.resinstaging.io","hzc.io","adimo.co.uk","itcouldbewor.se","aus.basketball","nz.basketball","git-pages.rit.edu","rocky.page","rub.de","ruhr-uni-bochum.de","io.noc.ruhr-uni-bochum.de","биз.рус","ком.рус","крым.рус","мир.рус","мск.рус","орг.рус","самара.рус","сочи.рус","спб.рус","я.рус","ras.ru","nyat.app","180r.com","dojin.com","sakuratan.com","sakuraweb.com","x0.com","2-d.jp","bona.jp","crap.jp","daynight.jp","eek.jp","flop.jp","halfmoon.jp","jeez.jp","matrix.jp","mimoza.jp","ivory.ne.jp","mail-box.ne.jp","mints.ne.jp","mokuren.ne.jp","opal.ne.jp","sakura.ne.jp","sumomo.ne.jp","topaz.ne.jp","netgamers.jp","nyanta.jp","o0o0.jp","rdy.jp","rgr.jp","rulez.jp","s3.isk01.sakurastorage.jp","s3.isk02.sakurastorage.jp","saloon.jp","sblo.jp","skr.jp","tank.jp","uh-oh.jp","undo.jp","rs.webaccel.jp","user.webaccel.jp","websozai.jp","xii.jp","squares.net","jpn.org","kirara.st","x0.to","from.tv","sakura.tv","*.builder.code.com","*.dev-builder.code.com","*.stg-builder.code.com","*.001.test.code-builder-stg.platform.salesforce.com","*.d.crm.dev","*.w.crm.dev","*.wa.crm.dev","*.wb.crm.dev","*.wc.crm.dev","*.wd.crm.dev","*.we.crm.dev","*.wf.crm.dev","sandcats.io","logoip.com","logoip.de","fr-par-1.baremetal.scw.cloud","fr-par-2.baremetal.scw.cloud","nl-ams-1.baremetal.scw.cloud","cockpit.fr-par.scw.cloud","fnc.fr-par.scw.cloud","functions.fnc.fr-par.scw.cloud","k8s.fr-par.scw.cloud","nodes.k8s.fr-par.scw.cloud","s3.fr-par.scw.cloud","s3-website.fr-par.scw.cloud","whm.fr-par.scw.cloud","priv.instances.scw.cloud","pub.instances.scw.cloud","k8s.scw.cloud","cockpit.nl-ams.scw.cloud","k8s.nl-ams.scw.cloud","nodes.k8s.nl-ams.scw.cloud","s3.nl-ams.scw.cloud","s3-website.nl-ams.scw.cloud","whm.nl-ams.scw.cloud","cockpit.pl-waw.scw.cloud","k8s.pl-waw.scw.cloud","nodes.k8s.pl-waw.scw.cloud","s3.pl-waw.scw.cloud","s3-website.pl-waw.scw.cloud","scalebook.scw.cloud","smartlabeling.scw.cloud","dedibox.fr","schokokeks.net","gov.scot","service.gov.scot","scrysec.com","client.scrypted.io","firewall-gateway.com","firewall-gateway.de","my-gateway.de","my-router.de","spdns.de","spdns.eu","firewall-gateway.net","my-firewall.org","myfirewall.org","spdns.org","seidat.net","sellfy.store","minisite.ms","senseering.net","servebolt.cloud","biz.ua","co.ua","pp.ua","as.sh.cn","sheezy.games","shiftedit.io","myshopblocks.com","myshopify.com","shopitsite.com","shopware.shop","shopware.store","mo-siemens.io","1kapp.com","appchizi.com","applinzi.com","sinaapp.com","vipsinaapp.com","siteleaf.net","small-web.org","aeroport.fr","avocat.fr","chambagri.fr","chirurgiens-dentistes.fr","experts-comptables.fr","medecin.fr","notaires.fr","pharmacien.fr","port.fr","veterinaire.fr","vp4.me","*.snowflake.app","*.privatelink.snowflake.app","streamlit.app","streamlitapp.com","try-snowplow.com","mafelo.net","playstation-cloud.com","srht.site","apps.lair.io","*.stolos.io","spacekit.io","ind.mom","customer.speedpartner.de","myspreadshop.at","myspreadshop.com.au","myspreadshop.be","myspreadshop.ca","myspreadshop.ch","myspreadshop.com","myspreadshop.de","myspreadshop.dk","myspreadshop.es","myspreadshop.fi","myspreadshop.fr","myspreadshop.ie","myspreadshop.it","myspreadshop.net","myspreadshop.nl","myspreadshop.no","myspreadshop.pl","myspreadshop.se","myspreadshop.co.uk","w-corp-staticblitz.com","w-credentialless-staticblitz.com","w-staticblitz.com","stackhero-network.com","runs.onstackit.cloud","stackit.gg","stackit.rocks","stackit.run","stackit.zone","musician.io","novecore.site","api.stdlib.com","feedback.ac","forms.ac","assessments.cx","calculators.cx","funnels.cx","paynow.cx","quizzes.cx","researched.cx","tests.cx","surveys.so","storebase.store","storipress.app","storj.farm","strapiapp.com","media.strapiapp.com","vps-host.net","atl.jelastic.vps-host.net","njs.jelastic.vps-host.net","ric.jelastic.vps-host.net","streak-link.com","streaklinks.com","streakusercontent.com","soc.srcf.net","user.srcf.net","utwente.io","temp-dns.com","supabase.co","supabase.in","supabase.net","syncloud.it","dscloud.biz","direct.quickconnect.cn","dsmynas.com","familyds.com","diskstation.me","dscloud.me","i234.me","myds.me","synology.me","dscloud.mobi","dsmynas.net","familyds.net","dsmynas.org","familyds.org","direct.quickconnect.to","vpnplus.to","mytabit.com","mytabit.co.il","tabitorder.co.il","taifun-dns.de","ts.net","*.c.ts.net","gda.pl","gdansk.pl","gdynia.pl","med.pl","sopot.pl","taveusercontent.com","p.tawk.email","p.tawkto.email","site.tb-hosting.com","edugit.io","s3.teckids.org","telebit.app","telebit.io","*.telebit.xyz","*.firenet.ch","*.svc.firenet.ch","reservd.com","thingdustdata.com","cust.dev.thingdust.io","reservd.dev.thingdust.io","cust.disrec.thingdust.io","reservd.disrec.thingdust.io","cust.prod.thingdust.io","cust.testing.thingdust.io","reservd.testing.thingdust.io","tickets.io","arvo.network","azimuth.network","tlon.network","torproject.net","pages.torproject.net","townnews-staging.com","12hp.at","2ix.at","4lima.at","lima-city.at","12hp.ch","2ix.ch","4lima.ch","lima-city.ch","trafficplex.cloud","de.cool","12hp.de","2ix.de","4lima.de","lima-city.de","1337.pictures","clan.rip","lima-city.rocks","webspace.rocks","lima.zone","*.transurl.be","*.transurl.eu","site.transip.me","*.transurl.nl","tuxfamily.org","dd-dns.de","dray-dns.de","draydns.de","dyn-vpn.de","dynvpn.de","mein-vigor.de","my-vigor.de","my-wan.de","syno-ds.de","synology-diskstation.de","synology-ds.de","diskstation.eu","diskstation.org","typedream.app","pro.typeform.com","*.uberspace.de","uber.space","hk.com","inc.hk","ltd.hk","hk.org","it.com","unison-services.cloud","virtual-user.de","virtualuser.de","name.pm","sch.tf","biz.wf","sch.wf","org.yt","rs.ba","bielsko.pl","upli.io","urown.cloud","dnsupdate.info","us.org","v.ua","express.val.run","web.val.run","vercel.app","v0.build","vercel.dev","vusercontent.net","now.sh","2038.io","router.management","v-info.info","voorloper.cloud","*.vultrobjects.com","wafflecell.com","webflow.io","webflowtest.io","*.webhare.dev","bookonline.app","hotelwithflight.com","reserve-online.com","reserve-online.net","cprapid.com","pleskns.com","wp2.host","pdns.page","plesk.page","wpsquared.site","*.wadl.top","remotewd.com","box.ca","pages.wiardweb.com","toolforge.org","wmcloud.org","wmflabs.org","wdh.app","panel.gg","daemon.panel.gg","wixsite.com","wixstudio.com","editorx.io","wixstudio.io","wix.run","messwithdns.com","woltlab-demo.com","myforum.community","community-pro.de","diskussionsbereich.de","community-pro.net","meinforum.net","affinitylottery.org.uk","raffleentry.org.uk","weeklylottery.org.uk","wpenginepowered.com","js.wpenginepowered.com","half.host","xnbay.com","u2.xnbay.com","u2-local.xnbay.com","cistron.nl","demon.nl","xs4all.space","yandexcloud.net","storage.yandexcloud.net","website.yandexcloud.net","official.academy","yolasite.com","yombo.me","ynh.fr","nohost.me","noho.st","za.net","za.org","zap.cloud","zeabur.app","bss.design","basicserver.io","virtualserver.io","enterprisecloud.nu"].reduce((a,o)=>{const s=o.replace(/^(\*\.|\!)/,""),e=K.toASCII(s),i=o.charAt(0);if(a.has(e))throw new Error(`Multiple rules found for ${o} (${e})`);return a.set(e,{rule:o,suffix:s,punySuffix:e,wildcard:"*"===i,exception:"!"===i}),a},new Map),G={DOMAIN_TOO_SHORT:"Domain name too short.",DOMAIN_TOO_LONG:"Domain name too long. It should be no more than 255 chars.",LABEL_STARTS_WITH_DASH:"Domain name label can not start with a dash.",LABEL_ENDS_WITH_DASH:"Domain name label can not end with a dash.",LABEL_TOO_LONG:"Domain name label should be at most 63 chars long.",LABEL_TOO_SHORT:"Domain name label should be at least 1 character long.",LABEL_INVALID_CHARS:"Domain name label can only contain alphanumeric characters or dashes."},J=a=>a&&(a=>{if("string"!=typeof a)throw new TypeError("Domain name must be a string.");let o=a.slice(0).toLowerCase();"."===o.charAt(o.length-1)&&(o=o.slice(0,o.length-1));const s=(a=>{const o=K.toASCII(a);if(o.length<1)return"DOMAIN_TOO_SHORT";if(o.length>255)return"DOMAIN_TOO_LONG";const s=o.split(".");let e;for(let a=0;a<s.length;++a){if(e=s[a],!e.length)return"LABEL_TOO_SHORT";if(e.length>63)return"LABEL_TOO_LONG";if("-"===e.charAt(0))return"LABEL_STARTS_WITH_DASH";if("-"===e.charAt(e.length-1))return"LABEL_ENDS_WITH_DASH";if(!/^[a-z0-9\-_]+$/.test(e))return"LABEL_INVALID_CHARS"}})(o);if(s)return{input:a,error:{message:G[s],code:s}};const e={input:a,tld:null,sld:null,domain:null,subdomain:null,listed:!1},i=o.split(".");if("local"===i[i.length-1])return e;const n=()=>(/xn--/.test(o)&&(e.domain&&(e.domain=K.toASCII(e.domain)),e.subdomain&&(e.subdomain=K.toASCII(e.subdomain))),e),t=(a=>{const o=K.toASCII(a).split(".");for(let a=0;a<o.length;a++){const s=o.slice(a).join("."),e=V.get(s);if(e)return e}return null})(o);if(!t)return i.length<2?e:(e.tld=i.pop(),e.sld=i.pop(),e.domain=[e.sld,e.tld].join("."),i.length&&(e.subdomain=i.pop()),n());e.listed=!0;const r=t.suffix.split("."),m=i.slice(0,i.length-r.length);return t.exception&&m.push(r.shift()),e.tld=r.join("."),!m.length||(t.wildcard&&(r.unshift(m.pop()),e.tld=r.join(".")),!m.length)||(e.sld=m.pop(),e.domain=[e.sld,e.tld].join("."),m.length&&(e.subdomain=m.join("."))),n()})(a).domain||null;function W(a){let o=a.trim();return/^(?:f|ht)tps?\:\/\//.test(o)||(o="http://"+o),new URL(o)}function X(a){const o=J(a);return null!==o?o:(a=a.replace(/^www\./,"")).split(".").slice(-2).join(".")}function Q(a){return a.hostname.replace(/^www\./,"")}function Z(a,o){return"VRBO"===o?a.replace(/\D/g,""):a}const aa="directoUserId",oa="directoUserEmail",sa="local";let ea="";async function ia(){if(ea)return ea;const{[aa]:a}=await chrome.storage[sa].get(aa);return ea=a||"",ea}let na="";async function ta(){if(na)return na;const{[oa]:a}=await chrome.storage[sa].get(oa);return na=a||"",na}const ra="directoAllowedHostnames";function ma(a){return`outclickId-${a}`}function ca(a){return`directoDomains-${a}`}new Set(["getdirecto.com","doubleclick.net","anrdoezrs.net","jdoqocy.com","tkqlhce.com","tradedoubler.com","effiliation.com","prf.hn","tatrck.com","tradetracker.net"]);const pa={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let ua;const la=new Uint8Array(16),ka=[];for(let a=0;a<256;++a)ka.push((a+256).toString(16).slice(1));const ga=function(a,o,s){if(pa.randomUUID&&!o&&!a)return pa.randomUUID();const e=(a=a||{}).random??a.rng?.()??function(){if(!ua){if("undefined"==typeof crypto||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");ua=crypto.getRandomValues.bind(crypto)}return ua(la)}();if(e.length<16)throw new Error("Random bytes length must be >= 16");if(e[6]=15&e[6]|64,e[8]=63&e[8]|128,o){if((s=s||0)<0||s+16>o.length)throw new RangeError(`UUID byte range ${s}:${s+15} is out of buffer bounds`);for(let a=0;a<16;++a)o[s+a]=e[a];return o}return function(a,o=0){return(ka[a[o+0]]+ka[a[o+1]]+ka[a[o+2]]+ka[a[o+3]]+"-"+ka[a[o+4]]+ka[a[o+5]]+"-"+ka[a[o+6]]+ka[a[o+7]]+"-"+ka[a[o+8]]+ka[a[o+9]]+"-"+ka[a[o+10]]+ka[a[o+11]]+ka[a[o+12]]+ka[a[o+13]]+ka[a[o+14]]+ka[a[o+15]]).toLowerCase()}(e)};async function da(a,o){try{const e=ga();null!==a.targetTabId&&async function(a,o){await chrome.storage.session.set({[ma(a)]:o})}(a.targetTabId,e),s=a.targetUrl,M(ra,X(W(s).hostname));const i=function(a){try{const o=Q(new URL(a));return/^airbnb\.[.a-z]{2,7}/i.exec(o)?"AIRBNB":/^(secure\.)?booking\.com/i.exec(o)?"BOOKING":/^vrbo\.com/i.exec(o)||/^abritel\.fr/i.exec(o)?"VRBO":/^expedia\.[.a-z]{2,7}/i.exec(o)?"EXPEDIA":/google\.[a-z.]{2,7}\/(search\?|travel\/flights\?)/i.exec(a)?"GOOGLE":null}catch(a){return console.error("Error in getPlatform",a),null}}(a.sourceUrl),n=null!==a.sourceTabId?`${a.sessionId}-${a.sourceTabId}`:null,t={cta:a.cta,platform:i,session_id:a.sessionId,user_id:await ia(),user_email:await ta(),listing_id:a.sourceId,source_url:a.sourceUrl,target_url:a.targetUrl,source_tab_id:n,outclick_id:e,...o};await j().post("/v2/outclick",{body:r.B64Json(t)})}catch(a){console.error(a)}var s}const ha="userLocale";let ja=null;async function wa(){const{[ha]:a}=await chrome.storage.local.get(ha);return ja=a??null,ja}function ba(){return ja=ja||function(){let a;return a=null!=navigator.languages?navigator.languages[0]:navigator.language,a=a.split("-")[0]||a||"en",a}(),ja}function ya(a,o,s){const{destination:e,checkin:i,checkout:n,adults:t,children:r}=s,m=e.name.trim().replace(/[, ]+/g,",").replace(/ñ/g,"n").toLocaleLowerCase(),c=`/${["hotels",void 0!==e.placeId?`${m}-p${e.placeId}`:m,i.toDashYYYYMMDD(),n.toDashYYYYMMDD(),`${t}adults`,`${r}children${"-0".repeat(r)}`].join("/")}`,p=new URL("/in","https://www.kayak.com");return p.searchParams.append("a","kan_317594_592750"),o&&(p.searchParams.append("encoder","27_1"),p.searchParams.append("enc_pid","deeplinks"),p.searchParams.append("enc_cid",o)),a&&p.searchParams.append(o?"enc_lid":"p",a),p.searchParams.append("url",c),p.toString()}wa();const fa=5e3,va="tempTabHasBeenOpenedForDomain",za="session",xa="session",Ia="directoDisplayPricesCache",Ta="session",Da="directoInfoCache",Sa="growthbookFeatures",_a="session",qa="session",Ca="directoListingPriceCache",Ua=(Aa={getSessionId:async()=>await A(),sendConversionEvent:async(a,o)=>{await j().post("/v2/conversion-details",{body:r.B64Json(a)})},sendConversionHTMLEvent:async(a,o)=>{await j().post("/v2/conversion-details-html",{body:r.Json(a)})},getCrossSellWasChecked:async({crossSellId:a},o)=>{const s=o.tab?.id;return void 0!==s&&$(Y,N({crossSellId:a,tabId:s}),{dropIfPresent:!0,area:R})},setCrossSellWasChecked:async({crossSellId:a,checked:o},s)=>{const e=s.tab?.id;if(void 0===e)return!1;const i=N({crossSellId:a,tabId:e});return o?M(Y,i,{area:R}):function(a,o,s={}){const{area:e="local"}=s,i=O(e);i.get(a,s=>{const e=s[a]||[],n=new Set(e);n.has(o)&&(n.delete(o),i.set({[a]:Array.from(n.values())}))})}(Y,i,{area:R}),!0},openKayakCrossSellTab:async(a,o)=>{const{checkin:s,checkout:e}=a,i=D.unsafe_fromRaw(s),n=D.unsafe_fromRaw(e);let t;try{const o=await b().get("/guess-kayak-place-id",{params:{searchTerm:a.destination,language:ba()},parser:new p});t=ya(a.trackingLabel,a.partnerKey,{destination:{name:o.fullName,placeId:o.placeId},checkin:i,checkout:n,adults:a.adults,children:a.children})}catch(o){t=ya(a.trackingLabel,a.partnerKey,{destination:{name:a.destination},checkin:i,checkout:n,adults:a.adults,children:a.children})}const r=o.tab?o.tab.index+1:void 0,m=await chrome.tabs.create({url:t,active:!1,index:r});await da({sessionId:await A(),sourceUrl:a.sourceUrl,targetUrl:t,cta:"CHECKBOX_CROSS_SELL",sourceId:null,sourceTabId:o.tab?.id??null,targetTabId:m.id??null},{checkin:i.toDashYYYYMMDD(),checkout:n.toDashYYYYMMDD(),adults:a.adults.toString(),currency:a.currency,children:a.children.toString()})},openActivitiesCrossSellTab:async(o,s)=>{const{provider:e,destination:i,checkin:n,checkout:t,adults:r,currency:m,children:c,sourceId:p}=o,u=function(o,s){switch(o){case"viator":return(a=>{const o=new URL("/searchResults/all","https://www.viator.com");return o.searchParams.append("text",a),o.searchParams.append("pid","P00253809"),o.searchParams.append("mcid","42383"),o.searchParams.append("medium","link"),o.toString()})(s);case"civitatis":return(a=>{const o=new URL("/es/buscar","https://www.civitatis.com");return o.searchParams.append("q",a),o.searchParams.append("aid","110241"),o.toString()})(s);default:a(o)}}(e,i),l=s.tab?s.tab.index+1:void 0,k=await chrome.tabs.create({url:u,active:!1,index:l});await da({sessionId:await A(),sourceUrl:o.sourceUrl,targetUrl:u,cta:"CHECKBOX_CROSS_SELL",sourceId:p,sourceTabId:s.tab?.id??null,targetTabId:k.id??null},{checkin:n?D.fromRaw(n)?.toDashYYYYMMDD()??null:null,checkout:t?D.fromRaw(t)?.toDashYYYYMMDD()??null:null,currency:m,adults:r.toString(),children:c.toString()})},getConfig:async()=>{if(!x){const a=await chrome.storage[z].get(v);x=a[v]||null}if(!x)throw new Error("Config has not been set");return x},openOutclickTab:async(a,o)=>{const s=await wa()||ba(),e=a.useRedirectEngine?function(a,o,s){const{coupon:e,discount:i}=s,n={url:a,...null!==e?{coupon:e}:{},...null!==i?{discount:i}:{}};return`https://engine.getdirecto.com/${o}/${btoa(encodeURIComponent(JSON.stringify(n)))}`}(a.targetUrl,s,a.redirectEngineParams??{coupon:null,discount:null}):a.targetUrl,i=o.tab?o.tab.index+1:void 0,n=(await chrome.tabs.create({url:e,active:!0,index:i})).id??null;n&&async function(a,o){const s=X(W(o).hostname);await chrome.storage.session.set({[ca(a)]:{outclicked:s,additional:null,sinceMsecs:Date.now()}})}(n,a.targetUrl),await da({sessionId:await A(),sourceUrl:a.sourceUrl,targetUrl:a.targetUrl,cta:a.cta,sourceId:a.sourceId,sourceTabId:o.tab?.id??null,targetTabId:n},a.stayParams)},maybeOpenTempTab:async(a,o)=>{const{url:s,closeDelay:e=fa}=a,i=o.tab?o.tab.index+1:void 0,n=Q(new URL(s)),t=await async function(a){if(await $(va,a,{area:za}))return!0;var o;return await(o=a,$(ra,X(o)))}(n);if(t)return;const r=await chrome.tabs.create({url:s,index:i,active:!1,pinned:!0});M(va,n,{area:za}),setTimeout(()=>{void 0!==r.id&&chrome.tabs.remove(r.id)},e)},getAlternativeOffersByCompoundIds:async(a,o)=>{try{const o=await async function(a){return b().get("/v2/offers-by-hotel-id",{params:a,parser:new p})}(a);return{...o,offers:o.offers.map(o=>({...o,source_id:o.source_id.listingId,stayParams:{checkin:a.checkin,checkout:a.checkout,adults:a.adults.toString(),children:a.children?.toString()??null,currency:a.currency??null}}))}}catch(a){return console.error("Error fetching alternative offers by hotel ids",a),{offers:[]}}},storeCachedDisplayPrices:async(a,o)=>{P(Ia,Z(a.source_id,a.platform),a,{area:xa})},getCachedDisplayPrices:async(a,o)=>await L(Ia,Z(a.source_id,a.platform),{area:xa})??null,fetchDirectoInfo:async(a,o)=>{try{const{ids:o,platform:s,...e}=a,i=e.checkin&&e.checkout?e:{checkin:null,checkout:null,adults:null,children:null,currency:null};return(await async function(a){return d.get().get("/listingids",{params:a,parser:new p})}({id:o,platform:s,...i})).map(a=>({...a,stayParams:i}))}catch(a){return console.error("Error fetching Directo info for listing IDs:",a),[]}},storeCachedDirectoInfo:async(a,o)=>{P(Da,Z(a.source_id,a.platform),a,{area:Ta})},getCachedDirectoInfo:async(a,o)=>await L(Da,Z(a.source_id,a.platform),{area:Ta})??null,getGrowthbookFeature:async(a,o)=>await L(Sa,a,{area:_a}),setGrowthbookFeature:async(a,o)=>{P(Sa,a.key,a,{area:_a})},storeCachedListingPrice:async(a,o)=>{P(Ca,Z(a.source_id,a.platform),a,{area:qa})},getCachedListingPrice:async(a,o)=>await L(Ca,Z(a.source_id,a.platform),{area:qa})??null},{id:Ea="DIRECTO_CORE_BACKGROUND",handlers:Aa,isMessageForThisServer:a=>"object"==typeof a&&null!==a&&"serverId"in a&&a.serverId===Ea&&"handlerId"in a&&"string"==typeof a.handlerId,handleMessage(a,o,s){const e=Aa[a.handlerId];if(!e)throw new Error(`Unhandled ${Ea} message type ${a.handlerId.toString()}`);e("payload"in a?a.payload:void 0,o).then(a=>{s({success:!0,response:a})}).catch(o=>{console.error("Uncaught error in async message handler",a,o);const e=function(a){return a instanceof Error?a.message:"string"==typeof a?a:"object"==typeof a&&null!==a&&"message"in a&&"string"==typeof a.message?a.message:`Unknown error: ${String(a)}`}(o);s({success:!1,errorMessage:e})})}});var Ea,Aa;function Oa(a){return Ua.isMessageForThisServer(a)}class Ma{#a;ready;constructor(a){this.#a=a,this.#o(),this.ready=this.#s()}async#s(){await this.#e(),this.#i(this.#a)}#i(a){I(a);const o={partnerKey:a.partnerKey,appVersion:"adunit-0.1.2"};d.initialize(o),h.initialize(o),w.initialize(o),y.initialize(o),f.initialize(o)}#o(){chrome.runtime.onMessage.addListener((a,o,s)=>{if(Oa(a))return this.ready.then(()=>{Ua.handleMessage(a,o,s)}).catch(a=>{console.error("Error handling core message",a),s({success:!1,errorMessage:a.message})}),!0})}async#e(){const a=await C();await async function(a,o){ea=a,na=o,await chrome.storage[sa].set({[aa]:a,[oa]:o})}(a.id,a.email)}}const $a=new class{#n=null;initialize(a){return this.#n||(this.#n=new Ma(a)),this.#n.ready}};function Pa(a){if(!a)throw new Error("partnerKey is required");return function(a){return $a.initialize(a)}({partnerKey:a})}console.log("Directo AdUnit Background Service - Version: adunit-0.1.2");export{Pa as initializeAdUnit,Oa as isAdUnitMessage};