@rtrvr-ai/rover 3.0.0 → 3.0.1

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.
package/dist/embed.js CHANGED
@@ -1,17 +1,17 @@
1
1
  var __ROVER_SCRIPT_EL__=document.currentScript||null;var __ROVER_SCRIPT_URL__=(__ROVER_SCRIPT_EL__&&__ROVER_SCRIPT_EL__.src)||'';
2
- "use strict";var __roverSDK=(()=>{var pc=Object.defineProperty;var _y=Object.getOwnPropertyDescriptor;var Ey=Object.getOwnPropertyNames;var Iy=Object.prototype.hasOwnProperty;var Sy=(e,t,n)=>t in e?pc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Ry=(e,t)=>{for(var n in t)pc(e,n,{get:t[n],enumerable:!0})},Ay=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Ey(t))!Iy.call(e,r)&&r!==n&&pc(e,r,{get:()=>t[r],enumerable:!(o=_y(t,r))||o.enumerable});return e};var Cy=e=>Ay(pc({},"__esModule",{value:!0}),e);var P=(e,t,n)=>Sy(e,typeof t!="symbol"?t+"":t,n);var dS={};Ry(dS,{__roverInternalsForTests:()=>uS,boot:()=>Gs,close:()=>gu,endTask:()=>bu,getState:()=>dm,hide:()=>sm,identify:()=>rm,init:()=>am,installGlobal:()=>Wk,newTask:()=>ac,open:()=>uo,registerPromptContextProvider:()=>um,registerTool:()=>fm,requestSigned:()=>lm,send:()=>cm,show:()=>im,shutdown:()=>ou,update:()=>nu});var z;(function(e){e.click_element="click_element",e.type_into_element="type_into_element",e.type_and_enter="type_and_enter",e.select_dropdown_value="select_dropdown_value",e.clear_element="clear_element",e.focus_element="focus_element",e.check_field_validity="check_field_validity",e.select_text="select_text",e.hover_element="hover_element",e.right_click_element="right_click_element",e.double_click_element="double_click_element",e.press_key="press_key",e.mouse_wheel="mouse_wheel",e.dispatch_pointer_path="dispatch_pointer_path",e.drag_element="drag_element",e.drag_and_drop="drag_and_drop",e.adjust_slider="adjust_slider",e.scroll_page="scroll_page",e.scroll_to_element="scroll_to_element",e.swipe_element="swipe_element",e.long_press_element="long_press_element",e.pinch_zoom="pinch_zoom",e.go_back="go_back",e.go_forward="go_forward",e.goto_url="goto_url",e.refresh_page="refresh_page",e.open_new_tab="open_new_tab",e.switch_tab="switch_tab",e.close_tab="close_tab",e.describe_images="describe_images",e.google_search="google_search",e.network_run_recipe="network_run_recipe",e.rover_external_read_context="rover_external_read_context",e.rover_external_act_context="rover_external_act_context",e.copy_text="copy_text",e.paste_text="paste_text",e.wait_action="wait_action",e.wait_for_element="wait_for_element",e.answer_task="answer_task",e.upload_file="upload_file",e.solve_captcha="solve_captcha"})(z||(z={}));var hS=new Set(Object.values(z)),hc=["element_id","source_element_id","target_element_id","center_element_id","element_ids"],My=40;function Lm(e){let t=Array.isArray(e?.element_ids)?e.element_ids:e?.element_id!=null?[e.element_id]:[];return Array.from(new Set(t.map(o=>Math.trunc(Number(o))))).filter(o=>Number.isFinite(o)&&o>0).slice(0,My)}var Vn;(function(e){e[e.Unknown=0]="Unknown",e[e.React=1]="React",e[e.Vue=2]="Vue",e[e.Angular=3]="Angular",e[e.Svelte=4]="Svelte",e[e.JQuery=5]="JQuery"})(Vn||(Vn={}));var Dm={[Vn.Unknown]:"unknown",[Vn.React]:"react",[Vn.Vue]:"vue",[Vn.Angular]:"angular",[Vn.Svelte]:"svelte",[Vn.JQuery]:"jquery"},Su={react:Vn.React,vue:Vn.Vue,angular:Vn.Angular,svelte:Vn.Svelte,jquery:Vn.JQuery},Ot;(function(e){e[e.Other=0]="Other",e[e.Inline=1]="Inline",e[e.Delegated=2]="Delegated",e[e.React=3]="React",e[e.Vue=4]="Vue",e[e.Angular=5]="Angular",e[e.Svelte=6]="Svelte",e[e.JQuery=7]="JQuery",e[e.Native=8]="Native"})(Ot||(Ot={}));var kS={[Ot.Other]:"other",[Ot.Inline]:"inline",[Ot.Delegated]:"delegated",[Ot.React]:"react",[Ot.Vue]:"vue",[Ot.Angular]:"angular",[Ot.Svelte]:"svelte",[Ot.JQuery]:"jquery",[Ot.Native]:"native"},yS={inline:Ot.Inline,delegated:Ot.Delegated,react:Ot.React,vue:Ot.Vue,angular:Ot.Angular,svelte:Ot.Svelte,jquery:Ot.JQuery,other:Ot.Other,native:Ot.Native},Le;(function(e){e[e.click_element=1]="click_element",e[e.type_into_element=2]="type_into_element",e[e.type_and_enter=3]="type_and_enter",e[e.select_dropdown_value=4]="select_dropdown_value",e[e.clear_element=5]="clear_element",e[e.focus_element=6]="focus_element",e[e.hover_element=7]="hover_element",e[e.right_click_element=8]="right_click_element",e[e.double_click_element=9]="double_click_element",e[e.long_press_element=10]="long_press_element",e[e.drag_element=11]="drag_element",e[e.drag_and_drop=12]="drag_and_drop",e[e.swipe_element=13]="swipe_element",e[e.adjust_slider=14]="adjust_slider",e[e.describe_images=15]="describe_images",e[e.scroll_to_element=16]="scroll_to_element",e[e.paste_text=17]="paste_text",e[e.check_field_validity=18]="check_field_validity",e[e.select_text=19]="select_text",e[e.mouse_wheel=20]="mouse_wheel",e[e.copy_text=21]="copy_text",e[e.upload_file=22]="upload_file",e[e.go_back=23]="go_back",e[e.go_forward=24]="go_forward",e[e.refresh_page=25]="refresh_page",e[e.press_key=26]="press_key",e[e.scroll_page=27]="scroll_page",e[e.wait_action=28]="wait_action",e[e.wait_for_element=29]="wait_for_element",e[e.pinch_zoom=30]="pinch_zoom",e[e.goto_url=31]="goto_url",e[e.google_search=32]="google_search",e[e.open_new_tab=33]="open_new_tab",e[e.switch_tab=34]="switch_tab",e[e.close_tab=35]="close_tab",e[e.solve_captcha=36]="solve_captcha",e[e.answer_task=37]="answer_task",e[e.dispatch_pointer_path=38]="dispatch_pointer_path",e[e.network_run_recipe=40]="network_run_recipe",e[e.rover_external_read_context=41]="rover_external_read_context",e[e.rover_external_act_context=42]="rover_external_act_context"})(Le||(Le={}));var gc={[z.click_element]:Le.click_element,[z.type_into_element]:Le.type_into_element,[z.type_and_enter]:Le.type_and_enter,[z.select_dropdown_value]:Le.select_dropdown_value,[z.clear_element]:Le.clear_element,[z.focus_element]:Le.focus_element,[z.hover_element]:Le.hover_element,[z.right_click_element]:Le.right_click_element,[z.double_click_element]:Le.double_click_element,[z.long_press_element]:Le.long_press_element,[z.drag_element]:Le.drag_element,[z.drag_and_drop]:Le.drag_and_drop,[z.swipe_element]:Le.swipe_element,[z.adjust_slider]:Le.adjust_slider,[z.describe_images]:Le.describe_images,[z.scroll_to_element]:Le.scroll_to_element,[z.paste_text]:Le.paste_text,[z.check_field_validity]:Le.check_field_validity,[z.select_text]:Le.select_text,[z.mouse_wheel]:Le.mouse_wheel,[z.copy_text]:Le.copy_text,[z.upload_file]:Le.upload_file,[z.go_back]:Le.go_back,[z.go_forward]:Le.go_forward,[z.refresh_page]:Le.refresh_page,[z.press_key]:Le.press_key,[z.scroll_page]:Le.scroll_page,[z.wait_action]:Le.wait_action,[z.wait_for_element]:Le.wait_for_element,[z.pinch_zoom]:Le.pinch_zoom,[z.goto_url]:Le.goto_url,[z.google_search]:Le.google_search,[z.open_new_tab]:Le.open_new_tab,[z.switch_tab]:Le.switch_tab,[z.close_tab]:Le.close_tab,[z.solve_captcha]:Le.solve_captcha,[z.answer_task]:Le.answer_task,[z.dispatch_pointer_path]:Le.dispatch_pointer_path,[z.network_run_recipe]:Le.network_run_recipe,[z.rover_external_read_context]:Le.rover_external_read_context,[z.rover_external_act_context]:Le.rover_external_act_context},Om=Object.fromEntries(Object.entries(gc).map(([e,t])=>[t,e]));function bc(e){let t=[];return e&&(e&1&&t.push("native"),e&2&&t.push("inline"),e&4&&t.push("react"),e&8&&t.push("vue"),e&16&&t.push("angular"),e&32&&t.push("svelte"),e&64&&t.push("jquery"),e&128&&t.push("delegated"),e&256&&t.push("other")),t}var Bm={semanticIdStart:1,interactiveIdStart:1,includeFrameContents:!0,clearIframes:!0,frameContextLabel:null,signalProvider:null,disableDomAnnotations:!1},xn={...Bm},yc=globalThis;function Um(e){xn={...Bm,...e||{}}}function Kr(){return xn.signalProvider??null}function xt(){try{return typeof yc.document<"u"?yc.document:null}catch{return null}}function Oo(){try{return typeof yc.window<"u"?yc.window:null}catch{return null}}function ee(e,t){if(e&&typeof e=="object"){let n=e.ownerDocument;if(n)return n;if(e.nodeType===9)return e}return t??xt()??{}}function _e(e,t){return ee(e,t?t.document:null)?.defaultView??t??Oo()??{}}function se(e,t){return e?.defaultView??t??Oo()??{}}function vc(e,t){try{return e?.getElementById?.(t)??null}catch{return null}}function wc(e,t){try{return e?.querySelector?.(t)??null}catch{return null}}function Ru(e,t){try{return Array.from(e?.querySelectorAll?.(t)??[])}catch{return[]}}function Hi(e){try{return e.contentDocument||(e.contentWindow?.document??null)}catch{return null}}function xc(e,t){let n=e.CSS?.escape;return typeof n=="function"?n(t):t.replace(/([^\w-])/g,"\\$1")}function Gn(e,t){try{return e[t]}catch{return}}function Po(e,t){return!!e&&String(e.tagName||"").toUpperCase()===t.toUpperCase()}function Hm(e,t){let n=Gn(t,"HTMLAnchorElement");return n?e instanceof n:Po(e,"A")}function ao(e,t){let n=Gn(t,"HTMLInputElement");return n?e instanceof n:Po(e,"INPUT")}function bo(e,t){let n=Gn(t,"HTMLTextAreaElement");return n?e instanceof n:Po(e,"TEXTAREA")}function Fm(e,t){let n=Gn(t,"HTMLLabelElement");return n?e instanceof n:Po(e,"LABEL")}function zm(e,t){let n=Gn(t,"HTMLSelectElement");return n?e instanceof n:Po(e,"SELECT")}function jm(e,t){let n=Gn(t,"HTMLSlotElement");return n?e instanceof n:Po(e,"SLOT")}function qm(e,t){let n=Gn(t,"HTMLButtonElement");return n?e instanceof n:Po(e,"BUTTON")}function Wm(e,t){let n=Gn(t,"HTMLImageElement");return n?e instanceof n:Po(e,"IMG")}function $m(e,t){let n=Gn(t,"HTMLVideoElement");return n?e instanceof n:Po(e,"VIDEO")}function Vm(e,t){let n=Gn(t,"HTMLCanvasElement");return n?e instanceof n:Po(e,"CANVAS")}function Pt(e,t){if(!e||e.nodeType!==1)return!1;let n=Gn(t,"HTMLElement");return n?e instanceof n:typeof e.tagName=="string"}function Kn(e){return!!e&&e.nodeType===11&&typeof e.host=="object"&&typeof e.mode=="string"}function Xr(e){if(!e||e.nodeType!==1)return!1;let t=ee(e),o=se(t).Element;return o?e instanceof o:typeof e.tagName=="string"}function Fi(e){if(!e||e.nodeType!==1)return!1;let t=ee(e),o=se(t).HTMLIFrameElement;return o&&e instanceof o?!0:String(e.tagName||"").toUpperCase()==="IFRAME"}function Ny(e,t){if(!e)return!1;if(e.nodeType===9)return!0;let n=Gn(t,"Document");return n?e instanceof n:!1}function Ly(e,t){if(!e)return!1;let n=Gn(t,"Window");if(n)return e instanceof n;try{return e.window===e}catch{return!1}}function Tc(e){try{return e.document}catch{return null}}function _c(e,t){if(Ny(e,t))try{return e.documentElement}catch{return null}if(Ly(e,t)){let n=Tc(e);if(!n)return null;try{return n.documentElement}catch{return null}}return null}function kc(e){if(!e)return null;if(typeof e=="string")return e;if(typeof e=="object"&&typeof e.baseVal=="string")return e.baseVal;try{return String(e)}catch{return null}}function Pm(e,t,n){try{let o=ee(t,n);return new URL(e,o.baseURI).href}catch{return e}}function Ec(e,t){let n=e.tagName.includes("-"),o=e.getAttribute("href")||e.getAttribute("src")||e.getAttribute("data")||e.getAttribute("action");if(o){let r=Pm(o,e,t);return r.trim().toLowerCase().startsWith("javascript:")?null:r}if(n)return null;try{let r=e,a=kc(r.href)||kc(r.src)||kc(r.data)||kc(r.action);return a?Pm(a,e,t):null}catch{return null}}var Gm=["click","dblclick","doubleclick","mousedown","mouseup","mouseenter","mouseleave","mousemove","mouseover","mouseout","contextmenu","auxclick","keydown","keyup","keypress","input","change","submit","reset","select","search","invalid","beforeinput","focus","blur","focusin","focusout","touchstart","touchend","touchmove","touchcancel","pointerdown","pointerup","pointermove","pointerenter","pointerleave","pointercancel","pointerover","dragstart","dragend","drag","dragenter","dragleave","dragover","drop","copy","cut","paste","scroll","wheel","play","pause","ended","volumechange","seeking","seeked","animationstart","animationend","transitionend","transitionstart","resize","toggle","fullscreenchange","load","error","abort","beforeunload","unload","hashchange","popstate","storage","message"],Ke={};Gm.forEach((e,t)=>{Ke[e]=t});var Zo={};Gm.forEach((e,t)=>{Zo[t]=e});function Yr(e){if(!e)return null;let t=e.trim();if(!t||!t.includes("~"))return null;let n=[];for(let o of t.split(",")){if(!o)continue;let[r,a]=o.split("~"),i=Number(r);if(!Number.isFinite(i))continue;let s=a&&parseInt(a,36)||0;n.push({id:i,mask:s})}return n.length?{entries:n}:null}function Dy(e){let t=Yr(e);if(t){let n=new Set;for(let{id:o}of t.entries)n.add(o);return[...n]}return[]}function zi(e){return Da(e).map(n=>Zo[n]).filter(n=>!!n)}function Da(e){let t=Kr();if(t?.getEventHandlerIds)try{let r=t.getEventHandlerIds(e);if(r&&r.length)return r}catch{}let n=e.getAttribute(xr),o=Dy(n);return!o||o.length===0?[]:o}var Au=["media"],Km=new Set(Au),Cu=["alert","alertdialog","application","directory","feed","grid","log","marquee","menu","menubar","menuitem","menuitemcheckbox","menuitemradio","note","radiogroup","scrollbar","search","switch","tab","tablist","tabpanel","timer","toolbar","tooltip","tree","treegrid","treeitem"];var Xm=new Set(Cu),er=new Set(["button","checkbox","combobox","figure","img","link","listbox","option","radio","scrollbar","searchbox","separator","slider","spinbutton","switch","tab","tabpanel","textbox","tooltip","treeitem","grid","gridcell","table","cell","columnheader","rowheader","menu","menubar","menuitem","menuitemcheckbox","menuitemradio","tree","treegrid","radiogroup","application","dialog","alertdialog","alert","status","progressbar","meter","search","code","media"]),ji=new Set(["group","region","section","banner","contentinfo","main","navigation","complementary","form","article","document","presentation","none"]);var Ym=["none","presentation"],je;(function(e){e[e.ANCESTOR_ROLE_REQUIRED=6]="ANCESTOR_ROLE_REQUIRED",e[e.PROPERTY_VALUE_MATCH=5]="PROPERTY_VALUE_MATCH",e[e.HAS_TABLE_ROW_DATA=7]="HAS_TABLE_ROW_DATA",e[e.BOOLEAN_PROPERTY=0]="BOOLEAN_PROPERTY",e[e.ATTRIBUTE_GREATER_THAN=2]="ATTRIBUTE_GREATER_THAN",e[e.HAS_TABLE_COLUMN_DATA=8]="HAS_TABLE_COLUMN_DATA",e[e.FORBIDDEN_ANCESTORS=1]="FORBIDDEN_ANCESTORS",e[e.HAS_ACCESSIBLE_NAME=4]="HAS_ACCESSIBLE_NAME",e[e.ATTRIBUTE_LESS_THAN=3]="ATTRIBUTE_LESS_THAN"})(je||(je={}));var Qm={a:["link"],area:["link"],article:["article"],aside:["complementary"],body:["document"],button:["button"],datalist:["listbox"],dd:["definition"],details:["group"],dfn:["term"],dialog:["dialog"],dt:["term"],fieldset:["group"],figure:["figure"],footer:["contentinfo"],form:["form"],h1:["heading"],h2:["heading"],h3:["heading"],h4:["heading"],h5:["heading"],h6:["heading"],header:["banner"],hr:["separator"],img:["img"],input:["button","checkbox","combobox","radio","searchbox","slider","spinbutton","textbox"],li:["listitem"],link:["link"],main:["main"],math:["math"],menu:["list"],nav:["navigation"],ol:["list"],optgroup:["group"],option:["option"],output:["status"],progress:["progressbar"],section:["region"],select:["combobox","listbox"],summary:["button"],table:["table"],tbody:["rowgroup"],td:["cell","gridcell"],textarea:["textbox"],tfoot:["rowgroup"],th:["cell","columnheader","gridcell","rowheader"],thead:["rowgroup"],tr:["row"],ul:["list"],code:["code"],pre:["code"]},qi={heading:{selector:"h6,h1,h3,h2,h5,h4"},checkbox:{conditionalSelectors:[{selector:"input",conditions:[{type:je.PROPERTY_VALUE_MATCH,property:"type",values:["checkbox"]}]}]},navigation:{selector:"nav"},row:{selector:"tr"},complementary:{selector:"aside"},table:{selector:"table"},gridcell:{conditionalSelectors:[{selector:"td",conditions:[{type:je.ANCESTOR_ROLE_REQUIRED,tag:"table",role:"grid"}]},{selector:"td",conditions:[{type:je.ANCESTOR_ROLE_REQUIRED,tag:"table",role:"treegrid"}]},{selector:'th:not([scope="rowgroup"]):not([scope="row"]):not([scope="colgroup"]):not([scope="col"])',conditions:[{type:je.ANCESTOR_ROLE_REQUIRED,tag:"table",role:"treegrid"},{type:je.HAS_TABLE_COLUMN_DATA,hasData:!0},{type:je.HAS_TABLE_ROW_DATA,hasData:!0}]}]},slider:{conditionalSelectors:[{selector:"input",conditions:[{type:je.PROPERTY_VALUE_MATCH,property:"type",values:["range"]}]}]},listitem:{selector:"li"},contentinfo:{conditionalSelectors:[{selector:"footer",conditions:[{type:je.FORBIDDEN_ANCESTORS,selector:'section,nav,main,aside,article,[role="region"],[role="navigation"],[role="main"],[role="complementary"],[role="article"]'}]}]},definition:{selector:"dd"},button:{selector:"summary,button",conditionalSelectors:[{selector:"input",conditions:[{type:je.PROPERTY_VALUE_MATCH,property:"type",values:["submit","reset","image","button"]}]}]},status:{selector:"output"},form:{conditionalSelectors:[{selector:"form",conditions:[{type:je.HAS_ACCESSIBLE_NAME}]}]},article:{selector:"article"},textbox:{selector:"textarea",conditionalSelectors:[{selector:"input:not([list])",conditions:[{type:je.PROPERTY_VALUE_MATCH,property:"type",values:["url","text","tel","email"]}]}]},radio:{conditionalSelectors:[{selector:"input",conditions:[{type:je.PROPERTY_VALUE_MATCH,property:"type",values:["radio"]}]}]},columnheader:{selector:'th[scope="colgroup"],th[scope="col"]',conditionalSelectors:[{selector:'th:not([scope="rowgroup"]):not([scope="row"]):not([scope="colgroup"]):not([scope="col"])',conditions:[{type:je.HAS_TABLE_ROW_DATA,hasData:!1}]}]},list:{selector:"ul,ol,menu"},region:{conditionalSelectors:[{selector:"section",conditions:[{type:je.HAS_ACCESSIBLE_NAME}]}]},document:{selector:"body"},option:{selector:"select > option,select > optgroup > option,datalist > option"},separator:{selector:"hr"},link:{selector:"area[href],a[href],link[href]"},img:{selector:"img[alt],img:not([alt])"},main:{selector:"main"},searchbox:{conditionalSelectors:[{selector:"input:not([list])",conditions:[{type:je.PROPERTY_VALUE_MATCH,property:"type",values:["search"]}]}]},cell:{conditionalSelectors:[{selector:"td",conditions:[{type:je.ANCESTOR_ROLE_REQUIRED,tag:"table",role:"table"}]},{selector:'th:not([scope="rowgroup"]):not([scope="row"]):not([scope="colgroup"]):not([scope="col"])',conditions:[{type:je.ANCESTOR_ROLE_REQUIRED,tag:"table",role:"table"},{type:je.HAS_TABLE_COLUMN_DATA,hasData:!0},{type:je.HAS_TABLE_ROW_DATA,hasData:!0}]}]},rowheader:{selector:'th[scope="rowgroup"],th[scope="row"]',conditionalSelectors:[{selector:'th:not([scope="rowgroup"]):not([scope="row"]):not([scope="colgroup"]):not([scope="col"])',conditions:[{type:je.HAS_TABLE_COLUMN_DATA,hasData:!1},{type:je.HAS_TABLE_ROW_DATA,hasData:!0}]}]},dialog:{selector:"dialog"},listbox:{selector:"select[multiple],datalist",conditionalSelectors:[{selector:"select",conditions:[{type:je.ATTRIBUTE_GREATER_THAN,attribute:"size",value:1}]}]},group:{selector:"optgroup,fieldset,details"},term:{selector:"dt,dfn"},progressbar:{selector:"progress"},figure:{selector:"figure"},spinbutton:{conditionalSelectors:[{selector:"input",conditions:[{type:je.PROPERTY_VALUE_MATCH,property:"type",values:["number"]}]}]},math:{selector:"math"},combobox:{selector:"select:not([size]):not([multiple])",conditionalSelectors:[{selector:"select:not([multiple])",conditions:[{type:je.ATTRIBUTE_LESS_THAN,attribute:"size",value:2}]},{selector:"input[list]",conditions:[{type:je.PROPERTY_VALUE_MATCH,property:"type",values:["url","text","tel","search","email"]}]}]},banner:{conditionalSelectors:[{selector:"header",conditions:[{type:je.FORBIDDEN_ANCESTORS,selector:'[role="region"],[role="navigation"],[role="main"],[role="complementary"],[role="article"],section,nav,main,aside,article'}]}]},rowgroup:{selector:"thead,tfoot,tbody"},code:{selector:"code,pre"}},xr="rtrvr-ls",tr="rtrvr-ro",Mu="rtrvr-mw-ready",Qr="rtrvr-mw-busy",Nu="rtrvr-mwa-ready",Jm=new Set(["button","cell","checkbox","columnheader","gridcell","heading","link","menuitem","menuitemcheckbox","menuitemradio","option","radio","row","rowgroup","rowheader","switch","tab","tooltip","tree","treeitem","sectionhead","definition","term","deletion","insertion"]),Zm=["BUTTON","INPUT","METER","OUTPUT","PROGRESS","SELECT","TEXTAREA"],ep=["h1","h2","h3","h4","h5","h6"],tp="http://www.w3.org/1999/xhtml",np="http://www.w3.org/2000/svg",hn="rtrvr-label";var Rc=new Set(["NOSCRIPT","SCRIPT","STYLE","META"]),Jr="CODE",Zr="PRE",op="aria-hidden",rp="target";var Ic;(function(e){e[e.value=0]="value",e[e.alt=1]="alt",e[e.list=2]="list",e[e.title=3]="title"})(Ic||(Ic={}));var Oa;(function(e){e[e["data-icon"]=13]="data-icon",e[e["data-name"]=14]="data-name",e[e["data-tooltip"]=15]="data-tooltip",e[e["data-label"]=16]="data-label"})(Oa||(Oa={}));var Sc;(function(e){e[e.VALUENOW=0]="VALUENOW",e[e.VALUETEXT=1]="VALUETEXT"})(Sc||(Sc={}));var Lu=new Set([Ke.click,Ke.dblclick,Ke.doubleclick,Ke.contextmenu,Ke.auxclick,Ke.pointerdown,Ke.pointerup,Ke.mousedown,Ke.mouseup,Ke.touchstart,Ke.touchend,Ke.keydown,Ke.keyup,Ke.input,Ke.beforeinput,Ke.change,Ke.submit,Ke.reset,Ke.paste,Ke.dragstart,Ke.dragend,Ke.drop]),ap=new Set([...Lu,Ke.scroll,Ke.wheel,Ke.mouseenter,Ke.mouseover,Ke.focus,Ke.blur,Ke.focusin,Ke.focusout]),Ac=new Set(["click","dblclick","auxclick","contextmenu","mousedown","mouseup","pointerdown","pointerup","touchstart","touchend"]),Du=new Set(["input","change","beforeinput","keydown","keyup","keypress","paste","compositionstart","compositionend"]),Ou=new Set(["drag","dragstart","dragend","dragenter","dragleave","dragover","drop"]);var Tr;(function(e){e[e.ELEMENT=1]="ELEMENT",e[e.ATTRIBUTE=2]="ATTRIBUTE",e[e.TEXT=3]="TEXT",e[e.CDATA_SECTION=4]="CDATA_SECTION",e[e.ENTITY_REFERENCE=5]="ENTITY_REFERENCE",e[e.ENTITY=6]="ENTITY",e[e.PROCESSING_INSTRUCTION=7]="PROCESSING_INSTRUCTION",e[e.COMMENT=8]="COMMENT",e[e.DOCUMENT=9]="DOCUMENT",e[e.DOCUMENT_TYPE=10]="DOCUMENT_TYPE",e[e.DOCUMENT_FRAGMENT=11]="DOCUMENT_FRAGMENT",e[e.NOTATION=12]="NOTATION"})(Tr||(Tr={}));var Wi;(function(e){e[e.HTML=0]="HTML",e[e.SVG=1]="SVG"})(Wi||(Wi={}));var Cc;(function(e){e[e.VALUENOW=0]="VALUENOW",e[e.VALUETEXT=1]="VALUETEXT",e[e.ATOMIC=2]="ATOMIC",e[e.AUTOCOMPLETE=3]="AUTOCOMPLETE",e[e.COLCOUNT=4]="COLCOUNT",e[e.COLINDEX=5]="COLINDEX",e[e.COLSPAN=6]="COLSPAN",e[e.ERRORMESSAGE=7]="ERRORMESSAGE",e[e.HASPOPUP=8]="HASPOPUP",e[e.LEVEL=9]="LEVEL",e[e.LIVE=10]="LIVE",e[e.MULTILINE=11]="MULTILINE",e[e.MULTISELECTABLE=12]="MULTISELECTABLE",e[e.ORIENTATION=13]="ORIENTATION",e[e.PLACEHOLDER=14]="PLACEHOLDER",e[e.POSINSET=15]="POSINSET",e[e.READONLY=16]="READONLY",e[e.RELEVANT=17]="RELEVANT",e[e.REQUIRED=18]="REQUIRED",e[e.ROWCOUNT=19]="ROWCOUNT",e[e.ROWINDEX=20]="ROWINDEX",e[e.ROWSPAN=21]="ROWSPAN",e[e.SETSIZE=22]="SETSIZE",e[e.SORT=23]="SORT",e[e.VALUEMAX=24]="VALUEMAX",e[e.VALUEMIN=25]="VALUEMIN",e[e.KEYSHORTCUTS=26]="KEYSHORTCUTS",e[e.ROLEDESCRIPTION=27]="ROLEDESCRIPTION"})(Cc||(Cc={}));var Mc;(function(e){e[e.BUSY=0]="BUSY",e[e.CHECKED=1]="CHECKED",e[e.CURRENT=2]="CURRENT",e[e.EXPANDED=3]="EXPANDED",e[e.INVALID=4]="INVALID",e[e.PRESSED=5]="PRESSED",e[e.SELECTED=6]="SELECTED"})(Mc||(Mc={}));var On;(function(e){e[e["rtrvr-label"]=0]="rtrvr-label",e[e.role=1]="role",e[e.value=2]="value",e[e.alt=3]="alt",e[e.list=4]="list",e[e.title=5]="title",e[e["aria-label"]=6]="aria-label",e[e["aria-labelledby"]=7]="aria-labelledby",e[e["aria-description"]=8]="aria-description",e[e["aria-describedby"]=9]="aria-describedby",e[e.disabled=10]="disabled",e[e.href=11]="href",e[e.placeholder=12]="placeholder",e[e.type=13]="type",e[e.tabindex=14]="tabindex",e[e.id=15]="id",e[e._ngcontent=16]="_ngcontent",e[e["ng-reflect-*"]=17]="ng-reflect-*",e[e["data-reactroot"]=18]="data-reactroot",e[e["data-v-*"]=19]="data-v-*",e[e.required=20]="required",e[e.contenteditable=21]="contenteditable",e[e.accept=22]="accept"})(On||(On={}));var an;(function(e){e[e.display=0]="display",e[e.content=1]="content",e[e.beforeDisplay=2]="beforeDisplay",e[e.afterDisplay=3]="afterDisplay",e[e.beforeContent=4]="beforeContent",e[e.afterContent=5]="afterContent",e[e.width=6]="width",e[e.height=7]="height",e[e.minWidth=8]="minWidth",e[e.minHeight=9]="minHeight",e[e.position=10]="position",e[e.top=11]="top",e[e.left=12]="left",e[e.right=13]="right",e[e.bottom=14]="bottom",e[e.paddingTop=15]="paddingTop",e[e.paddingRight=16]="paddingRight",e[e.paddingBottom=17]="paddingBottom",e[e.paddingLeft=18]="paddingLeft",e[e.marginTop=19]="marginTop",e[e.marginRight=20]="marginRight",e[e.marginBottom=21]="marginBottom",e[e.marginLeft=22]="marginLeft",e[e.cursor=23]="cursor",e[e.opacity=24]="opacity",e[e.visibility=25]="visibility",e[e.overflowX=26]="overflowX",e[e.overflowY=27]="overflowY",e[e.backgroundColor=28]="backgroundColor",e[e.color=29]="color",e[e.borderWidth=30]="borderWidth",e[e.borderStyle=31]="borderStyle",e[e.boxShadow=32]="boxShadow",e[e.outline=33]="outline"})(an||(an={}));var nr;(function(e){e[e.text=0]="text",e[e.elText=1]="elText",e[e.viewBox=2]="viewBox",e[e.paths=3]="paths",e[e.pathData=4]="pathData",e[e.circles=5]="circles",e[e.rects=6]="rects",e[e.lines=7]="lines",e[e.polygons=8]="polygons",e[e.polylines=9]="polylines",e[e.ellipses=10]="ellipses"})(nr||(nr={}));var Oy=[...Cu,...Object.keys(qi),...Au],ip=[...new Set(Oy)],Pa={};ip.forEach((e,t)=>{Pa[e]=t});var $i={};ip.forEach((e,t)=>{$i[t]=e});var Nc=class{constructor(t=1){P(this,"currentId");this.currentId=t}generateId(){let t=this.currentId;return this.currentId++,t}initialize(t=1){this.currentId=t}getCurrentValue(){return this.currentId}};function Vi(e){let t=Kr();if(t?.getRoleHint)try{let r=t.getRoleHint(e);if(r)return r}catch{}let n=e.getAttribute(tr);if(!n)return null;let o=n.trim();if(!o)return null;if(o.startsWith("s:"))return o.slice(2);if(/^\d+$/.test(o)){let r=Number(o);if(Number.isFinite(r)){let a=$i[r];if(a)return a}}return o}function Ba(e){return Array.from(new Set(e))}function sp(e,t){if(!e||e.length===0)return Ba(t);let n=new Set([...e,...t]);return Ba(Array.from(n))}function Xn(e,t){let o=Kr()?.getEventHandlerIds?.(e)??Da(e),r=o.length>0&&o.some(s=>Lu.has(s)),a=Lc(e),i=t?ji.has(t):!1;return{element:e,semanticRole:t,eventHandlerIndices:o,isEditableRegion:a,hasNodeWorthyHandlers:r,isLikelyStructuralContainer:i}}var Py=new Set(["text","search","url","tel","password","email","number","date","datetime-local","time","month","week","color"]);function By(e){let n=_e(e).getComputedStyle(e);if(n.display==="none"||n.visibility==="hidden"||n.pointerEvents==="none")return!1;let o=e.getBoundingClientRect();return!(o.width===0||o.height===0)}function Uy(e){let t=_e(e);if(!ao(e,t))return!1;let n=(e.type||"text").toLowerCase();return Py.has(n)?!e.disabled&&!e.readOnly:!1}function Hy(e){let t=_e(e);return bo(e,t)&&!e.disabled&&!e.readOnly}function Fy(e){let t=e;return!(!t.isContentEditable||t.getAttribute("aria-readonly")==="true"||t.getAttribute("aria-disabled")==="true")}function Lc(e){return!e||!By(e)?!1:!!(Uy(e)||Hy(e)||Fy(e))}function Gi(e){if(!e)return null;let t=e.match(/^\s*\[id=(\d+)\]/);if(t?.[1]){let r=parseInt(t[1],10);return Number.isFinite(r)?r:null}let n=/\[id=(\d+)\]/g,o;for(;o=n.exec(e);){let r=o.index??0,a=e.slice(Math.max(0,r-30),r);if(/iframeRoot\s*=\s*$/.test(a)||a.includes("iframeRoot="))continue;let i=parseInt(o[1],10);if(Number.isFinite(i))return i}try{let r=e.match(LABEL_ID_PATTERN);if(r?.[1]){let a=parseInt(r[1],10);return Number.isFinite(a)?a:null}}catch{}return null}function Ki(e){let t=String(e??"").replace(/[\n\r\t]/g," ").replace(/\s+/g," ").trim();return t=t.replace(/\[/g,"&#91;").replace(/\]/g,"&#93;"),t}function cp({element:e,elementID:t,frameContextLabel:n}){let o=!xn.disableDomAnnotations,r=[`[id=${t}]`],a=_e(e);if(Fi(e)){let c=Ki(e.id||e.getAttribute("name")||"unnamed");r.push(`[iframe=${c}]`)}if(n){let c=Ki(n);r.push(`[iframeRoot=${c}]`)}if(Wm(e,a)&&r.push(`[size=${e.clientWidth}x${e.clientHeight}]`),($m(e,a)||Vm(e,a))&&r.push(`[size=${e.clientWidth}x${e.clientHeight}]`),ao(e,a)||bo(e,a)){let c=zy(e);r.push(...c)}e.getAttribute(op)==="true"&&r.push("[aria-hidden=true]"),e.disabled&&r.push("[disabled]"),o&&Hm(e,a)&&e.setAttribute(rp,"_self");let s=r.join(" ");return o&&e.setAttribute(hn,s),s}function zy(e){let t=[],n=_e(e),o=ao(e,n);if(o&&e.type&&e.type!=="text"&&t.push(`[type=${e.type}]`),e.name){let r=Ki(e.name);r&&t.push(`[name=${r}]`)}if(o&&e.multiple&&t.push("[multiple]"),o&&(e.type==="checkbox"||e.type==="radio")&&t.push(`[checked=${e.checked}]`),o&&e.type==="file"&&e.files?.length&&t.push(`[files=${e.files.length}]`),o&&e.type==="number"&&(e.min!==""&&t.push(`[min=${e.min}]`),e.max!==""&&t.push(`[max=${e.max}]`),e.step!==""&&e.step!=="1"&&t.push(`[step=${e.step}]`)),o&&e.type==="range"&&(t.push(`[min=${e.min||"0"}]`),t.push(`[max=${e.max||"100"}]`),t.push(`[value=${e.value}]`)),e.readOnly&&t.push("[readonly]"),e.required&&t.push("[required]"),e.maxLength&&e.maxLength!==-1&&e.maxLength<524288&&t.push(`[maxlength=${e.maxLength}]`),o&&e.pattern&&t.push("[pattern]"),e.autocomplete&&e.autocomplete!=="off"&&t.push(`[autocomplete=${e.autocomplete}]`),e.placeholder){let r=Ki(e.placeholder).replace(/\\/g,"\\\\").replace(/"/g,'\\"');r&&t.push(`[placeholder="${r}"]`)}if(e.value){let r=e.value;o&&e.type==="password"&&(r="*".repeat(Math.min(r.length,10)));let a=Ki(r).replace(/\\/g,"\\\\").replace(/"/g,'\\"');t.push(`[value="${a}"]`)}return t}var ea=new Nc,Pu=new WeakMap;function lp(){Pu=new WeakMap}function Dc(e){let t=Pu.get(e);if(t)return t;let n=ea.generateId();return Pu.set(e,n),n}var Oc=new Map,Bu=new WeakMap;function up(){Oc.clear(),Bu=new WeakMap}function Uu(e,t){try{typeof WeakRef<"u"?Oc.set(e,new WeakRef(t)):Oc.set(e,t)}catch{}}function Xi(e){let t=Oc.get(e);if(!t)return null;let n=t instanceof WeakRef?t.deref():t;return!n||n.isConnected===!1?null:n}function _r(e){let t=null,n=Dc(e);if(xn.frameContextLabel)t=xn.frameContextLabel;else{let r=xt();if(r&&e.ownerDocument!==r)try{let i=e.ownerDocument?.defaultView?.frameElement?.getAttribute(hn)||"",s=i?Gi(i):null;t=s?String(s):null}catch{t=""}}let o=cp({element:e,elementID:n,frameContextLabel:t});if(Uu(n,e),o)try{Bu.set(e,o)}catch{}return o}function dp(e){return Bu.get(e)??null}function Hu(e,t){try{e.querySelectorAll?.(`[${hn}]`)?.forEach(o=>o.removeAttribute(hn))}catch{}if(t.includeShadow)try{let n=e.querySelectorAll?.("*");if(n)for(let o of Array.from(n))try{let r=o.shadowRoot;r&&Hu(r,t)}catch{}}catch{}if(t.includeIframes)try{let n=e.querySelectorAll?.("iframe");if(n)for(let o of Array.from(n))try{let r=Hi(o);r?.body&&Hu(r.body,t)}catch{}}catch{}}function fp(e,t={}){if(xn.disableDomAnnotations)return;let n=Xr(e)?_e(e):se(e)??window,o=_c(e,n)??e;if(o){try{o.removeAttribute?.(hn)}catch{}Hu(o,{includeShadow:t.includeShadow??!0,includeIframes:t.includeIframes??!0})}}var Bo={},Fu=new WeakMap,Pc=new WeakSet;function mp(){Bo={},Fu=new WeakMap,Pc=new WeakSet,lp()}function gn({targetElement:e,parentDisabled:t,semanticRole:n,excludeLabels:o,isFrameNode:r,frameContentNodes:a,originatedFromParent:i,elementContext:s}){let c=Dc(e);Uu(c,e);let d=Bo[c];if(i){if(!d){let f={nodeCategory:e.nodeType,provisionalFromParent:!0},u=e.nodeName;u&&u.trim()&&(f.elementName=u);let b=e.getAttribute("role");b&&(f.preservedAttributes={1:b});let p=e.tagName;p&&(f.elementTag=p),Bo[c]=f}}else{if(d&&!d.provisionalFromParent){if((r||Ua(e))&&(d.isFrameElement=!0,a&&a.length>0&&(d.frameContent=a)),s){let{eventHandlerIndices:f,isEditableRegion:u}=s;if(f&&f.length>0){let b=Ba(f);b.length>0&&(d.eventHandlers=sp(d.eventHandlers,b))}u&&(d.isEditable=!0)}return c}if(Pc.has(e))return c;Pc.add(e);try{Bo[c]=pp({targetElement:e,parentDisabled:t,semanticRole:n,excludeLabels:o,isFrameNode:r,frameContentNodes:a,elementContext:s})}finally{Pc.delete(e)}}return c}function Yi(e){let t=Fu.get(e);if(t!==void 0)return t;let o=(e.textContent||"").replace(/\s+/g," ").trim(),r=e.data?.replace(/\s+/g," ").trim();if(!o&&!r)return 0;let a=ea.generateId(),i={textContent:o,nodeCategory:e.nodeType};return r&&r!==o&&(i.rawData=r),Bo[a]=i,Fu.set(e,a),a}function gp(e,t){let n=kp(e),{minY:o,maxY:r}=n.getCellBounds(t);return n.getRows().slice(o,r+1).some(a=>a.some(Qi))}function bp(e,t){let n=kp(e),{minX:o,maxX:r}=n.getCellBounds(t);return n.getRows().some(a=>a.slice(o,r+1).some(Qi))}var Uc=class{constructor(t=[]){P(this,"cells");P(this,"getCellAt",(t,n)=>this.getRowAt(n)[t]);P(this,"setCellAt",(t,n,o)=>{this.getRowAt(n)[t]=o});P(this,"getRowAt",t=>(this.cells[t]===void 0&&(this.cells[t]=[]),this.cells[t]));P(this,"getRows",()=>this.cells);P(this,"getCellBounds",t=>{let n=this.columnCount,o=this.rowCount,r=-1,a=-1;for(let i=0;i<this.rowCount;i++){let s=this.getRowAt(i),c=s.indexOf(t);c!==-1&&(r=Math.max(r,s.lastIndexOf(t)),a=Math.max(a,i),n=Math.min(n,c),o=Math.min(o,i))}return{minX:n,minY:o,maxX:r,maxY:a}});P(this,"merge",t=>{this.cells=this.getRows().concat(t.getRows())});this.cells=t}get rowCount(){return this.cells.length}get columnCount(){return Math.max(...this.cells.map(t=>t.length))}};function kp(e){let n=_e(e).TableGrid||Uc,o=new n;e.tHead!==null&&o.merge(Bc(e.tHead.rows)),Array.from(e.tBodies).forEach(a=>{o.merge(Bc(a.rows))});let r=[];for(let a of Array.from(e.children))zu(a)&&ta(a,"tr")&&r.push(a);return o.merge(Bc(r)),e.tFoot!==null&&o.merge(Bc(e.tFoot.rows)),o}function Bc(e){let t=new Uc,n=[];for(let o=0;o<e.length;o++){let r=0;for(let a of Array.from(e[o].cells)){for(;t.getCellAt(r,o)||n[r];)!Qi(t.getCellAt(r,o))&&n[r]&&t.setCellAt(r,o,n[r]),r++;for(let i=r;i<r+a.colSpan;i++){hp(a)===0&&(n[i]=a,t.setCellAt(i,o,a));for(let s=o;s<o+hp(a);s++)Qi(t.getCellAt(i,s))||t.setCellAt(i,s,a)}r+=a.colSpan}for(let a=r;a<t.columnCount;a++){let i=n[a];i!==void 0&&!Qi(t.getCellAt(a,o))&&t.setCellAt(a,o,i)}}return t}function hp(e){let t=e.getAttribute("rowSpan");if(t===null||t.trim()==="")return 1;let n=Number(t);return isNaN(n)?1:n}function Qi(e){return e!==void 0&&ta(e,"td")}function ko(e){let t=e.tagName?.toLowerCase();if(t==="code"||t==="pre"){let o=Yy(e);if(o)return o}let n=yp(e);if(n===null){if(t==="dl")return"list";if(t==="form")return"form";if(t==="header")return"banner";if(t==="footer")return"contentinfo";if(t==="option")return"option";if(t==="textarea")return"textbox";if(t==="input"){let r=e;switch(r.type.toLowerCase()){case"checkbox":return"checkbox";case"radio":return"radio";case"button":case"submit":case"reset":case"image":return"button";case"number":return"spinbutton";case"range":return"slider";case"hidden":return null;default:return r.hasAttribute("list")?"combobox":"textbox"}}if(t==="select")return e.multiple?"listbox":"combobox";if(t==="svg"){if(e.getAttribute("aria-hidden")==="true")return null;let r=e.querySelector("title"),a=e.querySelector("desc"),i=e.hasAttribute("aria-label"),s=e.hasAttribute("role");return r||a||i||s||Da(e).length>0||e.getAttribute("tabindex")!==null?"img":null}if(Da(e).length>0){let r=e.tagName.toLowerCase();if(["div","span","li","p","i","em","strong","b"].includes(r))return jy(e)}}if(t==="td"&&e.getAttribute("role")===null)return"cell";if(n!==null&&t==="th"){let o=e.getAttribute("role");if(o&&vp(o))return o;let r=e;return r.scope==="col"||r.hasAttribute("aria-sort")?"columnheader":r.scope==="row"?"rowheader":"cell"}return n}function jy(e){return Vi(e)??null}function yp(e){let t=e.getAttribute("role");if(t!==null)return Ym.includes(t)||!vp(t)?null:t;let n=e.tagName.toLowerCase();return(Qm[n]??[]).find(r=>qy(e,r))||null}function qy(e,t){let n=qi[t],o=n?.selector;if(o&&Hc(e,o))return!0;let r=n?.conditionalSelectors;return r?r.some(i=>Hc(e,i.selector)&&i.conditions.every(c=>$y(e,c))):!1}function Wy(e,t){let n=(t||"").trim().replace(/^#/,"");if(!n)return null;try{let o=e.getRootNode?.();if(Kn(o)){let r=_e(e),a=`#${xc(r,n)}`,i=wc(o,a);if(i)return i}}catch{}return vc(ee(e),n)}function $y(e,t){switch(t.type){case je.ATTRIBUTE_GREATER_THAN:{let n=e.getAttribute(t.attribute);return n!==null&&Number(n)>t.value}case je.ATTRIBUTE_LESS_THAN:{let n=e.getAttribute(t.attribute);return n!==null&&Number(n)<t.value}case je.HAS_ACCESSIBLE_NAME:return e.hasAttribute("aria-label")?!0:(e.getAttribute("aria-labelledby")||"").split(/\s+/).filter(Boolean).some(o=>Wy(e,o)!=null);case je.FORBIDDEN_ANCESTORS:return or(e,t.selector)===null;case je.BOOLEAN_PROPERTY:return e[t.property]===t.value;case je.PROPERTY_VALUE_MATCH:return t.values.some(n=>n===e[t.property]);case je.ANCESTOR_ROLE_REQUIRED:{let n=e.parentElement;if(n===null)return!1;let o=or(n,t.tag);return o!==null&&yp(o)===t.role}case je.HAS_TABLE_COLUMN_DATA:{let n=or(e,"table");return n===null?!1:t.hasData===bp(n,e)}case je.HAS_TABLE_ROW_DATA:{let n=or(e,"table");return n===null?!1:t.hasData===gp(n,e)}default:return Vy(t),!1}}function Vy(e){throw new Error(`unexpected value ${e}!`)}function vp(e){return Ky(e)||Xy(e)||Gy(e)}function Gy(e){return Km.has(e)}function Ky(e){return Xm.has(e)}function Xy(e){return qi.hasOwnProperty(e)}function Yy(e){if(e.tagName!==Jr&&e.tagName!==Zr)return null;if(zi(e).some(o=>o==="click"||o==="copy"))return"button";let n=e.getAttribute("tabindex");return n!==null&&parseInt(n,10)>=0?"button":e.tagName===Zr||e.tagName===Jr&&e.closest("pre")?"code":null}var Qy={[an.display]:[an.beforeDisplay,an.afterDisplay],[an.content]:[an.beforeContent,an.afterContent]},ju=new Map,Jy={minWidth:"min-width",minHeight:"min-height",backgroundColor:"background-color",borderWidth:"border-width",borderStyle:"border-style",boxShadow:"box-shadow",paddingTop:"padding-top",paddingRight:"padding-right",paddingBottom:"padding-bottom",paddingLeft:"padding-left",marginTop:"margin-top",marginRight:"margin-right",marginBottom:"margin-bottom",marginLeft:"margin-left",overflowX:"overflow-x",overflowY:"overflow-y"};function Zy(e,t){if(!ju.has(e)){let n=Jy[t]||t.replace(/([A-Z])/g,"-$1").toLowerCase();ju.set(e,n)}return ju.get(e)}var ev={display:e=>e!=="block"&&e!=="inline"&&e!=="",visibility:e=>e!=="visible",opacity:e=>parseFloat(e)<1,position:e=>e!=="static",cursor:e=>e!=="auto"&&e!=="default"&&e!=="text",width:e=>e!=="auto"&&e!=="",height:e=>e!=="auto"&&e!=="",minWidth:e=>e!=="0px"&&e!=="",minHeight:e=>e!=="0px"&&e!=="",paddingTop:e=>parseFloat(e)>0,paddingRight:e=>parseFloat(e)>0,paddingBottom:e=>parseFloat(e)>0,paddingLeft:e=>parseFloat(e)>0,marginTop:e=>Math.abs(parseFloat(e))>5,marginRight:e=>Math.abs(parseFloat(e))>5,marginBottom:e=>Math.abs(parseFloat(e))>5,marginLeft:e=>Math.abs(parseFloat(e))>5,overflowX:e=>e!=="visible",overflowY:e=>e!=="visible",backgroundColor:e=>e!=="transparent"&&e!=="rgba(0, 0, 0, 0)"&&e!=="initial",color:e=>e!=="initial"&&e!=="inherit"&&e!=="",borderWidth:e=>e!=="0px"&&parseFloat(e)>0,borderStyle:e=>e!=="none"&&e!=="initial",boxShadow:e=>e!=="none"&&e!=="",outline:e=>e!=="none"&&e!==""&&!e.includes("0px")};function Tp(e,t,n){let o=ev[e];return o?o(t,n):t.trim()!==""&&!["initial","inherit","unset"].includes(t)}function _p(e){let t={},n=_e(e);if(!Pt(e,n))return t;let o=n.getComputedStyle(e),r=new Map([[an.beforeDisplay,n.getComputedStyle(e,"::before")],[an.afterDisplay,n.getComputedStyle(e,"::after")],[an.beforeContent,n.getComputedStyle(e,"::before")],[an.afterContent,n.getComputedStyle(e,"::after")]]);for(let a in an)if(isNaN(Number(a))){let i=an[a],s=Zy(i,a),c=Qy[i];c?((i===an.display||i===an.content)&&wp(o,s,i,a,t,e),xp(r.get(c[0]),s,c[0],"beforeContent",t),xp(r.get(c[1]),s,c[1],"afterContent",t)):wp(o,s,i,a,t,e)}return t}function wp(e,t,n,o,r,a){if(e){let i=e.getPropertyValue(t);i&&Tp(o,i,a)&&(r[n]=i)}}function xp(e,t,n,o,r){if(e){let a=e.getPropertyValue(t);(t==="content"&&a&&a!=="none"&&a!=='""'&&a!=="''"||a&&Tp(o,a))&&(r[n]=a)}}function na(e,t){let n=_e(e);if(!Pt(e,n))return!0;if(t&&er.has(t))return!1;if(e.hasAttribute("hidden")||or(e,"[hidden]")!==null||or(e,"[inert]")!==null)return!0;let o=n.getComputedStyle(e);if(o.display==="none"||o.visibility==="hidden"||o.visibility==="collapse"||e.getClientRects().length===0)return!0;let r=e.getBoundingClientRect(),a=1e6;return Math.abs(r.left)>a||Math.abs(r.top)>a}function Ji(e){return yo(e)&&e.classList.contains("jasmine_html-reporter")}function tv(e){let t=e.getAttribute("role");return t==="presentation"||t==="none"}function Ep(e){return e?e.split(/\s+/).map(t=>t.trim()).filter(Boolean).map(t=>t.replace(/^#/,"")):[]}function Ip(e,t){let n=(t||"").trim().replace(/^#/,"");if(!n)return null;try{let r=e.getRootNode?.();if(Kn(r)){let a=_e(e),i=`#${xc(a,n)}`,s=wc(r,i);if(s)return s}}catch{}let o=ee(e);return vc(o,n)}function qu(e){let n=[];for(let o=0;o<arguments.length;o++){let r=arguments[o];if(Array.isArray(r))for(let a=0;a<r.length;a+=8192){let i=nv(r,a,a+8192),s=qu.apply(null,i);for(let c=0;c<s.length;c++)n.push(s[c])}else n.push(r)}return n}function nv(e,t,n){return arguments.length<=2?Array.prototype.slice.call(e,t):Array.prototype.slice.call(e,t,n)}function Sp(e,t){return ov(e,t).concat(rv(e))}function ov(e,t){return qu($u(e).map(o=>Dp(o)&&yo(o)?Rp(o,t):o))}function Rp(e,t){if(!e||na(e,t))return[];if(!tv(e))return[e];let n=Array.from(e.children);return qu(n.map(o=>Rp(o,t)))}function Ap(e){let t=Ep(e.getAttribute("aria-owns"));if(!t.length)return[];let n=[],o=new Set;for(let r of t){if(o.has(r))continue;o.add(r);let a=Ip(e,r);a&&a!==e&&n.push(a)}return n}function rv(e){let t=Ap(e);for(let n of t)n["aria-owned-by"]=e;return t}function Cp(e){let t=_e(e),n=ee(e);if(e.getAttribute("role")!=="dialog"&&e.getAttribute("role")!=="alertdialog"||e.getAttribute("aria-modal")!=="true")return!1;let o=t.getComputedStyle(e);if(o?.position!=="fixed"&&o?.position!=="absolute"||parseInt(o?.zIndex,10)<=cv(e))return!1;let r=av(e);return!r||!sv(r)||!uv(e)||r.getAttribute("role")==="dialog"||e.getAttribute("role")==="dialog"?!1:lv(e)}function av(e){return[e.previousElementSibling,e.nextElementSibling,...Array.from(e.children),...e.parentElement?[e.parentElement.previousElementSibling,e.parentElement.nextElementSibling]:[]].filter(n=>n!==null).find(iv)||null}function iv(e){if(na(e))return!1;let n=_e(e).getComputedStyle(e);return(n?.position==="fixed"||n?.position==="absolute")&&n?.backgroundColor!=="rgba(0, 0, 0, 0)"&&n?.backgroundColor!=="transparent"&&n?.pointerEvents!=="none"}function sv(e){let t=_e(e),n=e.getBoundingClientRect();return n.top<=0&&n.left<=0&&n.bottom>=t.innerHeight&&n.right>=t.innerWidth}function cv(e){let t=ee(e),n=_e(e),o=n?.getComputedStyle;if(!o)return 0;let r=Ru(t,"*").filter(a=>a!==e&&!na(a)).map(a=>parseInt(o.call(n,a)?.zIndex,10)).filter(a=>Number.isFinite(a)&&!isNaN(a));return r.length?Math.max(...r):0}function lv(e){return e.querySelectorAll('a[href], button, input, textarea, select, details, [tabindex]:not([tabindex="-1"])').length>0}function uv(e){let t=e.parentElement;if(!t)return!1;for(let n of Array.from(t.children))if(n!==e&&!na(n)&&n.getAttribute("aria-hidden")!=="true")return!1;return!0}function dv(){try{let t=xt()?.querySelector?.("dialog:modal");return'[aria-modal="true"], dialog:modal'}catch{return'[aria-modal="true"]'}}var Mp=dv();function fv(e){return e.getAttribute("aria-disabled")==="true"||e.hasAttribute("disabled")}function Wu(e){let t=e.getAttribute("href")||e.getAttribute("src")||e.getAttribute("data")||e.getAttribute("action");if(!t&&!e.tagName.includes("-"))try{let n=e;t=n.href||n.src||n.data||n.action||null}catch{return!1}if(!t)return!1;try{let n=ee(e),o=new URL(t,n.baseURI);return o.protocol==="javascript:"&&(o.pathname.trim()!==""||o.search.trim()!==""||o.hash.trim()!=="")}catch{return!1}}function Np(e){return Jm.has(e)}function mv(e){let t=e.parentElement,n=ee(e);if(!(!t||t===n.body||t===n.documentElement))return gn({targetElement:t,originatedFromParent:!0})}function pp({targetElement:e,parentDisabled:t,semanticRole:n,excludeLabels:o,isFrameNode:r,frameContentNodes:a,elementContext:i}){let s={nodeCategory:e.nodeType},c=t||fv(e),d=mv(e);if(d&&(s.parent=d),n){let Ae=Pa[n];typeof Ae=="number"?s.semanticRole=Ae:s.semanticRole=n}if(c&&(s.isDisabled=!0),i){let{eventHandlerIndices:Ae,isEditableRegion:lt}=i,Xe=Ba(Ae);Xe.length>0&&(s.eventHandlers=Xe),lt&&(s.isEditable=!0)}let f=hv(e);f&&Object.keys(f).length>0&&(s.ariaProperties=f);let u=gv(e);u&&Object.keys(u).length>0&&(s.ariaStates=u);let b=e.nodeName;b&&b.trim()&&(s.elementName=b);let p=_p(e);p&&Object.keys(p).length>0&&(s.computedStyles=p),na(e)&&(s.isInvisible=!0);let g=pv(e,n);g&&Object.keys(g).length>0&&(s.preservedAttributes=g),e.draggable&&(s.isDraggable=!0),e.scrollWidth&&e.clientWidth&&e.scrollWidth>e.clientWidth&&(s.supportsHorizontalSwipe=!0),e.scrollHeight&&e.clientHeight&&e.scrollHeight>e.clientHeight&&(s.supportsVerticalSwipe=!0);let y=e.getAttribute("class");if(y?.trim()){y.includes("handle")&&(s.isDragHandle=!0),s.supportsHorizontalSwipe||(y.includes("horizontal")||y.includes("carousel"))&&(s.supportsHorizontalSwipe=!0),s.supportsVerticalSwipe||(y.includes("vertical")||y.includes("feed"))&&(s.supportsVerticalSwipe=!0),y.includes("dismissible")&&(s.supportsDismissSwipe=!0),(y.includes("long-press")||y.includes("hold")||y.includes("press-hold"))&&(s.supportsLongPress=!0);let Ae=s.inputType||s.preservedAttributes?.[On.type];Ae==="submit"||Ae==="reset"||Ae==="clear"||(y.includes("submit")&&(s.preservedAttributes={...s.preservedAttributes||{},[On.type]:"submit"}),y.includes("clear")&&(s.preservedAttributes={...s.preservedAttributes||{},[On.type]:"clear"}),y.includes("reset")&&(s.preservedAttributes={...s.preservedAttributes||{},[On.type]:"reset"}))}let E=xv({element:e});E&&E.length>0&&(s.labelReferences=E);let R=e.tagName;if(R&&(s.elementTag=R),kv(e)&&(s.hasFocus=!0),!r){let Ae=Vu({element:e,semanticRole:n,parentDisabled:c,excludeLabels:o});Ae&&Ae.length>0&&(s.childElements=Ae)}let O=Av({element:e});O&&O.length>0&&(s.ownedElements=O);let M=Ec(e);M&&(s.resourceLocator=M),(r||Ua(e))&&(s.isFrameElement=!0),a&&a.length>0&&(s.frameContent=a);let H=e.type;H&&typeof H=="string"&&H.trim()&&(s.inputType=H);let N=e.placeholder;N&&typeof N=="string"&&N.trim()&&(s.placeholderText=N);let Y=e.value;Y&&typeof Y=="string"&&Y.trim()&&(s.elementValue=Y);let ae=Tv({element:e,parentDisabled:t,semanticRole:n});if(ae&&ae.length>0&&(s.selectedOptions=ae),or(e,"select,datalist")&&(s.nearestSelectList=!0),zu(e))s.elementNamespace=Wi.HTML;else if(bv(e)){s.elementNamespace=Wi.SVG,s.svgStructure=yv(e);let Ae=vv(e);Ae&&Object.keys(Ae).length>0&&(s.preservedAttributes?s.preservedAttributes={...s.preservedAttributes,...Ae}:s.preservedAttributes=Ae)}let le=o?void 0:_v({element:e});le&&le.length>0&&(s.associatedLabels=le);let Me=e.scope;Me&&typeof Me=="string"&&Me.trim()&&(s.tableScope=Me);let ve=Iv({element:e});ve&&(s.tableCaption=ve);let we=Sv({element:e});we&&(s.figureCaption=we);let Ne=Rv({element:e});return Ne&&(s.fieldsetLegend=Ne),or(e,"table")&&(s.nearestTable=!0),s}function pv(e,t){let n={},o=new Set(Object.values(On).filter(s=>typeof s=="string")),r=new Set(Object.keys(Ic).filter(s=>isNaN(Number(s)))),a=new Set(["_ngcontent","ng-reflect-*","data-v-*"]),i=e?.attributes?Array.from(e.attributes):[];for(let s of i){let c=s.name,d=s.value;if(c==="id"&&(!t||!er.has(t)))continue;let f;if(o.has(c)?f=c:c.startsWith("data-v-")?f="data-v-*":c.startsWith("ng-reflect-")?f="ng-reflect-*":c.startsWith("_ngcontent")&&(f="_ngcontent"),f){let u=d.trim()!=="",b=r.has(f);if(u||b){let p=On[f],g=a.has(f)?"true":d;n[p]=g}}}if(!n[On[hn]]){let s=dp(e);s&&(n[On[hn]]=s)}return n}function hv(e){return Lp(e,Cc,Sc)}function gv(e){return Lp(e,Mc,null)}function Lp(e,t,n){let o={};for(let r in t)if(isNaN(Number(r))){let a=t[r],s=`aria-${r.toLowerCase().replace(/_/g,"-")}`,c=e.getAttribute(s),d=!1;n!==null&&(d=Object.values(n).filter(u=>typeof u=="number").includes(a)),e.hasAttribute(s)&&d||c?.trim()?o[a]=c:s==="aria-level"&&ep.includes(e.tagName.toLowerCase()?.trim())&&(o[a]=e.tagName.substring(1))}return o}function yo(e){return Dp(e)&&e.nodeType===Tr.ELEMENT}function Fc(e){return e.nodeType===Tr.TEXT}function Dp(e){let t=typeof e;return t=="object"&&e!=null||t=="function"}function zu(e){return yo(e)&&(!e.namespaceURI||e.namespaceURI===tp)}function bv(e){return yo(e)&&e.namespaceURI===np}function Ua(e){return e.tagName==="IFRAME"}function ta(e,t){return"tagName"in e?e.tagName?.toLowerCase()===t:e.elementTag?.toLowerCase()===t}function or(e,t){if(e.closest)return e.closest(t);for(;!Hc(e,t);){if(e.parentElement===null)return null;e=e.parentElement}return e}function Hc(e,t){return e.matches?.(t)??e.msMatchesSelector?.(t)??e.webkitMatchesSelector(t)}function kv(e){let t=e.ownerDocument,n=t?.hasFocus()?t.activeElement:null;if(n){let o=n.getAttribute("aria-activedescendant");o&&(n=t.getElementById(o)||n)}return e===n}function yv(e){let t={},n=nr.text,o=nr.elText;e.textContent?.trim()&&(t[n]=e.textContent);let r=e.querySelector("title"),a=e.querySelector("img");r?.textContent?.trim()?t[o]=r.textContent:a?.alt?.trim()&&(t[o]=a.alt);let i=e.getAttribute("viewBox");i&&(t[nr.viewBox]=i);let s=e.querySelectorAll("path");s.length>0&&(t[nr.paths]=s.length,t[nr.pathData]=Array.from(s).slice(0,3).map(d=>d.getAttribute("d")).filter(Boolean).map(d=>d.substring(0,100)));let c={circles:e.querySelectorAll("circle").length,rects:e.querySelectorAll("rect").length,lines:e.querySelectorAll("line").length,polygons:e.querySelectorAll("polygon").length,polylines:e.querySelectorAll("polyline").length,ellipses:e.querySelectorAll("ellipse").length};return Object.entries(c).forEach(([d,f])=>{if(f>0){let u=nr[d];t[u]=f}}),Object.keys(t).length>0?t:void 0}function vv(e){let t={};if(!e?.hasAttributes())return t;for(let n of Object.values(Oa).filter(o=>typeof o=="number")){let o=Oa[n];if(o){let r=o;if(Oa.hasOwnProperty(r)&&e.hasAttribute(r)){let a=e.getAttribute(r);a?.trim()&&(t[n]=a)}}}return t}function wv({frameElement:e,parentDisabled:t,excludeLabels:n}){if(!xn.includeFrameContents)return[];let o=null;try{o=e.contentWindow?.document?.body||null}catch{return[]}if(!o)return[];let r=[];for(let a of $u(o))if(!(Ji(a)||Op(a))){if(yo(a)){let i=a,s=ko(i),c=Xn(i,s),{shouldCreate:d,shouldAnnotate:f}=zc(c);if(d){f&&_r(i);let u=gn({targetElement:i,parentDisabled:t,semanticRole:s??void 0,excludeLabels:n,elementContext:c});u&&r.push(u)}else{let u=Vu({element:i,semanticRole:s??void 0,parentDisabled:t,excludeLabels:n});r.push(...u)}}else if(Fc(a)){let i=Yi(a);i&&r.push(i)}}return r}function $u(e){let t=_e(e);if(jm(e,t)){try{let n=e.assignedNodes({flatten:!0});if(n&&n.length)return n}catch{}return Array.from(e.childNodes)}try{let n=e.shadowRoot||Kr()?.getShadowRoot?.(e)||null;if(n){let o=Array.from(n.childNodes),r=Array.from(e.childNodes).filter(a=>!a.assignedSlot);return o.concat(r)}}catch{}return Array.from(e.childNodes)}function Vu({element:e,semanticRole:t,parentDisabled:n,excludeLabels:o}){let r=[];for(let a of $u(e))if(!(Ji(a)||Op(a))){if(yo(a)){let i=a,s=ko(i),c=Xn(i,s);if(Ua(i)){_r(i);let u=wv({frameElement:i,parentDisabled:n,excludeLabels:o}),b=gn({targetElement:i,parentDisabled:n,semanticRole:s??void 0,excludeLabels:o,isFrameNode:!0,frameContentNodes:u,elementContext:c});b&&r.push(b);continue}let{shouldCreate:d,shouldAnnotate:f}=zc(c);if(d){f&&_r(i);let u=gn({targetElement:i,parentDisabled:n,semanticRole:s??void 0,excludeLabels:o,elementContext:c});u&&r.push(u)}else{let u=Vu({element:i,semanticRole:s??void 0,parentDisabled:n,excludeLabels:o});r.push(...u)}}else if(Fc(a)){let i=Yi(a);i&&r.push(i)}}return r}function xv({element:e}){let t=Ep(e.getAttribute("aria-labelledby")),n=new Set;for(let o of t){let r=Ip(e,o);if(!(!r||r===e)&&r){let a=ko(r),i=gn({targetElement:r,semanticRole:a,elementContext:Xn(r,a)});n.add(i)}}return Array.from(n)}function Tv({element:e,parentDisabled:t,semanticRole:n}){let o=[];return e&&(n&&n==="listbox"?o=Array.from(e.querySelectorAll('[role="option"][aria-selected="true"]')).map(r=>gn({targetElement:r,parentDisabled:t,semanticRole:"option",elementContext:Xn(r,"option")})):ta(e,"select")&&(o=Array.from(e.selectedOptions).map(r=>gn({targetElement:r,parentDisabled:t,semanticRole:"option",elementContext:Xn(r,"option")})))),o}function _v({element:e}){if(Zm.includes(e.tagName)){let t=ee(e),n=Ru(t,"label"),o=new Set;return Array.from(n).filter(r=>r!==e&&Ev(r,e)).map(r=>{let a=ko(r),i=gn({targetElement:r,semanticRole:a,excludeLabels:!0,elementContext:Xn(r,a)});o.add(i)}),Array.from(o)}}function Ev(e,t){let n=e.control;return n!==void 0?n===t:e.htmlFor!==""&&e.htmlFor===t.id?!0:!!(e.htmlFor===""&&e.contains(t))}function Iv({element:e}){if(ta(e,"table")){let t=e.querySelector("caption");if(t&&t!==e){let n=ko(t);return gn({targetElement:t,semanticRole:n,elementContext:Xn(t,n)})}}}function Sv({element:e}){if(ta(e,"figure")){let t=e.querySelector("figcaption");if(t&&t!==e){let n=ko(t);return gn({targetElement:t,semanticRole:n,elementContext:Xn(t,n)})}}}function Rv({element:e}){if(ta(e,"fieldset")){let t=e.querySelector("legend");if(t&&t!==e){let n=ko(t);return gn({targetElement:t,semanticRole:n,elementContext:Xn(t,n)})}}}function Av({element:e}){let t=new Set,n=Ap(e);for(let o of n){let r=ko(o),a=gn({targetElement:o,semanticRole:r,elementContext:Xn(o,r)});t.add(a)}return Array.from(t)}function zc(e){let{semanticRole:t,eventHandlerIndices:n,isEditableRegion:o,hasNodeWorthyHandlers:r,isLikelyStructuralContainer:a}=e,i=n.length>0&&n.some(u=>ap.has(u)),c=!!t||!a&&(r||o),d=!!t&&er.has(t);return{shouldCreate:c,shouldAnnotate:c&&(d||o||i)}}function Op(e){if(!yo(e))return!1;let t=e,n=t.tagName;return Rc.has(n)?!0:n===Jr||n===Zr?Cv(t):!1}function Cv(e){let t=_e(e),n=t?.getComputedStyle;if(!n||n.call(t,e).display==="none")return!0;let r=e.getBoundingClientRect();return r.width===0&&r.height===0&&!(typeof e.closest=="function"&&e.closest("pre"))||r.right<-1e3||r.left>t.innerWidth+1e3}function Gu(e,t={}){return Um(t),mp(),up(),fp(e,{includeShadow:!0,includeIframes:xn.clearIframes}),ea.initialize(xn.semanticIdStart),{rootNodes:Pp(e),semanticNodes:Bo}}function Pp(e){let t=[];try{let n=ee(e),r=Array.from(n.querySelectorAll(Mp)).filter(a=>!na(a)&&Cp(a));if(r.length===0)t=Ha({targetElement:e});else if(r.length===1){let a=r[0];a.contains(e)?t=Ha({targetElement:e}):e.contains(a)?t=Ha({targetElement:a}):t=Ha({targetElement:e})}else t=Ha({targetElement:e})}catch(n){throw console.error("Error constructing semantic tree",n),n}return t}function Ha({targetElement:e,parentNode:t}){if(Ji(e)||Bp(e))return[];let n=ko(e),o=Xn(e,n);if(Ua(e))return[Nv({frameElement:e,role:n,parentNode:t,elementContext:o})];let r=0,{shouldCreate:a,shouldAnnotate:i}=zc(o);a&&(i&&_r(e),r=gn({targetElement:e,parentDisabled:t?.isDisabled,semanticRole:n,elementContext:o}));let s=Bo[r],c=Mv(e,n,r?s:t);return r&&c.length>0&&(s.semanticChildren=c),r?[r]:c}function Mv(e,t,n){let o=[],r=Sp(e,t);for(let a of r)if(!(Ji(a)||Bp(a))){if(yo(a)){let i=Ha({targetElement:a,parentNode:n});o.push(...i)}else if(Fc(a)&&Pv(a,n)){let i=Yi(a);i&&o.push(i)}}return o}function Nv({frameElement:e,role:t,parentNode:n,elementContext:o}){_r(e);let r=Lv(e);return gn({targetElement:e,parentDisabled:n?.isDisabled,semanticRole:t,isFrameNode:!0,frameContentNodes:r,elementContext:o})}function Lv(e){if(!xn.includeFrameContents)return[];let t=Dv(e);return t.kind==="content"?Pp(t.rootElement):Ov(e,t.reason)}function Dv(e){let t=null;try{t=e.contentDocument||e.contentWindow?.document||null}catch{return{kind:"unavailable",reason:"cross_origin_blocked"}}let n=t?.body||t?.documentElement||null;return n?{kind:"content",rootElement:n}:{kind:"unavailable",reason:"iframe_not_ready_or_empty"}}function Ov(e,t){let n=ea.generateId(),o=ea.generateId(),r=e.getAttribute("title")?.trim()||e.getAttribute("name")?.trim()||e.id?.trim()||"Embedded frame",a=Ec(e)||void 0,i=t==="cross_origin_blocked"?"Iframe content is not accessible from this origin (cross-origin).":"Iframe content is not ready yet or has no readable DOM.";return Bo[n]={nodeCategory:Tr.ELEMENT,semanticRole:"embedded_document_unavailable",computedName:r,syntheticKind:"embedded_container",frameContent:[o],...a?{resourceLocator:a}:{}},Bo[o]={nodeCategory:Tr.TEXT,parent:n,textContent:i,preventTextMerge:!0,syntheticKind:"embedded_unavailable_text"},[n]}function Pv(e,t){let n=e.data.trim();if(!n||n==="")return!1;if(t?.semanticRole!==void 0&&t?.semanticRole!==null){let o=typeof t.semanticRole=="number"?$i[t.semanticRole]:t.semanticRole;if(Np(o))return!1}return!0}function Bp(e){if(!yo(e))return!1;let t=e,n=t.tagName;return Rc.has(n)?!0:n===Jr||n===Zr?Bv(t):!1}function Bv(e){let t=_e(e);if(t.getComputedStyle(e).display==="none")return!0;let o=e.getBoundingClientRect();return o.width===0&&o.height===0&&!e.closest("pre")||o.right<-1e3||o.left>t.innerWidth+1e3}function qc(e){let t=e.activeElement;for(;t&&t.shadowRoot&&t.shadowRoot.activeElement;)t=t.shadowRoot.activeElement;return t}function Uv(e){let t=e.getBoundingClientRect();return{x:t.left+t.width/2,y:t.top+t.height/2}}function za(e,t,n){let o=ee(e,t),r=se(o,n);try{e.focus?.({preventScroll:!0})}catch{}if(qc(o)===e)return!0;try{let{x:a,y:i}=Uv(e),s=r.PointerEvent||PointerEvent,c=r.MouseEvent||MouseEvent;e.dispatchEvent(new s("pointerdown",{bubbles:!0,cancelable:!0,composed:!0,clientX:a,clientY:i,buttons:1,button:0,pointerType:"mouse"})),e.dispatchEvent(new c("mousedown",{bubbles:!0,cancelable:!0,composed:!0,clientX:a,clientY:i,buttons:1,button:0})),e.dispatchEvent(new c("mouseup",{bubbles:!0,cancelable:!0,composed:!0,clientX:a,clientY:i,buttons:0,button:0})),e.dispatchEvent(new s("pointerup",{bubbles:!0,cancelable:!0,composed:!0,clientX:a,clientY:i,buttons:0,button:0,pointerType:"mouse"})),(e.isContentEditable||ao(e,r)||bo(e,r)||e.getAttribute("contenteditable")==="true")&&e.dispatchEvent(new c("click",{bubbles:!0,cancelable:!0,composed:!0,clientX:a,clientY:i,button:0}))}catch{}try{e.focus?.({preventScroll:!0})}catch{}return qc(o)===e}function Zi(e,t){let n=_e(e),o=bo(e,n)?n.HTMLTextAreaElement.prototype:n.HTMLInputElement.prototype,r=Object.getOwnPropertyDescriptor(o,"value");r?.set?r.set.call(e,t):e.value=t}function ra(e,t,n="insertText"){let o=_e(e),r=o.InputEvent||(typeof InputEvent<"u"?InputEvent:null),a=o.Event||Event;try{r?e.dispatchEvent(new r("beforeinput",{bubbles:!0,cancelable:!0,composed:!0,data:String(t??""),inputType:n})):e.dispatchEvent(new a("beforeinput",{bubbles:!0,cancelable:!0,composed:!0}))}catch{try{e.dispatchEvent(new a("beforeinput",{bubbles:!0,cancelable:!0,composed:!0}))}catch{}}try{r?e.dispatchEvent(new r("input",{bubbles:!0,cancelable:!1,composed:!0,data:String(t??""),inputType:n})):e.dispatchEvent(new a("input",{bubbles:!0,cancelable:!1,composed:!0}))}catch{try{e.dispatchEvent(new a("input",{bubbles:!0,cancelable:!1,composed:!0}))}catch{}}try{e.dispatchEvent(new a("change",{bubbles:!0,cancelable:!0,composed:!0}))}catch{}}function Hv(e){let n=_e(e).KeyboardEvent||KeyboardEvent,o={key:"Enter",code:"Enter",keyCode:13,which:13,bubbles:!0,cancelable:!0,composed:!0},r=e.dispatchEvent(new n("keydown",o)),a=e.dispatchEvent(new n("keypress",o)),i=e.dispatchEvent(new n("keyup",o));return{canceled:!(r&&a&&i)}}function oa(e){if(!e)return!1;let t=_e(e);if(bo(e,t))return!e.disabled&&!e.readOnly;if(ao(e,t)){let n=(e.type||"text").toLowerCase();return(n==="text"||n==="search"||n==="email"||n==="url"||n==="tel"||n==="password"||n==="number")&&!e.disabled&&!e.readOnly}return!1}function Ku(e){let t=_e(e);if(!e||!Pt(e,t))return!1;if(e.isContentEditable)return!0;let n=e.getAttribute("contenteditable");return!!(n&&n!=="false"||e.getAttribute("role")==="textbox"&&!("value"in e))}function Fv(e,t){let n=e.getRootNode();return Kn(n)?n:ee(e)??t}function zv(e,t){let n=[];for(let o of t.split(/\s+/).filter(Boolean)){let r=e.getElementById?.(o)||e.querySelector?.(`#${CSS.escape(o)}`),a=_e(r);Pt(r,a)&&n.push(r)}return n}function zp(e,t){if(!e)return{kind:"none",el:null,via:"no-root"};if(oa(e))return{kind:"input",el:e,via:"self-input"};if(Ku(e))return{kind:"contenteditable",el:e,via:"self-contenteditable"};let n=ee(e)??t,o=se(n),r=Fv(e,n);if(Fm(e,o)){let c=e.control;if(oa(c))return{kind:"input",el:c,via:"label.control"};let d=e.htmlFor;if(d){let f=r.getElementById?.(d)||r.querySelector?.(`#${CSS.escape(d)}`);if(oa(f))return{kind:"input",el:f,via:"label.for"}}}let a=e.getAttribute("aria-controls")||e.getAttribute("aria-owns");if(a)for(let c of zv(r,a)){if(oa(c))return{kind:"input",el:c,via:"aria-controls/owns"};if(Ku(c))return{kind:"contenteditable",el:c,via:"aria-controls/owns"};let d=c.querySelector?.("input,textarea");if(oa(d))return{kind:"input",el:d,via:"aria-controls->desc"}}let i=e.querySelector?.("input,textarea");if(oa(i))return{kind:"input",el:i,via:"descendant"};let s=e.shadowRoot||null;if(s){let c=s.querySelector?.("input,textarea");if(oa(c))return{kind:"input",el:c,via:"open-shadow-input"};let d=s.querySelector?.('[contenteditable="true"],[contenteditable=""],[role="textbox"]');if(Ku(d))return{kind:"contenteditable",el:d,via:"open-shadow-contenteditable"}}return e.getAttribute("role")==="textbox"&&!("value"in e)?{kind:"contenteditable",el:e,via:"role=textbox"}:{kind:"none",el:null,via:"not-found"}}function Fa(e,t,n,o=!1){let r=ee(e,t),i=se(r,n).getSelection?.();if(!i)return!1;try{let s=r.createRange();return s.selectNodeContents(e),o&&s.collapse(!1),i.removeAllRanges(),i.addRange(s),!0}catch{return!1}}function aa(e){return(e.textContent??"").replace(/\u00A0/g," ").trim()}var jc=e=>String(e??"").replace(/\s+/g," ").trim(),jp=new MessageChannel,qp=[];jp.port1.onmessage=()=>{let e=qp.shift();e&&e()};function Up(){return new Promise(e=>{qp.push(e),jp.port2.postMessage(0)})}async function Hp(e,t,n){await Promise.resolve();let o=Math.max(0,Math.min(4,Number(n)||0));for(let r=0;r<o;r++)e.hidden?await Up():await new Promise(a=>{try{t.requestAnimationFrame(()=>a())}catch{Up().then(a)}})}function jv(e){let t=String(e??"");return t===" "?{code:"Space",which:32}:/^[a-z]$/i.test(t)?{code:`Key${t.toUpperCase()}`,which:t.toUpperCase().charCodeAt(0)}:/^[0-9]$/.test(t)?{code:`Digit${t}`,which:t.charCodeAt(0)}:{code:"",which:t.length===1?t.charCodeAt(0):0}}function Fp(e,t,n,o){let r=ee(e,t),i=se(r,n).KeyboardEvent||KeyboardEvent,s=String(o??"");for(let c of s){let{code:d,which:f}=jv(c),u={key:c,code:d,bubbles:!0,cancelable:!0,composed:!0,keyCode:f,which:f};e.dispatchEvent(new i("keydown",u)),e.dispatchEvent(new i("keypress",u)),e.dispatchEvent(new i("keyup",u))}}async function Wp(e,t,n,o,r){let a=String(o??"");if(e.disabled||e.readOnly)return{success:!1,method:"type-native-setter",details:"disabled_or_readonly",allowFallback:!0};let i=String(e.value??""),s=ee(e,t),c=se(s,n),d=za(e,s,c),f=Number.isFinite(Number(r?.settleFrames))?Math.max(0,Math.min(4,Number(r?.settleFrames))):s.hidden?1:2,u=!!r?.useKeyFallback,b=Number.isFinite(Number(r?.keyFallbackMaxLen))?Number(r?.keyFallbackMaxLen):140,p=u&&a.length>0&&a.length<=b;Zi(e,a),ra(e,a,"insertReplacementText"),p&&Fp(e,s,c,a),await Hp(s,c,f);let g=String(e.value??""),y=jc(i),E=jc(g),R=jc(a),O=y===R,M=E===R,H=g!==i,N=a.length>0&&!O&&g===i,Y=1;if(!O&&!M&&!H){Y=2;try{e.focus?.({preventScroll:!0}),e.select?.()}catch{}let ve=!1;try{s.execCommand?.("selectAll",!1,void 0),ve=!!s.execCommand?.("insertText",!1,a)}catch{ve=!1}if(!ve)try{Zi(e,a)}catch{}try{ra(e,a,"insertReplacementText")}catch{}p&&Fp(e,s,c,a),await Hp(s,c,f),g=String(e.value??"")}let re=jc(g)===R,le=g!==i;N=a.length>0&&!O&&g===i;let Me=O||re||le;return{success:Me,method:"type-native-setter",details:`focus=${d};attempts=${Y};settleFrames=${f};beforeLen=${i.length};afterLen=${g.length};changed=${le};alreadyCorrect=${O};nowCorrect=${re};reverted=${N};keyFallback=${p}`,allowFallback:Me?void 0:!0}}function qv(e,t,n){let r=_e(e).InputEvent||InputEvent,a=new r("beforeinput",{bubbles:!0,cancelable:!0,composed:!0,data:t,inputType:n});return{ok:e.dispatchEvent(a),defaultPrevented:a.defaultPrevented}}function $p(e,t,n,o){let r=ee(e,n),a=se(r,o),i=a.InputEvent||InputEvent,s=a.Event||Event,c=String(t??""),d=aa(e),f=za(e,r,a),u=Fa(e,r,a,!0),b=qv(e,c,"insertText"),p=!1,g="execCommand",y=!1,E=()=>{y=!0};try{e.addEventListener("input",E,{capture:!0})}catch{}if(b.ok&&!b.defaultPrevented)try{p=!!r.execCommand?.("insertText",!1,c)}catch{}if(!p)try{let M=a.getSelection?.(),H=M&&M.rangeCount?M.getRangeAt(0):null;if(!H||!e.contains(H.commonAncestorContainer)){Fa(e,r,a,!0);let N=a.getSelection?.();H=N&&N.rangeCount?N.getRangeAt(0):null}H&&(H.insertNode(r.createTextNode(c)),H.collapse(!1),M?.removeAllRanges(),M?.addRange(H),p=!0,g="range")}catch{}if(p&&!y){try{e.dispatchEvent(new i("input",{bubbles:!0,cancelable:!1,composed:!0,data:c,inputType:"insertText"}))}catch{try{e.dispatchEvent(new s("input",{bubbles:!0,cancelable:!1,composed:!0}))}catch{}}try{e.dispatchEvent(new s("change",{bubbles:!0,cancelable:!0,composed:!0}))}catch{}}try{e.removeEventListener("input",E,{capture:!0})}catch{}let R=aa(e);return{success:R!==d||!!c&&R.includes(c),method:`type-contenteditable-${g}`,details:`focus=${f};selectedWithin=${u};inserted=${p}`}}function Vp(e){let{canceled:t}=Hv(e);if(t)return{submitted:!1,method:"enter-handled"};let n=e.form||e.closest?.("form");return n?(n.requestSubmit?.()??n.submit?.(),{submitted:!0,method:"enter->form-submit"}):{submitted:!1,method:"enter-dispatched"}}function Gp(e,t,n){if(e.disabled||e.readOnly)return{success:!1,method:"clear-native-setter",details:"disabled_or_readonly",allowFallback:!0};let o=ee(e,t),r=se(o,n),a=String(e.value??""),i=za(e,o,r);Zi(e,""),ra(e,"","deleteByCut");let s=String(e.value??""),c=s!==a;return{success:c||s.length===0,method:"clear-native-setter",details:`focus=${i};beforeLen=${a.length};afterLen=${s.length};changed=${c}`}}function Kp(e,t,n){let o=ee(e,t),r=se(o,n),a=aa(e),i=za(e,o,r),s=Fa(e,o,r,!1),c=!1,d="execCommand";try{c=!!o.execCommand?.("delete",!1,void 0)}catch{c=!1}if(!c)try{let p=r.getSelection?.(),g=p&&p.rangeCount?p.getRangeAt(0):null;(!g||!e.contains(g.commonAncestorContainer))&&Fa(e,o,r,!1);let y=r.getSelection?.(),E=y&&y.rangeCount?y.getRangeAt(0):null;E&&(E.deleteContents(),E.collapse(!1),y?.removeAllRanges(),y?.addRange(E),c=!0,d="range")}catch{}if(!c)try{e.textContent="",c=!0,d="textContent"}catch{}ra(e,"","deleteByCut");let f=aa(e),u=f!==a;return{success:c||u||f.length===0,method:`clear-contenteditable-${d}`,details:`focus=${i};selectedWithin=${s};cleared=${c};changed=${u}`}}function Xp(e,t){if(e===t||e.contains(t))return!0;let n=t;for(;n;){let o=n.getRootNode?.();if(Kn(o)){let r=o.host;if(r===e||e.contains(r))return!0;n=r;continue}n=n.parentNode||null}return!1}var Wc;(function(e){e.FLASH_LITE="Gemini Flash Lite",e.FLASH="Gemini Flash",e.PRO="Gemini Pro"})(Wc||(Wc={}));var Yp;(function(e){e[e.NativeHostConnected=0]="NativeHostConnected",e[e.NativeHostDisconnected=1]="NativeHostDisconnected"})(Yp||(Yp={}));var Wv=["image/png","image/jpeg","image/webp"],$v=["application/pdf","text/plain"],Z0=[...Wv,...$v];var qt;(function(e){e.ACT="act_on_tab",e.CRAWL="crawl_and_extract_from_tab",e.EXTRACT="extract_from_tab",e.SHEETS_WORKFLOW="sheets_workflow",e.INFER_SHEET_DATA="infer_sheet_data",e.GRAPHBOT="graph_bot",e.PDF_FILLER="pdf_filler",e.CUSTOM_TOOL_GENERATOR="custom_tool_generator",e.WEBPAGE_GENERATOR="webpage_generator",e.GOOGLE_DOC_GENERATOR="google_doc_generator",e.GOOGLE_SLIDES_GENERATOR="google_slides_generator",e.PROCESS_TEXT="process_text",e.CREATE_SHEET_FROM_DATA="create_sheet_from_data",e.ROVER_EXTERNAL_READ_CONTEXT="rover_external_read_context",e.ROVER_EXTERNAL_ACT_CONTEXT="rover_external_act_context",e.CONFIGURE_API_KEY="configure_api_key",e.TASK_COMPLETE="task_complete",e.ASK_USER="ask_user",e.EXECUTE_MULTIPLE_TOOLS="execute_multiple_tools",e.QUERY_RTRVR_AI_DOCUMENTATION="query_rtrvr_ai_documentation"})(qt||(qt={}));var Bt;(function(e){e.PLANNER="Planner",e.AGENTIC_SEEK="Agentic Action",e.CRAWL_PAGES="Crawl Pages",e.EXTRACT_PAGE="Extract Page",e.SHEETS_WORKFLOW="Sheets Workflow",e.INFER_SHEET_DATA="Infer Sheet Data",e.MULTI_STEPS="Multi Steps",e.PDF_FILLER="PDF Filler",e.CUSTOM_TOOL_GENERATOR="Custom Tool Generator",e.WEBPAGE_GENERATOR="WebPage Generator",e.GOOGLE_DOC_GENERATOR="Google Doc Generator",e.GOOGLE_SLIDES_GENERATOR="Google Slides Generator",e.PROCESS_TEXT="Process Text",e.CREATE_SHEET_FROM_DATA="Create Sheet From Data",e.ROVER_EXTERNAL_READ_CONTEXT="Rover External Read Context",e.ROVER_EXTERNAL_ACT_CONTEXT="Rover External Act Context",e.EXECUTE_MULTIPLE_TOOLS="Execute Multiple User Tools",e.CONFIGURE_API_KEY="Configure Gemini API Key",e.QUERY_RTRVR_AI_DOCUMENTATION="query_rtrvr_ai_documentation"})(Bt||(Bt={}));var eR={[qt.ACT]:Bt.AGENTIC_SEEK,[qt.CRAWL]:Bt.CRAWL_PAGES,[qt.EXTRACT]:Bt.EXTRACT_PAGE,[qt.SHEETS_WORKFLOW]:Bt.SHEETS_WORKFLOW,[qt.INFER_SHEET_DATA]:Bt.INFER_SHEET_DATA,[qt.PDF_FILLER]:Bt.PDF_FILLER,[qt.CUSTOM_TOOL_GENERATOR]:Bt.CUSTOM_TOOL_GENERATOR,[qt.WEBPAGE_GENERATOR]:Bt.WEBPAGE_GENERATOR,[qt.GOOGLE_DOC_GENERATOR]:Bt.GOOGLE_DOC_GENERATOR,[qt.GOOGLE_SLIDES_GENERATOR]:Bt.GOOGLE_SLIDES_GENERATOR,[qt.PROCESS_TEXT]:Bt.PROCESS_TEXT,[qt.CREATE_SHEET_FROM_DATA]:Bt.CREATE_SHEET_FROM_DATA,[qt.ROVER_EXTERNAL_READ_CONTEXT]:Bt.ROVER_EXTERNAL_READ_CONTEXT,[qt.ROVER_EXTERNAL_ACT_CONTEXT]:Bt.ROVER_EXTERNAL_ACT_CONTEXT,[qt.EXECUTE_MULTIPLE_TOOLS]:Bt.EXECUTE_MULTIPLE_TOOLS,[qt.CONFIGURE_API_KEY]:Bt.CONFIGURE_API_KEY,[qt.QUERY_RTRVR_AI_DOCUMENTATION]:Bt.QUERY_RTRVR_AI_DOCUMENTATION};var Xu=200;var Vv=30,Gv=320,Kv=0,Xv=50,Yv=1,tR=Wc.FLASH;var nR=Bt.PLANNER;var Yu="application/pdf",Qu="application/gsheet";var oR=20*1024*1024;var ja={maxParallelTabs:4,pageLoadDelay:2e3,disableAutoScroll:!1,makeNewTabsActive:!1,writeRowProcessingTime:!1,totalBudgetMs:25e3,pageDataTimeoutMs:22e3,adaptiveSettleDebounceMs:Vv,adaptiveSettleMaxWaitMs:Gv,adaptiveSettleRetries:Kv,sparseTreeRetryDelayMs:Xv,sparseTreeRetryMaxAttempts:Yv,pdfTextSelectionTimeoutMs:12e3,onlyTextContent:!1};var Qv=1,Jv=9,Zv=11,Zu="application/gdoc",qa="text/html",$c="text/plain";function ew(e){return!!e&&typeof e=="object"&&e.nodeType===Jv}function Qp(e){return!!e&&typeof e=="object"&&e.nodeType===Qv}function tw(e){return!!e&&typeof e=="object"&&e.nodeType===Zv&&typeof e.host=="object"&&typeof e.mode=="string"}function Jp(e){return Qp(e)&&String(e.tagName).toUpperCase()==="IFRAME"}function Ju(e){let t;if(typeof e=="number")t=e;else if(typeof e=="bigint")t=Number(e);else if(typeof e=="string")t=Number(e.trim());else return null;if(!Number.isFinite(t))return null;let n=Math.trunc(t);return n<=0?null:n}function nw(e){try{let t=e.shadowRoot;return t||globalThis?.chrome?.dom?.openOrClosedShadowRoot?.(e)||null}catch{return null}}function ow(e,t,n={}){let o=n.traverseShadow!==!1,r=n.traverseIframes!==!1,a=n.requireOwnerDocument,i=[e],s=new WeakSet;for(;i.length;){let c=i.pop();if(c&&typeof c=="object"){if(s.has(c))continue;s.add(c)}if(ew(c)){let u=c.documentElement||c.body;u&&i.push(u);continue}if(tw(c)){let u=c.children;if(u&&u.length)for(let b=u.length-1;b>=0;b--)i.push(u[b]);continue}if(!Qp(c))continue;let d=c;if(a&&d.ownerDocument!==a)continue;let f=d.getAttribute?.(hn);if(f&&Gi(f)===t)return d;if(o)try{let u=nw(d);u&&i.push(u)}catch{}if(r&&Jp(d))try{let u=Hi(d);u&&i.push(u)}catch{}for(let u=d.lastElementChild;u;u=u.previousElementSibling)i.push(u)}return null}function vo(e,t,n={}){let o=Ju(t);if(!o)return null;let r=Xi(o);return r&&(!n.requireOwnerDocument||r.ownerDocument===n.requireOwnerDocument)?r:ow(e,o,{requireOwnerDocument:n.requireOwnerDocument,traverseShadow:n.traverseShadow,traverseIframes:n.traverseIframes})}function ed(e=document){return e.querySelector('embed[type="application/pdf"], embed[type="application/x-google-chrome-pdf"]')}function Zp(e){if(e==null)return[];if(Array.isArray(e)){let t=[];for(let n of e){let o=Ju(n);o&&t.push(o)}return t}if(typeof e=="number"||typeof e=="bigint"){let t=Ju(e);return t?[t]:[]}if(typeof e=="string"){let t=e.match(/\d+/g);return t?t.map(o=>parseInt(o,10)).filter(o=>Number.isFinite(o)&&o>0):[]}if(typeof e=="object"){let t=e.path??e.ids??e.iframe_path;if(t!==void 0)return Zp(t)}return[]}function Wa(e,t){let n=Zp(t),o=e.defaultView||window;if(!n.length)return{doc:e,win:o,iframePath:n,resolvedPath:[],unresolvedPath:[]};let r=e,a=[];for(let i=0;i<n.length;i++){let s=n[i],c=n.length===1,d=vo(r,s,{requireOwnerDocument:c?void 0:r,traverseShadow:!0,traverseIframes:c});if(!d||!Jp(d))return{doc:r,win:r.defaultView||o,iframePath:n,resolvedPath:a,unresolvedPath:n.slice(i)};let f=null;try{f=Hi(d)||null}catch{f=null}if(!f)return{doc:r,win:r.defaultView||o,iframePath:n,resolvedPath:a,unresolvedPath:n.slice(i)};a.push(s),r=f}return{doc:r,win:r.defaultView||o,iframePath:n,resolvedPath:a,unresolvedPath:[]}}function eh(e){return e==="application/pdf"||e==="application/x-pdf"||e==="application/x-google-chrome-pdf"}function rw(e){let t={...ja,...e??{}},n=Number(e?.pdfTextSelectionTimeoutMs);return Number.isFinite(n)&&(t.pdfTextSelectionTimeoutMs=Math.floor(n)),t.totalBudgetMs!==void 0&&(t.totalBudgetMs=Math.max(1500,Math.floor(t.totalBudgetMs))),t.pageDataTimeoutMs!==void 0&&(t.pageDataTimeoutMs=Math.max(500,Math.floor(t.pageDataTimeoutMs))),t.pdfTextSelectionTimeoutMs!==void 0&&(t.pdfTextSelectionTimeoutMs=Math.max(150,Math.floor(t.pdfTextSelectionTimeoutMs))),t.adaptiveSettleDebounceMs!==void 0&&(t.adaptiveSettleDebounceMs=Math.max(20,Math.min(500,Math.floor(t.adaptiveSettleDebounceMs)))),t.adaptiveSettleMaxWaitMs!==void 0&&(t.adaptiveSettleMaxWaitMs=Math.max(120,Math.min(5e3,Math.floor(t.adaptiveSettleMaxWaitMs)))),t.adaptiveSettleRetries!==void 0&&(t.adaptiveSettleRetries=Math.max(0,Math.min(6,Math.floor(t.adaptiveSettleRetries)))),t.sparseTreeRetryDelayMs!==void 0&&(t.sparseTreeRetryDelayMs=Math.max(40,Math.min(1e3,Math.floor(t.sparseTreeRetryDelayMs)))),t.sparseTreeRetryMaxAttempts!==void 0&&(t.sparseTreeRetryMaxAttempts=Math.max(0,Math.min(4,Math.floor(t.sparseTreeRetryMaxAttempts)))),t}var aw=["disableAutoScroll","onlyTextContent","totalBudgetMs","pageDataTimeoutMs","pdfTextSelectionTimeoutMs","adaptiveSettleDebounceMs","adaptiveSettleMaxWaitMs","adaptiveSettleRetries","sparseTreeRetryDelayMs","sparseTreeRetryMaxAttempts"];function Vc(e){if(!e||typeof e!="object")return;let t=e,n={};typeof t.disableAutoScroll=="boolean"&&(n.disableAutoScroll=t.disableAutoScroll),typeof t.onlyTextContent=="boolean"&&(n.onlyTextContent=t.onlyTextContent);let o=["totalBudgetMs","pageDataTimeoutMs","pdfTextSelectionTimeoutMs","adaptiveSettleDebounceMs","adaptiveSettleMaxWaitMs","adaptiveSettleRetries","sparseTreeRetryDelayMs","sparseTreeRetryMaxAttempts"];for(let i of o){let s=Number(t[i]);Number.isFinite(s)&&(n[i]=Math.trunc(s))}if(!Object.keys(n).length)return;let r=rw(n),a={};for(let i of aw)n[i]!==void 0&&r[i]!==void 0&&(a[i]=r[i]);return Object.keys(a).length?a:void 0}function iw(){return Date.now()}function Ut(e){return!e||!Number.isFinite(e)?Number.POSITIVE_INFINITY:Math.max(0,e-iw())}async function th(e,t,n){if(!Number.isFinite(e)||e<=0)return;let o=Ut(n);o<=0||o<e+40||await Wt(e,t)}async function $a(e,t,n){let o=Math.max(0,Math.floor(t));return o?await Promise.race([e.then(a=>({ok:!0,value:a})),(async()=>(await Wt(o,n),{ok:!1,reason:"timeout"}))()]):{ok:!1,reason:"timeout"}}var Wt=(()=>{let e=new MessageChannel,t=[];e.port1.onmessage=()=>{let o=t.shift();o&&o()};let n=()=>new Promise(o=>{t.push(o),e.port2.postMessage(0)});return async(o,r)=>{let a=Number(o);if(!Number.isFinite(a)||a<=0)return;if(!r.hidden){let s=r.defaultView||window,c=s.setTimeout?s.setTimeout.bind(s):setTimeout;await new Promise(d=>c(d,a));return}let i=Date.now();for(;Date.now()-i<a;)await n()}})();var sw=3e4;function nh(e){return(String(e??"").replace(/\\/g,"/").split("/").pop()||"upload").replace(/[\u0000-\u001f\u007f]/g,"").trim()||"upload"}var td=class extends Error{constructor(n,o){super(n);P(this,"url");P(this,"status");P(this,"statusText");P(this,"bodySnippet");this.name="FetchFileError",this.url=o.url,this.status=o.status,this.statusText=o.statusText,this.bodySnippet=o.bodySnippet}};function cw(e){return e&&e.split(";")[0].trim()||"application/octet-stream"}function lw(e){if(!e)return;let t=/filename\*\s*=\s*UTF-8''([^;]+)/i.exec(e);if(t?.[1])try{return decodeURIComponent(t[1].trim().replace(/^\"(.*)\"$/,"$1"))}catch{}let n=/filename\s*=\s*(\"?)([^\";]+)\1/i.exec(e);if(n?.[2])return n[2].trim()}function nd(e,t){try{let o=(t??window).URL||URL,a=new o(e).pathname.match(/\/o\/(.+?)(\?|$)/);if(a?.[1]){let s=decodeURIComponent(a[1]).split("/");return s[s.length-1].replace(/^\d+-/,"")}}catch{}}function oh(e){let t=atob(e),n=new Uint8Array(t.length);for(let o=0;o<t.length;o++)n[o]=t.charCodeAt(o);return n}async function uw(e,t={},n,o=fetch){let r=new AbortController,a=sw,i=!1,s=()=>{};if(n){let d=!1;s=()=>{d=!0},(async()=>{try{if(await Wt(a,n),d)return;i=!0,r.abort()}catch{}})().catch(()=>{})}else{let d=setTimeout(()=>{i=!0,r.abort()},a);s=()=>clearTimeout(d)}let c=new Headers(t.headers);c.has("Accept")||c.set("Accept","*/*");try{let d=await o(e,{method:"GET",redirect:t.redirect??"follow",cache:t.cache??"no-store",mode:t.mode??"cors",credentials:t.credentials??"include",...t,headers:c,signal:r.signal});if(!d.ok){let p=await d.text().catch(()=>"");throw new td(`Fetch failed (${d.status})`,{url:e,status:d.status,statusText:d.statusText,bodySnippet:p.slice(0,256)})}let f=await d.arrayBuffer(),u=cw(d.headers.get("content-type")),b=lw(d.headers.get("content-disposition"))||nd(e);return{bytes:f,mimeType:u,fileName:b}}finally{s()}}async function rh(e,t,n){return await uw(t,{referrer:n??void 0,referrerPolicy:"strict-origin-when-cross-origin"})}var Tt={plannerHistory:16,prevSteps:8,uiMessages:40,timelineEvents:60,localPersistBytes:131072,snapshotBytes:262144};var ah={activation:"on_demand",idleCloseMs:3e4,fallbackPollMinMs:2e3,fallbackPollMaxMs:15e3,maxInflightCommands:1};var _t;(function(e){e.UP="UP",e.DOWN="DOWN",e.LEFT="LEFT",e.RIGHT="RIGHT",e.TOP="TOP",e.BOTTOM="BOTTOM"})(_t||(_t={}));var sn;(function(e){e.START="START",e.CENTER="CENTER",e.END="END",e.NEAREST="NEAREST"})(sn||(sn={}));function sh(e){if(!e)return sn.CENTER;let t=typeof e=="string"?e.toUpperCase():String(e).toUpperCase();return sn&&t in sn?sn[t]:sn.CENTER}function od(e){return globalThis.CSS&&typeof globalThis.CSS.escape=="function"?globalThis.CSS.escape(e):e.replace(/([ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~])/g,"\\$1")}function Va(e,t){if(!e)return"";let n=ee(e,t);if(e===n.documentElement)return"html";if(e===n.body)return"body";if(e.id)return`#${od(e.id)}`;let o=[],r=e;for(;r&&r!==n.body&&r!==n.documentElement;){let a=r.tagName.toLowerCase();if(r.id){a+=`#${od(r.id)}`,o.unshift(a);break}let s=(r.classList&&r.classList.length?Array.from(r.classList):(r.className||"").toString().split(/\s+/).filter(Boolean)).filter(c=>c&&c.length<=48).sort((c,d)=>c.length-d.length).slice(0,3).map(od);if(s.length)a+="."+s.join(".");else{let c=r.parentElement;if(c){let d=Array.from(c.children).filter(f=>f.tagName===r.tagName);if(d.length>1){let f=d.indexOf(r)+1;a+=`:nth-of-type(${f})`}}}o.unshift(a),r=r.parentElement}return o.join(" > ")}function ia(e){return e.scrollingElement||e.documentElement||e.body}function Gc(e,t,n,o,r){let a=ee(e,t),i=se(a,n),s=ia(a),c=e===a.documentElement||e===a.body||e===s,d=c?s:e,f=c?i.innerHeight:d.clientHeight,u=c?i.innerWidth:d.clientWidth,b=r??f*.8;switch(o){case _t.DOWN:{d.scrollTop+=b;break}case _t.UP:{d.scrollTop=Math.max(0,d.scrollTop-b);break}case _t.LEFT:return d.scrollLeft=Math.max(0,d.scrollLeft-(r??u*.8)),{success:!0,scrollLeft:d.scrollLeft};case _t.RIGHT:return d.scrollLeft+=r??u*.8,{success:!0,scrollLeft:d.scrollLeft};default:return{success:!1,error:`Unsupported scroll direction: ${String(o)}`}}let p=d.scrollHeight,g=c?i.innerHeight:d.clientHeight,y=p-g;return{success:!0,scrollTop:d.scrollTop,isAtTop:d.scrollTop<=5,isAtBottom:d.scrollTop>=y-5}}function dw(e,t,n){let o=ee(e,t),r=se(o,n),a=ia(o),i=e;for(;i&&i!==o.body&&i!==o.documentElement;){let c=r.getComputedStyle(i).overflowY;if((c==="auto"||c==="scroll"||c==="overlay")&&i.scrollHeight>i.clientHeight+5)return i;i=i.parentElement}return a}function ih(e,t,n){let o=ee(e,t),r=se(o,n),a=ia(o),i=e===o.documentElement||e===o.body||e===a,s=i?a:e,c=s.scrollHeight,d=i?r.innerHeight:s.clientHeight,f=c-d;return s.scrollTop>=f-5}function rd(e,t,n,o){let r=ee(e,t),a=se(r,n),i=ia(r),s=dw(e,r,a),c=s===r.documentElement||s===r.body||s===i,d=c?i:s,f=e.getBoundingClientRect(),u=c?new(a.DOMRect||DOMRect)(0,0,a.innerWidth,a.innerHeight):s.getBoundingClientRect(),b=c?a.innerHeight:s.clientHeight,p=24,g=f.top-u.top,y=d.scrollTop+g,E;switch(o){case sn.START:E=y-p;break;case sn.END:E=y+f.height-b+p;break;case sn.NEAREST:{if(f.top>=u.top&&f.bottom<=u.bottom)return{success:!0,scrollTop:d.scrollTop,isAtTop:d.scrollTop<=5,isAtBottom:ih(d,r,a)};f.top<u.top?E=y-p:E=y+f.height-b+p;break}case sn.CENTER:default:E=y-b/2+f.height/2;break}let R=d.scrollHeight-b;return d.scrollTop=Math.max(0,Math.min(E,R)),{success:!0,scrollTop:d.scrollTop,isAtTop:d.scrollTop<=5,isAtBottom:ih(d,r,a)}}function ch(e){let t=Number(e);if(!Number.isFinite(t))return null;let n=Math.trunc(t);return n>0?n:null}function lh(e){let t=[];for(let n of hc){let o=e?.[n];if(o==null)continue;if(Array.isArray(o)){for(let a of o){let i=ch(a);i!=null&&t.push(i)}continue}let r=ch(o);r!=null&&t.push(r)}return Array.from(new Set(t))}function fw(e){return lh(e).length>0}function mw(e){let t=lh(e);return t.length?t[0]:null}var pw=new Set([z.click_element,z.type_into_element,z.type_and_enter,z.hover_element,z.right_click_element,z.double_click_element,z.press_key,z.scroll_page,z.scroll_to_element,z.mouse_wheel,z.drag_element,z.drag_and_drop,z.swipe_element,z.long_press_element,z.adjust_slider,z.select_dropdown_value,z.clear_element,z.focus_element,z.check_field_validity,z.select_text,z.copy_text,z.paste_text,z.pinch_zoom,z.upload_file,z.dispatch_pointer_path]);(()=>{let e="__RTRVR_ACTION_EXECUTOR__";if(window[e])return;window[e]=!0;try{document.documentElement?.setAttribute(Nu,"1")}catch{}let n="__RTRVR_INTERNAL__";try{window.__RTRVR_INTERNAL_KEY__=window.__RTRVR_INTERNAL_KEY__||n}catch{}let o=window.__RTRVR_INTERNAL_KEY__||n,r=window[o],a=r&&typeof r=="object"?r:{};if(!r)try{Object.defineProperty(window,o,{value:a,writable:!1,configurable:!1,enumerable:!1})}catch{window[o]=a}async function i(m){let T={};try{let _=Om[m.opcode];if(!_)throw new Error(`Unknown tool opcode: ${m.opcode}`);let I={...m.call,name:_};T=(await y({tabIndex:m.tabIndex,call:I,elementData:g(m.elementData),payload:m.payload}))[0]?.response??{success:!1,error:"Empty tool response",allowFallback:!0}}catch(_){T={success:!1,error:_?.message||String(_),allowFallback:!0}}return T}try{Object.defineProperty(a,"actions",{value:Object.freeze({execute:i}),writable:!1,configurable:!1,enumerable:!1})}catch{}let s="__RTRVR_UPLOAD_BYTES_REQ__",c="__RTRVR_UPLOAD_BYTES_RES__",d="__RTRVR_UPLOAD_BYTES_BRIDGE__",f="__RTRVR_WINDOW_MESSAGE_MUX__";function u(m){let T=m,_=T[f];if(!_||typeof _!="object"){_={handlers:new Set,installed:!1};try{Object.defineProperty(T,f,{value:_,enumerable:!1,configurable:!1})}catch{T[f]=_}}if(!_.installed){_.installed=!0,m.addEventListener("message",I=>{if(I.source===m)for(let v of Array.from(_.handlers))try{v(I)}catch{}},!0);try{m.addEventListener("pagehide",()=>{let v=m[d]?.pending;if(v)for(let[k,x]of v){try{x.cancelTimeout()}catch{}x.reject(new Error("pagehide: upload bytes request canceled")),v.delete(k)}},!0)}catch{}}return _}function b(m){let T=m,_=T[d];if(!_||typeof _!="object"){_={pending:new Map};try{Object.defineProperty(T,d,{value:_,enumerable:!1,configurable:!1})}catch{T[d]=_}u(m).handlers.add(v=>{let k=v?.data;if(!k||typeof k!="object"||k.type!==c)return;let x=String(k.requestId||"");if(!x)return;let S=_.pending.get(x);if(!S)return;_.pending.delete(x);try{S.cancelTimeout()}catch{}if(!k.ok){S.reject(new Error(k.error||"Failed to get bytes"));return}let j=k.bytes;if(!(j instanceof ArrayBuffer)){S.reject(new Error("Invalid bytes payload (expected ArrayBuffer)"));return}if(typeof S.expectedByteLength=="number"&&j.byteLength!==S.expectedByteLength){S.reject(new Error(`Byte length mismatch: got=${j.byteLength}, expected=${S.expectedByteLength}`));return}S.resolve(j)})}return _}function p(m,T,_,I=9e4){let v=m.__ROVER_UPLOAD_BYTES__||m.rover?.uploadBytes||m.rtrvr?.uploadBytes;if(typeof v=="function")return Promise.resolve().then(()=>v({token:T,byteLength:_,timeoutMs:I})).then(F=>{if(F instanceof ArrayBuffer)return F;if(F&&F.buffer instanceof ArrayBuffer)return F.buffer;throw new Error("Upload bytes provider returned invalid buffer")});let k=b(m),x=globalThis.crypto?.randomUUID?.()??`${Date.now()}-${Math.random().toString(16).slice(2)}`,S=Math.max(1e3,Math.min(Number(I)||9e4,18e4)),j=Tc(m)||document;return new Promise((F,q)=>{let $=!1,G=!1,oe=()=>{G=!0};(async()=>{await Wt(S,j),!(G||$)&&(k.pending.delete(x),$=!0,q(new Error("Timed out waiting for upload bytes")))})().catch(()=>{}),k.pending.set(x,{cancelTimeout:oe,expectedByteLength:_,resolve:fe=>{$||($=!0,oe(),F(fe))},reject:fe=>{$||($=!0,oe(),q(fe))}}),m.postMessage({type:s,requestId:x,token:T,byteLength:_},"*")})}function g(m){if(m)return{frameworks:m.frameworks?m.frameworks.map(T=>Dm[T]).filter(T=>T&&T!=="unknown"):[],listenersRaw:m.listenersRaw??"",role:m.role??void 0,pattern:m.pattern??void 0,value:m.value??void 0}}async function y({tabIndex:m,call:T,elementData:_,payload:I}){let v=(()=>{try{return Oo()?.top?.document||document}catch{return document}})(),k=T.args,x=fw(k),S,j,F=[],q=[],$=[];try{({doc:S,win:j,iframePath:F,resolvedPath:q,unresolvedPath:$}=Wa(v,k.iframe_id))}catch{if(k.iframe_id!=null){let me=`Cannot access iframe ${k.iframe_id} (cross-origin or not found)`;return[{name:T.name,args:T.args,response:{success:!1,error:me,allowFallback:!1,output:{success:!1,error:{code:"IFRAME_CONTEXT_UNAVAILABLE",message:me,retryable:!1},iframe_context:{requested_iframe_id:k.iframe_id}}}}]}S=document,j=se(S)}if(k.iframe_id!=null&&$.length>0&&!x){let ye=`iframe_id unresolved: remaining=${$.join(">")||"(none)"} (cross-origin, not-ready, or not found)`;return[{name:T.name,args:T.args,response:{success:!1,error:ye,allowFallback:!1,details:`requested=${F.join(">")||"(none)"} resolved=${q.join(">")||"(none)"}`,output:{success:!1,error:{code:"IFRAME_CONTEXT_UNAVAILABLE",message:ye,retryable:!1},iframe_context:{requested_iframe_id:k.iframe_id,requested_path:F,resolved_path:q,unresolved_path:$}}}}]}let G=T.name,oe=mw(k),fe=oe?vo(S,oe):null,De=fe?.ownerDocument??null,ue;if(!pw.has(G))ue={success:!1,error:`Tool not promotable to main: ${G}`,allowFallback:!0};else{let me=De??S,ye=se(me,j);ue=await R(G,fe,k,_,me,ye,I)}return[{name:T.name,args:T.args,response:ue}]}async function E(m,T,_){try{let I=m.__RTRVR_INTERNAL_KEY__||"__RTRVR_INTERNAL__",k=m[I]?.scroll?.execute;if(typeof k!="function")throw new Error("main-world scroll detector not available");let x=_?.doc||Tc(m)||document,S=Math.max(250,Math.min(Number(_?.timeoutMs??3500),8e3)),j=await $a(Promise.resolve().then(()=>k(T)),S,x);if(!j.ok)throw new Error("scroll detector timeout");return j.value}catch(I){throw new Error(I?.message||"main-world scroll detector not available")}}async function R(m,T,_,I,v,k,x){let S=G=>({success:G.success,error:G.success?void 0:G.details||"Action failed",allowFallback:G.success?void 0:G.allowFallback??!0}),j=m===z.press_key||m===z.scroll_page||m===z.drag_and_drop||m===z.pinch_zoom;if(!T&&!j)return S({success:!1,method:"missing-element-race",details:"Target element missing",allowFallback:!0});let F=new Set([z.type_into_element,z.type_and_enter,z.clear_element,z.focus_element,z.select_text,z.check_field_validity]),q=T,$=ee(q,v);if(q&&F.has(m)){let G=zp(q,$);(G.kind==="input"||G.kind==="contenteditable")&&(q=G.el)}try{switch(m){case z.click_element:return S(N(T,v,k,I));case z.double_click_element:return S(oo(T,v,k));case z.right_click_element:return S(un(T,v,k));case z.hover_element:return S(await ft(T,v,k,I,_.duration));case z.type_into_element:return S(await St(q,v,k,_.text,I));case z.type_and_enter:return S(await Rn(q,v,k,_.text,I));case z.clear_element:return S(await Ee(q,v,k,I));case z.focus_element:return S(Gt(q,v,k));case z.select_dropdown_value:return S(ut(T,v,k,_.value,I));case z.adjust_slider:return S(jt(T,v,k,I?.value??_.value,I));case z.check_field_validity:return S(Rt(q,v,k));case z.select_text:return S(eo(q,v,k,_.start_offset,_.end_offset));case z.scroll_page:return S(await Yo(T,v,k,_));case z.scroll_to_element:return S(await Yt(T,v,k,_));case z.mouse_wheel:return S(Qt(T,v,k,_.delta_x,_.delta_y));case z.drag_element:return S(await Ue(T,v,k,_,I));case z.drag_and_drop:return S(await Jt(_,T,v,k));case z.swipe_element:return S(await no(T,v,k,_));case z.long_press_element:return S(await Zt(T,v,k,_.duration));case z.pinch_zoom:return S(await vn(T,v,k,_));case z.press_key:return S(tt(_.key,_.modifiers,T,v,k));case z.copy_text:return S(await Kt(T,v,k));case z.paste_text:return S(await en(T,v,k,I));case z.upload_file:return S(await jn(_,v,k,x,T,I));case z.dispatch_pointer_path:return S(await tn(_,v,k));default:return S({success:!1,method:"unhandled",details:`Unhandled ${m}`,allowFallback:!0})}}catch(G){return S({success:!1,method:"exception",details:G?.message||"exception",allowFallback:!0})}}function O(m){let T=new Map;if(!m)return T;let _=m.trim();if(!_)return T;let I=Yr(_);if(I){for(let{id:v,mask:k}of I.entries){let x=Zo[v];if(!x)continue;let S=new Set(bc(k)),j=T.get(x);if(j)for(let F of S)j.add(F);else T.set(x,S)}return T}return T}function M(m,...T){return m?T.some(_=>m.has(_)):!1}function H(m,T){let _=O(T?.listenersRaw),I=new Set;for(let[,F]of _)for(let q of F)(q==="react"||q==="vue"||q==="angular"||q==="svelte"||q==="jquery")&&I.add(q);let v=new Set;for(let[F,q]of _)if(["click","input","change","keydown","keyup","pointerdown","pointerup","mousedown","mouseup","submit","dragstart","drop","wheel","scroll"].includes(F))for(let $ of q)v.add($);let k=I.size>0||[...v].some(F=>["react","vue","angular","svelte","jquery"].includes(F)),x=M(_.get("click"),"delegated"),S=M(_.get("input"),"delegated")||M(_.get("change"),"delegated")||M(_.get("keydown"),"delegated"),j=T?.role||Vi(m)||m.getAttribute("role");return{sourcesByType:_,fws:I,isFrameworkElement:k,delegatedClick:x,delegatedInput:S,role:j}}function N(m,T,_,I){let v=H(m,I),k=ee(m,T),x=se(k,_);ht(m,k,x),I?.pattern==="hover-activate"&&ft(m,k,x,I,120);let S=v.fws.has("react")||M(v.sourcesByType.get("click"),"react"),j=v.fws.has("vue")||M(v.sourcesByType.get("click"),"vue"),F=v.fws.has("angular")||M(v.sourcesByType.get("click"),"angular"),q=v.fws.has("svelte")||M(v.sourcesByType.get("click"),"svelte"),$=v.fws.has("jquery")||M(v.sourcesByType.get("click"),"jquery");return fn(()=>Y(m,k,x),()=>ae(m,k,x),()=>S?le(m,k,x):null,()=>j?Me(m,k,x):null,()=>F?ve(m,k,x):null,()=>q?we(m,k,x):null,()=>$?Ne(m,k,x):null)}function Y(m,T,_){let I=ee(m,T),v=se(I,_),k=v.PointerEvent||PointerEvent,x=v.MouseEvent||MouseEvent,{x:S,y:j}=re(m,I,v),F={bubbles:!0,cancelable:!0,composed:!0,view:v,clientX:S,clientY:j,button:0,buttons:1};return m.focus?.({preventScroll:!0}),[new k("pointerover",F),new k("pointerenter",{...F,bubbles:!1}),new x("mouseover",F),new x("mouseenter",{...F,bubbles:!1}),new k("pointerdown",F),new x("mousedown",F),new k("pointerup",{...F,buttons:0}),new x("mouseup",{...F,buttons:0}),new x("click",{...F,buttons:0})].forEach($=>m.dispatchEvent($)),{success:!0,method:"pointer-mouse-click"}}function ae(m,T,_){let I=ee(m,T),v=se(I,_);try{if(m instanceof HTMLAnchorElement){let k=m.getAttribute("target");try{m.setAttribute("target","_self"),m.click()}finally{k===null?m.removeAttribute("target"):m.setAttribute("target",k)}}else m.click?.();return{success:!0,method:"native-click"}}catch{return{success:!1,method:"native-click"}}}function re(m,T,_){let I=ee(m,T),v=m.getBoundingClientRect(),k=[{x:v.left+v.width/2,y:v.top+v.height/2},{x:v.left+4,y:v.top+4},{x:v.right-4,y:v.top+4},{x:v.left+4,y:v.bottom-4},{x:v.right-4,y:v.bottom-4}],x=null;for(let S=0;S<k.length;S++){let j=k[S],F=I.elementFromPoint(j.x,j.y);if(S===0&&(x=F),F&&Xp(m,F))return{...j,hit:F,ok:!0}}return{...k[0],hit:x,ok:!1}}function le(m,T,_){let I=ee(m,T),v=se(I,_);try{let k=Wn(m);if(!k)return{success:!1,method:"react-no-fiber"};let x=mn(k),S=x.onClick||x.onClickCapture;return S?(S(ro("click",m,I,v)),{success:!0,method:"react-fiber-onClick"}):{success:!1,method:"react-no-onClick"}}catch{return{success:!1,method:"react-fiber-onClick"}}}function Me(m,T,_){let I=ee(m,T),k=se(I,_).MouseEvent||MouseEvent;try{let x=pr(m);if(!x)return{success:!1,method:"vue-none"};let S=$n(x);return S.click?(S.click(new k("click",{bubbles:!0})),{success:!0,method:"vue-handler"}):x.$emit?(x.$emit("click"),{success:!0,method:"vue-emit"}):{success:!1,method:"vue-no-click"}}catch{return{success:!1,method:"vue-handler"}}}function ve(m,T,_){let I=ee(m,T),v=se(I,_),k=v.MouseEvent||MouseEvent;try{let x=v.ng?.getZone?.()||null;return x?.run?(x.run(()=>m.dispatchEvent(new k("click",{bubbles:!0,cancelable:!0}))),{success:!0,method:"angular-zone-click"}):(m.dispatchEvent(new k("click",{bubbles:!0,cancelable:!0})),m.click?.(),{success:!0,method:"angular-click"})}catch{return{success:!1,method:"angular-click",allowFallback:!0}}}function we(m,T,_){let I=ee(m,T),k=se(I,_).MouseEvent||MouseEvent;try{let x=m.getBoundingClientRect(),S={bubbles:!0,cancelable:!0,view:m.ownerDocument?.defaultView||window,clientX:x.left+x.width/2,clientY:x.top+x.height/2};return m.dispatchEvent(new k("mousedown",S)),m.dispatchEvent(new k("mouseup",S)),m.dispatchEvent(new k("click",S)),{success:!0,method:"svelte-click"}}catch{return{success:!1,method:"svelte-click"}}}function Ne(m,T,_){let I=ee(m,T),v=se(I,_);try{return v.jQuery?.(m)?.trigger?.("click"),{success:!0,method:"jquery-trigger"}}catch{return{success:!1,method:"jquery-trigger"}}}async function ft(m,T,_,I,v=500){let k=Math.min(Math.max(0,Number(v)||500),3e4),x=ee(m,T),S=se(x,_),j=H(m,I);ht(m,x,S);let F=S.PointerEvent||PointerEvent,q=S.MouseEvent||MouseEvent,$=m.getBoundingClientRect(),G=$.left+$.width/2,oe=$.top+$.height/2;if(j.fws.has("react")){let ue=Wn(m),me=ue?mn(ue):{};me.onMouseEnter?.(ro("mouseenter",m,x,S)),me.onPointerEnter?.(ro("pointerenter",m,x,S))}else if(j.fws.has("vue")){let ue=pr(m),me=ue?$n(ue):{};me.mouseenter?.(new q("mouseenter",{bubbles:!0})),me.mouseover?.(new q("mouseover",{bubbles:!0}))}let fe={bubbles:!0,cancelable:!0,composed:!0,view:S,clientX:G,clientY:oe};return[new F("pointerover",fe),new F("pointerenter",{...fe,bubbles:!1}),new q("mouseover",fe),new q("mouseenter",{...fe,bubbles:!1})].forEach(ue=>m.dispatchEvent(ue)),await Wt(k,x),{success:!0,method:"hover-seq"}}async function Ae(m,T,_=1){await Promise.resolve();for(let I=0;I<_;I++)m.hidden?await qn():await new Promise(v=>{try{T.requestAnimationFrame(()=>v())}catch{qn().then(v)}})}let lt=m=>String(m??"").replace(/\s+/g," ").trim();function Xe(m){try{if("value"in m)return String(m.value??"")}catch{}return""}function Ge(m){try{return typeof aa=="function"?aa(m):lt(m.textContent)}catch{return""}}function zt(m,T){if(!(T.isFrameworkElement||T.delegatedInput))return!1;let _=String(m??"").length;return _>0&&_<=140}async function St(m,T,_,I,v){let k=H(m,v),x=ee(m,T),S=se(x,_);if(ht(m,x,S),ao(m,S)||bo(m,S)){let F=zt(String(I??""),k),q=await Wp(m,x,S,I,{settleFrames:x.hidden?1:2,useKeyFallback:F,keyFallbackMaxLen:140});return{success:q.success,method:q.method,details:q.details,allowFallback:!q.success}}if(m.isContentEditable===!0||k.role==="textbox"&&!("value"in m)){let F=Ge(m),q=$p(m,I,x,S);await Ae(x,S,x.hidden?1:2);let $=Ge(m),G=!1;if(String(I??"").length>0&&$===F){G=!0;try{za(m,x,S),Fa(m,x,S,!0);try{x.execCommand?.("insertText",!1,String(I??""))}catch{}ra(m,String(I??""),"insertText")}catch{}await Ae(x,S,x.hidden?1:2)}let oe=Ge(m),fe=oe!==F||!!String(I??"")&&oe.includes(String(I??""));return{success:fe,method:q.method,details:`${q.details};beforeLen=${F.length};afterLen=${oe.length};reverted=${$===F};fallback=${G}`,allowFallback:fe?void 0:!0}}return{success:!1,method:"type",details:"target not editable",allowFallback:!0}}async function Rn(m,T,_,I,v){let k=ee(m,T),x=se(k,_),S=await St(m,k,x,I,v);if(!S.success)return S;let j=Vp(m);return{success:!0,method:"type+enter",details:`${S.details};enter=${j.method}`}}async function Ee(m,T,_,I){let v=ee(m,T),k=se(v,_),x=k.Event||Event;if(ht(m,v,k),ao(m,k)||bo(m,k)){let j=Xe(m),F=Gp(m,v,k);if(await Ae(v,k,v.hidden?1:2),Xe(m)===j&&j.length>0){try{Zi(m,""),ra(m,"","deleteByCut")}catch{}await Ae(v,k,v.hidden?1:2)}let G=Xe(m),oe=G.length===0||G!==j;return{success:F.success,method:F.method,details:F.details,allowFallback:!F.success}}if(m.isContentEditable===!0||H(m,I).role==="textbox"&&!("value"in m)){let j=Kp(m,v,k);return await Ae(v,k,v.hidden?1:2),{success:j.success,method:j.method,details:j.details,allowFallback:!j.success}}if("value"in m){try{m.value=""}catch{}return m.dispatchEvent(new x("input",{bubbles:!0,composed:!0})),m.dispatchEvent(new x("change",{bubbles:!0,composed:!0})),{success:!0,method:"clear-generic-value"}}return{success:!1,method:"clear",details:"target not clearable",allowFallback:!0}}function Gt(m,T,_){try{let I=ee(m,T),v=se(I,_),k=v.FocusEvent||FocusEvent;return ht(m,I,v),m.focus?.({preventScroll:!0}),m.dispatchEvent(new k("focus",{bubbles:!0})),m.dispatchEvent(new k("focusin",{bubbles:!0})),{success:!0,method:"focus"}}catch(I){return{success:!1,method:"focus",details:I.message,allowFallback:!0}}}function ut(m,T,_,I,v){try{let k=ee(m,T),x=se(k,_),S=x.Event||Event;if(!zm(m,x))return{success:!1,method:"select",details:"target not select",allowFallback:!0};ht(m,k,x),m.focus?.({preventScroll:!0});let j=Array.from(m.options).find(G=>G.value===I||G.text.trim()===I.trim());if(!j)return{success:!1,method:"select",details:`Option not found: ${I}`,allowFallback:!0};j.selected=!0;let F=Object.getPrototypeOf(m),q=Object.getOwnPropertyDescriptor(F,"value");if(q?.set?q.set.call(m,j.value):m.value=j.value,m.dispatchEvent(new S("input",{bubbles:!0,composed:!0})),m.dispatchEvent(new S("change",{bubbles:!0,composed:!0})),H(m,v).fws.has("react")){let G=Wn(m);if(G){let oe=mn(G);if(oe.onChange){let fe=ro("change",m,k,x);fe.target.value=j.value,oe.onChange(fe)}}}return{success:!0,method:"select"}}catch(k){return{success:!1,method:"select",details:k.message,allowFallback:!0}}}function jt(m,T,_,I,v){try{let k=ee(m,T),x=se(k,_),S=x.Event||Event;if(!ao(m,x))return{success:!1,method:"slider",details:"target not input",allowFallback:!0};ht(m,k,x),m.focus?.({preventScroll:!0});let j=Object.getPrototypeOf(m),F=Object.getOwnPropertyDescriptor(j,"value");if(F?.set?F.set.call(m,String(I)):m.value=String(I),m.dispatchEvent(new S("input",{bubbles:!0,composed:!0})),m.dispatchEvent(new S("change",{bubbles:!0,composed:!0})),H(m,v).fws.has("react")){let $=Wn(m);if($){let G=mn($);if(G.onChange){let oe=ro("change",m,k,x);oe.target.value=String(I),G.onChange(oe)}}}return{success:!0,method:"slider"}}catch(k){return{success:!1,method:"slider",details:k.message,allowFallback:!0}}}function Rt(m,T,_){try{let I=m.checkValidity?.()??!0;return I||m.reportValidity?.(),{success:I,method:"check-validity",details:I?void 0:m.validationMessage}}catch(I){return{success:!1,method:"check-validity",details:I.message,allowFallback:!0}}}function eo(m,T,_,I,v){try{let k=ee(m,T),x=se(k,_);if("setSelectionRange"in m){let F=m;F.focus?.();let q=F.value?.length??0;return F.setSelectionRange(I??0,v??q),{success:!0,method:"select-range"}}let S=x.getSelection();if(!S)return{success:!1,method:"select-range",allowFallback:!0};let j=k.createRange();return j.selectNodeContents(m),S.removeAllRanges(),S.addRange(j),{success:!0,method:"select-range-node"}}catch(k){return{success:!1,method:"select-range",details:k.message,allowFallback:!0}}}function An(m,T,_,I,v){let k=ia((m&&ee(m))??T),x=m||k,S=ee(x,T),j=se(S,_),F=x===S.documentElement||x===S.body||x===k;if(I===_t.TOP||I===_t.BOTTOM){let q=x.scrollHeight,$=F?j.innerHeight:x.clientHeight,G=Math.max(0,q-$);return x.scrollTop=I===_t.TOP?0:G,{success:!0,scrollTop:x.scrollTop}}return Gc(x,S,j,I,v)}async function Yo(m,T,_,I){let v=I.direction,k=I.amount,x=ee(m,T),S=se(x,_),j=!x.hidden,F=j?"smooth":"auto";try{if(m){let $=to(m,x,S),G=An($,x,S,v,k);return G?.success?{success:!0,method:"direct-element-scroll",details:JSON.stringify(G)}:{success:!1,method:"direct-element-scroll",details:G?.error||"direct scroll failed",allowFallback:!0}}if(v===_t.TOP||v===_t.BOTTOM){let $=await E(S,{action:"scrollTo",direction:v,options:{behavior:F,isTabActive:j}},{doc:x,timeoutMs:x.hidden?5200:2800});return{success:!0,method:"detector-scrollTo",details:JSON.stringify($)}}let q=await E(S,{action:"scrollBy",direction:v,options:{amount:k,behavior:F,isTabActive:j}},{doc:x,timeoutMs:x.hidden?5200:2800});return{success:!0,method:"detector-scrollBy",details:JSON.stringify(q)}}catch(q){let $=x?An(ia(x),x,S,v,k):void 0;return $?.success?{success:!0,method:"direct-primary-scroll-fallback",details:JSON.stringify($)}:{success:!1,method:"scroll-page-failed",details:q?.message||$?.error||"scroll_page failed",allowFallback:!0}}}async function Yt(m,T,_,I){let v=ee(m,T),k=se(v,_),x=!v.hidden,S=x?"smooth":"auto",j=sh(I.position),F=Va(m,v);if(!F){let q=rd(m,v,k,j);return{success:q.success,method:"direct-scrollElement-no-selector",details:q.error,allowFallback:!q.success}}try{let q=await E(k,{action:"scrollElement",selector:F,position:j,options:{behavior:S,isTabActive:x}},{doc:v,timeoutMs:v.hidden?5600:3e3});return{success:!0,method:"detector-scrollElement",details:JSON.stringify(q)}}catch(q){let $=rd(m,v,k,j);return $.success?{success:!0,method:"direct-scrollElement-fallback",details:JSON.stringify($)}:{success:!1,method:"scroll-to-element-failed",details:q?.message||$.error||"scroll_to_element failed",allowFallback:!0}}}function Qt(m,T,_,I,v){try{let k=ee(m,T),x=se(k,_),S=x.WheelEvent||WheelEvent;ht(m,k,x);let j=to(m,k,x);return j.dispatchEvent(new S("wheel",{bubbles:!0,cancelable:!0,composed:!0,view:x,deltaX:I||0,deltaY:v||0,deltaMode:S.DOM_DELTA_PIXEL})),j.scrollBy({left:I||0,top:v||0,behavior:"auto"}),{success:!0,method:"wheel"}}catch(k){return{success:!1,method:"wheel",details:k.message,allowFallback:!0}}}function to(m,T,_){let I=ee(m,T),v=se(I,_),k=I.scrollingElement||I.documentElement||I.body,x=m;for(;x&&x!==I.body&&x!==I.documentElement;){let j=v.getComputedStyle(x).overflowY;if((j==="auto"||j==="scroll"||j==="overlay")&&x.scrollHeight>x.clientHeight+5)return x;x=x.parentElement}return k}async function Ue(m,T,_,I,v){try{let k=ee(m,T),x=se(k,_),S=x.PointerEvent||PointerEvent,j=x.MouseEvent||MouseEvent,F=x.DragEvent||DragEvent,q=x.DataTransfer||DataTransfer;ht(m,k,x);let $=re(m,k,x),G=Pt($.hit,x)?$.hit:m,oe=m.getBoundingClientRect(),fe=Number.isFinite(Number(I?.distance))?Number(I.distance):160,De=0,ue=0;switch(String(I?.direction||"").toUpperCase()){case"UP":ue=-fe;break;case"DOWN":ue=fe;break;case"LEFT":De=-fe;break;case"RIGHT":De=fe;break;default:De=Number(I?.delta_x)||0,ue=Number(I?.delta_y)||0}let me=(ne,de)=>({x:Math.max(2,Math.min(ne,x.innerWidth-3)),y:Math.max(2,Math.min(de,x.innerHeight-3))}),ye=me($.x,$.y),He=me($.x+De,$.y+ue),mt=500+Date.now()%1e4,xe=Math.max(12,Math.min(36,Number(I?.steps)||18)),Pe=(ne,de)=>({bubbles:!0,cancelable:!0,composed:!0,view:x,clientX:ne,clientY:de,pageX:ne+(x.scrollX||0),pageY:de+(x.scrollY||0)}),Be=(ne,de,We)=>({...Pe(ne,de),pointerId:mt,pointerType:"mouse",isPrimary:!0,width:1,height:1,pressure:We?.5:0,buttons:We,button:0}),$e=(ne,de,We)=>({...Pe(ne,de),buttons:We,button:0});G.dispatchEvent(new S("pointerdown",Be(ye.x,ye.y,1))),G.dispatchEvent(new j("mousedown",$e(ye.x,ye.y,1)));try{G.setPointerCapture?.(mt)}catch{}let ot=null;try{(m.draggable||H(m,v).sourcesByType.has("dragstart"))&&(ot=new q)}catch{ot=null}if(ot)try{m.dispatchEvent(new F("dragstart",{bubbles:!0,cancelable:!0,clientX:ye.x,clientY:ye.y,dataTransfer:ot}))}catch{}let Je=null;for(let ne=1;ne<=xe;ne++){let de=ye.x+(He.x-ye.x)*ne/xe,We=ye.y+(He.y-ye.y)*ne/xe,yt=k.elementFromPoint(de,We)||m;if(yt.dispatchEvent(new S("pointermove",Be(de,We,1))),yt.dispatchEvent(new j("mousemove",$e(de,We,1))),ot)try{Je&&Je!==yt&&Je.dispatchEvent(new F("dragleave",{bubbles:!0,cancelable:!0,clientX:de,clientY:We,dataTransfer:ot})),yt.dispatchEvent(new F("dragover",{bubbles:!0,cancelable:!0,clientX:de,clientY:We,dataTransfer:ot})),Je=yt}catch{}ne%3===0&&await qn()}let ie=k.elementFromPoint(He.x,He.y)||m;if(ie.dispatchEvent(new S("pointerup",Be(He.x,He.y,0))),ie.dispatchEvent(new j("mouseup",$e(He.x,He.y,0))),ot)try{m.dispatchEvent(new F("dragend",{bubbles:!0,cancelable:!0,clientX:He.x,clientY:He.y,dataTransfer:ot}))}catch{}return{success:!0,method:"drag",details:`dx=${De};dy=${ue};steps=${xe};hitOk=${$.ok}`}}catch(k){return{success:!1,method:"drag",details:k?.message||"drag failed",allowFallback:!0}}}async function Jt(m,T,_,I){try{let v=ee(T,_),k=se(v,I),x=k.PointerEvent||PointerEvent,S=k.MouseEvent||MouseEvent,j=k.DragEvent||DragEvent,F=k.DataTransfer||DataTransfer,q=m?.source_element_id??m?.element_id,$=(q?vo(v,String(q)):null)||T;if(!$)return{success:!1,method:"drag-drop",details:"source missing",allowFallback:!0};let G=null,oe=Number(m?.target_x),fe=Number(m?.target_y);if(m?.target_element_id){if(G=vo(v,String(m.target_element_id)),!G)return{success:!1,method:"drag-drop",details:"target missing",allowFallback:!0};let ie=G.getBoundingClientRect();oe=ie.left+ie.width/2,fe=ie.top+ie.height/2}if((!Number.isFinite(oe)||!Number.isFinite(fe))&&!G)return{success:!1,method:"drag-drop",details:"missing target coords",allowFallback:!0};ht($,v,k),G&&ht(G,v,k);let De=(ie,ne)=>({x:Math.max(2,Math.min(ie,k.innerWidth-3)),y:Math.max(2,Math.min(ne,k.innerHeight-3))}),ue=$.getBoundingClientRect(),me=De(ue.left+ue.width/2,ue.top+ue.height/2),ye=De(Number(oe),Number(fe)),He=600+Date.now()%1e4,mt=Math.max(14,Math.min(42,Number(m?.steps)||22)),xe=(ie,ne)=>({bubbles:!0,cancelable:!0,composed:!0,view:k,clientX:ie,clientY:ne,pageX:ie+(k.scrollX||0),pageY:ne+(k.scrollY||0)}),Pe=(ie,ne,de)=>({...xe(ie,ne),pointerId:He,pointerType:"mouse",isPrimary:!0,width:1,height:1,pressure:de?.5:0,buttons:de,button:0}),Be=(ie,ne,de)=>({...xe(ie,ne),buttons:de,button:0}),$e=null;try{$e=new F}catch{$e=null}$.dispatchEvent(new x("pointerdown",Pe(me.x,me.y,1))),$.dispatchEvent(new S("mousedown",Be(me.x,me.y,1)));try{$.setPointerCapture?.(He)}catch{}if($e)try{$.dispatchEvent(new j("dragstart",{bubbles:!0,cancelable:!0,clientX:me.x,clientY:me.y,dataTransfer:$e}))}catch{}let ot=null;for(let ie=1;ie<=mt;ie++){let ne=me.x+(ye.x-me.x)*ie/mt,de=me.y+(ye.y-me.y)*ie/mt,We=v.elementFromPoint(ne,de)||G||v.body;if(We.dispatchEvent(new x("pointermove",Pe(ne,de,1))),We.dispatchEvent(new S("mousemove",Be(ne,de,1))),$e)try{ot&&ot!==We&&ot.dispatchEvent(new j("dragleave",{bubbles:!0,cancelable:!0,clientX:ne,clientY:de,dataTransfer:$e})),We.dispatchEvent(new j("dragenter",{bubbles:!0,cancelable:!0,clientX:ne,clientY:de,dataTransfer:$e})),We.dispatchEvent(new j("dragover",{bubbles:!0,cancelable:!0,clientX:ne,clientY:de,dataTransfer:$e})),ot=We}catch{}ie%3===0&&await qn()}let Je=G||v.elementFromPoint(ye.x,ye.y)||v.body;if($e)try{Je.dispatchEvent(new j("drop",{bubbles:!0,cancelable:!0,clientX:ye.x,clientY:ye.y,dataTransfer:$e}))}catch{}if(Je.dispatchEvent(new x("pointerup",Pe(ye.x,ye.y,0))),Je.dispatchEvent(new S("mouseup",Be(ye.x,ye.y,0))),$e)try{$.dispatchEvent(new j("dragend",{bubbles:!0,cancelable:!0,clientX:ye.x,clientY:ye.y,dataTransfer:$e}))}catch{}return{success:!0,method:"html5+pointer-dragdrop",details:`steps=${mt};source=${String(q)}`}}catch(v){return{success:!1,method:"drag-drop",details:v?.message||"drag-drop failed",allowFallback:!0}}}async function no(m,T,_,I){try{let v=ee(m,T),k=se(v,_),x=k.PointerEvent||PointerEvent,S=k.MouseEvent||MouseEvent;ht(m,v,k);let j=re(m,v,k),F={x:j.x,y:j.y},q=m.getBoundingClientRect(),$=Number.isFinite(Number(I?.distance))?Number(I.distance):Math.min(Math.max(80,Math.min(q.width,q.height)),220),G=String(I?.direction||"RIGHT").toUpperCase(),oe=F.x,fe=F.y;G==="LEFT"&&(oe-=$),G==="RIGHT"&&(oe+=$),G==="UP"&&(fe-=$),G==="DOWN"&&(fe+=$);let De=(ne,de)=>({x:Math.max(2,Math.min(ne,k.innerWidth-3)),y:Math.max(2,Math.min(de,k.innerHeight-3))}),ue=De(F.x,F.y),me=De(oe,fe),ye=700+Date.now()%1e4,He=Math.max(10,Math.min(28,Number(I?.steps)||16)),mt=(ne,de)=>({bubbles:!0,cancelable:!0,composed:!0,view:k,clientX:ne,clientY:de,pageX:ne+(k.scrollX||0),pageY:de+(k.scrollY||0)}),xe=(ne,de,We)=>({...mt(ne,de),pointerId:ye,pointerType:"touch",isPrimary:!0,width:1,height:1,pressure:We?.5:0,buttons:We,button:0}),Pe=(ne,de,We)=>({...mt(ne,de),buttons:We,button:0}),Be=v.elementFromPoint(ue.x,ue.y)||m;Be.dispatchEvent(new x("pointerdown",xe(ue.x,ue.y,1))),Be.dispatchEvent(new S("mousedown",Pe(ue.x,ue.y,1)));let $e=k.Touch,ot=k.TouchEvent,Je=!!$e&&!!ot;if(Je)try{let ne=new $e({identifier:ye,target:Be,clientX:ue.x,clientY:ue.y,pageX:ue.x,pageY:ue.y,screenX:ue.x,screenY:ue.y,radiusX:1,radiusY:1,rotationAngle:0,force:1});Be.dispatchEvent(new ot("touchstart",{bubbles:!0,cancelable:!0,composed:!0,touches:[ne],targetTouches:[ne],changedTouches:[ne]}))}catch{}for(let ne=1;ne<=He;ne++){let de=ue.x+(me.x-ue.x)*ne/He,We=ue.y+(me.y-ue.y)*ne/He,yt=v.elementFromPoint(de,We)||m;if(yt.dispatchEvent(new x("pointermove",xe(de,We,1))),yt.dispatchEvent(new S("mousemove",Pe(de,We,1))),Je)try{let ct=new $e({identifier:ye,target:yt,clientX:de,clientY:We,pageX:de,pageY:We,screenX:de,screenY:We,radiusX:1,radiusY:1,rotationAngle:0,force:1});yt.dispatchEvent(new ot("touchmove",{bubbles:!0,cancelable:!0,composed:!0,touches:[ct],targetTouches:[ct],changedTouches:[ct]}))}catch{}ne%3===0&&await qn()}let ie=v.elementFromPoint(me.x,me.y)||m;if(ie.dispatchEvent(new x("pointerup",xe(me.x,me.y,0))),ie.dispatchEvent(new S("mouseup",Pe(me.x,me.y,0))),Je)try{let ne=new $e({identifier:ye,target:ie,clientX:me.x,clientY:me.y,pageX:me.x,pageY:me.y,screenX:me.x,screenY:me.y,radiusX:1,radiusY:1,rotationAngle:0,force:0});ie.dispatchEvent(new ot("touchend",{bubbles:!0,cancelable:!0,composed:!0,touches:[],targetTouches:[],changedTouches:[ne]}))}catch{}return{success:!0,method:"swipe",details:`dir=${G};dist=${$};steps=${He};hitOk=${j.ok}`}}catch(v){return{success:!1,method:"swipe",details:v?.message||"swipe failed",allowFallback:!0}}}async function vn(m,T,_,I){try{let v=m||T.body,k=ee(v,T),x=se(k,_),S=x.PointerEvent||PointerEvent,j=x.WheelEvent||WheelEvent;ht(v,k,x);let F=Number.isFinite(Number(I?.scale))?Number(I.scale):1.2,q=v.getBoundingClientRect(),$=q.left+q.width/2,G=q.top+q.height/2,oe=24,fe=Math.max(6,Math.min(200,oe*F)),De=Math.max(6,Math.min(18,Number(I?.steps)||10)),ue=x.Touch,me=x.TouchEvent;if(!!ue&&!!me)try{let xe=(Je,ie)=>new ue({identifier:Je,target:v,clientX:ie,clientY:G,pageX:ie,pageY:G,screenX:ie,screenY:G,radiusX:1,radiusY:1,rotationAngle:0,force:1}),Pe=xe(911,$-oe),Be=xe(912,$+oe);v.dispatchEvent(new me("touchstart",{bubbles:!0,cancelable:!0,composed:!0,touches:[Pe,Be],targetTouches:[Pe,Be],changedTouches:[Pe,Be]}));for(let Je=1;Je<=De;Je++){let ie=oe+(fe-oe)*Je/De,ne=xe(911,$-ie),de=xe(912,$+ie);v.dispatchEvent(new me("touchmove",{bubbles:!0,cancelable:!0,composed:!0,touches:[ne,de],targetTouches:[ne,de],changedTouches:[ne,de]})),Je%2===0&&await qn()}let $e=xe(911,$-fe),ot=xe(912,$+fe);v.dispatchEvent(new me("touchend",{bubbles:!0,cancelable:!0,composed:!0,touches:[],targetTouches:[],changedTouches:[$e,ot]}))}catch{}try{let xe=(Pe,Be,$e)=>({bubbles:!0,cancelable:!0,composed:!0,view:x,clientX:Be,clientY:G,pointerId:Pe,pointerType:"touch",isPrimary:Pe===821,width:1,height:1,pressure:$e?.5:0,buttons:$e,button:0});v.dispatchEvent(new S("pointerdown",xe(821,$-oe,1))),v.dispatchEvent(new S("pointerdown",xe(822,$+oe,1)));for(let Pe=1;Pe<=De;Pe++){let Be=oe+(fe-oe)*Pe/De;v.dispatchEvent(new S("pointermove",xe(821,$-Be,1))),v.dispatchEvent(new S("pointermove",xe(822,$+Be,1))),Pe%2===0&&await qn()}v.dispatchEvent(new S("pointerup",xe(821,$-fe,0))),v.dispatchEvent(new S("pointerup",xe(822,$+fe,0)))}catch{}try{let He=F>=1?-120:120;v.dispatchEvent(new j("wheel",{bubbles:!0,cancelable:!0,composed:!0,view:x,clientX:$,clientY:G,ctrlKey:!0,deltaY:He,deltaMode:j.DOM_DELTA_PIXEL}))}catch{}return{success:!0,method:"pinch-zoom",details:`scale=${F};steps=${De}`}}catch(v){return{success:!1,method:"pinch-zoom",details:v?.message||"pinch-zoom failed",allowFallback:!0}}}async function Zt(m,T,_,I=800){try{let v=ee(m,T),k=se(v,_),x=k.PointerEvent||PointerEvent,S=k.MouseEvent||MouseEvent,j=k.FocusEvent||FocusEvent;ht(m,v,k);let F=re(m,v,k),q=m;!F.ok&&Pt(F.hit,k)?q=F.hit.closest?.('a,button,input,select,textarea,summary,[role="button"],[role="link"],[onclick]')||F.hit:Pt(F.hit,k)&&(q=F.hit);let $=dn(q,v,k),G=F.x,oe=F.y,fe=1+Date.now()%1e4,De={bubbles:!0,cancelable:!0,composed:!0,view:k,clientX:G,clientY:oe,pageX:G+(k.scrollX||0),pageY:oe+(k.scrollY||0),screenX:G+(k.screenX||0),screenY:oe+(k.screenY||0)},ue={...De,pointerId:fe,pointerType:"touch",isPrimary:!0,width:1,height:1,pressure:0,buttons:0,button:0};try{q.dispatchEvent(new x("pointerover",ue)),q.dispatchEvent(new x("pointerenter",{...ue,bubbles:!1}))}catch{}try{q.dispatchEvent(new S("mouseover",De)),q.dispatchEvent(new S("mouseenter",{...De,bubbles:!1}))}catch{}try{q.focus?.({preventScroll:!0}),q.dispatchEvent(new j("focus",{bubbles:!0,composed:!0})),q.dispatchEvent(new j("focusin",{bubbles:!0,composed:!0}))}catch{}try{q.dispatchEvent(new x("pointerdown",{...ue,buttons:1,pressure:.5}))}catch{}try{q.dispatchEvent(new S("mousedown",{...De,buttons:1,button:0}))}catch{}try{let xe=k.Touch,Pe=k.TouchEvent;if(typeof xe<"u"&&typeof Pe<"u"){let Be=new xe({identifier:fe,target:q,clientX:G,clientY:oe,pageX:G+(k.scrollX||0),pageY:oe+(k.scrollY||0),screenX:G+(k.screenX||0),screenY:oe+(k.screenY||0),radiusX:1,radiusY:1,rotationAngle:0,force:1});q.dispatchEvent(new Pe("touchstart",{bubbles:!0,cancelable:!0,composed:!0,touches:[Be],targetTouches:[Be],changedTouches:[Be]}))}}catch{}let me=Number(I),ye=Number.isFinite(me)&&me>0?me:800,He=v.hidden?Math.max(ye,1200):ye;await Wt(He,v);try{q.dispatchEvent(new S("contextmenu",{...De,button:2,buttons:2}))}catch{}try{q.dispatchEvent(new x("pointerup",{...ue,buttons:0,pressure:0}))}catch{}try{q.dispatchEvent(new S("mouseup",{...De,buttons:0,button:0}))}catch{}try{let xe=k.Touch,Pe=k.TouchEvent;if(typeof xe<"u"&&typeof Pe<"u"){let Be=new xe({identifier:fe,target:q,clientX:G,clientY:oe,pageX:G+(k.scrollX||0),pageY:oe+(k.scrollY||0),screenX:G+(k.screenX||0),screenY:oe+(k.screenY||0),radiusX:1,radiusY:1,rotationAngle:0,force:0});q.dispatchEvent(new Pe("touchend",{bubbles:!0,cancelable:!0,composed:!0,touches:[],targetTouches:[],changedTouches:[Be]}))}}catch{}let mt=await Nn(q,v,k,$);return{success:!0,method:"long-press",details:`holdMs=${He};verified=${mt};hitOk=${F.ok};target=${q.tagName.toLowerCase()}`}}catch(v){return{success:!1,method:"long-press",details:v?.message||"long-press failed",allowFallback:!0}}}function tt(m,T,_,I,v){try{let k=ee(_,I),S=se(k,v).KeyboardEvent||KeyboardEvent,j=_||k.activeElement||k.body||k.documentElement;j.focus?.();let F={key:m,code:Qo(m),bubbles:!0,cancelable:!0,ctrlKey:T?.includes("CTRL"),altKey:T?.includes("ALT"),shiftKey:T?.includes("SHIFT"),metaKey:T?.includes("META")},q=j.dispatchEvent(new S("keydown",F)),$=j.dispatchEvent(new S("keypress",F)),G=j.dispatchEvent(new S("keyup",F));if(m==="Enter"&&!!(q&&$&&G)){let fe=j.form||j.closest?.("form");fe?.requestSubmit?fe.requestSubmit():fe?.submit?.()}return{success:!0,method:"press-key"}}catch(k){return{success:!1,method:"press-key",details:k.message,allowFallback:!0}}}async function Kt(m,T,_){try{let I=m.innerText||m.value||"";if(!I)return{success:!1,method:"copy",details:"nothing to copy",allowFallback:!0};let v=ee(m,T),k=se(v,_);if(k.navigator?.clipboard?.writeText)return await k.navigator.clipboard.writeText(I),{success:!0,method:"clipboard-copy"};let x=v.createRange();x.selectNodeContents(m);let S=k.getSelection?.()||(v.defaultView||window).getSelection?.();S?.removeAllRanges(),S?.addRange(x);let j=v.execCommand?.("copy")??!1;return S?.removeAllRanges(),{success:!!j,method:"execCommand-copy",allowFallback:!j}}catch(I){return{success:!1,method:"clipboard-copy",details:I.message,allowFallback:!0}}}async function en(m,T,_,I){try{m.focus?.();let v=ee(m,T),k=se(v,_);if(k.navigator?.clipboard?.readText){let S=await k.navigator.clipboard.readText();if(S)return await St(m,v,k,S,I)}return v.execCommand?.("paste")??!1?{success:!0,method:"execCommand-paste"}:{success:!1,method:"paste",details:"clipboard empty or denied",allowFallback:!0}}catch(v){return{success:!1,method:"paste",details:v.message,allowFallback:!0}}}function Cn(m){return`${(m/1024).toFixed(1)}KB`}function Mn(m,T){if(m instanceof T.defaultView.HTMLInputElement){let x=m;if((x.type||"").toLowerCase()==="file")return x}let _=m.closest?.("label"),I=_?.htmlFor||m.htmlFor||"";if(I){let x=T.getElementById(I);if(x&&(x.type||"").toLowerCase()==="file")return x}if(_){let x=_.querySelector?.('input[type="file"]');if(x)return x}let v=m.closest?.("form");if(v){let x=v.querySelector?.('input[type="file"]');if(x)return x}let k=m.closest?.("div,section,main,article")||m.parentElement;if(k){let x=k.querySelector?.('input[type="file"]');if(x)return x}return null}function fo(m,T,_){try{let I=_.HTMLInputElement?.prototype,v=I?Object.getOwnPropertyDescriptor(I,"files")?.set:void 0;if(!v){let k=Object.getPrototypeOf(m);for(;k&&!v;)v=Object.getOwnPropertyDescriptor(k,"files")?.set,k=Object.getPrototypeOf(k)}return v?(v.call(m,T),!0):(m.files=T,!0)}catch{try{return m.files=T,!0}catch{return!1}}}async function jn(m,T,_,I,v,k){try{let{file_url:x,element_id:S,file_name:j}=m,F=null;if(v&&(F=Mn(v,T)),!F&&S!==void 0&&(F=T.querySelector(`input[type="file"][${hn}*="[id=${S}]"]`)),!F){let ie=T.querySelectorAll('input[type="file"]');for(let ne of ie){if(ne.disabled)continue;let de=ne.getBoundingClientRect();if(de.width>0&&de.height>0){F=ne;break}}}if(!F)return{success:!1,method:"upload-file",details:"No file input found",allowFallback:!0};if(F.disabled)return{success:!1,method:"upload-file",details:"File input is disabled",allowFallback:!0};let q=ee(F,T),$=se(q,_);if(!(I?.kind==="upload_file"&&typeof I.byteLength=="number"&&I.byteLength>=0&&typeof I.mimeType=="string"&&(typeof I.inlineB64=="string"||typeof I.token=="string")))return{success:!1,method:"upload-file",details:"Missing upload payload (need inlineB64 or token)",allowFallback:!0};let oe=Number(I.byteLength),fe=(I.mimeType||"application/octet-stream").split(";")[0].trim()||"application/octet-stream",De;if(I.inlineB64&&typeof I.inlineB64=="string"){let ie=oh(I.inlineB64);if(ie.byteLength!==oe)return{success:!1,method:"upload-file",details:`Inline bytes length mismatch: got=${ie.byteLength} expected=${oe}`,allowFallback:!0};De=ie.buffer}else{let ie=String(I.token);De=await p($,ie,oe,9e4)}let ue=$.Blob||Blob,me=new ue([De],{type:fe}),ye=j||I?.fileName;!ye&&x&&typeof x=="string"&&(ye=nd(x,$)),ye=nh(ye||"upload");let He=$.File||File,mt=new He([me],ye,{type:fe,lastModified:Date.now()}),xe=$.Event||Event,Pe=$.DataTransfer||DataTransfer;if(!Pe)return{success:!1,method:"upload-file",details:"DataTransfer unavailable in this context",allowFallback:!0};let Be=new Pe;if(Be.items.add(mt),!fo(F,Be.files,$))return{success:!1,method:"upload-file",details:"Failed to set input.files",allowFallback:!0};F.dispatchEvent(new xe("input",{bubbles:!0,composed:!0,cancelable:!0})),F.dispatchEvent(new xe("change",{bubbles:!0,composed:!0,cancelable:!0}));let ot=Wn(F);if(ot){let ie=mn(ot);if(ie.onChange){let ne=ro("change",F,q,$);ne.target.files=Be.files,ie.onChange(ne)}}let Je=pr(F);if(Je){let ie=$n(Je);if(ie.change){let ne=new xe("change",{bubbles:!0});ne.target=F,ne.target.files=Be.files,ie.change(ne)}}try{let ie=$.jQuery||$.$;ie&&typeof ie=="function"&&ie(F).triggerHandler?.("change")}catch{}return F.focus?.({preventScroll:!0}),await Ae(q,$,2),{success:!0,method:"upload-file",details:`Uploaded ${ye} (${Cn(me.size)}) [token]`}}catch(x){return{success:!1,method:"upload-file",details:x?.message||"Upload failed",allowFallback:!0}}}async function tn(m,T,_){let I=Array.isArray(m.path)?m.path:[];if(!I.length)return{success:!1,method:"dispatch_pointer_path",details:"Empty path",allowFallback:!0};let v=_.PointerEvent||PointerEvent,k=_.MouseEvent||MouseEvent,x=16;for(let S=0;S<I.length;S++){let j=I[S],F=Number(j.x)||0,q=Number(j.y)||0,$=Number(j.pressure)||(S===0||S===I.length-1?0:.5),G=T.elementFromPoint(F,q)||T.documentElement,oe={bubbles:!0,cancelable:!0,clientX:F,clientY:q,screenX:F,screenY:q,view:_};if(S===0?(G.dispatchEvent(new v("pointerdown",{...oe,pressure:$,pointerId:1,pointerType:"mouse"})),G.dispatchEvent(new k("mousedown",{...oe,button:0,buttons:1}))):(G.dispatchEvent(new v("pointermove",{...oe,pressure:$,pointerId:1,pointerType:"mouse"})),G.dispatchEvent(new k("mousemove",{...oe,button:0,buttons:1}))),S===I.length-1&&(G.dispatchEvent(new v("pointerup",{...oe,pressure:0,pointerId:1,pointerType:"mouse"})),G.dispatchEvent(new k("mouseup",{...oe,button:0,buttons:0}))),S<I.length-1){let fe=Number(j.timestamp)||0,De=Number(I[S+1].timestamp)||0,ue=fe&&De?Math.max(0,Math.min(De-fe,1e3)):x;ue>0&&await Wt(ue,T)}}return{success:!0,method:"dispatch_pointer_path",details:`Dispatched ${I.length} point(s)`}}function oo(m,T,_){let I=ee(m,T),v=se(I,_),k=v.MouseEvent||MouseEvent;ht(m,I,v),Y(m,I,v),Y(m,I,v);let x=m.getBoundingClientRect();return m.dispatchEvent(new k("dblclick",{bubbles:!0,cancelable:!0,clientX:x.left+x.width/2,clientY:x.top+x.height/2,detail:2,view:v})),{success:!0,method:"dblclick"}}function un(m,T,_){let I=ee(m,T),v=se(I,_),k=v.PointerEvent||PointerEvent,x=v.MouseEvent||MouseEvent;ht(m,I,v);let S=m.getBoundingClientRect(),j=S.left+S.width/2,F=S.top+S.height/2,q={bubbles:!0,cancelable:!0,composed:!0,view:v,clientX:j,clientY:F,button:2,buttons:2};return m.dispatchEvent(new k("pointerdown",q)),m.dispatchEvent(new x("mousedown",q)),m.dispatchEvent(new k("pointerup",{...q,buttons:0})),m.dispatchEvent(new x("mouseup",{...q,buttons:0})),m.dispatchEvent(new x("contextmenu",q)),{success:!0,method:"contextmenu"}}function dn(m,T,_){let I=ee(m,T),v=se(I,_),k=m,x=m.getBoundingClientRect();return{href:String(v.location.href),hash:String(v.location.hash),ariaExpanded:m.getAttribute("aria-expanded"),ariaPressed:m.getAttribute("aria-pressed"),ariaDisabled:m.getAttribute("aria-disabled"),disabled:!!k.disabled,open:typeof k.open<"u"?k.open:void 0,checked:typeof k.checked<"u"?k.checked:void 0,value:typeof k.value<"u"?k.value:void 0,active:qc(I),rect:{w:x.width,h:x.height}}}function pe(m,T){let _=Math.abs(m.rect.w-T.rect.w)>2||Math.abs(m.rect.h-T.rect.h)>2;return m.href!==T.href||m.hash!==T.hash||m.ariaExpanded!==T.ariaExpanded||m.ariaPressed!==T.ariaPressed||m.ariaDisabled!==T.ariaDisabled||m.disabled!==T.disabled||m.open!==T.open||m.checked!==T.checked||m.value!==T.value||m.active!==T.active||_}async function Nn(m,T,_,I){await Promise.resolve();let v=ee(m,T),k=se(v,_);T.hidden||await qn();let x=dn(m,v,k);return pe(I,x)}function ge(m,T,_){m.focus?.({preventScroll:!0});let I=ee(m,T),v=se(I,_),S=m.getAttribute("role")==="button"||qm(m,v)||m.tagName.toLowerCase()==="button"?[" ","Enter"]:["Enter"],j=v.KeyboardEvent||KeyboardEvent;for(let F of S){let q={key:F,code:F===" "?"Space":"Enter",bubbles:!0,cancelable:!0,composed:!0};m.dispatchEvent(new j("keydown",q)),m.dispatchEvent(new j("keypress",q)),m.dispatchEvent(new j("keyup",q))}return{success:!0,method:"keyboard-activate"}}async function kt(m,T,_,...I){let v=null;for(let k of I){let x=ee(m,T),S=se(x,_),j=dn(m,x,S),F=k();if(!F||!F.success)continue;if(await Nn(m,x,S,j))return{...F,details:(F.details?F.details+";":"")+"verified=true"};v=F}return v?{...v,details:(v.details?v.details+";":"")+"verified=false"}:{success:!1,method:"all-strategies-unverified",details:"no verified effect",allowFallback:!0}}function fn(...m){for(let T of m)try{let _=T();if(_&&_.success)return _}catch{}return{success:!1,method:"all-strategies-failed",allowFallback:!0}}function ht(m,T,_){let I=ee(m,T),v=se(I,_),k=m.getBoundingClientRect();k.top>=0&&k.left>=0&&k.bottom<=v.innerHeight&&k.right<=v.innerWidth||(m.scrollIntoView({behavior:"auto",block:"center",inline:"center"}),m.offsetHeight)}function $r(m,T,_,I){let v=ee(m,T),x=se(v,_).KeyboardEvent||KeyboardEvent;for(let S of I){let j=String(S??""),F="";/^[a-z]$/i.test(j)?F=`Key${j.toUpperCase()}`:/^[0-9]$/.test(j)?F=`Digit${j}`:j===" "&&(F="Space");let q=j.length===1?j.charCodeAt(0):0,$={key:j,code:F,bubbles:!0,cancelable:!0,composed:!0,keyCode:q,which:q};m.dispatchEvent(new x("keydown",$)),m.dispatchEvent(new x("keypress",$)),m.dispatchEvent(new x("keyup",$))}}function wn(m,T,_){let I=ee(m,T),k=se(I,_).KeyboardEvent||KeyboardEvent,x={key:"Enter",code:"Enter",keyCode:13,which:13,bubbles:!0,cancelable:!0,composed:!0},S=m.dispatchEvent(new k("keydown",x)),j=m.dispatchEvent(new k("keypress",x)),F=m.dispatchEvent(new k("keyup",x));if(!!(S&&j&&F)){let $=m.form||m.closest?.("form");$?.requestSubmit?.()??$?.submit?.()}}function Qo(m){return{Enter:"Enter",Tab:"Tab",Escape:"Escape",Space:"Space"," ":"Space",ArrowUp:"ArrowUp",ArrowDown:"ArrowDown",ArrowLeft:"ArrowLeft",ArrowRight:"ArrowRight",Backspace:"Backspace",Delete:"Delete",Home:"Home",End:"End",PageUp:"PageUp",PageDown:"PageDown",F1:"F1",F2:"F2",F3:"F3",F4:"F4",F5:"F5",F6:"F6",F7:"F7",F8:"F8",F9:"F9",F10:"F10",F11:"F11",F12:"F12"}[m]||`Key${m.toUpperCase()}`}let mo=new MessageChannel,Jo=[];mo.port1.onmessage=()=>{let m=Jo.shift();m&&m()};function qn(){return new Promise(m=>{Jo.push(m),mo.port2.postMessage(0)})}function Wn(m){let T=I=>{if(!I)return null;let v=Object.keys(I);for(let k of v)if(k.startsWith("__reactFiber")||k.startsWith("__reactInternalInstance")||k.includes("reactFiber")||k.includes("reactProps")||k.includes("reactEventHandlers")||/^__r\d+/.test(k))return I[k];return null},_=m;for(let I=0;I<4&&_;I++){let v=T(_);if(v)return v;_=_.parentElement}return null}function mn(m){let T={},_=m,I=0;for(;_&&I++<10;){let v=[_.memoizedProps,_.pendingProps,_.stateNode?.props,_._memoizedProps,_._pendingProps,_.alternate?.memoizedProps].filter(Boolean);for(let k of v)if(!(!k||typeof k!="object"))for(let x in k)x.startsWith("on")&&typeof k[x]=="function"&&(T[x]=k[x]);if(Object.keys(T).length)break;_=_.return||_.alternate}return T}function mr(m,T){let _=m;for(;_;){if(_._reactRootContainer||_.__reactContainer||_.hasAttribute("data-reactroot")||_.hasAttribute("data-react-root")||["root","app","__next"].includes(_.id))return _;_=_.parentElement}return ee(m,T).querySelector("#root,#app,#__next,[data-reactroot],[data-react-root]")}function ro(m,T,_,I){let v=ee(T,_),k=se(v,I),x=k.MouseEvent||MouseEvent,S=T.getBoundingClientRect(),j=new x(m,{bubbles:!0,cancelable:!0,view:k,clientX:S.left+S.width/2,clientY:S.top+S.height/2});return{type:m,target:T,currentTarget:T,bubbles:!0,cancelable:!0,nativeEvent:j,isTrusted:!0,preventDefault(){j.preventDefault()},stopPropagation(){j.stopPropagation()}}}function pr(m){let T=m;if(T.__vue__)return T.__vue__;if(T.__vueParentComponent)return T.__vueParentComponent;if(T._vnode)return T._vnode;let _=m.parentElement;for(let I=0;I<3&&_;I++){let v=_;if(v.__vue__||v.__vueParentComponent||v._vnode)return v.__vue__||v.__vueParentComponent||v._vnode;_=_.parentElement}return null}function $n(m){let T={};if(m?.$listeners&&Object.assign(T,m.$listeners),m?._events)for(let _ in m._events){let I=m._events[_];T[_]=Array.isArray(I)?I[0]:I}if(m?.props)for(let _ in m.props)_.startsWith("on")&&typeof m.props[_]=="function"&&(T[_.substring(2).toLowerCase()]=m.props[_]);if(m?.vnode?.props)for(let _ in m.vnode.props)_.startsWith("on")&&typeof m.vnode.props[_]=="function"&&(T[_.substring(2).toLowerCase()]=m.vnode.props[_]);return T}})();function uh(){let e=window,t=e.__RTRVR_INTERNAL_KEY__||"__RTRVR_INTERNAL__";e[t]?.actions?.execute}async function dh(e){let t=window,n=t.__RTRVR_INTERNAL_KEY__||"__RTRVR_INTERNAL__",r=t[n]?.actions?.execute;if(typeof r!="function")throw new Error("Rover main-world action executor not initialized");return r(e)}function es(e,t,n={}){let{rootNodes:o,semanticNodes:r}=Gu(e,{includeFrameContents:n.includeFrames??!0,clearIframes:n.includeFrames??!0,frameContextLabel:n.frameContextLabel??null,signalProvider:t.signalProvider,disableDomAnnotations:n.disableDomAnnotations??!0}),a={};for(let i of Object.keys(r)){let s=Number(i);if(!Number.isFinite(s))continue;let c=Xi(s);c&&(a[s]=t.getFrameworkMetadata(c))}return{rootNodes:o,semanticNodes:r,elementMeta:a}}(()=>{let e="__rtrvr_scroll_detector",t="__RTRVR_SCROLL_API__",n="__RTRVR_INTERNAL__";if(window[e])return;class o{constructor(f=document,u=window){P(this,"doc");P(this,"win");P(this,"viewport");P(this,"lastDetectedPrimary",null);P(this,"detectionCache",new Map);P(this,"lastDetectionTime",0);P(this,"CACHE_TTL",5e3);this.doc=f,this.win=u,this.viewport={width:u.innerWidth,height:u.innerHeight},this.updateViewport()}getValidPrimary(){return this.lastDetectedPrimary&&!this.doc.contains(this.lastDetectedPrimary)&&(this.lastDetectedPrimary=null),this.lastDetectedPrimary}async handleCommand(f){switch(f.action){case"detectPrimary":{let u=this.detectPrimaryScrollable();if(!u)return null;let{target:b,isRoot:p}=this.getScrollContext(u.element),g=b.scrollHeight,y=Oo(),E=p&&y?y.innerHeight:b.clientHeight,R=Math.max(0,g-E),O=b.scrollTop;return{selector:u.selector,score:u.score,type:u.type,metrics:{scrollTop:O,scrollHeight:g,clientHeight:E,isAtTop:O<=5,isAtBottom:O>=R-5}}}case"scrollTo":if(!f.direction)throw new Error("scrollTo requires direction");return this.scrollToDirection(f.direction,f.options);case"scrollBy":if(!f.direction)throw new Error("scrollBy requires direction");return this.scrollByAmount(f.direction,f.options);case"scrollElement":if(!f.selector)throw new Error("scrollElement requires selector");return this.scrollElementIntoView(f.selector,f.position,f.options);case"getMetrics":return this.getScrollMetrics();default:throw new Error(`Unknown command: ${f.action}`)}}updateViewport(){this.viewport={width:this.win.innerWidth,height:this.win.innerHeight}}async execute(f){return this.handleCommand(f)}detectPrimaryScrollable(){if(Date.now()-this.lastDetectionTime<this.CACHE_TTL&&this.detectionCache.size>0){let p=Array.from(this.detectionCache.values()).sort((g,y)=>y.score-g.score)[0];if(p)return this.lastDetectedPrimary=p.element,p}this.updateViewport();let f=this.collectScrollableCandidates();if(f.length===0){let p=this.doc.scrollingElement||this.doc.documentElement||this.doc.body;if(!p)return null;let g=this.buildFeatures(p),y=ee(p,this.doc),E={element:p,selector:Va(p,y),score:.5,features:g,type:"document"};return this.detectionCache.clear(),this.detectionCache.set(E.selector,E),this.lastDetectionTime=Date.now(),this.lastDetectedPrimary=p,E}let u=this.scoreCandidates(f);if(u.length===0)return null;this.detectionCache.clear();for(let p of u)this.detectionCache.set(p.selector,p);this.lastDetectionTime=Date.now();let b=u[0];return b&&(this.lastDetectedPrimary=b.element),b||null}collectAllElementsDeep(f,u=15e4){let b=[],p=[],g=f.body||f.documentElement;g&&p.push(g);let y=0,E=R=>{try{let O=this.win.__RTRVR_INTERNAL_KEY__||"__RTRVR_INTERNAL__",H=this.win[O]?.shadow?.getRoot;if(typeof H=="function"){let N=H(R);if(N)return N}}catch{}try{return R.shadowRoot||null}catch{return null}};for(;p.length&&!(++y>u);){let R=p.pop();if(Kn(R)){let H=R.children;for(let N=H.length-1;N>=0;N--)p.push(H[N]);continue}let O=R,M=_e(O);Pt(O,M)&&b.push(O);try{let H=E(O);H&&p.push(H)}catch{}for(let H=O.lastElementChild;H;H=H.previousElementSibling)p.push(H)}return b}collectScrollableCandidates(){let f=[],u=new WeakSet,b=[this.doc.scrollingElement,this.doc.documentElement,this.doc.body];for(let g of b){if(!g||u.has(g))continue;let y=this.isScrollable(g);(y.vertical||y.horizontal)&&(f.push(g),u.add(g))}let p=this.collectAllElementsDeep(this.doc);for(let g of Array.from(p)){if(u.has(g))continue;let y=g.getBoundingClientRect(),E=this.win.getComputedStyle(g);if(!this.isElementRendered(g,y,E)||!this.isScrollable(g).vertical)continue;let O=40,M=this.viewport.width*.15;if(y.height<O||y.width<M){let H=(g.className||"").toLowerCase().includes("scroll"),N=E.overflowY==="auto"||E.overflowY==="scroll"||E.overflow==="auto"||E.overflow==="scroll";if(!H&&!N)continue}f.push(g),u.add(g)}return f}isElementRendered(f,u,b){if(b.display==="none"||b.visibility==="hidden")return!1;let p=parseFloat(b.opacity||"1");return!(!Number.isNaN(p)&&p<.01||u.width<=1||u.height<=1)}isScrollable(f){let u=this.win.getComputedStyle(f),b=u.overflowY,p=u.overflowX,g=this.doc.scrollingElement,y=f===this.doc.documentElement||f===this.doc.body||!!g&&f===g,E=f.scrollHeight,R=f.clientHeight,O=f.scrollWidth,M=f.clientWidth;if(y){let ve=this.doc.documentElement,we=this.doc.body;E=Math.max(ve?ve.scrollHeight:0,we?we.scrollHeight:0),R=this.win.innerHeight}let H=E-R>8,N=O-M>8,Y=b==="auto"||b==="scroll"||b==="overlay",ae=p==="auto"||p==="scroll"||p==="overlay";return{vertical:y?H:H&&Y,horizontal:y?N:N&&ae,byOverflow:Y||ae}}calculateVisibleIntersection(f){let u=Math.max(0,f.left),b=Math.max(0,f.top),p=Math.min(this.viewport.width,f.right),g=Math.min(this.viewport.height,f.bottom),y=Math.max(0,p-u),E=Math.max(0,g-b);return{width:y,height:E,area:y*E}}analyzeTextContent(f,u=2e3){let b=0,p=0,g=f.ownerDocument||this.doc,E=(g.defaultView||this.win).NodeFilter||NodeFilter,R=g.createTreeWalker(f,E.SHOW_ELEMENT|E.SHOW_TEXT,null),O=0,M=R.currentNode,H=[];for(;M&&O<u;){if(M.nodeType===Node.TEXT_NODE){let le=(M.textContent||"").replace(/\s+/g,"").length;if(le>0){b+=le;let Me=M.parentElement;Me&&Me.closest("a")&&(p+=le)}}else M.nodeType===Node.ELEMENT_NODE&&H.push(M);O++,M=R.nextNode()}let N=H.length||1,Y=b/N,ae=b>0?p/b:0;return{textChars:b,linkChars:p,textDensity:Y,linkDensity:ae}}calculateRepetitionScore(f){let u=Array.from(f.children);if(u.length<3)return 0;let b=u.slice(0,50),p=new Map,g=new Map,y=new Map;for(let re of b){let le=_e(re);if(!Pt(re,le))continue;let Me=re.getBoundingClientRect();if(Me.height<5||Me.width<this.viewport.width*.1)continue;let ve=Math.round(Me.height/10)*10,we=Math.round(Me.width/10)*10;p.set(ve,(p.get(ve)||0)+1),g.set(we,(g.get(we)||0)+1);let Ne=(re.className||re.tagName).toString();y.set(Ne,(y.get(Ne)||0)+1)}let E=b.length||1,R=Math.max(0,...p.values()),O=Math.max(0,...g.values()),M=Math.max(0,...y.values()),H=R/E,N=O/E,Y=M/E,ae=.4*H+.3*N+.3*Y;return Math.min(1,Math.max(0,ae))}calculateSemanticScore(f){let u=0,b=null,p=!1,g=(f.getAttribute("role")||"").toLowerCase(),y=f.tagName.toLowerCase(),E=(f.id||"").toLowerCase(),R=(f.className||"").toLowerCase(),O=`${g} ${y} ${E} ${R}`;return(y==="main"||g==="main")&&(u+=1.2,b="article"),y==="article"&&(u+=1,b=b||"article"),(g==="feed"||O.includes("feed"))&&(u+=1,b="feed"),(g==="log"||O.includes("chat")||O.includes("messages"))&&(u+=1,b="chat"),O.includes("content")&&(u+=.5),(O.includes("results")||O.includes("list"))&&(u+=.4),(O.includes("job")||O.includes("jobs"))&&(u+=.4),(y==="nav"||g==="navigation"||O.includes("sidebar"))&&(u-=1,p=!0),(y==="aside"||g==="complementary")&&(u-=.7,p=!0),(y==="footer"||g==="contentinfo"||O.includes("footer"))&&(u-=.8,p=!0),O.includes("header")&&(u-=.6),u=Math.max(-1,Math.min(1,u)),{semanticScore:u,typeHint:b,navLike:p}}detectScrollListeners(f){return[f.querySelector('[class*="infinite"]'),f.querySelector('[class*="load-more"]'),f.querySelector("[data-infinite]"),f.querySelector('[loading="lazy"]'),f.querySelector(".observer-target"),f.querySelector("[data-scroll]")].some(b=>b!==null)}buildFeatures(f){let u=f.getBoundingClientRect(),b=this.win.getComputedStyle(f),p=this.calculateVisibleIntersection(u),g=this.viewport.width*this.viewport.height||1,y=p.area/g,E=this.viewport.width>0?p.width/this.viewport.width:0,R=u.top+u.height/2,O=this.viewport.height/2||1,M=Math.min(1,Math.abs(R-O)/O),H=this.isScrollable(f),N=this.doc.scrollingElement,Y=f===this.doc.documentElement||f===this.doc.body||!!N&&f===N,ae=f.scrollHeight,re=f.clientHeight;if(Y){let Ge=this.doc.documentElement,zt=this.doc.body;ae=Math.max(Ge?Ge.scrollHeight:0,zt?zt.scrollHeight:0),re=this.win.innerHeight}let le=Math.max(0,ae-re),Me=le*p.width,ve=this.analyzeTextContent(f),we=this.calculateRepetitionScore(f),Ne=this.calculateSemanticScore(f),ft=f.contains(this.doc.activeElement),Ae=this.detectScrollListeners(f),lt=parseInt(b.zIndex||"0",10),Xe=Number.isFinite(lt)?lt:0;return{geometry:{viewportCoverage:y,widthProminence:E,centerDistance:M,scrollCapacity:le,scrollSurface:Me,zIndex:Xe},content:{textDensity:ve.textDensity,linkDensity:ve.linkDensity,repetitionScore:we,semanticScore:Ne.semanticScore},interaction:{hasScrollListeners:Ae,hasFocus:ft,recentActivity:ft?1:0}}}inferElementType(f,u,b,p){if(b)return b;let g=(f.getAttribute("role")||"").toLowerCase(),y=(f.className||"").toLowerCase(),E=f.tagName.toLowerCase(),R=u.geometry,O=u.content;if(g==="log"||y.includes("chat")||y.includes("messages"))return"chat";let M=this.win.getComputedStyle(f);if((M.position==="fixed"||M.position==="absolute")&&R.zIndex>100&&R.viewportCoverage>.2&&R.centerDistance<.4)return"modal";if(g==="feed"||O.repetitionScore>.3&&R.scrollCapacity>400&&R.widthProminence>=.25)return"feed";if(E==="article"||O.textDensity>40&&O.linkDensity<.4&&R.widthProminence>.4)return"article";if(p||R.widthProminence<.3&&O.linkDensity>.3)return"sidebar";let N=this.doc.scrollingElement;return f===this.doc.documentElement||f===this.doc.body||N&&f===N?"document":"unknown"}scoreCandidates(f){let u=[],b=[],p=[],g=[],y=[],E=[];for(let Y of f){let ae=this.buildFeatures(Y),re=ae.content.semanticScore,le=this.calculateSemanticScore(Y),Me=this.inferElementType(Y,ae,le.typeHint,le.navLike);E.push({element:Y,features:{geometry:{...ae.geometry},content:{...ae.content,semanticScore:le.semanticScore},interaction:ae.interaction},type:Me,navLike:le.navLike,semanticScore:le.semanticScore}),b.push(ae.geometry.scrollSurface),p.push(ae.content.textDensity),g.push(Math.abs(le.semanticScore)),y.push(ae.content.repetitionScore)}let R=Math.max(0,...b),O=Math.max(0,...p),M=Math.max(0,...g),H=Math.max(0,...y),N=-1/0;for(let Y of E){let{element:ae,features:re,type:le,navLike:Me,semanticScore:ve}=Y,we=re.geometry,Ne=re.content,ft=re.interaction,Ae=R>0?we.scrollSurface/R:0,lt=O>0?Ne.textDensity/O:0,Xe=M>0?(ve/M+1)/2:.5,Ge=le==="feed"||Ne.repetitionScore>.3&&we.scrollCapacity>400,zt=Ne.linkDensity>.5?(Ne.linkDensity-.5)/.5:0,St=Ge?0:zt,Rn=(Ge?1:.5)*Ne.repetitionScore*Math.min(1,we.scrollCapacity/4e3),Gt={feed:.2,chat:.2,article:.08,modal:.08,document:.05,sidebar:-.12,unknown:0}[le]||0,ut=0;ut+=we.viewportCoverage*.18,ut+=we.widthProminence*.15,ut+=(1-we.centerDistance)*.07,ut+=Ae*.22,ut+=Rn*.18,ut+=lt*.08,ut+=(H>0?Ne.repetitionScore/H:0)*.05,ut+=Xe*.07,ut-=St*.05,ft.hasFocus&&(ut+=.05),ft.hasScrollListeners&&(ut+=.05),ut+=Gt,Me&&(ut-=.05);let jt=Math.max(0,Math.min(1,ut));jt>N&&(N=jt),u.push({element:ae,selector:Va(ae,ee(ae)),score:jt,features:re,type:le})}if(u.sort((Y,ae)=>ae.score-Y.score),u.length>=2){let Y=u[0],ae=u[1];Math.abs(Y.score-ae.score)<.08&&Y.type==="article"&&ae.type==="feed"&&(u[0]=ae,u[1]=Y)}return u}getScrollContext(f){let u=document.scrollingElement;return f===document.documentElement||f===document.body||!!u&&f===u?{target:u||document.documentElement||document.body,isRoot:!0}:{target:f,isRoot:!1}}async scrollToDirection(f,u){let b=this.getValidPrimary()||this.detectPrimaryScrollable()?.element;if(!b)return{success:!1,error:"No scrollable element found"};let{target:p,isRoot:g}=this.getScrollContext(b),y=ee(p),E=se(y),R=u?.isTabActive??!y.hidden,O=u?.behavior,M=R&&O==="smooth",H=g?Math.max(y.documentElement?y.documentElement.scrollHeight:0,y.body?y.body.scrollHeight:0):p.scrollHeight,N=g?E.innerHeight:p.clientHeight,Y=Math.max(0,H-N),ae=()=>g?E.scrollY:p.scrollTop,re=le=>{if(M)try{g?E.scrollTo({top:le,behavior:"smooth"}):p.scrollTo({top:le,behavior:"smooth"})}catch{g?(y.scrollingElement||y.documentElement||y.body).scrollTop=le:p.scrollTop=le}else if(g){let Me=y.scrollingElement||y.documentElement||y.body;Me.scrollTop=le}else p.scrollTop=le};switch(f){case _t.TOP:return re(0),{success:!0,scrollTop:0,isAtTop:!0};case _t.BOTTOM:return re(Y),{success:!0,scrollTop:Y,isAtBottom:!0};default:return{success:!1,error:`Unknown direction: ${f}`}}}async scrollByAmount(f,u){let b=this.getValidPrimary()||this.detectPrimaryScrollable()?.element;if(!b)return{success:!1,error:"No scrollable element found"};let{target:p,isRoot:g}=this.getScrollContext(b),y=u?.isTabActive??!document.hidden,E=u?.behavior,R=y&&E==="smooth",O=Oo(),M=g&&O?O.innerHeight:p.clientHeight,H=g&&O?O.innerWidth:p.clientWidth,N=u?.amount??M*.8,Y=g?Math.max(document.documentElement?document.documentElement.scrollHeight:0,document.body?document.body.scrollHeight:0):p.scrollHeight,ae=g&&O?O.innerHeight:p.clientHeight,re=Math.max(0,Y-ae),le=ve=>{if(R)try{g?O?.scrollTo({top:ve,behavior:"smooth"}):p.scrollTo({top:ve,behavior:"smooth"})}catch{let we=document.scrollingElement||document.documentElement||document.body;we.scrollTop=ve}else{let we=g?document.scrollingElement||document.documentElement||document.body:p;we.scrollTop=ve}},Me=ve=>{if(R)try{p.scrollBy({left:ve,behavior:"smooth"})}catch{p.scrollLeft+=ve}else p.scrollLeft+=ve};switch(f){case _t.DOWN:{let we=(g&&O?O.scrollY:p.scrollTop)+N;le(we);let Ne=g&&O?O.scrollY:p.scrollTop;return{success:!0,scrollTop:Ne,isAtTop:Ne<=5,isAtBottom:Ne>=re-5}}case _t.UP:{let ve=g&&O?O.scrollY:p.scrollTop,we=Math.max(0,ve-N);le(we);let Ne=g&&O?O.scrollY:p.scrollTop;return{success:!0,scrollTop:Ne,isAtTop:Ne<=5,isAtBottom:Ne>=re-5}}case _t.LEFT:{let ve=-(u?.amount??H*.8);return Me(ve),{success:!0,scrollLeft:p.scrollLeft}}case _t.RIGHT:{let ve=u?.amount??H*.8;return Me(ve),{success:!0,scrollLeft:p.scrollLeft}}default:return{success:!1,error:`Unknown direction: ${f}`}}}normalizeScrollPosition(f){switch(f){case sn.START:return"start";case sn.END:return"end";case sn.NEAREST:return"nearest";case sn.CENTER:default:return"center"}}getScrollContainerForElement(f){let u=document.scrollingElement,b=f;for(;b&&b!==document.body&&b!==document.documentElement;){let y=getComputedStyle(b).overflowY,E=y==="auto"||y==="scroll"||y==="overlay",R=b.scrollHeight-b.clientHeight>8;if(E&&R)return{container:b,isRoot:!1};b=b.parentElement}return{container:u||document.documentElement||document.body,isRoot:!0}}scrollElementIntoView(f,u,b){let p=document.querySelector(f);if(!p)return{success:!1,error:`Element not found for selector: ${f}`};let{container:g,isRoot:y}=this.getScrollContainerForElement(p),E=_e(g),R=E?.DOMRect||DOMRect,O=y?new R(0,0,E.innerWidth??0,E.innerHeight??0):g.getBoundingClientRect(),M=p.getBoundingClientRect(),H=24,N=M.top>=O.top+H&&M.bottom<=O.bottom-H,Y=b?.isTabActive??!document.hidden,ae=b?.behavior,re=Y&&ae==="smooth",le=this.normalizeScrollPosition(u);if(u===sn.NEAREST&&N)return{success:!0,alreadyVisible:!0,...this.getScrollMetricsForContainer(g,y)};try{p.scrollIntoView({behavior:re?"smooth":"auto",block:le,inline:"nearest"})}catch{p.scrollIntoView()}let Me=this.getScrollMetricsForContainer(g,y);return{success:!0,position:le,...Me}}getScrollMetricsForContainer(f,u){let b=u?Math.max(document.documentElement?document.documentElement.scrollHeight:0,document.body?document.body.scrollHeight:0):f.scrollHeight,p=ee(f),g=_e(f),y=u&&g?g.innerHeight:f.clientHeight,E=Math.max(0,b-y),O=(u?p.scrollingElement||p.documentElement||p.body:f).scrollTop;return{scrollTop:O,scrollHeight:b,clientHeight:y,maxScroll:E,isAtTop:O<=5,isAtBottom:O>=E-5,scrollPercentage:E>0?O/E*100:0}}getScrollMetrics(){let f=this.getValidPrimary()||this.detectPrimaryScrollable()?.element;if(!f)return null;let{target:u,isRoot:b}=this.getScrollContext(f),p=ee(u),g=se(p),y=b?Math.max(p.documentElement?p.documentElement.scrollHeight:0,p.body?p.body.scrollHeight:0):u.scrollHeight,E=b?g.innerHeight:u.clientHeight,R=Math.max(0,y-E),M=(b?p.scrollingElement||p.documentElement||p.body:u).scrollTop;return{element:Va(u,p),scrollTop:M,scrollHeight:y,clientHeight:E,maxScroll:R,isAtTop:M<=5,isAtBottom:M>=R-5,scrollPercentage:R>0?M/R*100:0}}}let r=new o;window[e]=r;let a={execute:d=>r.execute(d)};try{Object.defineProperty(window,t,{value:a,writable:!1,configurable:!1,enumerable:!1})}catch{try{window[t]=a}catch{}}let i=window.__RTRVR_INTERNAL_KEY__||n,s=window[i],c=s&&typeof s=="object"?s:null;if(c){try{c.scroll=c.scroll||a}catch{}try{c.scroll||Object.defineProperty(c,"scroll",{value:a,writable:!1,configurable:!1,enumerable:!1})}catch{}}if(i!==n)try{!window[n]&&c&&Object.defineProperty(window,n,{value:c,writable:!1,configurable:!1,enumerable:!1})}catch{}})();var hw=/\[id=(\d+)\]/,Ht;(function(e){e.HTML="html",e.PDF="pdf",e.GOOGLE_DOC="google_doc",e.GOOGLE_SHEET="google_sheet",e.PLAIN_TEXT="plain_text"})(Ht||(Ht={}));var gw=20,Ga=new Map;function bw(e,t){if(Ga.size>=gw&&!Ga.has(e)){let n=Ga.keys().next().value;n!==void 0&&Ga.delete(n)}Ga.set(e,t)}var kw=24,yw=220,vw=0,ww=250,xw=2,Tw=300,_w=new Set(["BODY","DIV","SPAN","IMG","PICTURE","SVG"]),Ew=new Set(["A","BUTTON","INPUT","SELECT","TEXTAREA","H1","H2","H3","H4","H5","H6","MAIN","NAV","HEADER","FOOTER","ARTICLE","SECTION","ASIDE"]);function Iw(e){let t={};for(let n of Object.keys(e)){let o=e[Number(n)],r=o?.preservedAttributes?.[On["rtrvr-label"]],a=o?.resourceLocator;if(typeof r=="string"&&typeof a=="string"){let i=r.match(hw);if(i?.[1]){let s=Number(i[1]);Number.isFinite(s)&&(t[s]=a)}}}return t}async function yh(e,t,n={}){let o=e.ownerDocument||document,r=n.pageConfig||ja,a=String(o.contentType||"").trim().toLowerCase(),i=Mw(a,o),s=Cw(i.documentType,a),c={url:o.URL,title:o.title,contentType:s},d=Aw(r),f=Sw(r);if(i.documentType!==Ht.HTML){let ae=Number(r?.pageDataTimeoutMs),re=Number.isFinite(ae)?Math.max(200,Math.floor(ae)):9e3,le=Math.max(200,Math.min(re,Ut(d))),Me=Ow(o,i.documentType,r,d),ve=await $a(Me,le,o);if(!ve.ok)return{...c,content:"",error:`non_html_timeout:${s}`,metadata:{extractionMethod:"timeout"}};let we=ve.value||{},Ne=i.documentType===Ht.GOOGLE_SHEET?dx(o):void 0;return{...c,...we,contentType:we.contentType||c.contentType,sheetInfo:we.sheetInfo||Ne}}if(r?.onlyTextContent)return{...c,contentType:qa,content:ts(o)};let u=Math.max(0,Math.min(1e3,Ut(d))),b=performance.now(),p=!1;if(!r?.disableAutoScroll&&u>80){let ae=o.hidden?200:400,re=Math.min(ae,u);re>80&&(p=await cx(o,{profile:"light",timeBudgetMs:re,delayMs:o.hidden?0:160,finalWaitMs:o.hidden?0:200}))}let g=Math.max(0,u-(performance.now()-b));g>60&&await fh(o,{...f,deadlineEpochMs:d,totalBudgetMs:g});let y=Math.max(0,u-(performance.now()-b));y>80&&await ux(o,{mode:"full",totalBudgetMs:Math.min(o.hidden?300:400,y),budgetMs:Math.min(o.hidden?200:300,y),maxPasses:o.hidden?1:2});let E=es(e,t,{includeFrames:n.includeFrames??!0,disableDomAnnotations:n.disableDomAnnotations??!0}),R="normal",O=0,M=0,H=[],N=Math.max(0,f.sparseTreeRetryMaxAttempts)>0,Y=ph(o,E.rootNodes,E.semanticNodes);if(Y.needsStabilization){H=[...Y.reasons],R="suspicious_unrecovered";let ae=N?Math.max(0,Math.min(Tw,Ut(d)-20)):0;if(ae>20){let re=Date.now();await fh(o,{...f,retries:0,deadlineEpochMs:d,totalBudgetMs:ae}),M=Date.now()-re,O=1,E=es(e,t,{includeFrames:n.includeFrames??!0,disableDomAnnotations:n.disableDomAnnotations??!0});let le=ph(o,E.rootNodes,E.semanticNodes);le.reasons.length>0&&(H=[...le.reasons]),!le.needsStabilization&&!mh(E.rootNodes,E.semanticNodes)&&(R="suspicious_recovered")}}return mh(E.rootNodes,E.semanticNodes)?{...c,contentType:qa,content:ts(o),metadata:{scrollingPerformed:p,extractionMethod:"empty_tree_fallback",treeCapture:{status:R,attempts:O,waitedMs:M,reasons:H}}}:{...c,contentType:qa,roots:E.rootNodes,nodes:E.semanticNodes,elementLinkRecord:Iw(E.semanticNodes),metadata:{scrollingPerformed:p,extractionMethod:R!=="normal"?R:void 0,treeCapture:{status:R,attempts:O,waitedMs:M,reasons:H}}}}function Sw(e){let t=Number(e?.adaptiveSettleDebounceMs),n=Number(e?.adaptiveSettleMaxWaitMs),o=Number(e?.adaptiveSettleRetries),r=Number(e?.sparseTreeRetryDelayMs),a=Number(e?.sparseTreeRetryMaxAttempts);return{debounceMs:Number.isFinite(t)?Math.max(8,Math.min(500,Math.floor(t))):kw,maxWaitMs:Number.isFinite(n)?Math.max(80,Math.min(5e3,Math.floor(n))):yw,retries:Number.isFinite(o)?Math.max(0,Math.min(6,Math.floor(o))):vw,sparseTreeRetryDelayMs:Number.isFinite(r)?Math.max(20,Math.min(1e3,Math.floor(r))):ww,sparseTreeRetryMaxAttempts:Number.isFinite(a)?Math.max(0,Math.min(4,Math.floor(a))):xw}}async function fh(e,t){let n=Ut(t.deadlineEpochMs);if(n<=20)return;let o=Math.max(20,Math.min(Math.floor(t.totalBudgetMs),n)),r=Date.now()+o,a=0;for(;a<=t.retries&&Ut(r)>20;){let i=Math.max(40,Math.min(t.maxWaitMs,Ut(r)));if(await Rw(e,{debounceMs:t.debounceMs,windowBudgetMs:i,deadlineEpochMs:r}))return;a+=1}}async function Rw(e,t){let n=e.documentElement;if(!n||typeof MutationObserver>"u")return!0;let o=Date.now(),r=new MutationObserver(()=>{o=Date.now()});try{r.observe(n,{subtree:!0,childList:!0,attributes:!0,characterData:!0})}catch{return!0}let a=Date.now()+Math.max(40,Math.floor(t.windowBudgetMs));try{for(;Ut(t.deadlineEpochMs)>20&&Ut(a)>20;){let i=Date.now()-o;if(i>=t.debounceMs)return!0;let s=Math.max(10,Math.min(60,t.debounceMs-i,Ut(t.deadlineEpochMs),Ut(a)));await Wt(s,e)}}finally{r.disconnect()}return!1}function Aw(e){let t=Number(e?.deadlineEpochMs);if(Number.isFinite(t)&&t>0)return t;let n=Number(e?.totalBudgetMs),o=Number.isFinite(n)?Math.max(1500,Math.floor(n)):9e3;return Date.now()+o}function Cw(e,t){switch(e){case Ht.PDF:return Yu;case Ht.GOOGLE_DOC:return Zu;case Ht.GOOGLE_SHEET:return Qu;case Ht.PLAIN_TEXT:return $c;case Ht.HTML:default:return t||qa}}function Mw(e,t){let n=e||String(t.contentType||"").toLowerCase();return eh(n)?{documentType:Ht.PDF}:Nw(t)&&(Dw(t)||Lw(t.URL))?{documentType:Ht.PDF}:Gw(t)?{documentType:Ht.GOOGLE_DOC}:Kw(t)?{documentType:Ht.GOOGLE_SHEET}:n.includes($c)?{documentType:Ht.PLAIN_TEXT}:{documentType:Ht.HTML}}function Nw(e){try{let t=Fw(e);return ed(t)?!0:!!t.querySelector?.('object[type="application/pdf"],object[type="application/x-google-chrome-pdf"]')}catch{return!1}}function Lw(e){try{return e?e.toLowerCase().includes(".pdf")?!0:(new URL(e).searchParams.get("file")||"").toLowerCase().includes(".pdf"):!1}catch{return String(e||"").toLowerCase().includes(".pdf")}}function Dw(e){try{let t=e.body;return!t||t.querySelectorAll('embed[type="application/pdf"],embed[type="application/x-google-chrome-pdf"],object[type="application/pdf"],object[type="application/x-google-chrome-pdf"]').length===0||(t.innerText||"").trim().length>40?!1:Array.from(t.children).filter(a=>!["SCRIPT","STYLE"].includes(String(a.tagName).toUpperCase())).length<=3}catch{return!1}}async function Ow(e,t,n,o){switch(t){case Ht.PDF:return Pw(e,n,o);case Ht.GOOGLE_DOC:return Bw(e);case Ht.GOOGLE_SHEET:return ax(e,n);case Ht.PLAIN_TEXT:return{content:ts(e),contentType:$c};case Ht.HTML:default:return{content:ts(e),contentType:qa}}}async function Pw(e,t,n){Ut(n)>Xu+50&&await th(Xu,e,n);let r=(()=>{let f=Number(t?.pdfTextSelectionTimeoutMs),u=ja.pdfTextSelectionTimeoutMs;return Number.isFinite(f)?Math.max(150,Math.floor(f)):u})(),a=Ut(n),s=Number.isFinite(a)?Math.max(150,Math.min(r,Math.max(0,a-150))):r,c=await jw(e,s),d=!!c.success&&!!(c.data||"").trim();return{content:d&&c.data||"",contentType:Yu,error:d?void 0:`pdf_extraction_failed:${c.reason||"unknown"}`}}async function Bw(e){return{content:rx(),contentType:Zu}}function mh(e,t){return!Array.isArray(e)||e.length===0||!t||Object.keys(t).length===0}function Uw(e){return!!(e.documentElement?.hasAttribute(Qr)||e.body?.hasAttribute(Qr)||e.body?.getAttribute?.("aria-busy")==="true")}function Hw(e,t,n){let o=Array.isArray(t)?t.length:0,r=n&&typeof n=="object"?Object.keys(n).length:0,a=r?Object.values(n):[],i=0,s=0;for(let c of a){let d=String(c?.elementName||c?.elementTag||"").trim().toUpperCase();(String(c?.textContent||c?.computedName||c?.computedDescription||"").trim().length>=2||Ew.has(d))&&(s+=1),_w.has(d)&&(i+=1)}return{rootsCount:o,semanticCount:r,meaningfulNodeCount:s,genericNodeRatio:r>0?i/r:1,visibleTextLength:0,isDocumentComplete:e.readyState==="complete",busy:Uw(e)}}function ph(e,t,n){let o=Hw(e,t,n),r=0;!(o.rootsCount>0&&o.semanticCount>0&&o.isDocumentComplete&&!o.busy&&o.meaningfulNodeCount>=2)&&o.semanticCount>0&&o.semanticCount<=6&&(o.meaningfulNodeCount>=1||o.genericNodeRatio>=.8)&&(r=ts(e).trim().length);let s={...o,visibleTextLength:r},c=s.rootsCount>0&&s.semanticCount>0&&s.isDocumentComplete&&!s.busy&&(s.meaningfulNodeCount>=2||s.semanticCount<=6&&s.meaningfulNodeCount>=1&&s.visibleTextLength<160),d=[];return(s.rootsCount===0||s.semanticCount===0)&&d.push("empty_tree"),s.semanticCount>0&&s.semanticCount<=4&&s.meaningfulNodeCount===0&&d.push("generic_shell"),s.semanticCount<=6&&s.meaningfulNodeCount<=1&&s.genericNodeRatio>=.8&&s.visibleTextLength>=80&&(d.includes("generic_shell")||d.push("generic_shell"),d.push("text_semantic_mismatch")),(!s.isDocumentComplete||s.busy)&&s.semanticCount<=8&&s.meaningfulNodeCount<=1&&d.push("dom_not_ready"),{proceedImmediately:c,needsStabilization:!c&&d.length>0,reasons:d,signals:s}}function ts(e){return e.body?.innerText||e.body?.textContent||e.documentElement?.innerText||e.documentElement?.textContent||""}function Fw(e){try{let t=e.defaultView||window,n=t.__RTRVR_INTERNAL_KEY__||"__RTRVR_INTERNAL__",r=t[n]?.shadow?.getRoot;if(typeof r=="function"){let a=r(e.body||e.documentElement);if(a)return a}}catch{}return e}function zw(e){let t=e.URL||"";try{let n=new URL(t),o=n.searchParams.get("file")||n.searchParams.get("src")||"";return o||t}catch{return t}}async function jw(e,t){let n=Number.isFinite(t)&&t>0?Math.floor(t):ja.pdfTextSelectionTimeoutMs,o=zw(e),r=Ga.get(o)??"";if(r.trim().length>0)return{success:!0,data:r,reason:"ok"};let a=await qw(e,n);return a.success&&a.data.trim()&&bw(o,a.data),a}async function qw(e,t){let n=e.defaultView||window,o=Ww(e);if(!o||typeof o.postMessage!="function")return{success:!1,data:"",reason:"no_viewer"};let r=globalThis.crypto&&"randomUUID"in globalThis.crypto?globalThis.crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`,a=!1,i="",s=f=>{if(a||!$w(String(f.origin||""),e))return;let u=f.data;Vw(u,r)&&typeof u.selectedText=="string"&&u.selectedText.trim().length>0&&(i=u.selectedText,a=!0)};n.addEventListener("message",s);try{o.postMessage({type:"selectAll",requestId:r},"*")}catch{}let c=Date.now();for(;!a&&Date.now()-c<t;){try{o.postMessage({type:"getSelectedText",requestId:r},"*")}catch{}if(await Wt(200,e),i.trim()){a=!0;break}}return n.removeEventListener("message",s),i.trim()?{success:!0,data:i,reason:"ok"}:{success:!1,data:"",reason:Date.now()-c>=t?"timeout":"no_response"}}function Ww(e){let t=ed(e)||e.querySelector?.('object[type="application/pdf"],object[type="application/x-google-chrome-pdf"]');if(t&&typeof t.postMessage=="function")return t;let n=e.querySelector?.('iframe[type="application/pdf"]');return n?.contentWindow?n.contentWindow:null}function $w(e,t){let n=(e||"").toLowerCase();if(!n||n==="null"||n.startsWith("chrome-extension://")||n.startsWith("chrome://")||n.startsWith("chrome-untrusted://"))return!0;try{let o=new URL(t.URL||"").origin.toLowerCase();if(o&&n===o)return!0}catch{}return!1}function Vw(e,t){return!(!e||typeof e!="object"||e.type!=="getSelectedTextReply"||typeof e.selectedText!="string"||e.requestId&&e.requestId!==t)}function Gw(e){try{let t=e.defaultView||Oo();if(t?.location.hostname==="docs.google.com"&&t?.location.pathname.startsWith("/document/d/"))return!0}catch{}try{if(e.querySelector('iframe[src^="https://docs.google.com/document/d/"]'))return!0}catch{}return Ka(e)!==null}function Kw(e){let n=(e.defaultView||Oo())?.location.href??"";return/^https:\/\/docs\.google\.com\/spreadsheets\/(?:u\/\d+\/)?d\/[a-zA-Z0-9_-]+/.test(n)}function Xw(e){try{return e.defaultView?.top?.document??e}catch{return e}}function Qc(e){let t=[e],n=Xw(e);return n!==e&&t.push(n),t}var Yw=".docs-texteventtarget-iframe",Qw=".kix-cursor",Jw=".docos-replyview-body",Zw=".docos-replyview",ex=".docos-author",vh="\u200B",tx="\xA0";function Ka(e){for(let t of Qc(e)){let n=t.querySelector(Yw);if(n)return n}return null}function nx(e){for(let t of Qc(e)){let n=t.querySelector(Qw);if(n)return n}return null}function Kc(e){let t=nx(e);return t?(t.ownerDocument?.defaultView?.getComputedStyle(t).display??t.style.display)==="none":!1}function Xc(e,t){let n=Ka(e);if(!n)return;let o=t?"ArrowUp":"ArrowDown",a={key:o,keyCode:t?38:40,altKey:!0,shiftKey:!0,code:o,bubbles:!0,cancelable:!0},i=n.contentDocument,s=n.contentWindow;if(!i)return;let c=s?.KeyboardEvent||KeyboardEvent;i.dispatchEvent(new c("keydown",a))}function hh(e){let t=Ka(e);if(!t)return;let n={key:"ArrowLeft",keyCode:37,code:"ArrowLeft",bubbles:!0,cancelable:!0},o=t.contentDocument,r=t.contentWindow;if(!o)return;let a=r?.KeyboardEvent||KeyboardEvent;o.dispatchEvent(new a("keydown",n))}function ox(e){let t=Ka(e);if(!t)return;let o=(typeof navigator<"u"?String(navigator.platform||""):"").toUpperCase().indexOf("MAC")>=0,r={key:"a",code:"KeyA",ctrlKey:!o,metaKey:o,bubbles:!0,cancelable:!0},a=t.contentDocument,i=t.contentWindow;if(!a)return;let s=i?.KeyboardEvent||KeyboardEvent;a.dispatchEvent(new s("keydown",r))}function Yc(e){let t=Ka(e);if(!t)return"";let n=t.contentDocument,o=t.contentWindow,r=n?.body;if(!n||!r)return"";try{let s=o?.ClipboardEvent||ClipboardEvent,c=new s("copy",{bubbles:!0,cancelable:!0});r.firstChild?.dispatchEvent?.(c),r.firstChild?.dispatchEvent||r.dispatchEvent(c)}catch{}let a=r.innerText||r.textContent||"";return String(a).replace(new RegExp(vh,"g"),"")??""}function ad(e){let t=`
2
+ "use strict";var __roverSDK=(()=>{var gc=Object.defineProperty;var By=Object.getOwnPropertyDescriptor;var Uy=Object.getOwnPropertyNames;var Hy=Object.prototype.hasOwnProperty;var Fy=(e,t,n)=>t in e?gc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var zy=(e,t)=>{for(var n in t)gc(e,n,{get:t[n],enumerable:!0})},jy=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Uy(t))!Hy.call(e,r)&&r!==n&&gc(e,r,{get:()=>t[r],enumerable:!(o=By(t,r))||o.enumerable});return e};var qy=e=>jy(gc({},"__esModule",{value:!0}),e);var P=(e,t,n)=>Fy(e,typeof t!="symbol"?t+"":t,n);var RS={};zy(RS,{__roverInternalsForTests:()=>SS,attachLaunch:()=>mm,boot:()=>Xs,close:()=>ku,createRoverBookmarklet:()=>Vg,createRoverConsoleSnippet:()=>Wg,createRoverScriptTagSnippet:()=>Gg,endTask:()=>yu,getState:()=>gm,hide:()=>dm,identify:()=>cm,init:()=>lm,installGlobal:()=>oy,newTask:()=>sc,open:()=>mo,readRoverScriptDataAttributes:()=>Hd,registerPromptContextProvider:()=>hm,registerTool:()=>bm,requestSigned:()=>pm,send:()=>fm,show:()=>um,shutdown:()=>au,update:()=>ru});var z;(function(e){e.click_element="click_element",e.type_into_element="type_into_element",e.type_and_enter="type_and_enter",e.select_dropdown_value="select_dropdown_value",e.clear_element="clear_element",e.focus_element="focus_element",e.check_field_validity="check_field_validity",e.select_text="select_text",e.hover_element="hover_element",e.right_click_element="right_click_element",e.double_click_element="double_click_element",e.press_key="press_key",e.mouse_wheel="mouse_wheel",e.dispatch_pointer_path="dispatch_pointer_path",e.drag_element="drag_element",e.drag_and_drop="drag_and_drop",e.adjust_slider="adjust_slider",e.scroll_page="scroll_page",e.scroll_to_element="scroll_to_element",e.swipe_element="swipe_element",e.long_press_element="long_press_element",e.pinch_zoom="pinch_zoom",e.go_back="go_back",e.go_forward="go_forward",e.goto_url="goto_url",e.refresh_page="refresh_page",e.open_new_tab="open_new_tab",e.switch_tab="switch_tab",e.close_tab="close_tab",e.describe_images="describe_images",e.google_search="google_search",e.network_run_recipe="network_run_recipe",e.rover_external_read_context="rover_external_read_context",e.rover_external_act_context="rover_external_act_context",e.copy_text="copy_text",e.paste_text="paste_text",e.wait_action="wait_action",e.wait_for_element="wait_for_element",e.answer_task="answer_task",e.upload_file="upload_file",e.solve_captcha="solve_captcha"})(z||(z={}));var NS=new Set(Object.values(z)),bc=["element_id","source_element_id","target_element_id","center_element_id","element_ids"],$y=40;function Um(e){let t=Array.isArray(e?.element_ids)?e.element_ids:e?.element_id!=null?[e.element_id]:[];return Array.from(new Set(t.map(o=>Math.trunc(Number(o))))).filter(o=>Number.isFinite(o)&&o>0).slice(0,$y)}var Kn;(function(e){e[e.Unknown=0]="Unknown",e[e.React=1]="React",e[e.Vue=2]="Vue",e[e.Angular=3]="Angular",e[e.Svelte=4]="Svelte",e[e.JQuery=5]="JQuery"})(Kn||(Kn={}));var Hm={[Kn.Unknown]:"unknown",[Kn.React]:"react",[Kn.Vue]:"vue",[Kn.Angular]:"angular",[Kn.Svelte]:"svelte",[Kn.JQuery]:"jquery"},Au={react:Kn.React,vue:Kn.Vue,angular:Kn.Angular,svelte:Kn.Svelte,jquery:Kn.JQuery},Ot;(function(e){e[e.Other=0]="Other",e[e.Inline=1]="Inline",e[e.Delegated=2]="Delegated",e[e.React=3]="React",e[e.Vue=4]="Vue",e[e.Angular=5]="Angular",e[e.Svelte=6]="Svelte",e[e.JQuery=7]="JQuery",e[e.Native=8]="Native"})(Ot||(Ot={}));var OS={[Ot.Other]:"other",[Ot.Inline]:"inline",[Ot.Delegated]:"delegated",[Ot.React]:"react",[Ot.Vue]:"vue",[Ot.Angular]:"angular",[Ot.Svelte]:"svelte",[Ot.JQuery]:"jquery",[Ot.Native]:"native"},PS={inline:Ot.Inline,delegated:Ot.Delegated,react:Ot.React,vue:Ot.Vue,angular:Ot.Angular,svelte:Ot.Svelte,jquery:Ot.JQuery,other:Ot.Other,native:Ot.Native},Le;(function(e){e[e.click_element=1]="click_element",e[e.type_into_element=2]="type_into_element",e[e.type_and_enter=3]="type_and_enter",e[e.select_dropdown_value=4]="select_dropdown_value",e[e.clear_element=5]="clear_element",e[e.focus_element=6]="focus_element",e[e.hover_element=7]="hover_element",e[e.right_click_element=8]="right_click_element",e[e.double_click_element=9]="double_click_element",e[e.long_press_element=10]="long_press_element",e[e.drag_element=11]="drag_element",e[e.drag_and_drop=12]="drag_and_drop",e[e.swipe_element=13]="swipe_element",e[e.adjust_slider=14]="adjust_slider",e[e.describe_images=15]="describe_images",e[e.scroll_to_element=16]="scroll_to_element",e[e.paste_text=17]="paste_text",e[e.check_field_validity=18]="check_field_validity",e[e.select_text=19]="select_text",e[e.mouse_wheel=20]="mouse_wheel",e[e.copy_text=21]="copy_text",e[e.upload_file=22]="upload_file",e[e.go_back=23]="go_back",e[e.go_forward=24]="go_forward",e[e.refresh_page=25]="refresh_page",e[e.press_key=26]="press_key",e[e.scroll_page=27]="scroll_page",e[e.wait_action=28]="wait_action",e[e.wait_for_element=29]="wait_for_element",e[e.pinch_zoom=30]="pinch_zoom",e[e.goto_url=31]="goto_url",e[e.google_search=32]="google_search",e[e.open_new_tab=33]="open_new_tab",e[e.switch_tab=34]="switch_tab",e[e.close_tab=35]="close_tab",e[e.solve_captcha=36]="solve_captcha",e[e.answer_task=37]="answer_task",e[e.dispatch_pointer_path=38]="dispatch_pointer_path",e[e.network_run_recipe=40]="network_run_recipe",e[e.rover_external_read_context=41]="rover_external_read_context",e[e.rover_external_act_context=42]="rover_external_act_context"})(Le||(Le={}));var kc={[z.click_element]:Le.click_element,[z.type_into_element]:Le.type_into_element,[z.type_and_enter]:Le.type_and_enter,[z.select_dropdown_value]:Le.select_dropdown_value,[z.clear_element]:Le.clear_element,[z.focus_element]:Le.focus_element,[z.hover_element]:Le.hover_element,[z.right_click_element]:Le.right_click_element,[z.double_click_element]:Le.double_click_element,[z.long_press_element]:Le.long_press_element,[z.drag_element]:Le.drag_element,[z.drag_and_drop]:Le.drag_and_drop,[z.swipe_element]:Le.swipe_element,[z.adjust_slider]:Le.adjust_slider,[z.describe_images]:Le.describe_images,[z.scroll_to_element]:Le.scroll_to_element,[z.paste_text]:Le.paste_text,[z.check_field_validity]:Le.check_field_validity,[z.select_text]:Le.select_text,[z.mouse_wheel]:Le.mouse_wheel,[z.copy_text]:Le.copy_text,[z.upload_file]:Le.upload_file,[z.go_back]:Le.go_back,[z.go_forward]:Le.go_forward,[z.refresh_page]:Le.refresh_page,[z.press_key]:Le.press_key,[z.scroll_page]:Le.scroll_page,[z.wait_action]:Le.wait_action,[z.wait_for_element]:Le.wait_for_element,[z.pinch_zoom]:Le.pinch_zoom,[z.goto_url]:Le.goto_url,[z.google_search]:Le.google_search,[z.open_new_tab]:Le.open_new_tab,[z.switch_tab]:Le.switch_tab,[z.close_tab]:Le.close_tab,[z.solve_captcha]:Le.solve_captcha,[z.answer_task]:Le.answer_task,[z.dispatch_pointer_path]:Le.dispatch_pointer_path,[z.network_run_recipe]:Le.network_run_recipe,[z.rover_external_read_context]:Le.rover_external_read_context,[z.rover_external_act_context]:Le.rover_external_act_context},Fm=Object.fromEntries(Object.entries(kc).map(([e,t])=>[t,e]));function yc(e){let t=[];return e&&(e&1&&t.push("native"),e&2&&t.push("inline"),e&4&&t.push("react"),e&8&&t.push("vue"),e&16&&t.push("angular"),e&32&&t.push("svelte"),e&64&&t.push("jquery"),e&128&&t.push("delegated"),e&256&&t.push("other")),t}var jm={semanticIdStart:1,interactiveIdStart:1,includeFrameContents:!0,clearIframes:!0,frameContextLabel:null,signalProvider:null,disableDomAnnotations:!1},xn={...jm},wc=globalThis;function qm(e){xn={...jm,...e||{}}}function Yr(){return xn.signalProvider??null}function xt(){try{return typeof wc.document<"u"?wc.document:null}catch{return null}}function Bo(){try{return typeof wc.window<"u"?wc.window:null}catch{return null}}function ee(e,t){if(e&&typeof e=="object"){let n=e.ownerDocument;if(n)return n;if(e.nodeType===9)return e}return t??xt()??{}}function _e(e,t){return ee(e,t?t.document:null)?.defaultView??t??Bo()??{}}function se(e,t){return e?.defaultView??t??Bo()??{}}function xc(e,t){try{return e?.getElementById?.(t)??null}catch{return null}}function Tc(e,t){try{return e?.querySelector?.(t)??null}catch{return null}}function Cu(e,t){try{return Array.from(e?.querySelectorAll?.(t)??[])}catch{return[]}}function zi(e){try{return e.contentDocument||(e.contentWindow?.document??null)}catch{return null}}function _c(e,t){let n=e.CSS?.escape;return typeof n=="function"?n(t):t.replace(/([^\w-])/g,"\\$1")}function Xn(e,t){try{return e[t]}catch{return}}function Uo(e,t){return!!e&&String(e.tagName||"").toUpperCase()===t.toUpperCase()}function $m(e,t){let n=Xn(t,"HTMLAnchorElement");return n?e instanceof n:Uo(e,"A")}function so(e,t){let n=Xn(t,"HTMLInputElement");return n?e instanceof n:Uo(e,"INPUT")}function yo(e,t){let n=Xn(t,"HTMLTextAreaElement");return n?e instanceof n:Uo(e,"TEXTAREA")}function Wm(e,t){let n=Xn(t,"HTMLLabelElement");return n?e instanceof n:Uo(e,"LABEL")}function Vm(e,t){let n=Xn(t,"HTMLSelectElement");return n?e instanceof n:Uo(e,"SELECT")}function Gm(e,t){let n=Xn(t,"HTMLSlotElement");return n?e instanceof n:Uo(e,"SLOT")}function Km(e,t){let n=Xn(t,"HTMLButtonElement");return n?e instanceof n:Uo(e,"BUTTON")}function Xm(e,t){let n=Xn(t,"HTMLImageElement");return n?e instanceof n:Uo(e,"IMG")}function Ym(e,t){let n=Xn(t,"HTMLVideoElement");return n?e instanceof n:Uo(e,"VIDEO")}function Qm(e,t){let n=Xn(t,"HTMLCanvasElement");return n?e instanceof n:Uo(e,"CANVAS")}function Pt(e,t){if(!e||e.nodeType!==1)return!1;let n=Xn(t,"HTMLElement");return n?e instanceof n:typeof e.tagName=="string"}function Yn(e){return!!e&&e.nodeType===11&&typeof e.host=="object"&&typeof e.mode=="string"}function Qr(e){if(!e||e.nodeType!==1)return!1;let t=ee(e),o=se(t).Element;return o?e instanceof o:typeof e.tagName=="string"}function ji(e){if(!e||e.nodeType!==1)return!1;let t=ee(e),o=se(t).HTMLIFrameElement;return o&&e instanceof o?!0:String(e.tagName||"").toUpperCase()==="IFRAME"}function Wy(e,t){if(!e)return!1;if(e.nodeType===9)return!0;let n=Xn(t,"Document");return n?e instanceof n:!1}function Vy(e,t){if(!e)return!1;let n=Xn(t,"Window");if(n)return e instanceof n;try{return e.window===e}catch{return!1}}function Ic(e){try{return e.document}catch{return null}}function Ec(e,t){if(Wy(e,t))try{return e.documentElement}catch{return null}if(Vy(e,t)){let n=Ic(e);if(!n)return null;try{return n.documentElement}catch{return null}}return null}function vc(e){if(!e)return null;if(typeof e=="string")return e;if(typeof e=="object"&&typeof e.baseVal=="string")return e.baseVal;try{return String(e)}catch{return null}}function zm(e,t,n){try{let o=ee(t,n);return new URL(e,o.baseURI).href}catch{return e}}function Sc(e,t){let n=e.tagName.includes("-"),o=e.getAttribute("href")||e.getAttribute("src")||e.getAttribute("data")||e.getAttribute("action");if(o){let r=zm(o,e,t);return r.trim().toLowerCase().startsWith("javascript:")?null:r}if(n)return null;try{let r=e,a=vc(r.href)||vc(r.src)||vc(r.data)||vc(r.action);return a?zm(a,e,t):null}catch{return null}}var Jm=["click","dblclick","doubleclick","mousedown","mouseup","mouseenter","mouseleave","mousemove","mouseover","mouseout","contextmenu","auxclick","keydown","keyup","keypress","input","change","submit","reset","select","search","invalid","beforeinput","focus","blur","focusin","focusout","touchstart","touchend","touchmove","touchcancel","pointerdown","pointerup","pointermove","pointerenter","pointerleave","pointercancel","pointerover","dragstart","dragend","drag","dragenter","dragleave","dragover","drop","copy","cut","paste","scroll","wheel","play","pause","ended","volumechange","seeking","seeked","animationstart","animationend","transitionend","transitionstart","resize","toggle","fullscreenchange","load","error","abort","beforeunload","unload","hashchange","popstate","storage","message"],Ke={};Jm.forEach((e,t)=>{Ke[e]=t});var nr={};Jm.forEach((e,t)=>{nr[t]=e});function Jr(e){if(!e)return null;let t=e.trim();if(!t||!t.includes("~"))return null;let n=[];for(let o of t.split(",")){if(!o)continue;let[r,a]=o.split("~"),i=Number(r);if(!Number.isFinite(i))continue;let s=a&&parseInt(a,36)||0;n.push({id:i,mask:s})}return n.length?{entries:n}:null}function Gy(e){let t=Jr(e);if(t){let n=new Set;for(let{id:o}of t.entries)n.add(o);return[...n]}return[]}function qi(e){return Pa(e).map(n=>nr[n]).filter(n=>!!n)}function Pa(e){let t=Yr();if(t?.getEventHandlerIds)try{let r=t.getEventHandlerIds(e);if(r&&r.length)return r}catch{}let n=e.getAttribute(_r),o=Gy(n);return!o||o.length===0?[]:o}var Mu=["media"],Zm=new Set(Mu),Nu=["alert","alertdialog","application","directory","feed","grid","log","marquee","menu","menubar","menuitem","menuitemcheckbox","menuitemradio","note","radiogroup","scrollbar","search","switch","tab","tablist","tabpanel","timer","toolbar","tooltip","tree","treegrid","treeitem"];var ep=new Set(Nu),or=new Set(["button","checkbox","combobox","figure","img","link","listbox","option","radio","scrollbar","searchbox","separator","slider","spinbutton","switch","tab","tabpanel","textbox","tooltip","treeitem","grid","gridcell","table","cell","columnheader","rowheader","menu","menubar","menuitem","menuitemcheckbox","menuitemradio","tree","treegrid","radiogroup","application","dialog","alertdialog","alert","status","progressbar","meter","search","code","media"]),$i=new Set(["group","region","section","banner","contentinfo","main","navigation","complementary","form","article","document","presentation","none"]);var tp=["none","presentation"],je;(function(e){e[e.ANCESTOR_ROLE_REQUIRED=6]="ANCESTOR_ROLE_REQUIRED",e[e.PROPERTY_VALUE_MATCH=5]="PROPERTY_VALUE_MATCH",e[e.HAS_TABLE_ROW_DATA=7]="HAS_TABLE_ROW_DATA",e[e.BOOLEAN_PROPERTY=0]="BOOLEAN_PROPERTY",e[e.ATTRIBUTE_GREATER_THAN=2]="ATTRIBUTE_GREATER_THAN",e[e.HAS_TABLE_COLUMN_DATA=8]="HAS_TABLE_COLUMN_DATA",e[e.FORBIDDEN_ANCESTORS=1]="FORBIDDEN_ANCESTORS",e[e.HAS_ACCESSIBLE_NAME=4]="HAS_ACCESSIBLE_NAME",e[e.ATTRIBUTE_LESS_THAN=3]="ATTRIBUTE_LESS_THAN"})(je||(je={}));var np={a:["link"],area:["link"],article:["article"],aside:["complementary"],body:["document"],button:["button"],datalist:["listbox"],dd:["definition"],details:["group"],dfn:["term"],dialog:["dialog"],dt:["term"],fieldset:["group"],figure:["figure"],footer:["contentinfo"],form:["form"],h1:["heading"],h2:["heading"],h3:["heading"],h4:["heading"],h5:["heading"],h6:["heading"],header:["banner"],hr:["separator"],img:["img"],input:["button","checkbox","combobox","radio","searchbox","slider","spinbutton","textbox"],li:["listitem"],link:["link"],main:["main"],math:["math"],menu:["list"],nav:["navigation"],ol:["list"],optgroup:["group"],option:["option"],output:["status"],progress:["progressbar"],section:["region"],select:["combobox","listbox"],summary:["button"],table:["table"],tbody:["rowgroup"],td:["cell","gridcell"],textarea:["textbox"],tfoot:["rowgroup"],th:["cell","columnheader","gridcell","rowheader"],thead:["rowgroup"],tr:["row"],ul:["list"],code:["code"],pre:["code"]},Wi={heading:{selector:"h6,h1,h3,h2,h5,h4"},checkbox:{conditionalSelectors:[{selector:"input",conditions:[{type:je.PROPERTY_VALUE_MATCH,property:"type",values:["checkbox"]}]}]},navigation:{selector:"nav"},row:{selector:"tr"},complementary:{selector:"aside"},table:{selector:"table"},gridcell:{conditionalSelectors:[{selector:"td",conditions:[{type:je.ANCESTOR_ROLE_REQUIRED,tag:"table",role:"grid"}]},{selector:"td",conditions:[{type:je.ANCESTOR_ROLE_REQUIRED,tag:"table",role:"treegrid"}]},{selector:'th:not([scope="rowgroup"]):not([scope="row"]):not([scope="colgroup"]):not([scope="col"])',conditions:[{type:je.ANCESTOR_ROLE_REQUIRED,tag:"table",role:"treegrid"},{type:je.HAS_TABLE_COLUMN_DATA,hasData:!0},{type:je.HAS_TABLE_ROW_DATA,hasData:!0}]}]},slider:{conditionalSelectors:[{selector:"input",conditions:[{type:je.PROPERTY_VALUE_MATCH,property:"type",values:["range"]}]}]},listitem:{selector:"li"},contentinfo:{conditionalSelectors:[{selector:"footer",conditions:[{type:je.FORBIDDEN_ANCESTORS,selector:'section,nav,main,aside,article,[role="region"],[role="navigation"],[role="main"],[role="complementary"],[role="article"]'}]}]},definition:{selector:"dd"},button:{selector:"summary,button",conditionalSelectors:[{selector:"input",conditions:[{type:je.PROPERTY_VALUE_MATCH,property:"type",values:["submit","reset","image","button"]}]}]},status:{selector:"output"},form:{conditionalSelectors:[{selector:"form",conditions:[{type:je.HAS_ACCESSIBLE_NAME}]}]},article:{selector:"article"},textbox:{selector:"textarea",conditionalSelectors:[{selector:"input:not([list])",conditions:[{type:je.PROPERTY_VALUE_MATCH,property:"type",values:["url","text","tel","email"]}]}]},radio:{conditionalSelectors:[{selector:"input",conditions:[{type:je.PROPERTY_VALUE_MATCH,property:"type",values:["radio"]}]}]},columnheader:{selector:'th[scope="colgroup"],th[scope="col"]',conditionalSelectors:[{selector:'th:not([scope="rowgroup"]):not([scope="row"]):not([scope="colgroup"]):not([scope="col"])',conditions:[{type:je.HAS_TABLE_ROW_DATA,hasData:!1}]}]},list:{selector:"ul,ol,menu"},region:{conditionalSelectors:[{selector:"section",conditions:[{type:je.HAS_ACCESSIBLE_NAME}]}]},document:{selector:"body"},option:{selector:"select > option,select > optgroup > option,datalist > option"},separator:{selector:"hr"},link:{selector:"area[href],a[href],link[href]"},img:{selector:"img[alt],img:not([alt])"},main:{selector:"main"},searchbox:{conditionalSelectors:[{selector:"input:not([list])",conditions:[{type:je.PROPERTY_VALUE_MATCH,property:"type",values:["search"]}]}]},cell:{conditionalSelectors:[{selector:"td",conditions:[{type:je.ANCESTOR_ROLE_REQUIRED,tag:"table",role:"table"}]},{selector:'th:not([scope="rowgroup"]):not([scope="row"]):not([scope="colgroup"]):not([scope="col"])',conditions:[{type:je.ANCESTOR_ROLE_REQUIRED,tag:"table",role:"table"},{type:je.HAS_TABLE_COLUMN_DATA,hasData:!0},{type:je.HAS_TABLE_ROW_DATA,hasData:!0}]}]},rowheader:{selector:'th[scope="rowgroup"],th[scope="row"]',conditionalSelectors:[{selector:'th:not([scope="rowgroup"]):not([scope="row"]):not([scope="colgroup"]):not([scope="col"])',conditions:[{type:je.HAS_TABLE_COLUMN_DATA,hasData:!1},{type:je.HAS_TABLE_ROW_DATA,hasData:!0}]}]},dialog:{selector:"dialog"},listbox:{selector:"select[multiple],datalist",conditionalSelectors:[{selector:"select",conditions:[{type:je.ATTRIBUTE_GREATER_THAN,attribute:"size",value:1}]}]},group:{selector:"optgroup,fieldset,details"},term:{selector:"dt,dfn"},progressbar:{selector:"progress"},figure:{selector:"figure"},spinbutton:{conditionalSelectors:[{selector:"input",conditions:[{type:je.PROPERTY_VALUE_MATCH,property:"type",values:["number"]}]}]},math:{selector:"math"},combobox:{selector:"select:not([size]):not([multiple])",conditionalSelectors:[{selector:"select:not([multiple])",conditions:[{type:je.ATTRIBUTE_LESS_THAN,attribute:"size",value:2}]},{selector:"input[list]",conditions:[{type:je.PROPERTY_VALUE_MATCH,property:"type",values:["url","text","tel","search","email"]}]}]},banner:{conditionalSelectors:[{selector:"header",conditions:[{type:je.FORBIDDEN_ANCESTORS,selector:'[role="region"],[role="navigation"],[role="main"],[role="complementary"],[role="article"],section,nav,main,aside,article'}]}]},rowgroup:{selector:"thead,tfoot,tbody"},code:{selector:"code,pre"}},_r="rtrvr-ls",rr="rtrvr-ro",Lu="rtrvr-mw-ready",Zr="rtrvr-mw-busy",Du="rtrvr-mwa-ready",op=new Set(["button","cell","checkbox","columnheader","gridcell","heading","link","menuitem","menuitemcheckbox","menuitemradio","option","radio","row","rowgroup","rowheader","switch","tab","tooltip","tree","treeitem","sectionhead","definition","term","deletion","insertion"]),rp=["BUTTON","INPUT","METER","OUTPUT","PROGRESS","SELECT","TEXTAREA"],ap=["h1","h2","h3","h4","h5","h6"],ip="http://www.w3.org/1999/xhtml",sp="http://www.w3.org/2000/svg",hn="rtrvr-label";var Cc=new Set(["NOSCRIPT","SCRIPT","STYLE","META"]),ea="CODE",ta="PRE",cp="aria-hidden",lp="target";var Rc;(function(e){e[e.value=0]="value",e[e.alt=1]="alt",e[e.list=2]="list",e[e.title=3]="title"})(Rc||(Rc={}));var Ba;(function(e){e[e["data-icon"]=13]="data-icon",e[e["data-name"]=14]="data-name",e[e["data-tooltip"]=15]="data-tooltip",e[e["data-label"]=16]="data-label"})(Ba||(Ba={}));var Ac;(function(e){e[e.VALUENOW=0]="VALUENOW",e[e.VALUETEXT=1]="VALUETEXT"})(Ac||(Ac={}));var Ou=new Set([Ke.click,Ke.dblclick,Ke.doubleclick,Ke.contextmenu,Ke.auxclick,Ke.pointerdown,Ke.pointerup,Ke.mousedown,Ke.mouseup,Ke.touchstart,Ke.touchend,Ke.keydown,Ke.keyup,Ke.input,Ke.beforeinput,Ke.change,Ke.submit,Ke.reset,Ke.paste,Ke.dragstart,Ke.dragend,Ke.drop]),up=new Set([...Ou,Ke.scroll,Ke.wheel,Ke.mouseenter,Ke.mouseover,Ke.focus,Ke.blur,Ke.focusin,Ke.focusout]),Mc=new Set(["click","dblclick","auxclick","contextmenu","mousedown","mouseup","pointerdown","pointerup","touchstart","touchend"]),Pu=new Set(["input","change","beforeinput","keydown","keyup","keypress","paste","compositionstart","compositionend"]),Bu=new Set(["drag","dragstart","dragend","dragenter","dragleave","dragover","drop"]);var Ir;(function(e){e[e.ELEMENT=1]="ELEMENT",e[e.ATTRIBUTE=2]="ATTRIBUTE",e[e.TEXT=3]="TEXT",e[e.CDATA_SECTION=4]="CDATA_SECTION",e[e.ENTITY_REFERENCE=5]="ENTITY_REFERENCE",e[e.ENTITY=6]="ENTITY",e[e.PROCESSING_INSTRUCTION=7]="PROCESSING_INSTRUCTION",e[e.COMMENT=8]="COMMENT",e[e.DOCUMENT=9]="DOCUMENT",e[e.DOCUMENT_TYPE=10]="DOCUMENT_TYPE",e[e.DOCUMENT_FRAGMENT=11]="DOCUMENT_FRAGMENT",e[e.NOTATION=12]="NOTATION"})(Ir||(Ir={}));var Vi;(function(e){e[e.HTML=0]="HTML",e[e.SVG=1]="SVG"})(Vi||(Vi={}));var Nc;(function(e){e[e.VALUENOW=0]="VALUENOW",e[e.VALUETEXT=1]="VALUETEXT",e[e.ATOMIC=2]="ATOMIC",e[e.AUTOCOMPLETE=3]="AUTOCOMPLETE",e[e.COLCOUNT=4]="COLCOUNT",e[e.COLINDEX=5]="COLINDEX",e[e.COLSPAN=6]="COLSPAN",e[e.ERRORMESSAGE=7]="ERRORMESSAGE",e[e.HASPOPUP=8]="HASPOPUP",e[e.LEVEL=9]="LEVEL",e[e.LIVE=10]="LIVE",e[e.MULTILINE=11]="MULTILINE",e[e.MULTISELECTABLE=12]="MULTISELECTABLE",e[e.ORIENTATION=13]="ORIENTATION",e[e.PLACEHOLDER=14]="PLACEHOLDER",e[e.POSINSET=15]="POSINSET",e[e.READONLY=16]="READONLY",e[e.RELEVANT=17]="RELEVANT",e[e.REQUIRED=18]="REQUIRED",e[e.ROWCOUNT=19]="ROWCOUNT",e[e.ROWINDEX=20]="ROWINDEX",e[e.ROWSPAN=21]="ROWSPAN",e[e.SETSIZE=22]="SETSIZE",e[e.SORT=23]="SORT",e[e.VALUEMAX=24]="VALUEMAX",e[e.VALUEMIN=25]="VALUEMIN",e[e.KEYSHORTCUTS=26]="KEYSHORTCUTS",e[e.ROLEDESCRIPTION=27]="ROLEDESCRIPTION"})(Nc||(Nc={}));var Lc;(function(e){e[e.BUSY=0]="BUSY",e[e.CHECKED=1]="CHECKED",e[e.CURRENT=2]="CURRENT",e[e.EXPANDED=3]="EXPANDED",e[e.INVALID=4]="INVALID",e[e.PRESSED=5]="PRESSED",e[e.SELECTED=6]="SELECTED"})(Lc||(Lc={}));var Pn;(function(e){e[e["rtrvr-label"]=0]="rtrvr-label",e[e.role=1]="role",e[e.value=2]="value",e[e.alt=3]="alt",e[e.list=4]="list",e[e.title=5]="title",e[e["aria-label"]=6]="aria-label",e[e["aria-labelledby"]=7]="aria-labelledby",e[e["aria-description"]=8]="aria-description",e[e["aria-describedby"]=9]="aria-describedby",e[e.disabled=10]="disabled",e[e.href=11]="href",e[e.placeholder=12]="placeholder",e[e.type=13]="type",e[e.tabindex=14]="tabindex",e[e.id=15]="id",e[e._ngcontent=16]="_ngcontent",e[e["ng-reflect-*"]=17]="ng-reflect-*",e[e["data-reactroot"]=18]="data-reactroot",e[e["data-v-*"]=19]="data-v-*",e[e.required=20]="required",e[e.contenteditable=21]="contenteditable",e[e.accept=22]="accept"})(Pn||(Pn={}));var an;(function(e){e[e.display=0]="display",e[e.content=1]="content",e[e.beforeDisplay=2]="beforeDisplay",e[e.afterDisplay=3]="afterDisplay",e[e.beforeContent=4]="beforeContent",e[e.afterContent=5]="afterContent",e[e.width=6]="width",e[e.height=7]="height",e[e.minWidth=8]="minWidth",e[e.minHeight=9]="minHeight",e[e.position=10]="position",e[e.top=11]="top",e[e.left=12]="left",e[e.right=13]="right",e[e.bottom=14]="bottom",e[e.paddingTop=15]="paddingTop",e[e.paddingRight=16]="paddingRight",e[e.paddingBottom=17]="paddingBottom",e[e.paddingLeft=18]="paddingLeft",e[e.marginTop=19]="marginTop",e[e.marginRight=20]="marginRight",e[e.marginBottom=21]="marginBottom",e[e.marginLeft=22]="marginLeft",e[e.cursor=23]="cursor",e[e.opacity=24]="opacity",e[e.visibility=25]="visibility",e[e.overflowX=26]="overflowX",e[e.overflowY=27]="overflowY",e[e.backgroundColor=28]="backgroundColor",e[e.color=29]="color",e[e.borderWidth=30]="borderWidth",e[e.borderStyle=31]="borderStyle",e[e.boxShadow=32]="boxShadow",e[e.outline=33]="outline"})(an||(an={}));var ar;(function(e){e[e.text=0]="text",e[e.elText=1]="elText",e[e.viewBox=2]="viewBox",e[e.paths=3]="paths",e[e.pathData=4]="pathData",e[e.circles=5]="circles",e[e.rects=6]="rects",e[e.lines=7]="lines",e[e.polygons=8]="polygons",e[e.polylines=9]="polylines",e[e.ellipses=10]="ellipses"})(ar||(ar={}));var Ky=[...Nu,...Object.keys(Wi),...Mu],dp=[...new Set(Ky)],Ua={};dp.forEach((e,t)=>{Ua[e]=t});var Gi={};dp.forEach((e,t)=>{Gi[t]=e});var Dc=class{constructor(t=1){P(this,"currentId");this.currentId=t}generateId(){let t=this.currentId;return this.currentId++,t}initialize(t=1){this.currentId=t}getCurrentValue(){return this.currentId}};function Ki(e){let t=Yr();if(t?.getRoleHint)try{let r=t.getRoleHint(e);if(r)return r}catch{}let n=e.getAttribute(rr);if(!n)return null;let o=n.trim();if(!o)return null;if(o.startsWith("s:"))return o.slice(2);if(/^\d+$/.test(o)){let r=Number(o);if(Number.isFinite(r)){let a=Gi[r];if(a)return a}}return o}function Ha(e){return Array.from(new Set(e))}function fp(e,t){if(!e||e.length===0)return Ha(t);let n=new Set([...e,...t]);return Ha(Array.from(n))}function Qn(e,t){let o=Yr()?.getEventHandlerIds?.(e)??Pa(e),r=o.length>0&&o.some(s=>Ou.has(s)),a=Oc(e),i=t?$i.has(t):!1;return{element:e,semanticRole:t,eventHandlerIndices:o,isEditableRegion:a,hasNodeWorthyHandlers:r,isLikelyStructuralContainer:i}}var Xy=new Set(["text","search","url","tel","password","email","number","date","datetime-local","time","month","week","color"]);function Yy(e){let n=_e(e).getComputedStyle(e);if(n.display==="none"||n.visibility==="hidden"||n.pointerEvents==="none")return!1;let o=e.getBoundingClientRect();return!(o.width===0||o.height===0)}function Qy(e){let t=_e(e);if(!so(e,t))return!1;let n=(e.type||"text").toLowerCase();return Xy.has(n)?!e.disabled&&!e.readOnly:!1}function Jy(e){let t=_e(e);return yo(e,t)&&!e.disabled&&!e.readOnly}function Zy(e){let t=e;return!(!t.isContentEditable||t.getAttribute("aria-readonly")==="true"||t.getAttribute("aria-disabled")==="true")}function Oc(e){return!e||!Yy(e)?!1:!!(Qy(e)||Jy(e)||Zy(e))}function Xi(e){if(!e)return null;let t=e.match(/^\s*\[id=(\d+)\]/);if(t?.[1]){let r=parseInt(t[1],10);return Number.isFinite(r)?r:null}let n=/\[id=(\d+)\]/g,o;for(;o=n.exec(e);){let r=o.index??0,a=e.slice(Math.max(0,r-30),r);if(/iframeRoot\s*=\s*$/.test(a)||a.includes("iframeRoot="))continue;let i=parseInt(o[1],10);if(Number.isFinite(i))return i}try{let r=e.match(LABEL_ID_PATTERN);if(r?.[1]){let a=parseInt(r[1],10);return Number.isFinite(a)?a:null}}catch{}return null}function Yi(e){let t=String(e??"").replace(/[\n\r\t]/g," ").replace(/\s+/g," ").trim();return t=t.replace(/\[/g,"&#91;").replace(/\]/g,"&#93;"),t}function mp({element:e,elementID:t,frameContextLabel:n}){let o=!xn.disableDomAnnotations,r=[`[id=${t}]`],a=_e(e);if(ji(e)){let c=Yi(e.id||e.getAttribute("name")||"unnamed");r.push(`[iframe=${c}]`)}if(n){let c=Yi(n);r.push(`[iframeRoot=${c}]`)}if(Xm(e,a)&&r.push(`[size=${e.clientWidth}x${e.clientHeight}]`),(Ym(e,a)||Qm(e,a))&&r.push(`[size=${e.clientWidth}x${e.clientHeight}]`),so(e,a)||yo(e,a)){let c=ev(e);r.push(...c)}e.getAttribute(cp)==="true"&&r.push("[aria-hidden=true]"),e.disabled&&r.push("[disabled]"),o&&$m(e,a)&&e.setAttribute(lp,"_self");let s=r.join(" ");return o&&e.setAttribute(hn,s),s}function ev(e){let t=[],n=_e(e),o=so(e,n);if(o&&e.type&&e.type!=="text"&&t.push(`[type=${e.type}]`),e.name){let r=Yi(e.name);r&&t.push(`[name=${r}]`)}if(o&&e.multiple&&t.push("[multiple]"),o&&(e.type==="checkbox"||e.type==="radio")&&t.push(`[checked=${e.checked}]`),o&&e.type==="file"&&e.files?.length&&t.push(`[files=${e.files.length}]`),o&&e.type==="number"&&(e.min!==""&&t.push(`[min=${e.min}]`),e.max!==""&&t.push(`[max=${e.max}]`),e.step!==""&&e.step!=="1"&&t.push(`[step=${e.step}]`)),o&&e.type==="range"&&(t.push(`[min=${e.min||"0"}]`),t.push(`[max=${e.max||"100"}]`),t.push(`[value=${e.value}]`)),e.readOnly&&t.push("[readonly]"),e.required&&t.push("[required]"),e.maxLength&&e.maxLength!==-1&&e.maxLength<524288&&t.push(`[maxlength=${e.maxLength}]`),o&&e.pattern&&t.push("[pattern]"),e.autocomplete&&e.autocomplete!=="off"&&t.push(`[autocomplete=${e.autocomplete}]`),e.placeholder){let r=Yi(e.placeholder).replace(/\\/g,"\\\\").replace(/"/g,'\\"');r&&t.push(`[placeholder="${r}"]`)}if(e.value){let r=e.value;o&&e.type==="password"&&(r="*".repeat(Math.min(r.length,10)));let a=Yi(r).replace(/\\/g,"\\\\").replace(/"/g,'\\"');t.push(`[value="${a}"]`)}return t}var na=new Dc,Uu=new WeakMap;function pp(){Uu=new WeakMap}function Pc(e){let t=Uu.get(e);if(t)return t;let n=na.generateId();return Uu.set(e,n),n}var Bc=new Map,Hu=new WeakMap;function hp(){Bc.clear(),Hu=new WeakMap}function Fu(e,t){try{typeof WeakRef<"u"?Bc.set(e,new WeakRef(t)):Bc.set(e,t)}catch{}}function Qi(e){let t=Bc.get(e);if(!t)return null;let n=t instanceof WeakRef?t.deref():t;return!n||n.isConnected===!1?null:n}function Er(e){let t=null,n=Pc(e);if(xn.frameContextLabel)t=xn.frameContextLabel;else{let r=xt();if(r&&e.ownerDocument!==r)try{let i=e.ownerDocument?.defaultView?.frameElement?.getAttribute(hn)||"",s=i?Xi(i):null;t=s?String(s):null}catch{t=""}}let o=mp({element:e,elementID:n,frameContextLabel:t});if(Fu(n,e),o)try{Hu.set(e,o)}catch{}return o}function gp(e){return Hu.get(e)??null}function zu(e,t){try{e.querySelectorAll?.(`[${hn}]`)?.forEach(o=>o.removeAttribute(hn))}catch{}if(t.includeShadow)try{let n=e.querySelectorAll?.("*");if(n)for(let o of Array.from(n))try{let r=o.shadowRoot;r&&zu(r,t)}catch{}}catch{}if(t.includeIframes)try{let n=e.querySelectorAll?.("iframe");if(n)for(let o of Array.from(n))try{let r=zi(o);r?.body&&zu(r.body,t)}catch{}}catch{}}function bp(e,t={}){if(xn.disableDomAnnotations)return;let n=Qr(e)?_e(e):se(e)??window,o=Ec(e,n)??e;if(o){try{o.removeAttribute?.(hn)}catch{}zu(o,{includeShadow:t.includeShadow??!0,includeIframes:t.includeIframes??!0})}}var Ho={},ju=new WeakMap,Uc=new WeakSet;function kp(){Ho={},ju=new WeakMap,Uc=new WeakSet,pp()}function gn({targetElement:e,parentDisabled:t,semanticRole:n,excludeLabels:o,isFrameNode:r,frameContentNodes:a,originatedFromParent:i,elementContext:s}){let c=Pc(e);Fu(c,e);let d=Ho[c];if(i){if(!d){let f={nodeCategory:e.nodeType,provisionalFromParent:!0},u=e.nodeName;u&&u.trim()&&(f.elementName=u);let b=e.getAttribute("role");b&&(f.preservedAttributes={1:b});let p=e.tagName;p&&(f.elementTag=p),Ho[c]=f}}else{if(d&&!d.provisionalFromParent){if((r||Fa(e))&&(d.isFrameElement=!0,a&&a.length>0&&(d.frameContent=a)),s){let{eventHandlerIndices:f,isEditableRegion:u}=s;if(f&&f.length>0){let b=Ha(f);b.length>0&&(d.eventHandlers=fp(d.eventHandlers,b))}u&&(d.isEditable=!0)}return c}if(Uc.has(e))return c;Uc.add(e);try{Ho[c]=yp({targetElement:e,parentDisabled:t,semanticRole:n,excludeLabels:o,isFrameNode:r,frameContentNodes:a,elementContext:s})}finally{Uc.delete(e)}}return c}function Ji(e){let t=ju.get(e);if(t!==void 0)return t;let o=(e.textContent||"").replace(/\s+/g," ").trim(),r=e.data?.replace(/\s+/g," ").trim();if(!o&&!r)return 0;let a=na.generateId(),i={textContent:o,nodeCategory:e.nodeType};return r&&r!==o&&(i.rawData=r),Ho[a]=i,ju.set(e,a),a}function wp(e,t){let n=Tp(e),{minY:o,maxY:r}=n.getCellBounds(t);return n.getRows().slice(o,r+1).some(a=>a.some(Zi))}function xp(e,t){let n=Tp(e),{minX:o,maxX:r}=n.getCellBounds(t);return n.getRows().some(a=>a.slice(o,r+1).some(Zi))}var Fc=class{constructor(t=[]){P(this,"cells");P(this,"getCellAt",(t,n)=>this.getRowAt(n)[t]);P(this,"setCellAt",(t,n,o)=>{this.getRowAt(n)[t]=o});P(this,"getRowAt",t=>(this.cells[t]===void 0&&(this.cells[t]=[]),this.cells[t]));P(this,"getRows",()=>this.cells);P(this,"getCellBounds",t=>{let n=this.columnCount,o=this.rowCount,r=-1,a=-1;for(let i=0;i<this.rowCount;i++){let s=this.getRowAt(i),c=s.indexOf(t);c!==-1&&(r=Math.max(r,s.lastIndexOf(t)),a=Math.max(a,i),n=Math.min(n,c),o=Math.min(o,i))}return{minX:n,minY:o,maxX:r,maxY:a}});P(this,"merge",t=>{this.cells=this.getRows().concat(t.getRows())});this.cells=t}get rowCount(){return this.cells.length}get columnCount(){return Math.max(...this.cells.map(t=>t.length))}};function Tp(e){let n=_e(e).TableGrid||Fc,o=new n;e.tHead!==null&&o.merge(Hc(e.tHead.rows)),Array.from(e.tBodies).forEach(a=>{o.merge(Hc(a.rows))});let r=[];for(let a of Array.from(e.children))qu(a)&&oa(a,"tr")&&r.push(a);return o.merge(Hc(r)),e.tFoot!==null&&o.merge(Hc(e.tFoot.rows)),o}function Hc(e){let t=new Fc,n=[];for(let o=0;o<e.length;o++){let r=0;for(let a of Array.from(e[o].cells)){for(;t.getCellAt(r,o)||n[r];)!Zi(t.getCellAt(r,o))&&n[r]&&t.setCellAt(r,o,n[r]),r++;for(let i=r;i<r+a.colSpan;i++){vp(a)===0&&(n[i]=a,t.setCellAt(i,o,a));for(let s=o;s<o+vp(a);s++)Zi(t.getCellAt(i,s))||t.setCellAt(i,s,a)}r+=a.colSpan}for(let a=r;a<t.columnCount;a++){let i=n[a];i!==void 0&&!Zi(t.getCellAt(a,o))&&t.setCellAt(a,o,i)}}return t}function vp(e){let t=e.getAttribute("rowSpan");if(t===null||t.trim()==="")return 1;let n=Number(t);return isNaN(n)?1:n}function Zi(e){return e!==void 0&&oa(e,"td")}function vo(e){let t=e.tagName?.toLowerCase();if(t==="code"||t==="pre"){let o=lv(e);if(o)return o}let n=_p(e);if(n===null){if(t==="dl")return"list";if(t==="form")return"form";if(t==="header")return"banner";if(t==="footer")return"contentinfo";if(t==="option")return"option";if(t==="textarea")return"textbox";if(t==="input"){let r=e;switch(r.type.toLowerCase()){case"checkbox":return"checkbox";case"radio":return"radio";case"button":case"submit":case"reset":case"image":return"button";case"number":return"spinbutton";case"range":return"slider";case"hidden":return null;default:return r.hasAttribute("list")?"combobox":"textbox"}}if(t==="select")return e.multiple?"listbox":"combobox";if(t==="svg"){if(e.getAttribute("aria-hidden")==="true")return null;let r=e.querySelector("title"),a=e.querySelector("desc"),i=e.hasAttribute("aria-label"),s=e.hasAttribute("role");return r||a||i||s||Pa(e).length>0||e.getAttribute("tabindex")!==null?"img":null}if(Pa(e).length>0){let r=e.tagName.toLowerCase();if(["div","span","li","p","i","em","strong","b"].includes(r))return tv(e)}}if(t==="td"&&e.getAttribute("role")===null)return"cell";if(n!==null&&t==="th"){let o=e.getAttribute("role");if(o&&Ip(o))return o;let r=e;return r.scope==="col"||r.hasAttribute("aria-sort")?"columnheader":r.scope==="row"?"rowheader":"cell"}return n}function tv(e){return Ki(e)??null}function _p(e){let t=e.getAttribute("role");if(t!==null)return tp.includes(t)||!Ip(t)?null:t;let n=e.tagName.toLowerCase();return(np[n]??[]).find(r=>nv(e,r))||null}function nv(e,t){let n=Wi[t],o=n?.selector;if(o&&zc(e,o))return!0;let r=n?.conditionalSelectors;return r?r.some(i=>zc(e,i.selector)&&i.conditions.every(c=>rv(e,c))):!1}function ov(e,t){let n=(t||"").trim().replace(/^#/,"");if(!n)return null;try{let o=e.getRootNode?.();if(Yn(o)){let r=_e(e),a=`#${_c(r,n)}`,i=Tc(o,a);if(i)return i}}catch{}return xc(ee(e),n)}function rv(e,t){switch(t.type){case je.ATTRIBUTE_GREATER_THAN:{let n=e.getAttribute(t.attribute);return n!==null&&Number(n)>t.value}case je.ATTRIBUTE_LESS_THAN:{let n=e.getAttribute(t.attribute);return n!==null&&Number(n)<t.value}case je.HAS_ACCESSIBLE_NAME:return e.hasAttribute("aria-label")?!0:(e.getAttribute("aria-labelledby")||"").split(/\s+/).filter(Boolean).some(o=>ov(e,o)!=null);case je.FORBIDDEN_ANCESTORS:return ir(e,t.selector)===null;case je.BOOLEAN_PROPERTY:return e[t.property]===t.value;case je.PROPERTY_VALUE_MATCH:return t.values.some(n=>n===e[t.property]);case je.ANCESTOR_ROLE_REQUIRED:{let n=e.parentElement;if(n===null)return!1;let o=ir(n,t.tag);return o!==null&&_p(o)===t.role}case je.HAS_TABLE_COLUMN_DATA:{let n=ir(e,"table");return n===null?!1:t.hasData===xp(n,e)}case je.HAS_TABLE_ROW_DATA:{let n=ir(e,"table");return n===null?!1:t.hasData===wp(n,e)}default:return av(t),!1}}function av(e){throw new Error(`unexpected value ${e}!`)}function Ip(e){return sv(e)||cv(e)||iv(e)}function iv(e){return Zm.has(e)}function sv(e){return ep.has(e)}function cv(e){return Wi.hasOwnProperty(e)}function lv(e){if(e.tagName!==ea&&e.tagName!==ta)return null;if(qi(e).some(o=>o==="click"||o==="copy"))return"button";let n=e.getAttribute("tabindex");return n!==null&&parseInt(n,10)>=0?"button":e.tagName===ta||e.tagName===ea&&e.closest("pre")?"code":null}var uv={[an.display]:[an.beforeDisplay,an.afterDisplay],[an.content]:[an.beforeContent,an.afterContent]},$u=new Map,dv={minWidth:"min-width",minHeight:"min-height",backgroundColor:"background-color",borderWidth:"border-width",borderStyle:"border-style",boxShadow:"box-shadow",paddingTop:"padding-top",paddingRight:"padding-right",paddingBottom:"padding-bottom",paddingLeft:"padding-left",marginTop:"margin-top",marginRight:"margin-right",marginBottom:"margin-bottom",marginLeft:"margin-left",overflowX:"overflow-x",overflowY:"overflow-y"};function fv(e,t){if(!$u.has(e)){let n=dv[t]||t.replace(/([A-Z])/g,"-$1").toLowerCase();$u.set(e,n)}return $u.get(e)}var mv={display:e=>e!=="block"&&e!=="inline"&&e!=="",visibility:e=>e!=="visible",opacity:e=>parseFloat(e)<1,position:e=>e!=="static",cursor:e=>e!=="auto"&&e!=="default"&&e!=="text",width:e=>e!=="auto"&&e!=="",height:e=>e!=="auto"&&e!=="",minWidth:e=>e!=="0px"&&e!=="",minHeight:e=>e!=="0px"&&e!=="",paddingTop:e=>parseFloat(e)>0,paddingRight:e=>parseFloat(e)>0,paddingBottom:e=>parseFloat(e)>0,paddingLeft:e=>parseFloat(e)>0,marginTop:e=>Math.abs(parseFloat(e))>5,marginRight:e=>Math.abs(parseFloat(e))>5,marginBottom:e=>Math.abs(parseFloat(e))>5,marginLeft:e=>Math.abs(parseFloat(e))>5,overflowX:e=>e!=="visible",overflowY:e=>e!=="visible",backgroundColor:e=>e!=="transparent"&&e!=="rgba(0, 0, 0, 0)"&&e!=="initial",color:e=>e!=="initial"&&e!=="inherit"&&e!=="",borderWidth:e=>e!=="0px"&&parseFloat(e)>0,borderStyle:e=>e!=="none"&&e!=="initial",boxShadow:e=>e!=="none"&&e!=="",outline:e=>e!=="none"&&e!==""&&!e.includes("0px")};function Rp(e,t,n){let o=mv[e];return o?o(t,n):t.trim()!==""&&!["initial","inherit","unset"].includes(t)}function Ap(e){let t={},n=_e(e);if(!Pt(e,n))return t;let o=n.getComputedStyle(e),r=new Map([[an.beforeDisplay,n.getComputedStyle(e,"::before")],[an.afterDisplay,n.getComputedStyle(e,"::after")],[an.beforeContent,n.getComputedStyle(e,"::before")],[an.afterContent,n.getComputedStyle(e,"::after")]]);for(let a in an)if(isNaN(Number(a))){let i=an[a],s=fv(i,a),c=uv[i];c?((i===an.display||i===an.content)&&Ep(o,s,i,a,t,e),Sp(r.get(c[0]),s,c[0],"beforeContent",t),Sp(r.get(c[1]),s,c[1],"afterContent",t)):Ep(o,s,i,a,t,e)}return t}function Ep(e,t,n,o,r,a){if(e){let i=e.getPropertyValue(t);i&&Rp(o,i,a)&&(r[n]=i)}}function Sp(e,t,n,o,r){if(e){let a=e.getPropertyValue(t);(t==="content"&&a&&a!=="none"&&a!=='""'&&a!=="''"||a&&Rp(o,a))&&(r[n]=a)}}function ra(e,t){let n=_e(e);if(!Pt(e,n))return!0;if(t&&or.has(t))return!1;if(e.hasAttribute("hidden")||ir(e,"[hidden]")!==null||ir(e,"[inert]")!==null)return!0;let o=n.getComputedStyle(e);if(o.display==="none"||o.visibility==="hidden"||o.visibility==="collapse"||e.getClientRects().length===0)return!0;let r=e.getBoundingClientRect(),a=1e6;return Math.abs(r.left)>a||Math.abs(r.top)>a}function es(e){return wo(e)&&e.classList.contains("jasmine_html-reporter")}function pv(e){let t=e.getAttribute("role");return t==="presentation"||t==="none"}function Cp(e){return e?e.split(/\s+/).map(t=>t.trim()).filter(Boolean).map(t=>t.replace(/^#/,"")):[]}function Mp(e,t){let n=(t||"").trim().replace(/^#/,"");if(!n)return null;try{let r=e.getRootNode?.();if(Yn(r)){let a=_e(e),i=`#${_c(a,n)}`,s=Tc(r,i);if(s)return s}}catch{}let o=ee(e);return xc(o,n)}function Wu(e){let n=[];for(let o=0;o<arguments.length;o++){let r=arguments[o];if(Array.isArray(r))for(let a=0;a<r.length;a+=8192){let i=hv(r,a,a+8192),s=Wu.apply(null,i);for(let c=0;c<s.length;c++)n.push(s[c])}else n.push(r)}return n}function hv(e,t,n){return arguments.length<=2?Array.prototype.slice.call(e,t):Array.prototype.slice.call(e,t,n)}function Np(e,t){return gv(e,t).concat(bv(e))}function gv(e,t){return Wu(Gu(e).map(o=>Hp(o)&&wo(o)?Lp(o,t):o))}function Lp(e,t){if(!e||ra(e,t))return[];if(!pv(e))return[e];let n=Array.from(e.children);return Wu(n.map(o=>Lp(o,t)))}function Dp(e){let t=Cp(e.getAttribute("aria-owns"));if(!t.length)return[];let n=[],o=new Set;for(let r of t){if(o.has(r))continue;o.add(r);let a=Mp(e,r);a&&a!==e&&n.push(a)}return n}function bv(e){let t=Dp(e);for(let n of t)n["aria-owned-by"]=e;return t}function Op(e){let t=_e(e),n=ee(e);if(e.getAttribute("role")!=="dialog"&&e.getAttribute("role")!=="alertdialog"||e.getAttribute("aria-modal")!=="true")return!1;let o=t.getComputedStyle(e);if(o?.position!=="fixed"&&o?.position!=="absolute"||parseInt(o?.zIndex,10)<=wv(e))return!1;let r=kv(e);return!r||!vv(r)||!Tv(e)||r.getAttribute("role")==="dialog"||e.getAttribute("role")==="dialog"?!1:xv(e)}function kv(e){return[e.previousElementSibling,e.nextElementSibling,...Array.from(e.children),...e.parentElement?[e.parentElement.previousElementSibling,e.parentElement.nextElementSibling]:[]].filter(n=>n!==null).find(yv)||null}function yv(e){if(ra(e))return!1;let n=_e(e).getComputedStyle(e);return(n?.position==="fixed"||n?.position==="absolute")&&n?.backgroundColor!=="rgba(0, 0, 0, 0)"&&n?.backgroundColor!=="transparent"&&n?.pointerEvents!=="none"}function vv(e){let t=_e(e),n=e.getBoundingClientRect();return n.top<=0&&n.left<=0&&n.bottom>=t.innerHeight&&n.right>=t.innerWidth}function wv(e){let t=ee(e),n=_e(e),o=n?.getComputedStyle;if(!o)return 0;let r=Cu(t,"*").filter(a=>a!==e&&!ra(a)).map(a=>parseInt(o.call(n,a)?.zIndex,10)).filter(a=>Number.isFinite(a)&&!isNaN(a));return r.length?Math.max(...r):0}function xv(e){return e.querySelectorAll('a[href], button, input, textarea, select, details, [tabindex]:not([tabindex="-1"])').length>0}function Tv(e){let t=e.parentElement;if(!t)return!1;for(let n of Array.from(t.children))if(n!==e&&!ra(n)&&n.getAttribute("aria-hidden")!=="true")return!1;return!0}function _v(){try{let t=xt()?.querySelector?.("dialog:modal");return'[aria-modal="true"], dialog:modal'}catch{return'[aria-modal="true"]'}}var Pp=_v();function Iv(e){return e.getAttribute("aria-disabled")==="true"||e.hasAttribute("disabled")}function Vu(e){let t=e.getAttribute("href")||e.getAttribute("src")||e.getAttribute("data")||e.getAttribute("action");if(!t&&!e.tagName.includes("-"))try{let n=e;t=n.href||n.src||n.data||n.action||null}catch{return!1}if(!t)return!1;try{let n=ee(e),o=new URL(t,n.baseURI);return o.protocol==="javascript:"&&(o.pathname.trim()!==""||o.search.trim()!==""||o.hash.trim()!=="")}catch{return!1}}function Bp(e){return op.has(e)}function Ev(e){let t=e.parentElement,n=ee(e);if(!(!t||t===n.body||t===n.documentElement))return gn({targetElement:t,originatedFromParent:!0})}function yp({targetElement:e,parentDisabled:t,semanticRole:n,excludeLabels:o,isFrameNode:r,frameContentNodes:a,elementContext:i}){let s={nodeCategory:e.nodeType},c=t||Iv(e),d=Ev(e);if(d&&(s.parent=d),n){let Ae=Ua[n];typeof Ae=="number"?s.semanticRole=Ae:s.semanticRole=n}if(c&&(s.isDisabled=!0),i){let{eventHandlerIndices:Ae,isEditableRegion:lt}=i,Xe=Ha(Ae);Xe.length>0&&(s.eventHandlers=Xe),lt&&(s.isEditable=!0)}let f=Rv(e);f&&Object.keys(f).length>0&&(s.ariaProperties=f);let u=Av(e);u&&Object.keys(u).length>0&&(s.ariaStates=u);let b=e.nodeName;b&&b.trim()&&(s.elementName=b);let p=Ap(e);p&&Object.keys(p).length>0&&(s.computedStyles=p),ra(e)&&(s.isInvisible=!0);let g=Sv(e,n);g&&Object.keys(g).length>0&&(s.preservedAttributes=g),e.draggable&&(s.isDraggable=!0),e.scrollWidth&&e.clientWidth&&e.scrollWidth>e.clientWidth&&(s.supportsHorizontalSwipe=!0),e.scrollHeight&&e.clientHeight&&e.scrollHeight>e.clientHeight&&(s.supportsVerticalSwipe=!0);let y=e.getAttribute("class");if(y?.trim()){y.includes("handle")&&(s.isDragHandle=!0),s.supportsHorizontalSwipe||(y.includes("horizontal")||y.includes("carousel"))&&(s.supportsHorizontalSwipe=!0),s.supportsVerticalSwipe||(y.includes("vertical")||y.includes("feed"))&&(s.supportsVerticalSwipe=!0),y.includes("dismissible")&&(s.supportsDismissSwipe=!0),(y.includes("long-press")||y.includes("hold")||y.includes("press-hold"))&&(s.supportsLongPress=!0);let Ae=s.inputType||s.preservedAttributes?.[Pn.type];Ae==="submit"||Ae==="reset"||Ae==="clear"||(y.includes("submit")&&(s.preservedAttributes={...s.preservedAttributes||{},[Pn.type]:"submit"}),y.includes("clear")&&(s.preservedAttributes={...s.preservedAttributes||{},[Pn.type]:"clear"}),y.includes("reset")&&(s.preservedAttributes={...s.preservedAttributes||{},[Pn.type]:"reset"}))}let I=Ov({element:e});I&&I.length>0&&(s.labelReferences=I);let R=e.tagName;if(R&&(s.elementTag=R),Mv(e)&&(s.hasFocus=!0),!r){let Ae=Ku({element:e,semanticRole:n,parentDisabled:c,excludeLabels:o});Ae&&Ae.length>0&&(s.childElements=Ae)}let O=jv({element:e});O&&O.length>0&&(s.ownedElements=O);let M=Sc(e);M&&(s.resourceLocator=M),(r||Fa(e))&&(s.isFrameElement=!0),a&&a.length>0&&(s.frameContent=a);let H=e.type;H&&typeof H=="string"&&H.trim()&&(s.inputType=H);let N=e.placeholder;N&&typeof N=="string"&&N.trim()&&(s.placeholderText=N);let Y=e.value;Y&&typeof Y=="string"&&Y.trim()&&(s.elementValue=Y);let ae=Pv({element:e,parentDisabled:t,semanticRole:n});if(ae&&ae.length>0&&(s.selectedOptions=ae),ir(e,"select,datalist")&&(s.nearestSelectList=!0),qu(e))s.elementNamespace=Vi.HTML;else if(Cv(e)){s.elementNamespace=Vi.SVG,s.svgStructure=Nv(e);let Ae=Lv(e);Ae&&Object.keys(Ae).length>0&&(s.preservedAttributes?s.preservedAttributes={...s.preservedAttributes,...Ae}:s.preservedAttributes=Ae)}let le=o?void 0:Bv({element:e});le&&le.length>0&&(s.associatedLabels=le);let Me=e.scope;Me&&typeof Me=="string"&&Me.trim()&&(s.tableScope=Me);let ve=Hv({element:e});ve&&(s.tableCaption=ve);let we=Fv({element:e});we&&(s.figureCaption=we);let Ne=zv({element:e});return Ne&&(s.fieldsetLegend=Ne),ir(e,"table")&&(s.nearestTable=!0),s}function Sv(e,t){let n={},o=new Set(Object.values(Pn).filter(s=>typeof s=="string")),r=new Set(Object.keys(Rc).filter(s=>isNaN(Number(s)))),a=new Set(["_ngcontent","ng-reflect-*","data-v-*"]),i=e?.attributes?Array.from(e.attributes):[];for(let s of i){let c=s.name,d=s.value;if(c==="id"&&(!t||!or.has(t)))continue;let f;if(o.has(c)?f=c:c.startsWith("data-v-")?f="data-v-*":c.startsWith("ng-reflect-")?f="ng-reflect-*":c.startsWith("_ngcontent")&&(f="_ngcontent"),f){let u=d.trim()!=="",b=r.has(f);if(u||b){let p=Pn[f],g=a.has(f)?"true":d;n[p]=g}}}if(!n[Pn[hn]]){let s=gp(e);s&&(n[Pn[hn]]=s)}return n}function Rv(e){return Up(e,Nc,Ac)}function Av(e){return Up(e,Lc,null)}function Up(e,t,n){let o={};for(let r in t)if(isNaN(Number(r))){let a=t[r],s=`aria-${r.toLowerCase().replace(/_/g,"-")}`,c=e.getAttribute(s),d=!1;n!==null&&(d=Object.values(n).filter(u=>typeof u=="number").includes(a)),e.hasAttribute(s)&&d||c?.trim()?o[a]=c:s==="aria-level"&&ap.includes(e.tagName.toLowerCase()?.trim())&&(o[a]=e.tagName.substring(1))}return o}function wo(e){return Hp(e)&&e.nodeType===Ir.ELEMENT}function jc(e){return e.nodeType===Ir.TEXT}function Hp(e){let t=typeof e;return t=="object"&&e!=null||t=="function"}function qu(e){return wo(e)&&(!e.namespaceURI||e.namespaceURI===ip)}function Cv(e){return wo(e)&&e.namespaceURI===sp}function Fa(e){return e.tagName==="IFRAME"}function oa(e,t){return"tagName"in e?e.tagName?.toLowerCase()===t:e.elementTag?.toLowerCase()===t}function ir(e,t){if(e.closest)return e.closest(t);for(;!zc(e,t);){if(e.parentElement===null)return null;e=e.parentElement}return e}function zc(e,t){return e.matches?.(t)??e.msMatchesSelector?.(t)??e.webkitMatchesSelector(t)}function Mv(e){let t=e.ownerDocument,n=t?.hasFocus()?t.activeElement:null;if(n){let o=n.getAttribute("aria-activedescendant");o&&(n=t.getElementById(o)||n)}return e===n}function Nv(e){let t={},n=ar.text,o=ar.elText;e.textContent?.trim()&&(t[n]=e.textContent);let r=e.querySelector("title"),a=e.querySelector("img");r?.textContent?.trim()?t[o]=r.textContent:a?.alt?.trim()&&(t[o]=a.alt);let i=e.getAttribute("viewBox");i&&(t[ar.viewBox]=i);let s=e.querySelectorAll("path");s.length>0&&(t[ar.paths]=s.length,t[ar.pathData]=Array.from(s).slice(0,3).map(d=>d.getAttribute("d")).filter(Boolean).map(d=>d.substring(0,100)));let c={circles:e.querySelectorAll("circle").length,rects:e.querySelectorAll("rect").length,lines:e.querySelectorAll("line").length,polygons:e.querySelectorAll("polygon").length,polylines:e.querySelectorAll("polyline").length,ellipses:e.querySelectorAll("ellipse").length};return Object.entries(c).forEach(([d,f])=>{if(f>0){let u=ar[d];t[u]=f}}),Object.keys(t).length>0?t:void 0}function Lv(e){let t={};if(!e?.hasAttributes())return t;for(let n of Object.values(Ba).filter(o=>typeof o=="number")){let o=Ba[n];if(o){let r=o;if(Ba.hasOwnProperty(r)&&e.hasAttribute(r)){let a=e.getAttribute(r);a?.trim()&&(t[n]=a)}}}return t}function Dv({frameElement:e,parentDisabled:t,excludeLabels:n}){if(!xn.includeFrameContents)return[];let o=null;try{o=e.contentWindow?.document?.body||null}catch{return[]}if(!o)return[];let r=[];for(let a of Gu(o))if(!(es(a)||Fp(a))){if(wo(a)){let i=a,s=vo(i),c=Qn(i,s),{shouldCreate:d,shouldAnnotate:f}=qc(c);if(d){f&&Er(i);let u=gn({targetElement:i,parentDisabled:t,semanticRole:s??void 0,excludeLabels:n,elementContext:c});u&&r.push(u)}else{let u=Ku({element:i,semanticRole:s??void 0,parentDisabled:t,excludeLabels:n});r.push(...u)}}else if(jc(a)){let i=Ji(a);i&&r.push(i)}}return r}function Gu(e){let t=_e(e);if(Gm(e,t)){try{let n=e.assignedNodes({flatten:!0});if(n&&n.length)return n}catch{}return Array.from(e.childNodes)}try{let n=e.shadowRoot||Yr()?.getShadowRoot?.(e)||null;if(n){let o=Array.from(n.childNodes),r=Array.from(e.childNodes).filter(a=>!a.assignedSlot);return o.concat(r)}}catch{}return Array.from(e.childNodes)}function Ku({element:e,semanticRole:t,parentDisabled:n,excludeLabels:o}){let r=[];for(let a of Gu(e))if(!(es(a)||Fp(a))){if(wo(a)){let i=a,s=vo(i),c=Qn(i,s);if(Fa(i)){Er(i);let u=Dv({frameElement:i,parentDisabled:n,excludeLabels:o}),b=gn({targetElement:i,parentDisabled:n,semanticRole:s??void 0,excludeLabels:o,isFrameNode:!0,frameContentNodes:u,elementContext:c});b&&r.push(b);continue}let{shouldCreate:d,shouldAnnotate:f}=qc(c);if(d){f&&Er(i);let u=gn({targetElement:i,parentDisabled:n,semanticRole:s??void 0,excludeLabels:o,elementContext:c});u&&r.push(u)}else{let u=Ku({element:i,semanticRole:s??void 0,parentDisabled:n,excludeLabels:o});r.push(...u)}}else if(jc(a)){let i=Ji(a);i&&r.push(i)}}return r}function Ov({element:e}){let t=Cp(e.getAttribute("aria-labelledby")),n=new Set;for(let o of t){let r=Mp(e,o);if(!(!r||r===e)&&r){let a=vo(r),i=gn({targetElement:r,semanticRole:a,elementContext:Qn(r,a)});n.add(i)}}return Array.from(n)}function Pv({element:e,parentDisabled:t,semanticRole:n}){let o=[];return e&&(n&&n==="listbox"?o=Array.from(e.querySelectorAll('[role="option"][aria-selected="true"]')).map(r=>gn({targetElement:r,parentDisabled:t,semanticRole:"option",elementContext:Qn(r,"option")})):oa(e,"select")&&(o=Array.from(e.selectedOptions).map(r=>gn({targetElement:r,parentDisabled:t,semanticRole:"option",elementContext:Qn(r,"option")})))),o}function Bv({element:e}){if(rp.includes(e.tagName)){let t=ee(e),n=Cu(t,"label"),o=new Set;return Array.from(n).filter(r=>r!==e&&Uv(r,e)).map(r=>{let a=vo(r),i=gn({targetElement:r,semanticRole:a,excludeLabels:!0,elementContext:Qn(r,a)});o.add(i)}),Array.from(o)}}function Uv(e,t){let n=e.control;return n!==void 0?n===t:e.htmlFor!==""&&e.htmlFor===t.id?!0:!!(e.htmlFor===""&&e.contains(t))}function Hv({element:e}){if(oa(e,"table")){let t=e.querySelector("caption");if(t&&t!==e){let n=vo(t);return gn({targetElement:t,semanticRole:n,elementContext:Qn(t,n)})}}}function Fv({element:e}){if(oa(e,"figure")){let t=e.querySelector("figcaption");if(t&&t!==e){let n=vo(t);return gn({targetElement:t,semanticRole:n,elementContext:Qn(t,n)})}}}function zv({element:e}){if(oa(e,"fieldset")){let t=e.querySelector("legend");if(t&&t!==e){let n=vo(t);return gn({targetElement:t,semanticRole:n,elementContext:Qn(t,n)})}}}function jv({element:e}){let t=new Set,n=Dp(e);for(let o of n){let r=vo(o),a=gn({targetElement:o,semanticRole:r,elementContext:Qn(o,r)});t.add(a)}return Array.from(t)}function qc(e){let{semanticRole:t,eventHandlerIndices:n,isEditableRegion:o,hasNodeWorthyHandlers:r,isLikelyStructuralContainer:a}=e,i=n.length>0&&n.some(u=>up.has(u)),c=!!t||!a&&(r||o),d=!!t&&or.has(t);return{shouldCreate:c,shouldAnnotate:c&&(d||o||i)}}function Fp(e){if(!wo(e))return!1;let t=e,n=t.tagName;return Cc.has(n)?!0:n===ea||n===ta?qv(t):!1}function qv(e){let t=_e(e),n=t?.getComputedStyle;if(!n||n.call(t,e).display==="none")return!0;let r=e.getBoundingClientRect();return r.width===0&&r.height===0&&!(typeof e.closest=="function"&&e.closest("pre"))||r.right<-1e3||r.left>t.innerWidth+1e3}function Xu(e,t={}){return qm(t),kp(),hp(),bp(e,{includeShadow:!0,includeIframes:xn.clearIframes}),na.initialize(xn.semanticIdStart),{rootNodes:zp(e),semanticNodes:Ho}}function zp(e){let t=[];try{let n=ee(e),r=Array.from(n.querySelectorAll(Pp)).filter(a=>!ra(a)&&Op(a));if(r.length===0)t=za({targetElement:e});else if(r.length===1){let a=r[0];a.contains(e)?t=za({targetElement:e}):e.contains(a)?t=za({targetElement:a}):t=za({targetElement:e})}else t=za({targetElement:e})}catch(n){throw console.error("Error constructing semantic tree",n),n}return t}function za({targetElement:e,parentNode:t}){if(es(e)||jp(e))return[];let n=vo(e),o=Qn(e,n);if(Fa(e))return[Wv({frameElement:e,role:n,parentNode:t,elementContext:o})];let r=0,{shouldCreate:a,shouldAnnotate:i}=qc(o);a&&(i&&Er(e),r=gn({targetElement:e,parentDisabled:t?.isDisabled,semanticRole:n,elementContext:o}));let s=Ho[r],c=$v(e,n,r?s:t);return r&&c.length>0&&(s.semanticChildren=c),r?[r]:c}function $v(e,t,n){let o=[],r=Np(e,t);for(let a of r)if(!(es(a)||jp(a))){if(wo(a)){let i=za({targetElement:a,parentNode:n});o.push(...i)}else if(jc(a)&&Xv(a,n)){let i=Ji(a);i&&o.push(i)}}return o}function Wv({frameElement:e,role:t,parentNode:n,elementContext:o}){Er(e);let r=Vv(e);return gn({targetElement:e,parentDisabled:n?.isDisabled,semanticRole:t,isFrameNode:!0,frameContentNodes:r,elementContext:o})}function Vv(e){if(!xn.includeFrameContents)return[];let t=Gv(e);return t.kind==="content"?zp(t.rootElement):Kv(e,t.reason)}function Gv(e){let t=null;try{t=e.contentDocument||e.contentWindow?.document||null}catch{return{kind:"unavailable",reason:"cross_origin_blocked"}}let n=t?.body||t?.documentElement||null;return n?{kind:"content",rootElement:n}:{kind:"unavailable",reason:"iframe_not_ready_or_empty"}}function Kv(e,t){let n=na.generateId(),o=na.generateId(),r=e.getAttribute("title")?.trim()||e.getAttribute("name")?.trim()||e.id?.trim()||"Embedded frame",a=Sc(e)||void 0,i=t==="cross_origin_blocked"?"Iframe content is not accessible from this origin (cross-origin).":"Iframe content is not ready yet or has no readable DOM.";return Ho[n]={nodeCategory:Ir.ELEMENT,semanticRole:"embedded_document_unavailable",computedName:r,syntheticKind:"embedded_container",frameContent:[o],...a?{resourceLocator:a}:{}},Ho[o]={nodeCategory:Ir.TEXT,parent:n,textContent:i,preventTextMerge:!0,syntheticKind:"embedded_unavailable_text"},[n]}function Xv(e,t){let n=e.data.trim();if(!n||n==="")return!1;if(t?.semanticRole!==void 0&&t?.semanticRole!==null){let o=typeof t.semanticRole=="number"?Gi[t.semanticRole]:t.semanticRole;if(Bp(o))return!1}return!0}function jp(e){if(!wo(e))return!1;let t=e,n=t.tagName;return Cc.has(n)?!0:n===ea||n===ta?Yv(t):!1}function Yv(e){let t=_e(e);if(t.getComputedStyle(e).display==="none")return!0;let o=e.getBoundingClientRect();return o.width===0&&o.height===0&&!e.closest("pre")||o.right<-1e3||o.left>t.innerWidth+1e3}function Wc(e){let t=e.activeElement;for(;t&&t.shadowRoot&&t.shadowRoot.activeElement;)t=t.shadowRoot.activeElement;return t}function Qv(e){let t=e.getBoundingClientRect();return{x:t.left+t.width/2,y:t.top+t.height/2}}function qa(e,t,n){let o=ee(e,t),r=se(o,n);try{e.focus?.({preventScroll:!0})}catch{}if(Wc(o)===e)return!0;try{let{x:a,y:i}=Qv(e),s=r.PointerEvent||PointerEvent,c=r.MouseEvent||MouseEvent;e.dispatchEvent(new s("pointerdown",{bubbles:!0,cancelable:!0,composed:!0,clientX:a,clientY:i,buttons:1,button:0,pointerType:"mouse"})),e.dispatchEvent(new c("mousedown",{bubbles:!0,cancelable:!0,composed:!0,clientX:a,clientY:i,buttons:1,button:0})),e.dispatchEvent(new c("mouseup",{bubbles:!0,cancelable:!0,composed:!0,clientX:a,clientY:i,buttons:0,button:0})),e.dispatchEvent(new s("pointerup",{bubbles:!0,cancelable:!0,composed:!0,clientX:a,clientY:i,buttons:0,button:0,pointerType:"mouse"})),(e.isContentEditable||so(e,r)||yo(e,r)||e.getAttribute("contenteditable")==="true")&&e.dispatchEvent(new c("click",{bubbles:!0,cancelable:!0,composed:!0,clientX:a,clientY:i,button:0}))}catch{}try{e.focus?.({preventScroll:!0})}catch{}return Wc(o)===e}function ts(e,t){let n=_e(e),o=yo(e,n)?n.HTMLTextAreaElement.prototype:n.HTMLInputElement.prototype,r=Object.getOwnPropertyDescriptor(o,"value");r?.set?r.set.call(e,t):e.value=t}function ia(e,t,n="insertText"){let o=_e(e),r=o.InputEvent||(typeof InputEvent<"u"?InputEvent:null),a=o.Event||Event;try{r?e.dispatchEvent(new r("beforeinput",{bubbles:!0,cancelable:!0,composed:!0,data:String(t??""),inputType:n})):e.dispatchEvent(new a("beforeinput",{bubbles:!0,cancelable:!0,composed:!0}))}catch{try{e.dispatchEvent(new a("beforeinput",{bubbles:!0,cancelable:!0,composed:!0}))}catch{}}try{r?e.dispatchEvent(new r("input",{bubbles:!0,cancelable:!1,composed:!0,data:String(t??""),inputType:n})):e.dispatchEvent(new a("input",{bubbles:!0,cancelable:!1,composed:!0}))}catch{try{e.dispatchEvent(new a("input",{bubbles:!0,cancelable:!1,composed:!0}))}catch{}}try{e.dispatchEvent(new a("change",{bubbles:!0,cancelable:!0,composed:!0}))}catch{}}function Jv(e){let n=_e(e).KeyboardEvent||KeyboardEvent,o={key:"Enter",code:"Enter",keyCode:13,which:13,bubbles:!0,cancelable:!0,composed:!0},r=e.dispatchEvent(new n("keydown",o)),a=e.dispatchEvent(new n("keypress",o)),i=e.dispatchEvent(new n("keyup",o));return{canceled:!(r&&a&&i)}}function aa(e){if(!e)return!1;let t=_e(e);if(yo(e,t))return!e.disabled&&!e.readOnly;if(so(e,t)){let n=(e.type||"text").toLowerCase();return(n==="text"||n==="search"||n==="email"||n==="url"||n==="tel"||n==="password"||n==="number")&&!e.disabled&&!e.readOnly}return!1}function Yu(e){let t=_e(e);if(!e||!Pt(e,t))return!1;if(e.isContentEditable)return!0;let n=e.getAttribute("contenteditable");return!!(n&&n!=="false"||e.getAttribute("role")==="textbox"&&!("value"in e))}function Zv(e,t){let n=e.getRootNode();return Yn(n)?n:ee(e)??t}function ew(e,t){let n=[];for(let o of t.split(/\s+/).filter(Boolean)){let r=e.getElementById?.(o)||e.querySelector?.(`#${CSS.escape(o)}`),a=_e(r);Pt(r,a)&&n.push(r)}return n}function Vp(e,t){if(!e)return{kind:"none",el:null,via:"no-root"};if(aa(e))return{kind:"input",el:e,via:"self-input"};if(Yu(e))return{kind:"contenteditable",el:e,via:"self-contenteditable"};let n=ee(e)??t,o=se(n),r=Zv(e,n);if(Wm(e,o)){let c=e.control;if(aa(c))return{kind:"input",el:c,via:"label.control"};let d=e.htmlFor;if(d){let f=r.getElementById?.(d)||r.querySelector?.(`#${CSS.escape(d)}`);if(aa(f))return{kind:"input",el:f,via:"label.for"}}}let a=e.getAttribute("aria-controls")||e.getAttribute("aria-owns");if(a)for(let c of ew(r,a)){if(aa(c))return{kind:"input",el:c,via:"aria-controls/owns"};if(Yu(c))return{kind:"contenteditable",el:c,via:"aria-controls/owns"};let d=c.querySelector?.("input,textarea");if(aa(d))return{kind:"input",el:d,via:"aria-controls->desc"}}let i=e.querySelector?.("input,textarea");if(aa(i))return{kind:"input",el:i,via:"descendant"};let s=e.shadowRoot||null;if(s){let c=s.querySelector?.("input,textarea");if(aa(c))return{kind:"input",el:c,via:"open-shadow-input"};let d=s.querySelector?.('[contenteditable="true"],[contenteditable=""],[role="textbox"]');if(Yu(d))return{kind:"contenteditable",el:d,via:"open-shadow-contenteditable"}}return e.getAttribute("role")==="textbox"&&!("value"in e)?{kind:"contenteditable",el:e,via:"role=textbox"}:{kind:"none",el:null,via:"not-found"}}function ja(e,t,n,o=!1){let r=ee(e,t),i=se(r,n).getSelection?.();if(!i)return!1;try{let s=r.createRange();return s.selectNodeContents(e),o&&s.collapse(!1),i.removeAllRanges(),i.addRange(s),!0}catch{return!1}}function sa(e){return(e.textContent??"").replace(/\u00A0/g," ").trim()}var $c=e=>String(e??"").replace(/\s+/g," ").trim(),Gp=new MessageChannel,Kp=[];Gp.port1.onmessage=()=>{let e=Kp.shift();e&&e()};function qp(){return new Promise(e=>{Kp.push(e),Gp.port2.postMessage(0)})}async function $p(e,t,n){await Promise.resolve();let o=Math.max(0,Math.min(4,Number(n)||0));for(let r=0;r<o;r++)e.hidden?await qp():await new Promise(a=>{try{t.requestAnimationFrame(()=>a())}catch{qp().then(a)}})}function tw(e){let t=String(e??"");return t===" "?{code:"Space",which:32}:/^[a-z]$/i.test(t)?{code:`Key${t.toUpperCase()}`,which:t.toUpperCase().charCodeAt(0)}:/^[0-9]$/.test(t)?{code:`Digit${t}`,which:t.charCodeAt(0)}:{code:"",which:t.length===1?t.charCodeAt(0):0}}function Wp(e,t,n,o){let r=ee(e,t),i=se(r,n).KeyboardEvent||KeyboardEvent,s=String(o??"");for(let c of s){let{code:d,which:f}=tw(c),u={key:c,code:d,bubbles:!0,cancelable:!0,composed:!0,keyCode:f,which:f};e.dispatchEvent(new i("keydown",u)),e.dispatchEvent(new i("keypress",u)),e.dispatchEvent(new i("keyup",u))}}async function Xp(e,t,n,o,r){let a=String(o??"");if(e.disabled||e.readOnly)return{success:!1,method:"type-native-setter",details:"disabled_or_readonly",allowFallback:!0};let i=String(e.value??""),s=ee(e,t),c=se(s,n),d=qa(e,s,c),f=Number.isFinite(Number(r?.settleFrames))?Math.max(0,Math.min(4,Number(r?.settleFrames))):s.hidden?1:2,u=!!r?.useKeyFallback,b=Number.isFinite(Number(r?.keyFallbackMaxLen))?Number(r?.keyFallbackMaxLen):140,p=u&&a.length>0&&a.length<=b;ts(e,a),ia(e,a,"insertReplacementText"),p&&Wp(e,s,c,a),await $p(s,c,f);let g=String(e.value??""),y=$c(i),I=$c(g),R=$c(a),O=y===R,M=I===R,H=g!==i,N=a.length>0&&!O&&g===i,Y=1;if(!O&&!M&&!H){Y=2;try{e.focus?.({preventScroll:!0}),e.select?.()}catch{}let ve=!1;try{s.execCommand?.("selectAll",!1,void 0),ve=!!s.execCommand?.("insertText",!1,a)}catch{ve=!1}if(!ve)try{ts(e,a)}catch{}try{ia(e,a,"insertReplacementText")}catch{}p&&Wp(e,s,c,a),await $p(s,c,f),g=String(e.value??"")}let re=$c(g)===R,le=g!==i;N=a.length>0&&!O&&g===i;let Me=O||re||le;return{success:Me,method:"type-native-setter",details:`focus=${d};attempts=${Y};settleFrames=${f};beforeLen=${i.length};afterLen=${g.length};changed=${le};alreadyCorrect=${O};nowCorrect=${re};reverted=${N};keyFallback=${p}`,allowFallback:Me?void 0:!0}}function nw(e,t,n){let r=_e(e).InputEvent||InputEvent,a=new r("beforeinput",{bubbles:!0,cancelable:!0,composed:!0,data:t,inputType:n});return{ok:e.dispatchEvent(a),defaultPrevented:a.defaultPrevented}}function Yp(e,t,n,o){let r=ee(e,n),a=se(r,o),i=a.InputEvent||InputEvent,s=a.Event||Event,c=String(t??""),d=sa(e),f=qa(e,r,a),u=ja(e,r,a,!0),b=nw(e,c,"insertText"),p=!1,g="execCommand",y=!1,I=()=>{y=!0};try{e.addEventListener("input",I,{capture:!0})}catch{}if(b.ok&&!b.defaultPrevented)try{p=!!r.execCommand?.("insertText",!1,c)}catch{}if(!p)try{let M=a.getSelection?.(),H=M&&M.rangeCount?M.getRangeAt(0):null;if(!H||!e.contains(H.commonAncestorContainer)){ja(e,r,a,!0);let N=a.getSelection?.();H=N&&N.rangeCount?N.getRangeAt(0):null}H&&(H.insertNode(r.createTextNode(c)),H.collapse(!1),M?.removeAllRanges(),M?.addRange(H),p=!0,g="range")}catch{}if(p&&!y){try{e.dispatchEvent(new i("input",{bubbles:!0,cancelable:!1,composed:!0,data:c,inputType:"insertText"}))}catch{try{e.dispatchEvent(new s("input",{bubbles:!0,cancelable:!1,composed:!0}))}catch{}}try{e.dispatchEvent(new s("change",{bubbles:!0,cancelable:!0,composed:!0}))}catch{}}try{e.removeEventListener("input",I,{capture:!0})}catch{}let R=sa(e);return{success:R!==d||!!c&&R.includes(c),method:`type-contenteditable-${g}`,details:`focus=${f};selectedWithin=${u};inserted=${p}`}}function Qp(e){let{canceled:t}=Jv(e);if(t)return{submitted:!1,method:"enter-handled"};let n=e.form||e.closest?.("form");return n?(n.requestSubmit?.()??n.submit?.(),{submitted:!0,method:"enter->form-submit"}):{submitted:!1,method:"enter-dispatched"}}function Jp(e,t,n){if(e.disabled||e.readOnly)return{success:!1,method:"clear-native-setter",details:"disabled_or_readonly",allowFallback:!0};let o=ee(e,t),r=se(o,n),a=String(e.value??""),i=qa(e,o,r);ts(e,""),ia(e,"","deleteByCut");let s=String(e.value??""),c=s!==a;return{success:c||s.length===0,method:"clear-native-setter",details:`focus=${i};beforeLen=${a.length};afterLen=${s.length};changed=${c}`}}function Zp(e,t,n){let o=ee(e,t),r=se(o,n),a=sa(e),i=qa(e,o,r),s=ja(e,o,r,!1),c=!1,d="execCommand";try{c=!!o.execCommand?.("delete",!1,void 0)}catch{c=!1}if(!c)try{let p=r.getSelection?.(),g=p&&p.rangeCount?p.getRangeAt(0):null;(!g||!e.contains(g.commonAncestorContainer))&&ja(e,o,r,!1);let y=r.getSelection?.(),I=y&&y.rangeCount?y.getRangeAt(0):null;I&&(I.deleteContents(),I.collapse(!1),y?.removeAllRanges(),y?.addRange(I),c=!0,d="range")}catch{}if(!c)try{e.textContent="",c=!0,d="textContent"}catch{}ia(e,"","deleteByCut");let f=sa(e),u=f!==a;return{success:c||u||f.length===0,method:`clear-contenteditable-${d}`,details:`focus=${i};selectedWithin=${s};cleared=${c};changed=${u}`}}function eh(e,t){if(e===t||e.contains(t))return!0;let n=t;for(;n;){let o=n.getRootNode?.();if(Yn(o)){let r=o.host;if(r===e||e.contains(r))return!0;n=r;continue}n=n.parentNode||null}return!1}var Vc;(function(e){e.FLASH_LITE="Gemini Flash Lite",e.FLASH="Gemini Flash",e.PRO="Gemini Pro"})(Vc||(Vc={}));var th;(function(e){e[e.NativeHostConnected=0]="NativeHostConnected",e[e.NativeHostDisconnected=1]="NativeHostDisconnected"})(th||(th={}));var ow=["image/png","image/jpeg","image/webp"],rw=["application/pdf","text/plain"],gR=[...ow,...rw];var qt;(function(e){e.ACT="act_on_tab",e.CRAWL="crawl_and_extract_from_tab",e.EXTRACT="extract_from_tab",e.SHEETS_WORKFLOW="sheets_workflow",e.INFER_SHEET_DATA="infer_sheet_data",e.GRAPHBOT="graph_bot",e.PDF_FILLER="pdf_filler",e.CUSTOM_TOOL_GENERATOR="custom_tool_generator",e.WEBPAGE_GENERATOR="webpage_generator",e.GOOGLE_DOC_GENERATOR="google_doc_generator",e.GOOGLE_SLIDES_GENERATOR="google_slides_generator",e.PROCESS_TEXT="process_text",e.CREATE_SHEET_FROM_DATA="create_sheet_from_data",e.ROVER_EXTERNAL_READ_CONTEXT="rover_external_read_context",e.ROVER_EXTERNAL_ACT_CONTEXT="rover_external_act_context",e.CONFIGURE_API_KEY="configure_api_key",e.TASK_COMPLETE="task_complete",e.ASK_USER="ask_user",e.EXECUTE_MULTIPLE_TOOLS="execute_multiple_tools",e.QUERY_RTRVR_AI_DOCUMENTATION="query_rtrvr_ai_documentation"})(qt||(qt={}));var Bt;(function(e){e.PLANNER="Planner",e.AGENTIC_SEEK="Agentic Action",e.CRAWL_PAGES="Crawl Pages",e.EXTRACT_PAGE="Extract Page",e.SHEETS_WORKFLOW="Sheets Workflow",e.INFER_SHEET_DATA="Infer Sheet Data",e.MULTI_STEPS="Multi Steps",e.PDF_FILLER="PDF Filler",e.CUSTOM_TOOL_GENERATOR="Custom Tool Generator",e.WEBPAGE_GENERATOR="WebPage Generator",e.GOOGLE_DOC_GENERATOR="Google Doc Generator",e.GOOGLE_SLIDES_GENERATOR="Google Slides Generator",e.PROCESS_TEXT="Process Text",e.CREATE_SHEET_FROM_DATA="Create Sheet From Data",e.ROVER_EXTERNAL_READ_CONTEXT="Rover External Read Context",e.ROVER_EXTERNAL_ACT_CONTEXT="Rover External Act Context",e.EXECUTE_MULTIPLE_TOOLS="Execute Multiple User Tools",e.CONFIGURE_API_KEY="Configure Gemini API Key",e.QUERY_RTRVR_AI_DOCUMENTATION="query_rtrvr_ai_documentation"})(Bt||(Bt={}));var bR={[qt.ACT]:Bt.AGENTIC_SEEK,[qt.CRAWL]:Bt.CRAWL_PAGES,[qt.EXTRACT]:Bt.EXTRACT_PAGE,[qt.SHEETS_WORKFLOW]:Bt.SHEETS_WORKFLOW,[qt.INFER_SHEET_DATA]:Bt.INFER_SHEET_DATA,[qt.PDF_FILLER]:Bt.PDF_FILLER,[qt.CUSTOM_TOOL_GENERATOR]:Bt.CUSTOM_TOOL_GENERATOR,[qt.WEBPAGE_GENERATOR]:Bt.WEBPAGE_GENERATOR,[qt.GOOGLE_DOC_GENERATOR]:Bt.GOOGLE_DOC_GENERATOR,[qt.GOOGLE_SLIDES_GENERATOR]:Bt.GOOGLE_SLIDES_GENERATOR,[qt.PROCESS_TEXT]:Bt.PROCESS_TEXT,[qt.CREATE_SHEET_FROM_DATA]:Bt.CREATE_SHEET_FROM_DATA,[qt.ROVER_EXTERNAL_READ_CONTEXT]:Bt.ROVER_EXTERNAL_READ_CONTEXT,[qt.ROVER_EXTERNAL_ACT_CONTEXT]:Bt.ROVER_EXTERNAL_ACT_CONTEXT,[qt.EXECUTE_MULTIPLE_TOOLS]:Bt.EXECUTE_MULTIPLE_TOOLS,[qt.CONFIGURE_API_KEY]:Bt.CONFIGURE_API_KEY,[qt.QUERY_RTRVR_AI_DOCUMENTATION]:Bt.QUERY_RTRVR_AI_DOCUMENTATION};var Qu=200;var aw=30,iw=320,sw=0,cw=50,lw=1,kR=Vc.FLASH;var yR=Bt.PLANNER;var Ju="application/pdf",Zu="application/gsheet";var vR=20*1024*1024;var $a={maxParallelTabs:4,pageLoadDelay:2e3,disableAutoScroll:!1,makeNewTabsActive:!1,writeRowProcessingTime:!1,totalBudgetMs:25e3,pageDataTimeoutMs:22e3,adaptiveSettleDebounceMs:aw,adaptiveSettleMaxWaitMs:iw,adaptiveSettleRetries:sw,sparseTreeRetryDelayMs:cw,sparseTreeRetryMaxAttempts:lw,pdfTextSelectionTimeoutMs:12e3,onlyTextContent:!1};var uw=1,dw=9,fw=11,td="application/gdoc",Wa="text/html",Gc="text/plain";function mw(e){return!!e&&typeof e=="object"&&e.nodeType===dw}function nh(e){return!!e&&typeof e=="object"&&e.nodeType===uw}function pw(e){return!!e&&typeof e=="object"&&e.nodeType===fw&&typeof e.host=="object"&&typeof e.mode=="string"}function oh(e){return nh(e)&&String(e.tagName).toUpperCase()==="IFRAME"}function ed(e){let t;if(typeof e=="number")t=e;else if(typeof e=="bigint")t=Number(e);else if(typeof e=="string")t=Number(e.trim());else return null;if(!Number.isFinite(t))return null;let n=Math.trunc(t);return n<=0?null:n}function hw(e){try{let t=e.shadowRoot;return t||globalThis?.chrome?.dom?.openOrClosedShadowRoot?.(e)||null}catch{return null}}function gw(e,t,n={}){let o=n.traverseShadow!==!1,r=n.traverseIframes!==!1,a=n.requireOwnerDocument,i=[e],s=new WeakSet;for(;i.length;){let c=i.pop();if(c&&typeof c=="object"){if(s.has(c))continue;s.add(c)}if(mw(c)){let u=c.documentElement||c.body;u&&i.push(u);continue}if(pw(c)){let u=c.children;if(u&&u.length)for(let b=u.length-1;b>=0;b--)i.push(u[b]);continue}if(!nh(c))continue;let d=c;if(a&&d.ownerDocument!==a)continue;let f=d.getAttribute?.(hn);if(f&&Xi(f)===t)return d;if(o)try{let u=hw(d);u&&i.push(u)}catch{}if(r&&oh(d))try{let u=zi(d);u&&i.push(u)}catch{}for(let u=d.lastElementChild;u;u=u.previousElementSibling)i.push(u)}return null}function xo(e,t,n={}){let o=ed(t);if(!o)return null;let r=Qi(o);return r&&(!n.requireOwnerDocument||r.ownerDocument===n.requireOwnerDocument)?r:gw(e,o,{requireOwnerDocument:n.requireOwnerDocument,traverseShadow:n.traverseShadow,traverseIframes:n.traverseIframes})}function nd(e=document){return e.querySelector('embed[type="application/pdf"], embed[type="application/x-google-chrome-pdf"]')}function rh(e){if(e==null)return[];if(Array.isArray(e)){let t=[];for(let n of e){let o=ed(n);o&&t.push(o)}return t}if(typeof e=="number"||typeof e=="bigint"){let t=ed(e);return t?[t]:[]}if(typeof e=="string"){let t=e.match(/\d+/g);return t?t.map(o=>parseInt(o,10)).filter(o=>Number.isFinite(o)&&o>0):[]}if(typeof e=="object"){let t=e.path??e.ids??e.iframe_path;if(t!==void 0)return rh(t)}return[]}function Va(e,t){let n=rh(t),o=e.defaultView||window;if(!n.length)return{doc:e,win:o,iframePath:n,resolvedPath:[],unresolvedPath:[]};let r=e,a=[];for(let i=0;i<n.length;i++){let s=n[i],c=n.length===1,d=xo(r,s,{requireOwnerDocument:c?void 0:r,traverseShadow:!0,traverseIframes:c});if(!d||!oh(d))return{doc:r,win:r.defaultView||o,iframePath:n,resolvedPath:a,unresolvedPath:n.slice(i)};let f=null;try{f=zi(d)||null}catch{f=null}if(!f)return{doc:r,win:r.defaultView||o,iframePath:n,resolvedPath:a,unresolvedPath:n.slice(i)};a.push(s),r=f}return{doc:r,win:r.defaultView||o,iframePath:n,resolvedPath:a,unresolvedPath:[]}}function ah(e){return e==="application/pdf"||e==="application/x-pdf"||e==="application/x-google-chrome-pdf"}function bw(e){let t={...$a,...e??{}},n=Number(e?.pdfTextSelectionTimeoutMs);return Number.isFinite(n)&&(t.pdfTextSelectionTimeoutMs=Math.floor(n)),t.totalBudgetMs!==void 0&&(t.totalBudgetMs=Math.max(1500,Math.floor(t.totalBudgetMs))),t.pageDataTimeoutMs!==void 0&&(t.pageDataTimeoutMs=Math.max(500,Math.floor(t.pageDataTimeoutMs))),t.pdfTextSelectionTimeoutMs!==void 0&&(t.pdfTextSelectionTimeoutMs=Math.max(150,Math.floor(t.pdfTextSelectionTimeoutMs))),t.adaptiveSettleDebounceMs!==void 0&&(t.adaptiveSettleDebounceMs=Math.max(20,Math.min(500,Math.floor(t.adaptiveSettleDebounceMs)))),t.adaptiveSettleMaxWaitMs!==void 0&&(t.adaptiveSettleMaxWaitMs=Math.max(120,Math.min(5e3,Math.floor(t.adaptiveSettleMaxWaitMs)))),t.adaptiveSettleRetries!==void 0&&(t.adaptiveSettleRetries=Math.max(0,Math.min(6,Math.floor(t.adaptiveSettleRetries)))),t.sparseTreeRetryDelayMs!==void 0&&(t.sparseTreeRetryDelayMs=Math.max(40,Math.min(1e3,Math.floor(t.sparseTreeRetryDelayMs)))),t.sparseTreeRetryMaxAttempts!==void 0&&(t.sparseTreeRetryMaxAttempts=Math.max(0,Math.min(4,Math.floor(t.sparseTreeRetryMaxAttempts)))),t}var kw=["disableAutoScroll","onlyTextContent","totalBudgetMs","pageDataTimeoutMs","pdfTextSelectionTimeoutMs","adaptiveSettleDebounceMs","adaptiveSettleMaxWaitMs","adaptiveSettleRetries","sparseTreeRetryDelayMs","sparseTreeRetryMaxAttempts"];function Kc(e){if(!e||typeof e!="object")return;let t=e,n={};typeof t.disableAutoScroll=="boolean"&&(n.disableAutoScroll=t.disableAutoScroll),typeof t.onlyTextContent=="boolean"&&(n.onlyTextContent=t.onlyTextContent);let o=["totalBudgetMs","pageDataTimeoutMs","pdfTextSelectionTimeoutMs","adaptiveSettleDebounceMs","adaptiveSettleMaxWaitMs","adaptiveSettleRetries","sparseTreeRetryDelayMs","sparseTreeRetryMaxAttempts"];for(let i of o){let s=Number(t[i]);Number.isFinite(s)&&(n[i]=Math.trunc(s))}if(!Object.keys(n).length)return;let r=bw(n),a={};for(let i of kw)n[i]!==void 0&&r[i]!==void 0&&(a[i]=r[i]);return Object.keys(a).length?a:void 0}function yw(){return Date.now()}function Ut(e){return!e||!Number.isFinite(e)?Number.POSITIVE_INFINITY:Math.max(0,e-yw())}async function ih(e,t,n){if(!Number.isFinite(e)||e<=0)return;let o=Ut(n);o<=0||o<e+40||await $t(e,t)}async function Ga(e,t,n){let o=Math.max(0,Math.floor(t));return o?await Promise.race([e.then(a=>({ok:!0,value:a})),(async()=>(await $t(o,n),{ok:!1,reason:"timeout"}))()]):{ok:!1,reason:"timeout"}}var $t=(()=>{let e=new MessageChannel,t=[];e.port1.onmessage=()=>{let o=t.shift();o&&o()};let n=()=>new Promise(o=>{t.push(o),e.port2.postMessage(0)});return async(o,r)=>{let a=Number(o);if(!Number.isFinite(a)||a<=0)return;if(!r.hidden){let s=r.defaultView||window,c=s.setTimeout?s.setTimeout.bind(s):setTimeout;await new Promise(d=>c(d,a));return}let i=Date.now();for(;Date.now()-i<a;)await n()}})();var vw=3e4;function sh(e){return(String(e??"").replace(/\\/g,"/").split("/").pop()||"upload").replace(/[\u0000-\u001f\u007f]/g,"").trim()||"upload"}var od=class extends Error{constructor(n,o){super(n);P(this,"url");P(this,"status");P(this,"statusText");P(this,"bodySnippet");this.name="FetchFileError",this.url=o.url,this.status=o.status,this.statusText=o.statusText,this.bodySnippet=o.bodySnippet}};function ww(e){return e&&e.split(";")[0].trim()||"application/octet-stream"}function xw(e){if(!e)return;let t=/filename\*\s*=\s*UTF-8''([^;]+)/i.exec(e);if(t?.[1])try{return decodeURIComponent(t[1].trim().replace(/^\"(.*)\"$/,"$1"))}catch{}let n=/filename\s*=\s*(\"?)([^\";]+)\1/i.exec(e);if(n?.[2])return n[2].trim()}function rd(e,t){try{let o=(t??window).URL||URL,a=new o(e).pathname.match(/\/o\/(.+?)(\?|$)/);if(a?.[1]){let s=decodeURIComponent(a[1]).split("/");return s[s.length-1].replace(/^\d+-/,"")}}catch{}}function ch(e){let t=atob(e),n=new Uint8Array(t.length);for(let o=0;o<t.length;o++)n[o]=t.charCodeAt(o);return n}async function Tw(e,t={},n,o=fetch){let r=new AbortController,a=vw,i=!1,s=()=>{};if(n){let d=!1;s=()=>{d=!0},(async()=>{try{if(await $t(a,n),d)return;i=!0,r.abort()}catch{}})().catch(()=>{})}else{let d=setTimeout(()=>{i=!0,r.abort()},a);s=()=>clearTimeout(d)}let c=new Headers(t.headers);c.has("Accept")||c.set("Accept","*/*");try{let d=await o(e,{method:"GET",redirect:t.redirect??"follow",cache:t.cache??"no-store",mode:t.mode??"cors",credentials:t.credentials??"include",...t,headers:c,signal:r.signal});if(!d.ok){let p=await d.text().catch(()=>"");throw new od(`Fetch failed (${d.status})`,{url:e,status:d.status,statusText:d.statusText,bodySnippet:p.slice(0,256)})}let f=await d.arrayBuffer(),u=ww(d.headers.get("content-type")),b=xw(d.headers.get("content-disposition"))||rd(e);return{bytes:f,mimeType:u,fileName:b}}finally{s()}}async function lh(e,t,n){return await Tw(t,{referrer:n??void 0,referrerPolicy:"strict-origin-when-cross-origin"})}var Tt={plannerHistory:16,prevSteps:8,uiMessages:40,timelineEvents:60,localPersistBytes:131072,snapshotBytes:262144};var uh={activation:"on_demand",idleCloseMs:3e4,fallbackPollMinMs:2e3,fallbackPollMaxMs:15e3,maxInflightCommands:1};var _t;(function(e){e.UP="UP",e.DOWN="DOWN",e.LEFT="LEFT",e.RIGHT="RIGHT",e.TOP="TOP",e.BOTTOM="BOTTOM"})(_t||(_t={}));var sn;(function(e){e.START="START",e.CENTER="CENTER",e.END="END",e.NEAREST="NEAREST"})(sn||(sn={}));function fh(e){if(!e)return sn.CENTER;let t=typeof e=="string"?e.toUpperCase():String(e).toUpperCase();return sn&&t in sn?sn[t]:sn.CENTER}function ad(e){return globalThis.CSS&&typeof globalThis.CSS.escape=="function"?globalThis.CSS.escape(e):e.replace(/([ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~])/g,"\\$1")}function Ka(e,t){if(!e)return"";let n=ee(e,t);if(e===n.documentElement)return"html";if(e===n.body)return"body";if(e.id)return`#${ad(e.id)}`;let o=[],r=e;for(;r&&r!==n.body&&r!==n.documentElement;){let a=r.tagName.toLowerCase();if(r.id){a+=`#${ad(r.id)}`,o.unshift(a);break}let s=(r.classList&&r.classList.length?Array.from(r.classList):(r.className||"").toString().split(/\s+/).filter(Boolean)).filter(c=>c&&c.length<=48).sort((c,d)=>c.length-d.length).slice(0,3).map(ad);if(s.length)a+="."+s.join(".");else{let c=r.parentElement;if(c){let d=Array.from(c.children).filter(f=>f.tagName===r.tagName);if(d.length>1){let f=d.indexOf(r)+1;a+=`:nth-of-type(${f})`}}}o.unshift(a),r=r.parentElement}return o.join(" > ")}function ca(e){return e.scrollingElement||e.documentElement||e.body}function Xc(e,t,n,o,r){let a=ee(e,t),i=se(a,n),s=ca(a),c=e===a.documentElement||e===a.body||e===s,d=c?s:e,f=c?i.innerHeight:d.clientHeight,u=c?i.innerWidth:d.clientWidth,b=r??f*.8;switch(o){case _t.DOWN:{d.scrollTop+=b;break}case _t.UP:{d.scrollTop=Math.max(0,d.scrollTop-b);break}case _t.LEFT:return d.scrollLeft=Math.max(0,d.scrollLeft-(r??u*.8)),{success:!0,scrollLeft:d.scrollLeft};case _t.RIGHT:return d.scrollLeft+=r??u*.8,{success:!0,scrollLeft:d.scrollLeft};default:return{success:!1,error:`Unsupported scroll direction: ${String(o)}`}}let p=d.scrollHeight,g=c?i.innerHeight:d.clientHeight,y=p-g;return{success:!0,scrollTop:d.scrollTop,isAtTop:d.scrollTop<=5,isAtBottom:d.scrollTop>=y-5}}function _w(e,t,n){let o=ee(e,t),r=se(o,n),a=ca(o),i=e;for(;i&&i!==o.body&&i!==o.documentElement;){let c=r.getComputedStyle(i).overflowY;if((c==="auto"||c==="scroll"||c==="overlay")&&i.scrollHeight>i.clientHeight+5)return i;i=i.parentElement}return a}function dh(e,t,n){let o=ee(e,t),r=se(o,n),a=ca(o),i=e===o.documentElement||e===o.body||e===a,s=i?a:e,c=s.scrollHeight,d=i?r.innerHeight:s.clientHeight,f=c-d;return s.scrollTop>=f-5}function id(e,t,n,o){let r=ee(e,t),a=se(r,n),i=ca(r),s=_w(e,r,a),c=s===r.documentElement||s===r.body||s===i,d=c?i:s,f=e.getBoundingClientRect(),u=c?new(a.DOMRect||DOMRect)(0,0,a.innerWidth,a.innerHeight):s.getBoundingClientRect(),b=c?a.innerHeight:s.clientHeight,p=24,g=f.top-u.top,y=d.scrollTop+g,I;switch(o){case sn.START:I=y-p;break;case sn.END:I=y+f.height-b+p;break;case sn.NEAREST:{if(f.top>=u.top&&f.bottom<=u.bottom)return{success:!0,scrollTop:d.scrollTop,isAtTop:d.scrollTop<=5,isAtBottom:dh(d,r,a)};f.top<u.top?I=y-p:I=y+f.height-b+p;break}case sn.CENTER:default:I=y-b/2+f.height/2;break}let R=d.scrollHeight-b;return d.scrollTop=Math.max(0,Math.min(I,R)),{success:!0,scrollTop:d.scrollTop,isAtTop:d.scrollTop<=5,isAtBottom:dh(d,r,a)}}function mh(e){let t=Number(e);if(!Number.isFinite(t))return null;let n=Math.trunc(t);return n>0?n:null}function ph(e){let t=[];for(let n of bc){let o=e?.[n];if(o==null)continue;if(Array.isArray(o)){for(let a of o){let i=mh(a);i!=null&&t.push(i)}continue}let r=mh(o);r!=null&&t.push(r)}return Array.from(new Set(t))}function Iw(e){return ph(e).length>0}function Ew(e){let t=ph(e);return t.length?t[0]:null}var Sw=new Set([z.click_element,z.type_into_element,z.type_and_enter,z.hover_element,z.right_click_element,z.double_click_element,z.press_key,z.scroll_page,z.scroll_to_element,z.mouse_wheel,z.drag_element,z.drag_and_drop,z.swipe_element,z.long_press_element,z.adjust_slider,z.select_dropdown_value,z.clear_element,z.focus_element,z.check_field_validity,z.select_text,z.copy_text,z.paste_text,z.pinch_zoom,z.upload_file,z.dispatch_pointer_path]);(()=>{let e="__RTRVR_ACTION_EXECUTOR__";if(window[e])return;window[e]=!0;try{document.documentElement?.setAttribute(Du,"1")}catch{}let n="__RTRVR_INTERNAL__";try{window.__RTRVR_INTERNAL_KEY__=window.__RTRVR_INTERNAL_KEY__||n}catch{}let o=window.__RTRVR_INTERNAL_KEY__||n,r=window[o],a=r&&typeof r=="object"?r:{};if(!r)try{Object.defineProperty(window,o,{value:a,writable:!1,configurable:!1,enumerable:!1})}catch{window[o]=a}async function i(m){let T={};try{let _=Fm[m.opcode];if(!_)throw new Error(`Unknown tool opcode: ${m.opcode}`);let E={...m.call,name:_};T=(await y({tabIndex:m.tabIndex,call:E,elementData:g(m.elementData),payload:m.payload}))[0]?.response??{success:!1,error:"Empty tool response",allowFallback:!0}}catch(_){T={success:!1,error:_?.message||String(_),allowFallback:!0}}return T}try{Object.defineProperty(a,"actions",{value:Object.freeze({execute:i}),writable:!1,configurable:!1,enumerable:!1})}catch{}let s="__RTRVR_UPLOAD_BYTES_REQ__",c="__RTRVR_UPLOAD_BYTES_RES__",d="__RTRVR_UPLOAD_BYTES_BRIDGE__",f="__RTRVR_WINDOW_MESSAGE_MUX__";function u(m){let T=m,_=T[f];if(!_||typeof _!="object"){_={handlers:new Set,installed:!1};try{Object.defineProperty(T,f,{value:_,enumerable:!1,configurable:!1})}catch{T[f]=_}}if(!_.installed){_.installed=!0,m.addEventListener("message",E=>{if(E.source===m)for(let v of Array.from(_.handlers))try{v(E)}catch{}},!0);try{m.addEventListener("pagehide",()=>{let v=m[d]?.pending;if(v)for(let[k,x]of v){try{x.cancelTimeout()}catch{}x.reject(new Error("pagehide: upload bytes request canceled")),v.delete(k)}},!0)}catch{}}return _}function b(m){let T=m,_=T[d];if(!_||typeof _!="object"){_={pending:new Map};try{Object.defineProperty(T,d,{value:_,enumerable:!1,configurable:!1})}catch{T[d]=_}u(m).handlers.add(v=>{let k=v?.data;if(!k||typeof k!="object"||k.type!==c)return;let x=String(k.requestId||"");if(!x)return;let S=_.pending.get(x);if(!S)return;_.pending.delete(x);try{S.cancelTimeout()}catch{}if(!k.ok){S.reject(new Error(k.error||"Failed to get bytes"));return}let j=k.bytes;if(!(j instanceof ArrayBuffer)){S.reject(new Error("Invalid bytes payload (expected ArrayBuffer)"));return}if(typeof S.expectedByteLength=="number"&&j.byteLength!==S.expectedByteLength){S.reject(new Error(`Byte length mismatch: got=${j.byteLength}, expected=${S.expectedByteLength}`));return}S.resolve(j)})}return _}function p(m,T,_,E=9e4){let v=m.__ROVER_UPLOAD_BYTES__||m.rover?.uploadBytes||m.rtrvr?.uploadBytes;if(typeof v=="function")return Promise.resolve().then(()=>v({token:T,byteLength:_,timeoutMs:E})).then(F=>{if(F instanceof ArrayBuffer)return F;if(F&&F.buffer instanceof ArrayBuffer)return F.buffer;throw new Error("Upload bytes provider returned invalid buffer")});let k=b(m),x=globalThis.crypto?.randomUUID?.()??`${Date.now()}-${Math.random().toString(16).slice(2)}`,S=Math.max(1e3,Math.min(Number(E)||9e4,18e4)),j=Ic(m)||document;return new Promise((F,q)=>{let W=!1,G=!1,oe=()=>{G=!0};(async()=>{await $t(S,j),!(G||W)&&(k.pending.delete(x),W=!0,q(new Error("Timed out waiting for upload bytes")))})().catch(()=>{}),k.pending.set(x,{cancelTimeout:oe,expectedByteLength:_,resolve:fe=>{W||(W=!0,oe(),F(fe))},reject:fe=>{W||(W=!0,oe(),q(fe))}}),m.postMessage({type:s,requestId:x,token:T,byteLength:_},"*")})}function g(m){if(m)return{frameworks:m.frameworks?m.frameworks.map(T=>Hm[T]).filter(T=>T&&T!=="unknown"):[],listenersRaw:m.listenersRaw??"",role:m.role??void 0,pattern:m.pattern??void 0,value:m.value??void 0}}async function y({tabIndex:m,call:T,elementData:_,payload:E}){let v=(()=>{try{return Bo()?.top?.document||document}catch{return document}})(),k=T.args,x=Iw(k),S,j,F=[],q=[],W=[];try{({doc:S,win:j,iframePath:F,resolvedPath:q,unresolvedPath:W}=Va(v,k.iframe_id))}catch{if(k.iframe_id!=null){let me=`Cannot access iframe ${k.iframe_id} (cross-origin or not found)`;return[{name:T.name,args:T.args,response:{success:!1,error:me,allowFallback:!1,output:{success:!1,error:{code:"IFRAME_CONTEXT_UNAVAILABLE",message:me,retryable:!1},iframe_context:{requested_iframe_id:k.iframe_id}}}}]}S=document,j=se(S)}if(k.iframe_id!=null&&W.length>0&&!x){let ye=`iframe_id unresolved: remaining=${W.join(">")||"(none)"} (cross-origin, not-ready, or not found)`;return[{name:T.name,args:T.args,response:{success:!1,error:ye,allowFallback:!1,details:`requested=${F.join(">")||"(none)"} resolved=${q.join(">")||"(none)"}`,output:{success:!1,error:{code:"IFRAME_CONTEXT_UNAVAILABLE",message:ye,retryable:!1},iframe_context:{requested_iframe_id:k.iframe_id,requested_path:F,resolved_path:q,unresolved_path:W}}}}]}let G=T.name,oe=Ew(k),fe=oe?xo(S,oe):null,De=fe?.ownerDocument??null,ue;if(!Sw.has(G))ue={success:!1,error:`Tool not promotable to main: ${G}`,allowFallback:!0};else{let me=De??S,ye=se(me,j);ue=await R(G,fe,k,_,me,ye,E)}return[{name:T.name,args:T.args,response:ue}]}async function I(m,T,_){try{let E=m.__RTRVR_INTERNAL_KEY__||"__RTRVR_INTERNAL__",k=m[E]?.scroll?.execute;if(typeof k!="function")throw new Error("main-world scroll detector not available");let x=_?.doc||Ic(m)||document,S=Math.max(250,Math.min(Number(_?.timeoutMs??3500),8e3)),j=await Ga(Promise.resolve().then(()=>k(T)),S,x);if(!j.ok)throw new Error("scroll detector timeout");return j.value}catch(E){throw new Error(E?.message||"main-world scroll detector not available")}}async function R(m,T,_,E,v,k,x){let S=G=>({success:G.success,error:G.success?void 0:G.details||"Action failed",allowFallback:G.success?void 0:G.allowFallback??!0}),j=m===z.press_key||m===z.scroll_page||m===z.drag_and_drop||m===z.pinch_zoom;if(!T&&!j)return S({success:!1,method:"missing-element-race",details:"Target element missing",allowFallback:!0});let F=new Set([z.type_into_element,z.type_and_enter,z.clear_element,z.focus_element,z.select_text,z.check_field_validity]),q=T,W=ee(q,v);if(q&&F.has(m)){let G=Vp(q,W);(G.kind==="input"||G.kind==="contenteditable")&&(q=G.el)}try{switch(m){case z.click_element:return S(N(T,v,k,E));case z.double_click_element:return S(ao(T,v,k));case z.right_click_element:return S(un(T,v,k));case z.hover_element:return S(await ft(T,v,k,E,_.duration));case z.type_into_element:return S(await St(q,v,k,_.text,E));case z.type_and_enter:return S(await An(q,v,k,_.text,E));case z.clear_element:return S(await Ie(q,v,k,E));case z.focus_element:return S(Gt(q,v,k));case z.select_dropdown_value:return S(ut(T,v,k,_.value,E));case z.adjust_slider:return S(jt(T,v,k,E?.value??_.value,E));case z.check_field_validity:return S(Rt(q,v,k));case z.select_text:return S(no(q,v,k,_.start_offset,_.end_offset));case z.scroll_page:return S(await Zo(T,v,k,_));case z.scroll_to_element:return S(await Yt(T,v,k,_));case z.mouse_wheel:return S(Qt(T,v,k,_.delta_x,_.delta_y));case z.drag_element:return S(await Ue(T,v,k,_,E));case z.drag_and_drop:return S(await Jt(_,T,v,k));case z.swipe_element:return S(await ro(T,v,k,_));case z.long_press_element:return S(await Zt(T,v,k,_.duration));case z.pinch_zoom:return S(await vn(T,v,k,_));case z.press_key:return S(tt(_.key,_.modifiers,T,v,k));case z.copy_text:return S(await Kt(T,v,k));case z.paste_text:return S(await en(T,v,k,E));case z.upload_file:return S(await $n(_,v,k,x,T,E));case z.dispatch_pointer_path:return S(await tn(_,v,k));default:return S({success:!1,method:"unhandled",details:`Unhandled ${m}`,allowFallback:!0})}}catch(G){return S({success:!1,method:"exception",details:G?.message||"exception",allowFallback:!0})}}function O(m){let T=new Map;if(!m)return T;let _=m.trim();if(!_)return T;let E=Jr(_);if(E){for(let{id:v,mask:k}of E.entries){let x=nr[v];if(!x)continue;let S=new Set(yc(k)),j=T.get(x);if(j)for(let F of S)j.add(F);else T.set(x,S)}return T}return T}function M(m,...T){return m?T.some(_=>m.has(_)):!1}function H(m,T){let _=O(T?.listenersRaw),E=new Set;for(let[,F]of _)for(let q of F)(q==="react"||q==="vue"||q==="angular"||q==="svelte"||q==="jquery")&&E.add(q);let v=new Set;for(let[F,q]of _)if(["click","input","change","keydown","keyup","pointerdown","pointerup","mousedown","mouseup","submit","dragstart","drop","wheel","scroll"].includes(F))for(let W of q)v.add(W);let k=E.size>0||[...v].some(F=>["react","vue","angular","svelte","jquery"].includes(F)),x=M(_.get("click"),"delegated"),S=M(_.get("input"),"delegated")||M(_.get("change"),"delegated")||M(_.get("keydown"),"delegated"),j=T?.role||Ki(m)||m.getAttribute("role");return{sourcesByType:_,fws:E,isFrameworkElement:k,delegatedClick:x,delegatedInput:S,role:j}}function N(m,T,_,E){let v=H(m,E),k=ee(m,T),x=se(k,_);ht(m,k,x),E?.pattern==="hover-activate"&&ft(m,k,x,E,120);let S=v.fws.has("react")||M(v.sourcesByType.get("click"),"react"),j=v.fws.has("vue")||M(v.sourcesByType.get("click"),"vue"),F=v.fws.has("angular")||M(v.sourcesByType.get("click"),"angular"),q=v.fws.has("svelte")||M(v.sourcesByType.get("click"),"svelte"),W=v.fws.has("jquery")||M(v.sourcesByType.get("click"),"jquery");return fn(()=>Y(m,k,x),()=>ae(m,k,x),()=>S?le(m,k,x):null,()=>j?Me(m,k,x):null,()=>F?ve(m,k,x):null,()=>q?we(m,k,x):null,()=>W?Ne(m,k,x):null)}function Y(m,T,_){let E=ee(m,T),v=se(E,_),k=v.PointerEvent||PointerEvent,x=v.MouseEvent||MouseEvent,{x:S,y:j}=re(m,E,v),F={bubbles:!0,cancelable:!0,composed:!0,view:v,clientX:S,clientY:j,button:0,buttons:1};return m.focus?.({preventScroll:!0}),[new k("pointerover",F),new k("pointerenter",{...F,bubbles:!1}),new x("mouseover",F),new x("mouseenter",{...F,bubbles:!1}),new k("pointerdown",F),new x("mousedown",F),new k("pointerup",{...F,buttons:0}),new x("mouseup",{...F,buttons:0}),new x("click",{...F,buttons:0})].forEach(W=>m.dispatchEvent(W)),{success:!0,method:"pointer-mouse-click"}}function ae(m,T,_){let E=ee(m,T),v=se(E,_);try{if(m instanceof HTMLAnchorElement){let k=m.getAttribute("target");try{m.setAttribute("target","_self"),m.click()}finally{k===null?m.removeAttribute("target"):m.setAttribute("target",k)}}else m.click?.();return{success:!0,method:"native-click"}}catch{return{success:!1,method:"native-click"}}}function re(m,T,_){let E=ee(m,T),v=m.getBoundingClientRect(),k=[{x:v.left+v.width/2,y:v.top+v.height/2},{x:v.left+4,y:v.top+4},{x:v.right-4,y:v.top+4},{x:v.left+4,y:v.bottom-4},{x:v.right-4,y:v.bottom-4}],x=null;for(let S=0;S<k.length;S++){let j=k[S],F=E.elementFromPoint(j.x,j.y);if(S===0&&(x=F),F&&eh(m,F))return{...j,hit:F,ok:!0}}return{...k[0],hit:x,ok:!1}}function le(m,T,_){let E=ee(m,T),v=se(E,_);try{let k=Vn(m);if(!k)return{success:!1,method:"react-no-fiber"};let x=mn(k),S=x.onClick||x.onClickCapture;return S?(S(io("click",m,E,v)),{success:!0,method:"react-fiber-onClick"}):{success:!1,method:"react-no-onClick"}}catch{return{success:!1,method:"react-fiber-onClick"}}}function Me(m,T,_){let E=ee(m,T),k=se(E,_).MouseEvent||MouseEvent;try{let x=gr(m);if(!x)return{success:!1,method:"vue-none"};let S=Gn(x);return S.click?(S.click(new k("click",{bubbles:!0})),{success:!0,method:"vue-handler"}):x.$emit?(x.$emit("click"),{success:!0,method:"vue-emit"}):{success:!1,method:"vue-no-click"}}catch{return{success:!1,method:"vue-handler"}}}function ve(m,T,_){let E=ee(m,T),v=se(E,_),k=v.MouseEvent||MouseEvent;try{let x=v.ng?.getZone?.()||null;return x?.run?(x.run(()=>m.dispatchEvent(new k("click",{bubbles:!0,cancelable:!0}))),{success:!0,method:"angular-zone-click"}):(m.dispatchEvent(new k("click",{bubbles:!0,cancelable:!0})),m.click?.(),{success:!0,method:"angular-click"})}catch{return{success:!1,method:"angular-click",allowFallback:!0}}}function we(m,T,_){let E=ee(m,T),k=se(E,_).MouseEvent||MouseEvent;try{let x=m.getBoundingClientRect(),S={bubbles:!0,cancelable:!0,view:m.ownerDocument?.defaultView||window,clientX:x.left+x.width/2,clientY:x.top+x.height/2};return m.dispatchEvent(new k("mousedown",S)),m.dispatchEvent(new k("mouseup",S)),m.dispatchEvent(new k("click",S)),{success:!0,method:"svelte-click"}}catch{return{success:!1,method:"svelte-click"}}}function Ne(m,T,_){let E=ee(m,T),v=se(E,_);try{return v.jQuery?.(m)?.trigger?.("click"),{success:!0,method:"jquery-trigger"}}catch{return{success:!1,method:"jquery-trigger"}}}async function ft(m,T,_,E,v=500){let k=Math.min(Math.max(0,Number(v)||500),3e4),x=ee(m,T),S=se(x,_),j=H(m,E);ht(m,x,S);let F=S.PointerEvent||PointerEvent,q=S.MouseEvent||MouseEvent,W=m.getBoundingClientRect(),G=W.left+W.width/2,oe=W.top+W.height/2;if(j.fws.has("react")){let ue=Vn(m),me=ue?mn(ue):{};me.onMouseEnter?.(io("mouseenter",m,x,S)),me.onPointerEnter?.(io("pointerenter",m,x,S))}else if(j.fws.has("vue")){let ue=gr(m),me=ue?Gn(ue):{};me.mouseenter?.(new q("mouseenter",{bubbles:!0})),me.mouseover?.(new q("mouseover",{bubbles:!0}))}let fe={bubbles:!0,cancelable:!0,composed:!0,view:S,clientX:G,clientY:oe};return[new F("pointerover",fe),new F("pointerenter",{...fe,bubbles:!1}),new q("mouseover",fe),new q("mouseenter",{...fe,bubbles:!1})].forEach(ue=>m.dispatchEvent(ue)),await $t(k,x),{success:!0,method:"hover-seq"}}async function Ae(m,T,_=1){await Promise.resolve();for(let E=0;E<_;E++)m.hidden?await Wn():await new Promise(v=>{try{T.requestAnimationFrame(()=>v())}catch{Wn().then(v)}})}let lt=m=>String(m??"").replace(/\s+/g," ").trim();function Xe(m){try{if("value"in m)return String(m.value??"")}catch{}return""}function Ge(m){try{return typeof sa=="function"?sa(m):lt(m.textContent)}catch{return""}}function zt(m,T){if(!(T.isFrameworkElement||T.delegatedInput))return!1;let _=String(m??"").length;return _>0&&_<=140}async function St(m,T,_,E,v){let k=H(m,v),x=ee(m,T),S=se(x,_);if(ht(m,x,S),so(m,S)||yo(m,S)){let F=zt(String(E??""),k),q=await Xp(m,x,S,E,{settleFrames:x.hidden?1:2,useKeyFallback:F,keyFallbackMaxLen:140});return{success:q.success,method:q.method,details:q.details,allowFallback:!q.success}}if(m.isContentEditable===!0||k.role==="textbox"&&!("value"in m)){let F=Ge(m),q=Yp(m,E,x,S);await Ae(x,S,x.hidden?1:2);let W=Ge(m),G=!1;if(String(E??"").length>0&&W===F){G=!0;try{qa(m,x,S),ja(m,x,S,!0);try{x.execCommand?.("insertText",!1,String(E??""))}catch{}ia(m,String(E??""),"insertText")}catch{}await Ae(x,S,x.hidden?1:2)}let oe=Ge(m),fe=oe!==F||!!String(E??"")&&oe.includes(String(E??""));return{success:fe,method:q.method,details:`${q.details};beforeLen=${F.length};afterLen=${oe.length};reverted=${W===F};fallback=${G}`,allowFallback:fe?void 0:!0}}return{success:!1,method:"type",details:"target not editable",allowFallback:!0}}async function An(m,T,_,E,v){let k=ee(m,T),x=se(k,_),S=await St(m,k,x,E,v);if(!S.success)return S;let j=Qp(m);return{success:!0,method:"type+enter",details:`${S.details};enter=${j.method}`}}async function Ie(m,T,_,E){let v=ee(m,T),k=se(v,_),x=k.Event||Event;if(ht(m,v,k),so(m,k)||yo(m,k)){let j=Xe(m),F=Jp(m,v,k);if(await Ae(v,k,v.hidden?1:2),Xe(m)===j&&j.length>0){try{ts(m,""),ia(m,"","deleteByCut")}catch{}await Ae(v,k,v.hidden?1:2)}let G=Xe(m),oe=G.length===0||G!==j;return{success:F.success,method:F.method,details:F.details,allowFallback:!F.success}}if(m.isContentEditable===!0||H(m,E).role==="textbox"&&!("value"in m)){let j=Zp(m,v,k);return await Ae(v,k,v.hidden?1:2),{success:j.success,method:j.method,details:j.details,allowFallback:!j.success}}if("value"in m){try{m.value=""}catch{}return m.dispatchEvent(new x("input",{bubbles:!0,composed:!0})),m.dispatchEvent(new x("change",{bubbles:!0,composed:!0})),{success:!0,method:"clear-generic-value"}}return{success:!1,method:"clear",details:"target not clearable",allowFallback:!0}}function Gt(m,T,_){try{let E=ee(m,T),v=se(E,_),k=v.FocusEvent||FocusEvent;return ht(m,E,v),m.focus?.({preventScroll:!0}),m.dispatchEvent(new k("focus",{bubbles:!0})),m.dispatchEvent(new k("focusin",{bubbles:!0})),{success:!0,method:"focus"}}catch(E){return{success:!1,method:"focus",details:E.message,allowFallback:!0}}}function ut(m,T,_,E,v){try{let k=ee(m,T),x=se(k,_),S=x.Event||Event;if(!Vm(m,x))return{success:!1,method:"select",details:"target not select",allowFallback:!0};ht(m,k,x),m.focus?.({preventScroll:!0});let j=Array.from(m.options).find(G=>G.value===E||G.text.trim()===E.trim());if(!j)return{success:!1,method:"select",details:`Option not found: ${E}`,allowFallback:!0};j.selected=!0;let F=Object.getPrototypeOf(m),q=Object.getOwnPropertyDescriptor(F,"value");if(q?.set?q.set.call(m,j.value):m.value=j.value,m.dispatchEvent(new S("input",{bubbles:!0,composed:!0})),m.dispatchEvent(new S("change",{bubbles:!0,composed:!0})),H(m,v).fws.has("react")){let G=Vn(m);if(G){let oe=mn(G);if(oe.onChange){let fe=io("change",m,k,x);fe.target.value=j.value,oe.onChange(fe)}}}return{success:!0,method:"select"}}catch(k){return{success:!1,method:"select",details:k.message,allowFallback:!0}}}function jt(m,T,_,E,v){try{let k=ee(m,T),x=se(k,_),S=x.Event||Event;if(!so(m,x))return{success:!1,method:"slider",details:"target not input",allowFallback:!0};ht(m,k,x),m.focus?.({preventScroll:!0});let j=Object.getPrototypeOf(m),F=Object.getOwnPropertyDescriptor(j,"value");if(F?.set?F.set.call(m,String(E)):m.value=String(E),m.dispatchEvent(new S("input",{bubbles:!0,composed:!0})),m.dispatchEvent(new S("change",{bubbles:!0,composed:!0})),H(m,v).fws.has("react")){let W=Vn(m);if(W){let G=mn(W);if(G.onChange){let oe=io("change",m,k,x);oe.target.value=String(E),G.onChange(oe)}}}return{success:!0,method:"slider"}}catch(k){return{success:!1,method:"slider",details:k.message,allowFallback:!0}}}function Rt(m,T,_){try{let E=m.checkValidity?.()??!0;return E||m.reportValidity?.(),{success:E,method:"check-validity",details:E?void 0:m.validationMessage}}catch(E){return{success:!1,method:"check-validity",details:E.message,allowFallback:!0}}}function no(m,T,_,E,v){try{let k=ee(m,T),x=se(k,_);if("setSelectionRange"in m){let F=m;F.focus?.();let q=F.value?.length??0;return F.setSelectionRange(E??0,v??q),{success:!0,method:"select-range"}}let S=x.getSelection();if(!S)return{success:!1,method:"select-range",allowFallback:!0};let j=k.createRange();return j.selectNodeContents(m),S.removeAllRanges(),S.addRange(j),{success:!0,method:"select-range-node"}}catch(k){return{success:!1,method:"select-range",details:k.message,allowFallback:!0}}}function Cn(m,T,_,E,v){let k=ca((m&&ee(m))??T),x=m||k,S=ee(x,T),j=se(S,_),F=x===S.documentElement||x===S.body||x===k;if(E===_t.TOP||E===_t.BOTTOM){let q=x.scrollHeight,W=F?j.innerHeight:x.clientHeight,G=Math.max(0,q-W);return x.scrollTop=E===_t.TOP?0:G,{success:!0,scrollTop:x.scrollTop}}return Xc(x,S,j,E,v)}async function Zo(m,T,_,E){let v=E.direction,k=E.amount,x=ee(m,T),S=se(x,_),j=!x.hidden,F=j?"smooth":"auto";try{if(m){let W=oo(m,x,S),G=Cn(W,x,S,v,k);return G?.success?{success:!0,method:"direct-element-scroll",details:JSON.stringify(G)}:{success:!1,method:"direct-element-scroll",details:G?.error||"direct scroll failed",allowFallback:!0}}if(v===_t.TOP||v===_t.BOTTOM){let W=await I(S,{action:"scrollTo",direction:v,options:{behavior:F,isTabActive:j}},{doc:x,timeoutMs:x.hidden?5200:2800});return{success:!0,method:"detector-scrollTo",details:JSON.stringify(W)}}let q=await I(S,{action:"scrollBy",direction:v,options:{amount:k,behavior:F,isTabActive:j}},{doc:x,timeoutMs:x.hidden?5200:2800});return{success:!0,method:"detector-scrollBy",details:JSON.stringify(q)}}catch(q){let W=x?Cn(ca(x),x,S,v,k):void 0;return W?.success?{success:!0,method:"direct-primary-scroll-fallback",details:JSON.stringify(W)}:{success:!1,method:"scroll-page-failed",details:q?.message||W?.error||"scroll_page failed",allowFallback:!0}}}async function Yt(m,T,_,E){let v=ee(m,T),k=se(v,_),x=!v.hidden,S=x?"smooth":"auto",j=fh(E.position),F=Ka(m,v);if(!F){let q=id(m,v,k,j);return{success:q.success,method:"direct-scrollElement-no-selector",details:q.error,allowFallback:!q.success}}try{let q=await I(k,{action:"scrollElement",selector:F,position:j,options:{behavior:S,isTabActive:x}},{doc:v,timeoutMs:v.hidden?5600:3e3});return{success:!0,method:"detector-scrollElement",details:JSON.stringify(q)}}catch(q){let W=id(m,v,k,j);return W.success?{success:!0,method:"direct-scrollElement-fallback",details:JSON.stringify(W)}:{success:!1,method:"scroll-to-element-failed",details:q?.message||W.error||"scroll_to_element failed",allowFallback:!0}}}function Qt(m,T,_,E,v){try{let k=ee(m,T),x=se(k,_),S=x.WheelEvent||WheelEvent;ht(m,k,x);let j=oo(m,k,x);return j.dispatchEvent(new S("wheel",{bubbles:!0,cancelable:!0,composed:!0,view:x,deltaX:E||0,deltaY:v||0,deltaMode:S.DOM_DELTA_PIXEL})),j.scrollBy({left:E||0,top:v||0,behavior:"auto"}),{success:!0,method:"wheel"}}catch(k){return{success:!1,method:"wheel",details:k.message,allowFallback:!0}}}function oo(m,T,_){let E=ee(m,T),v=se(E,_),k=E.scrollingElement||E.documentElement||E.body,x=m;for(;x&&x!==E.body&&x!==E.documentElement;){let j=v.getComputedStyle(x).overflowY;if((j==="auto"||j==="scroll"||j==="overlay")&&x.scrollHeight>x.clientHeight+5)return x;x=x.parentElement}return k}async function Ue(m,T,_,E,v){try{let k=ee(m,T),x=se(k,_),S=x.PointerEvent||PointerEvent,j=x.MouseEvent||MouseEvent,F=x.DragEvent||DragEvent,q=x.DataTransfer||DataTransfer;ht(m,k,x);let W=re(m,k,x),G=Pt(W.hit,x)?W.hit:m,oe=m.getBoundingClientRect(),fe=Number.isFinite(Number(E?.distance))?Number(E.distance):160,De=0,ue=0;switch(String(E?.direction||"").toUpperCase()){case"UP":ue=-fe;break;case"DOWN":ue=fe;break;case"LEFT":De=-fe;break;case"RIGHT":De=fe;break;default:De=Number(E?.delta_x)||0,ue=Number(E?.delta_y)||0}let me=(ne,de)=>({x:Math.max(2,Math.min(ne,x.innerWidth-3)),y:Math.max(2,Math.min(de,x.innerHeight-3))}),ye=me(W.x,W.y),He=me(W.x+De,W.y+ue),mt=500+Date.now()%1e4,xe=Math.max(12,Math.min(36,Number(E?.steps)||18)),Pe=(ne,de)=>({bubbles:!0,cancelable:!0,composed:!0,view:x,clientX:ne,clientY:de,pageX:ne+(x.scrollX||0),pageY:de+(x.scrollY||0)}),Be=(ne,de,$e)=>({...Pe(ne,de),pointerId:mt,pointerType:"mouse",isPrimary:!0,width:1,height:1,pressure:$e?.5:0,buttons:$e,button:0}),We=(ne,de,$e)=>({...Pe(ne,de),buttons:$e,button:0});G.dispatchEvent(new S("pointerdown",Be(ye.x,ye.y,1))),G.dispatchEvent(new j("mousedown",We(ye.x,ye.y,1)));try{G.setPointerCapture?.(mt)}catch{}let ot=null;try{(m.draggable||H(m,v).sourcesByType.has("dragstart"))&&(ot=new q)}catch{ot=null}if(ot)try{m.dispatchEvent(new F("dragstart",{bubbles:!0,cancelable:!0,clientX:ye.x,clientY:ye.y,dataTransfer:ot}))}catch{}let Je=null;for(let ne=1;ne<=xe;ne++){let de=ye.x+(He.x-ye.x)*ne/xe,$e=ye.y+(He.y-ye.y)*ne/xe,yt=k.elementFromPoint(de,$e)||m;if(yt.dispatchEvent(new S("pointermove",Be(de,$e,1))),yt.dispatchEvent(new j("mousemove",We(de,$e,1))),ot)try{Je&&Je!==yt&&Je.dispatchEvent(new F("dragleave",{bubbles:!0,cancelable:!0,clientX:de,clientY:$e,dataTransfer:ot})),yt.dispatchEvent(new F("dragover",{bubbles:!0,cancelable:!0,clientX:de,clientY:$e,dataTransfer:ot})),Je=yt}catch{}ne%3===0&&await Wn()}let ie=k.elementFromPoint(He.x,He.y)||m;if(ie.dispatchEvent(new S("pointerup",Be(He.x,He.y,0))),ie.dispatchEvent(new j("mouseup",We(He.x,He.y,0))),ot)try{m.dispatchEvent(new F("dragend",{bubbles:!0,cancelable:!0,clientX:He.x,clientY:He.y,dataTransfer:ot}))}catch{}return{success:!0,method:"drag",details:`dx=${De};dy=${ue};steps=${xe};hitOk=${W.ok}`}}catch(k){return{success:!1,method:"drag",details:k?.message||"drag failed",allowFallback:!0}}}async function Jt(m,T,_,E){try{let v=ee(T,_),k=se(v,E),x=k.PointerEvent||PointerEvent,S=k.MouseEvent||MouseEvent,j=k.DragEvent||DragEvent,F=k.DataTransfer||DataTransfer,q=m?.source_element_id??m?.element_id,W=(q?xo(v,String(q)):null)||T;if(!W)return{success:!1,method:"drag-drop",details:"source missing",allowFallback:!0};let G=null,oe=Number(m?.target_x),fe=Number(m?.target_y);if(m?.target_element_id){if(G=xo(v,String(m.target_element_id)),!G)return{success:!1,method:"drag-drop",details:"target missing",allowFallback:!0};let ie=G.getBoundingClientRect();oe=ie.left+ie.width/2,fe=ie.top+ie.height/2}if((!Number.isFinite(oe)||!Number.isFinite(fe))&&!G)return{success:!1,method:"drag-drop",details:"missing target coords",allowFallback:!0};ht(W,v,k),G&&ht(G,v,k);let De=(ie,ne)=>({x:Math.max(2,Math.min(ie,k.innerWidth-3)),y:Math.max(2,Math.min(ne,k.innerHeight-3))}),ue=W.getBoundingClientRect(),me=De(ue.left+ue.width/2,ue.top+ue.height/2),ye=De(Number(oe),Number(fe)),He=600+Date.now()%1e4,mt=Math.max(14,Math.min(42,Number(m?.steps)||22)),xe=(ie,ne)=>({bubbles:!0,cancelable:!0,composed:!0,view:k,clientX:ie,clientY:ne,pageX:ie+(k.scrollX||0),pageY:ne+(k.scrollY||0)}),Pe=(ie,ne,de)=>({...xe(ie,ne),pointerId:He,pointerType:"mouse",isPrimary:!0,width:1,height:1,pressure:de?.5:0,buttons:de,button:0}),Be=(ie,ne,de)=>({...xe(ie,ne),buttons:de,button:0}),We=null;try{We=new F}catch{We=null}W.dispatchEvent(new x("pointerdown",Pe(me.x,me.y,1))),W.dispatchEvent(new S("mousedown",Be(me.x,me.y,1)));try{W.setPointerCapture?.(He)}catch{}if(We)try{W.dispatchEvent(new j("dragstart",{bubbles:!0,cancelable:!0,clientX:me.x,clientY:me.y,dataTransfer:We}))}catch{}let ot=null;for(let ie=1;ie<=mt;ie++){let ne=me.x+(ye.x-me.x)*ie/mt,de=me.y+(ye.y-me.y)*ie/mt,$e=v.elementFromPoint(ne,de)||G||v.body;if($e.dispatchEvent(new x("pointermove",Pe(ne,de,1))),$e.dispatchEvent(new S("mousemove",Be(ne,de,1))),We)try{ot&&ot!==$e&&ot.dispatchEvent(new j("dragleave",{bubbles:!0,cancelable:!0,clientX:ne,clientY:de,dataTransfer:We})),$e.dispatchEvent(new j("dragenter",{bubbles:!0,cancelable:!0,clientX:ne,clientY:de,dataTransfer:We})),$e.dispatchEvent(new j("dragover",{bubbles:!0,cancelable:!0,clientX:ne,clientY:de,dataTransfer:We})),ot=$e}catch{}ie%3===0&&await Wn()}let Je=G||v.elementFromPoint(ye.x,ye.y)||v.body;if(We)try{Je.dispatchEvent(new j("drop",{bubbles:!0,cancelable:!0,clientX:ye.x,clientY:ye.y,dataTransfer:We}))}catch{}if(Je.dispatchEvent(new x("pointerup",Pe(ye.x,ye.y,0))),Je.dispatchEvent(new S("mouseup",Be(ye.x,ye.y,0))),We)try{W.dispatchEvent(new j("dragend",{bubbles:!0,cancelable:!0,clientX:ye.x,clientY:ye.y,dataTransfer:We}))}catch{}return{success:!0,method:"html5+pointer-dragdrop",details:`steps=${mt};source=${String(q)}`}}catch(v){return{success:!1,method:"drag-drop",details:v?.message||"drag-drop failed",allowFallback:!0}}}async function ro(m,T,_,E){try{let v=ee(m,T),k=se(v,_),x=k.PointerEvent||PointerEvent,S=k.MouseEvent||MouseEvent;ht(m,v,k);let j=re(m,v,k),F={x:j.x,y:j.y},q=m.getBoundingClientRect(),W=Number.isFinite(Number(E?.distance))?Number(E.distance):Math.min(Math.max(80,Math.min(q.width,q.height)),220),G=String(E?.direction||"RIGHT").toUpperCase(),oe=F.x,fe=F.y;G==="LEFT"&&(oe-=W),G==="RIGHT"&&(oe+=W),G==="UP"&&(fe-=W),G==="DOWN"&&(fe+=W);let De=(ne,de)=>({x:Math.max(2,Math.min(ne,k.innerWidth-3)),y:Math.max(2,Math.min(de,k.innerHeight-3))}),ue=De(F.x,F.y),me=De(oe,fe),ye=700+Date.now()%1e4,He=Math.max(10,Math.min(28,Number(E?.steps)||16)),mt=(ne,de)=>({bubbles:!0,cancelable:!0,composed:!0,view:k,clientX:ne,clientY:de,pageX:ne+(k.scrollX||0),pageY:de+(k.scrollY||0)}),xe=(ne,de,$e)=>({...mt(ne,de),pointerId:ye,pointerType:"touch",isPrimary:!0,width:1,height:1,pressure:$e?.5:0,buttons:$e,button:0}),Pe=(ne,de,$e)=>({...mt(ne,de),buttons:$e,button:0}),Be=v.elementFromPoint(ue.x,ue.y)||m;Be.dispatchEvent(new x("pointerdown",xe(ue.x,ue.y,1))),Be.dispatchEvent(new S("mousedown",Pe(ue.x,ue.y,1)));let We=k.Touch,ot=k.TouchEvent,Je=!!We&&!!ot;if(Je)try{let ne=new We({identifier:ye,target:Be,clientX:ue.x,clientY:ue.y,pageX:ue.x,pageY:ue.y,screenX:ue.x,screenY:ue.y,radiusX:1,radiusY:1,rotationAngle:0,force:1});Be.dispatchEvent(new ot("touchstart",{bubbles:!0,cancelable:!0,composed:!0,touches:[ne],targetTouches:[ne],changedTouches:[ne]}))}catch{}for(let ne=1;ne<=He;ne++){let de=ue.x+(me.x-ue.x)*ne/He,$e=ue.y+(me.y-ue.y)*ne/He,yt=v.elementFromPoint(de,$e)||m;if(yt.dispatchEvent(new x("pointermove",xe(de,$e,1))),yt.dispatchEvent(new S("mousemove",Pe(de,$e,1))),Je)try{let ct=new We({identifier:ye,target:yt,clientX:de,clientY:$e,pageX:de,pageY:$e,screenX:de,screenY:$e,radiusX:1,radiusY:1,rotationAngle:0,force:1});yt.dispatchEvent(new ot("touchmove",{bubbles:!0,cancelable:!0,composed:!0,touches:[ct],targetTouches:[ct],changedTouches:[ct]}))}catch{}ne%3===0&&await Wn()}let ie=v.elementFromPoint(me.x,me.y)||m;if(ie.dispatchEvent(new x("pointerup",xe(me.x,me.y,0))),ie.dispatchEvent(new S("mouseup",Pe(me.x,me.y,0))),Je)try{let ne=new We({identifier:ye,target:ie,clientX:me.x,clientY:me.y,pageX:me.x,pageY:me.y,screenX:me.x,screenY:me.y,radiusX:1,radiusY:1,rotationAngle:0,force:0});ie.dispatchEvent(new ot("touchend",{bubbles:!0,cancelable:!0,composed:!0,touches:[],targetTouches:[],changedTouches:[ne]}))}catch{}return{success:!0,method:"swipe",details:`dir=${G};dist=${W};steps=${He};hitOk=${j.ok}`}}catch(v){return{success:!1,method:"swipe",details:v?.message||"swipe failed",allowFallback:!0}}}async function vn(m,T,_,E){try{let v=m||T.body,k=ee(v,T),x=se(k,_),S=x.PointerEvent||PointerEvent,j=x.WheelEvent||WheelEvent;ht(v,k,x);let F=Number.isFinite(Number(E?.scale))?Number(E.scale):1.2,q=v.getBoundingClientRect(),W=q.left+q.width/2,G=q.top+q.height/2,oe=24,fe=Math.max(6,Math.min(200,oe*F)),De=Math.max(6,Math.min(18,Number(E?.steps)||10)),ue=x.Touch,me=x.TouchEvent;if(!!ue&&!!me)try{let xe=(Je,ie)=>new ue({identifier:Je,target:v,clientX:ie,clientY:G,pageX:ie,pageY:G,screenX:ie,screenY:G,radiusX:1,radiusY:1,rotationAngle:0,force:1}),Pe=xe(911,W-oe),Be=xe(912,W+oe);v.dispatchEvent(new me("touchstart",{bubbles:!0,cancelable:!0,composed:!0,touches:[Pe,Be],targetTouches:[Pe,Be],changedTouches:[Pe,Be]}));for(let Je=1;Je<=De;Je++){let ie=oe+(fe-oe)*Je/De,ne=xe(911,W-ie),de=xe(912,W+ie);v.dispatchEvent(new me("touchmove",{bubbles:!0,cancelable:!0,composed:!0,touches:[ne,de],targetTouches:[ne,de],changedTouches:[ne,de]})),Je%2===0&&await Wn()}let We=xe(911,W-fe),ot=xe(912,W+fe);v.dispatchEvent(new me("touchend",{bubbles:!0,cancelable:!0,composed:!0,touches:[],targetTouches:[],changedTouches:[We,ot]}))}catch{}try{let xe=(Pe,Be,We)=>({bubbles:!0,cancelable:!0,composed:!0,view:x,clientX:Be,clientY:G,pointerId:Pe,pointerType:"touch",isPrimary:Pe===821,width:1,height:1,pressure:We?.5:0,buttons:We,button:0});v.dispatchEvent(new S("pointerdown",xe(821,W-oe,1))),v.dispatchEvent(new S("pointerdown",xe(822,W+oe,1)));for(let Pe=1;Pe<=De;Pe++){let Be=oe+(fe-oe)*Pe/De;v.dispatchEvent(new S("pointermove",xe(821,W-Be,1))),v.dispatchEvent(new S("pointermove",xe(822,W+Be,1))),Pe%2===0&&await Wn()}v.dispatchEvent(new S("pointerup",xe(821,W-fe,0))),v.dispatchEvent(new S("pointerup",xe(822,W+fe,0)))}catch{}try{let He=F>=1?-120:120;v.dispatchEvent(new j("wheel",{bubbles:!0,cancelable:!0,composed:!0,view:x,clientX:W,clientY:G,ctrlKey:!0,deltaY:He,deltaMode:j.DOM_DELTA_PIXEL}))}catch{}return{success:!0,method:"pinch-zoom",details:`scale=${F};steps=${De}`}}catch(v){return{success:!1,method:"pinch-zoom",details:v?.message||"pinch-zoom failed",allowFallback:!0}}}async function Zt(m,T,_,E=800){try{let v=ee(m,T),k=se(v,_),x=k.PointerEvent||PointerEvent,S=k.MouseEvent||MouseEvent,j=k.FocusEvent||FocusEvent;ht(m,v,k);let F=re(m,v,k),q=m;!F.ok&&Pt(F.hit,k)?q=F.hit.closest?.('a,button,input,select,textarea,summary,[role="button"],[role="link"],[onclick]')||F.hit:Pt(F.hit,k)&&(q=F.hit);let W=dn(q,v,k),G=F.x,oe=F.y,fe=1+Date.now()%1e4,De={bubbles:!0,cancelable:!0,composed:!0,view:k,clientX:G,clientY:oe,pageX:G+(k.scrollX||0),pageY:oe+(k.scrollY||0),screenX:G+(k.screenX||0),screenY:oe+(k.screenY||0)},ue={...De,pointerId:fe,pointerType:"touch",isPrimary:!0,width:1,height:1,pressure:0,buttons:0,button:0};try{q.dispatchEvent(new x("pointerover",ue)),q.dispatchEvent(new x("pointerenter",{...ue,bubbles:!1}))}catch{}try{q.dispatchEvent(new S("mouseover",De)),q.dispatchEvent(new S("mouseenter",{...De,bubbles:!1}))}catch{}try{q.focus?.({preventScroll:!0}),q.dispatchEvent(new j("focus",{bubbles:!0,composed:!0})),q.dispatchEvent(new j("focusin",{bubbles:!0,composed:!0}))}catch{}try{q.dispatchEvent(new x("pointerdown",{...ue,buttons:1,pressure:.5}))}catch{}try{q.dispatchEvent(new S("mousedown",{...De,buttons:1,button:0}))}catch{}try{let xe=k.Touch,Pe=k.TouchEvent;if(typeof xe<"u"&&typeof Pe<"u"){let Be=new xe({identifier:fe,target:q,clientX:G,clientY:oe,pageX:G+(k.scrollX||0),pageY:oe+(k.scrollY||0),screenX:G+(k.screenX||0),screenY:oe+(k.screenY||0),radiusX:1,radiusY:1,rotationAngle:0,force:1});q.dispatchEvent(new Pe("touchstart",{bubbles:!0,cancelable:!0,composed:!0,touches:[Be],targetTouches:[Be],changedTouches:[Be]}))}}catch{}let me=Number(E),ye=Number.isFinite(me)&&me>0?me:800,He=v.hidden?Math.max(ye,1200):ye;await $t(He,v);try{q.dispatchEvent(new S("contextmenu",{...De,button:2,buttons:2}))}catch{}try{q.dispatchEvent(new x("pointerup",{...ue,buttons:0,pressure:0}))}catch{}try{q.dispatchEvent(new S("mouseup",{...De,buttons:0,button:0}))}catch{}try{let xe=k.Touch,Pe=k.TouchEvent;if(typeof xe<"u"&&typeof Pe<"u"){let Be=new xe({identifier:fe,target:q,clientX:G,clientY:oe,pageX:G+(k.scrollX||0),pageY:oe+(k.scrollY||0),screenX:G+(k.screenX||0),screenY:oe+(k.screenY||0),radiusX:1,radiusY:1,rotationAngle:0,force:0});q.dispatchEvent(new Pe("touchend",{bubbles:!0,cancelable:!0,composed:!0,touches:[],targetTouches:[],changedTouches:[Be]}))}}catch{}let mt=await Ln(q,v,k,W);return{success:!0,method:"long-press",details:`holdMs=${He};verified=${mt};hitOk=${F.ok};target=${q.tagName.toLowerCase()}`}}catch(v){return{success:!1,method:"long-press",details:v?.message||"long-press failed",allowFallback:!0}}}function tt(m,T,_,E,v){try{let k=ee(_,E),S=se(k,v).KeyboardEvent||KeyboardEvent,j=_||k.activeElement||k.body||k.documentElement;j.focus?.();let F={key:m,code:er(m),bubbles:!0,cancelable:!0,ctrlKey:T?.includes("CTRL"),altKey:T?.includes("ALT"),shiftKey:T?.includes("SHIFT"),metaKey:T?.includes("META")},q=j.dispatchEvent(new S("keydown",F)),W=j.dispatchEvent(new S("keypress",F)),G=j.dispatchEvent(new S("keyup",F));if(m==="Enter"&&!!(q&&W&&G)){let fe=j.form||j.closest?.("form");fe?.requestSubmit?fe.requestSubmit():fe?.submit?.()}return{success:!0,method:"press-key"}}catch(k){return{success:!1,method:"press-key",details:k.message,allowFallback:!0}}}async function Kt(m,T,_){try{let E=m.innerText||m.value||"";if(!E)return{success:!1,method:"copy",details:"nothing to copy",allowFallback:!0};let v=ee(m,T),k=se(v,_);if(k.navigator?.clipboard?.writeText)return await k.navigator.clipboard.writeText(E),{success:!0,method:"clipboard-copy"};let x=v.createRange();x.selectNodeContents(m);let S=k.getSelection?.()||(v.defaultView||window).getSelection?.();S?.removeAllRanges(),S?.addRange(x);let j=v.execCommand?.("copy")??!1;return S?.removeAllRanges(),{success:!!j,method:"execCommand-copy",allowFallback:!j}}catch(E){return{success:!1,method:"clipboard-copy",details:E.message,allowFallback:!0}}}async function en(m,T,_,E){try{m.focus?.();let v=ee(m,T),k=se(v,_);if(k.navigator?.clipboard?.readText){let S=await k.navigator.clipboard.readText();if(S)return await St(m,v,k,S,E)}return v.execCommand?.("paste")??!1?{success:!0,method:"execCommand-paste"}:{success:!1,method:"paste",details:"clipboard empty or denied",allowFallback:!0}}catch(v){return{success:!1,method:"paste",details:v.message,allowFallback:!0}}}function Mn(m){return`${(m/1024).toFixed(1)}KB`}function Nn(m,T){if(m instanceof T.defaultView.HTMLInputElement){let x=m;if((x.type||"").toLowerCase()==="file")return x}let _=m.closest?.("label"),E=_?.htmlFor||m.htmlFor||"";if(E){let x=T.getElementById(E);if(x&&(x.type||"").toLowerCase()==="file")return x}if(_){let x=_.querySelector?.('input[type="file"]');if(x)return x}let v=m.closest?.("form");if(v){let x=v.querySelector?.('input[type="file"]');if(x)return x}let k=m.closest?.("div,section,main,article")||m.parentElement;if(k){let x=k.querySelector?.('input[type="file"]');if(x)return x}return null}function po(m,T,_){try{let E=_.HTMLInputElement?.prototype,v=E?Object.getOwnPropertyDescriptor(E,"files")?.set:void 0;if(!v){let k=Object.getPrototypeOf(m);for(;k&&!v;)v=Object.getOwnPropertyDescriptor(k,"files")?.set,k=Object.getPrototypeOf(k)}return v?(v.call(m,T),!0):(m.files=T,!0)}catch{try{return m.files=T,!0}catch{return!1}}}async function $n(m,T,_,E,v,k){try{let{file_url:x,element_id:S,file_name:j}=m,F=null;if(v&&(F=Nn(v,T)),!F&&S!==void 0&&(F=T.querySelector(`input[type="file"][${hn}*="[id=${S}]"]`)),!F){let ie=T.querySelectorAll('input[type="file"]');for(let ne of ie){if(ne.disabled)continue;let de=ne.getBoundingClientRect();if(de.width>0&&de.height>0){F=ne;break}}}if(!F)return{success:!1,method:"upload-file",details:"No file input found",allowFallback:!0};if(F.disabled)return{success:!1,method:"upload-file",details:"File input is disabled",allowFallback:!0};let q=ee(F,T),W=se(q,_);if(!(E?.kind==="upload_file"&&typeof E.byteLength=="number"&&E.byteLength>=0&&typeof E.mimeType=="string"&&(typeof E.inlineB64=="string"||typeof E.token=="string")))return{success:!1,method:"upload-file",details:"Missing upload payload (need inlineB64 or token)",allowFallback:!0};let oe=Number(E.byteLength),fe=(E.mimeType||"application/octet-stream").split(";")[0].trim()||"application/octet-stream",De;if(E.inlineB64&&typeof E.inlineB64=="string"){let ie=ch(E.inlineB64);if(ie.byteLength!==oe)return{success:!1,method:"upload-file",details:`Inline bytes length mismatch: got=${ie.byteLength} expected=${oe}`,allowFallback:!0};De=ie.buffer}else{let ie=String(E.token);De=await p(W,ie,oe,9e4)}let ue=W.Blob||Blob,me=new ue([De],{type:fe}),ye=j||E?.fileName;!ye&&x&&typeof x=="string"&&(ye=rd(x,W)),ye=sh(ye||"upload");let He=W.File||File,mt=new He([me],ye,{type:fe,lastModified:Date.now()}),xe=W.Event||Event,Pe=W.DataTransfer||DataTransfer;if(!Pe)return{success:!1,method:"upload-file",details:"DataTransfer unavailable in this context",allowFallback:!0};let Be=new Pe;if(Be.items.add(mt),!po(F,Be.files,W))return{success:!1,method:"upload-file",details:"Failed to set input.files",allowFallback:!0};F.dispatchEvent(new xe("input",{bubbles:!0,composed:!0,cancelable:!0})),F.dispatchEvent(new xe("change",{bubbles:!0,composed:!0,cancelable:!0}));let ot=Vn(F);if(ot){let ie=mn(ot);if(ie.onChange){let ne=io("change",F,q,W);ne.target.files=Be.files,ie.onChange(ne)}}let Je=gr(F);if(Je){let ie=Gn(Je);if(ie.change){let ne=new xe("change",{bubbles:!0});ne.target=F,ne.target.files=Be.files,ie.change(ne)}}try{let ie=W.jQuery||W.$;ie&&typeof ie=="function"&&ie(F).triggerHandler?.("change")}catch{}return F.focus?.({preventScroll:!0}),await Ae(q,W,2),{success:!0,method:"upload-file",details:`Uploaded ${ye} (${Mn(me.size)}) [token]`}}catch(x){return{success:!1,method:"upload-file",details:x?.message||"Upload failed",allowFallback:!0}}}async function tn(m,T,_){let E=Array.isArray(m.path)?m.path:[];if(!E.length)return{success:!1,method:"dispatch_pointer_path",details:"Empty path",allowFallback:!0};let v=_.PointerEvent||PointerEvent,k=_.MouseEvent||MouseEvent,x=16;for(let S=0;S<E.length;S++){let j=E[S],F=Number(j.x)||0,q=Number(j.y)||0,W=Number(j.pressure)||(S===0||S===E.length-1?0:.5),G=T.elementFromPoint(F,q)||T.documentElement,oe={bubbles:!0,cancelable:!0,clientX:F,clientY:q,screenX:F,screenY:q,view:_};if(S===0?(G.dispatchEvent(new v("pointerdown",{...oe,pressure:W,pointerId:1,pointerType:"mouse"})),G.dispatchEvent(new k("mousedown",{...oe,button:0,buttons:1}))):(G.dispatchEvent(new v("pointermove",{...oe,pressure:W,pointerId:1,pointerType:"mouse"})),G.dispatchEvent(new k("mousemove",{...oe,button:0,buttons:1}))),S===E.length-1&&(G.dispatchEvent(new v("pointerup",{...oe,pressure:0,pointerId:1,pointerType:"mouse"})),G.dispatchEvent(new k("mouseup",{...oe,button:0,buttons:0}))),S<E.length-1){let fe=Number(j.timestamp)||0,De=Number(E[S+1].timestamp)||0,ue=fe&&De?Math.max(0,Math.min(De-fe,1e3)):x;ue>0&&await $t(ue,T)}}return{success:!0,method:"dispatch_pointer_path",details:`Dispatched ${E.length} point(s)`}}function ao(m,T,_){let E=ee(m,T),v=se(E,_),k=v.MouseEvent||MouseEvent;ht(m,E,v),Y(m,E,v),Y(m,E,v);let x=m.getBoundingClientRect();return m.dispatchEvent(new k("dblclick",{bubbles:!0,cancelable:!0,clientX:x.left+x.width/2,clientY:x.top+x.height/2,detail:2,view:v})),{success:!0,method:"dblclick"}}function un(m,T,_){let E=ee(m,T),v=se(E,_),k=v.PointerEvent||PointerEvent,x=v.MouseEvent||MouseEvent;ht(m,E,v);let S=m.getBoundingClientRect(),j=S.left+S.width/2,F=S.top+S.height/2,q={bubbles:!0,cancelable:!0,composed:!0,view:v,clientX:j,clientY:F,button:2,buttons:2};return m.dispatchEvent(new k("pointerdown",q)),m.dispatchEvent(new x("mousedown",q)),m.dispatchEvent(new k("pointerup",{...q,buttons:0})),m.dispatchEvent(new x("mouseup",{...q,buttons:0})),m.dispatchEvent(new x("contextmenu",q)),{success:!0,method:"contextmenu"}}function dn(m,T,_){let E=ee(m,T),v=se(E,_),k=m,x=m.getBoundingClientRect();return{href:String(v.location.href),hash:String(v.location.hash),ariaExpanded:m.getAttribute("aria-expanded"),ariaPressed:m.getAttribute("aria-pressed"),ariaDisabled:m.getAttribute("aria-disabled"),disabled:!!k.disabled,open:typeof k.open<"u"?k.open:void 0,checked:typeof k.checked<"u"?k.checked:void 0,value:typeof k.value<"u"?k.value:void 0,active:Wc(E),rect:{w:x.width,h:x.height}}}function he(m,T){let _=Math.abs(m.rect.w-T.rect.w)>2||Math.abs(m.rect.h-T.rect.h)>2;return m.href!==T.href||m.hash!==T.hash||m.ariaExpanded!==T.ariaExpanded||m.ariaPressed!==T.ariaPressed||m.ariaDisabled!==T.ariaDisabled||m.disabled!==T.disabled||m.open!==T.open||m.checked!==T.checked||m.value!==T.value||m.active!==T.active||_}async function Ln(m,T,_,E){await Promise.resolve();let v=ee(m,T),k=se(v,_);T.hidden||await Wn();let x=dn(m,v,k);return he(E,x)}function ge(m,T,_){m.focus?.({preventScroll:!0});let E=ee(m,T),v=se(E,_),S=m.getAttribute("role")==="button"||Km(m,v)||m.tagName.toLowerCase()==="button"?[" ","Enter"]:["Enter"],j=v.KeyboardEvent||KeyboardEvent;for(let F of S){let q={key:F,code:F===" "?"Space":"Enter",bubbles:!0,cancelable:!0,composed:!0};m.dispatchEvent(new j("keydown",q)),m.dispatchEvent(new j("keypress",q)),m.dispatchEvent(new j("keyup",q))}return{success:!0,method:"keyboard-activate"}}async function kt(m,T,_,...E){let v=null;for(let k of E){let x=ee(m,T),S=se(x,_),j=dn(m,x,S),F=k();if(!F||!F.success)continue;if(await Ln(m,x,S,j))return{...F,details:(F.details?F.details+";":"")+"verified=true"};v=F}return v?{...v,details:(v.details?v.details+";":"")+"verified=false"}:{success:!1,method:"all-strategies-unverified",details:"no verified effect",allowFallback:!0}}function fn(...m){for(let T of m)try{let _=T();if(_&&_.success)return _}catch{}return{success:!1,method:"all-strategies-failed",allowFallback:!0}}function ht(m,T,_){let E=ee(m,T),v=se(E,_),k=m.getBoundingClientRect();k.top>=0&&k.left>=0&&k.bottom<=v.innerHeight&&k.right<=v.innerWidth||(m.scrollIntoView({behavior:"auto",block:"center",inline:"center"}),m.offsetHeight)}function Gr(m,T,_,E){let v=ee(m,T),x=se(v,_).KeyboardEvent||KeyboardEvent;for(let S of E){let j=String(S??""),F="";/^[a-z]$/i.test(j)?F=`Key${j.toUpperCase()}`:/^[0-9]$/.test(j)?F=`Digit${j}`:j===" "&&(F="Space");let q=j.length===1?j.charCodeAt(0):0,W={key:j,code:F,bubbles:!0,cancelable:!0,composed:!0,keyCode:q,which:q};m.dispatchEvent(new x("keydown",W)),m.dispatchEvent(new x("keypress",W)),m.dispatchEvent(new x("keyup",W))}}function wn(m,T,_){let E=ee(m,T),k=se(E,_).KeyboardEvent||KeyboardEvent,x={key:"Enter",code:"Enter",keyCode:13,which:13,bubbles:!0,cancelable:!0,composed:!0},S=m.dispatchEvent(new k("keydown",x)),j=m.dispatchEvent(new k("keypress",x)),F=m.dispatchEvent(new k("keyup",x));if(!!(S&&j&&F)){let W=m.form||m.closest?.("form");W?.requestSubmit?.()??W?.submit?.()}}function er(m){return{Enter:"Enter",Tab:"Tab",Escape:"Escape",Space:"Space"," ":"Space",ArrowUp:"ArrowUp",ArrowDown:"ArrowDown",ArrowLeft:"ArrowLeft",ArrowRight:"ArrowRight",Backspace:"Backspace",Delete:"Delete",Home:"Home",End:"End",PageUp:"PageUp",PageDown:"PageDown",F1:"F1",F2:"F2",F3:"F3",F4:"F4",F5:"F5",F6:"F6",F7:"F7",F8:"F8",F9:"F9",F10:"F10",F11:"F11",F12:"F12"}[m]||`Key${m.toUpperCase()}`}let ho=new MessageChannel,tr=[];ho.port1.onmessage=()=>{let m=tr.shift();m&&m()};function Wn(){return new Promise(m=>{tr.push(m),ho.port2.postMessage(0)})}function Vn(m){let T=E=>{if(!E)return null;let v=Object.keys(E);for(let k of v)if(k.startsWith("__reactFiber")||k.startsWith("__reactInternalInstance")||k.includes("reactFiber")||k.includes("reactProps")||k.includes("reactEventHandlers")||/^__r\d+/.test(k))return E[k];return null},_=m;for(let E=0;E<4&&_;E++){let v=T(_);if(v)return v;_=_.parentElement}return null}function mn(m){let T={},_=m,E=0;for(;_&&E++<10;){let v=[_.memoizedProps,_.pendingProps,_.stateNode?.props,_._memoizedProps,_._pendingProps,_.alternate?.memoizedProps].filter(Boolean);for(let k of v)if(!(!k||typeof k!="object"))for(let x in k)x.startsWith("on")&&typeof k[x]=="function"&&(T[x]=k[x]);if(Object.keys(T).length)break;_=_.return||_.alternate}return T}function hr(m,T){let _=m;for(;_;){if(_._reactRootContainer||_.__reactContainer||_.hasAttribute("data-reactroot")||_.hasAttribute("data-react-root")||["root","app","__next"].includes(_.id))return _;_=_.parentElement}return ee(m,T).querySelector("#root,#app,#__next,[data-reactroot],[data-react-root]")}function io(m,T,_,E){let v=ee(T,_),k=se(v,E),x=k.MouseEvent||MouseEvent,S=T.getBoundingClientRect(),j=new x(m,{bubbles:!0,cancelable:!0,view:k,clientX:S.left+S.width/2,clientY:S.top+S.height/2});return{type:m,target:T,currentTarget:T,bubbles:!0,cancelable:!0,nativeEvent:j,isTrusted:!0,preventDefault(){j.preventDefault()},stopPropagation(){j.stopPropagation()}}}function gr(m){let T=m;if(T.__vue__)return T.__vue__;if(T.__vueParentComponent)return T.__vueParentComponent;if(T._vnode)return T._vnode;let _=m.parentElement;for(let E=0;E<3&&_;E++){let v=_;if(v.__vue__||v.__vueParentComponent||v._vnode)return v.__vue__||v.__vueParentComponent||v._vnode;_=_.parentElement}return null}function Gn(m){let T={};if(m?.$listeners&&Object.assign(T,m.$listeners),m?._events)for(let _ in m._events){let E=m._events[_];T[_]=Array.isArray(E)?E[0]:E}if(m?.props)for(let _ in m.props)_.startsWith("on")&&typeof m.props[_]=="function"&&(T[_.substring(2).toLowerCase()]=m.props[_]);if(m?.vnode?.props)for(let _ in m.vnode.props)_.startsWith("on")&&typeof m.vnode.props[_]=="function"&&(T[_.substring(2).toLowerCase()]=m.vnode.props[_]);return T}})();function hh(){let e=window,t=e.__RTRVR_INTERNAL_KEY__||"__RTRVR_INTERNAL__";e[t]?.actions?.execute}async function gh(e){let t=window,n=t.__RTRVR_INTERNAL_KEY__||"__RTRVR_INTERNAL__",r=t[n]?.actions?.execute;if(typeof r!="function")throw new Error("Rover main-world action executor not initialized");return r(e)}function ns(e,t,n={}){let{rootNodes:o,semanticNodes:r}=Xu(e,{includeFrameContents:n.includeFrames??!0,clearIframes:n.includeFrames??!0,frameContextLabel:n.frameContextLabel??null,signalProvider:t.signalProvider,disableDomAnnotations:n.disableDomAnnotations??!0}),a={};for(let i of Object.keys(r)){let s=Number(i);if(!Number.isFinite(s))continue;let c=Qi(s);c&&(a[s]=t.getFrameworkMetadata(c))}return{rootNodes:o,semanticNodes:r,elementMeta:a}}(()=>{let e="__rtrvr_scroll_detector",t="__RTRVR_SCROLL_API__",n="__RTRVR_INTERNAL__";if(window[e])return;class o{constructor(f=document,u=window){P(this,"doc");P(this,"win");P(this,"viewport");P(this,"lastDetectedPrimary",null);P(this,"detectionCache",new Map);P(this,"lastDetectionTime",0);P(this,"CACHE_TTL",5e3);this.doc=f,this.win=u,this.viewport={width:u.innerWidth,height:u.innerHeight},this.updateViewport()}getValidPrimary(){return this.lastDetectedPrimary&&!this.doc.contains(this.lastDetectedPrimary)&&(this.lastDetectedPrimary=null),this.lastDetectedPrimary}async handleCommand(f){switch(f.action){case"detectPrimary":{let u=this.detectPrimaryScrollable();if(!u)return null;let{target:b,isRoot:p}=this.getScrollContext(u.element),g=b.scrollHeight,y=Bo(),I=p&&y?y.innerHeight:b.clientHeight,R=Math.max(0,g-I),O=b.scrollTop;return{selector:u.selector,score:u.score,type:u.type,metrics:{scrollTop:O,scrollHeight:g,clientHeight:I,isAtTop:O<=5,isAtBottom:O>=R-5}}}case"scrollTo":if(!f.direction)throw new Error("scrollTo requires direction");return this.scrollToDirection(f.direction,f.options);case"scrollBy":if(!f.direction)throw new Error("scrollBy requires direction");return this.scrollByAmount(f.direction,f.options);case"scrollElement":if(!f.selector)throw new Error("scrollElement requires selector");return this.scrollElementIntoView(f.selector,f.position,f.options);case"getMetrics":return this.getScrollMetrics();default:throw new Error(`Unknown command: ${f.action}`)}}updateViewport(){this.viewport={width:this.win.innerWidth,height:this.win.innerHeight}}async execute(f){return this.handleCommand(f)}detectPrimaryScrollable(){if(Date.now()-this.lastDetectionTime<this.CACHE_TTL&&this.detectionCache.size>0){let p=Array.from(this.detectionCache.values()).sort((g,y)=>y.score-g.score)[0];if(p)return this.lastDetectedPrimary=p.element,p}this.updateViewport();let f=this.collectScrollableCandidates();if(f.length===0){let p=this.doc.scrollingElement||this.doc.documentElement||this.doc.body;if(!p)return null;let g=this.buildFeatures(p),y=ee(p,this.doc),I={element:p,selector:Ka(p,y),score:.5,features:g,type:"document"};return this.detectionCache.clear(),this.detectionCache.set(I.selector,I),this.lastDetectionTime=Date.now(),this.lastDetectedPrimary=p,I}let u=this.scoreCandidates(f);if(u.length===0)return null;this.detectionCache.clear();for(let p of u)this.detectionCache.set(p.selector,p);this.lastDetectionTime=Date.now();let b=u[0];return b&&(this.lastDetectedPrimary=b.element),b||null}collectAllElementsDeep(f,u=15e4){let b=[],p=[],g=f.body||f.documentElement;g&&p.push(g);let y=0,I=R=>{try{let O=this.win.__RTRVR_INTERNAL_KEY__||"__RTRVR_INTERNAL__",H=this.win[O]?.shadow?.getRoot;if(typeof H=="function"){let N=H(R);if(N)return N}}catch{}try{return R.shadowRoot||null}catch{return null}};for(;p.length&&!(++y>u);){let R=p.pop();if(Yn(R)){let H=R.children;for(let N=H.length-1;N>=0;N--)p.push(H[N]);continue}let O=R,M=_e(O);Pt(O,M)&&b.push(O);try{let H=I(O);H&&p.push(H)}catch{}for(let H=O.lastElementChild;H;H=H.previousElementSibling)p.push(H)}return b}collectScrollableCandidates(){let f=[],u=new WeakSet,b=[this.doc.scrollingElement,this.doc.documentElement,this.doc.body];for(let g of b){if(!g||u.has(g))continue;let y=this.isScrollable(g);(y.vertical||y.horizontal)&&(f.push(g),u.add(g))}let p=this.collectAllElementsDeep(this.doc);for(let g of Array.from(p)){if(u.has(g))continue;let y=g.getBoundingClientRect(),I=this.win.getComputedStyle(g);if(!this.isElementRendered(g,y,I)||!this.isScrollable(g).vertical)continue;let O=40,M=this.viewport.width*.15;if(y.height<O||y.width<M){let H=(g.className||"").toLowerCase().includes("scroll"),N=I.overflowY==="auto"||I.overflowY==="scroll"||I.overflow==="auto"||I.overflow==="scroll";if(!H&&!N)continue}f.push(g),u.add(g)}return f}isElementRendered(f,u,b){if(b.display==="none"||b.visibility==="hidden")return!1;let p=parseFloat(b.opacity||"1");return!(!Number.isNaN(p)&&p<.01||u.width<=1||u.height<=1)}isScrollable(f){let u=this.win.getComputedStyle(f),b=u.overflowY,p=u.overflowX,g=this.doc.scrollingElement,y=f===this.doc.documentElement||f===this.doc.body||!!g&&f===g,I=f.scrollHeight,R=f.clientHeight,O=f.scrollWidth,M=f.clientWidth;if(y){let ve=this.doc.documentElement,we=this.doc.body;I=Math.max(ve?ve.scrollHeight:0,we?we.scrollHeight:0),R=this.win.innerHeight}let H=I-R>8,N=O-M>8,Y=b==="auto"||b==="scroll"||b==="overlay",ae=p==="auto"||p==="scroll"||p==="overlay";return{vertical:y?H:H&&Y,horizontal:y?N:N&&ae,byOverflow:Y||ae}}calculateVisibleIntersection(f){let u=Math.max(0,f.left),b=Math.max(0,f.top),p=Math.min(this.viewport.width,f.right),g=Math.min(this.viewport.height,f.bottom),y=Math.max(0,p-u),I=Math.max(0,g-b);return{width:y,height:I,area:y*I}}analyzeTextContent(f,u=2e3){let b=0,p=0,g=f.ownerDocument||this.doc,I=(g.defaultView||this.win).NodeFilter||NodeFilter,R=g.createTreeWalker(f,I.SHOW_ELEMENT|I.SHOW_TEXT,null),O=0,M=R.currentNode,H=[];for(;M&&O<u;){if(M.nodeType===Node.TEXT_NODE){let le=(M.textContent||"").replace(/\s+/g,"").length;if(le>0){b+=le;let Me=M.parentElement;Me&&Me.closest("a")&&(p+=le)}}else M.nodeType===Node.ELEMENT_NODE&&H.push(M);O++,M=R.nextNode()}let N=H.length||1,Y=b/N,ae=b>0?p/b:0;return{textChars:b,linkChars:p,textDensity:Y,linkDensity:ae}}calculateRepetitionScore(f){let u=Array.from(f.children);if(u.length<3)return 0;let b=u.slice(0,50),p=new Map,g=new Map,y=new Map;for(let re of b){let le=_e(re);if(!Pt(re,le))continue;let Me=re.getBoundingClientRect();if(Me.height<5||Me.width<this.viewport.width*.1)continue;let ve=Math.round(Me.height/10)*10,we=Math.round(Me.width/10)*10;p.set(ve,(p.get(ve)||0)+1),g.set(we,(g.get(we)||0)+1);let Ne=(re.className||re.tagName).toString();y.set(Ne,(y.get(Ne)||0)+1)}let I=b.length||1,R=Math.max(0,...p.values()),O=Math.max(0,...g.values()),M=Math.max(0,...y.values()),H=R/I,N=O/I,Y=M/I,ae=.4*H+.3*N+.3*Y;return Math.min(1,Math.max(0,ae))}calculateSemanticScore(f){let u=0,b=null,p=!1,g=(f.getAttribute("role")||"").toLowerCase(),y=f.tagName.toLowerCase(),I=(f.id||"").toLowerCase(),R=(f.className||"").toLowerCase(),O=`${g} ${y} ${I} ${R}`;return(y==="main"||g==="main")&&(u+=1.2,b="article"),y==="article"&&(u+=1,b=b||"article"),(g==="feed"||O.includes("feed"))&&(u+=1,b="feed"),(g==="log"||O.includes("chat")||O.includes("messages"))&&(u+=1,b="chat"),O.includes("content")&&(u+=.5),(O.includes("results")||O.includes("list"))&&(u+=.4),(O.includes("job")||O.includes("jobs"))&&(u+=.4),(y==="nav"||g==="navigation"||O.includes("sidebar"))&&(u-=1,p=!0),(y==="aside"||g==="complementary")&&(u-=.7,p=!0),(y==="footer"||g==="contentinfo"||O.includes("footer"))&&(u-=.8,p=!0),O.includes("header")&&(u-=.6),u=Math.max(-1,Math.min(1,u)),{semanticScore:u,typeHint:b,navLike:p}}detectScrollListeners(f){return[f.querySelector('[class*="infinite"]'),f.querySelector('[class*="load-more"]'),f.querySelector("[data-infinite]"),f.querySelector('[loading="lazy"]'),f.querySelector(".observer-target"),f.querySelector("[data-scroll]")].some(b=>b!==null)}buildFeatures(f){let u=f.getBoundingClientRect(),b=this.win.getComputedStyle(f),p=this.calculateVisibleIntersection(u),g=this.viewport.width*this.viewport.height||1,y=p.area/g,I=this.viewport.width>0?p.width/this.viewport.width:0,R=u.top+u.height/2,O=this.viewport.height/2||1,M=Math.min(1,Math.abs(R-O)/O),H=this.isScrollable(f),N=this.doc.scrollingElement,Y=f===this.doc.documentElement||f===this.doc.body||!!N&&f===N,ae=f.scrollHeight,re=f.clientHeight;if(Y){let Ge=this.doc.documentElement,zt=this.doc.body;ae=Math.max(Ge?Ge.scrollHeight:0,zt?zt.scrollHeight:0),re=this.win.innerHeight}let le=Math.max(0,ae-re),Me=le*p.width,ve=this.analyzeTextContent(f),we=this.calculateRepetitionScore(f),Ne=this.calculateSemanticScore(f),ft=f.contains(this.doc.activeElement),Ae=this.detectScrollListeners(f),lt=parseInt(b.zIndex||"0",10),Xe=Number.isFinite(lt)?lt:0;return{geometry:{viewportCoverage:y,widthProminence:I,centerDistance:M,scrollCapacity:le,scrollSurface:Me,zIndex:Xe},content:{textDensity:ve.textDensity,linkDensity:ve.linkDensity,repetitionScore:we,semanticScore:Ne.semanticScore},interaction:{hasScrollListeners:Ae,hasFocus:ft,recentActivity:ft?1:0}}}inferElementType(f,u,b,p){if(b)return b;let g=(f.getAttribute("role")||"").toLowerCase(),y=(f.className||"").toLowerCase(),I=f.tagName.toLowerCase(),R=u.geometry,O=u.content;if(g==="log"||y.includes("chat")||y.includes("messages"))return"chat";let M=this.win.getComputedStyle(f);if((M.position==="fixed"||M.position==="absolute")&&R.zIndex>100&&R.viewportCoverage>.2&&R.centerDistance<.4)return"modal";if(g==="feed"||O.repetitionScore>.3&&R.scrollCapacity>400&&R.widthProminence>=.25)return"feed";if(I==="article"||O.textDensity>40&&O.linkDensity<.4&&R.widthProminence>.4)return"article";if(p||R.widthProminence<.3&&O.linkDensity>.3)return"sidebar";let N=this.doc.scrollingElement;return f===this.doc.documentElement||f===this.doc.body||N&&f===N?"document":"unknown"}scoreCandidates(f){let u=[],b=[],p=[],g=[],y=[],I=[];for(let Y of f){let ae=this.buildFeatures(Y),re=ae.content.semanticScore,le=this.calculateSemanticScore(Y),Me=this.inferElementType(Y,ae,le.typeHint,le.navLike);I.push({element:Y,features:{geometry:{...ae.geometry},content:{...ae.content,semanticScore:le.semanticScore},interaction:ae.interaction},type:Me,navLike:le.navLike,semanticScore:le.semanticScore}),b.push(ae.geometry.scrollSurface),p.push(ae.content.textDensity),g.push(Math.abs(le.semanticScore)),y.push(ae.content.repetitionScore)}let R=Math.max(0,...b),O=Math.max(0,...p),M=Math.max(0,...g),H=Math.max(0,...y),N=-1/0;for(let Y of I){let{element:ae,features:re,type:le,navLike:Me,semanticScore:ve}=Y,we=re.geometry,Ne=re.content,ft=re.interaction,Ae=R>0?we.scrollSurface/R:0,lt=O>0?Ne.textDensity/O:0,Xe=M>0?(ve/M+1)/2:.5,Ge=le==="feed"||Ne.repetitionScore>.3&&we.scrollCapacity>400,zt=Ne.linkDensity>.5?(Ne.linkDensity-.5)/.5:0,St=Ge?0:zt,An=(Ge?1:.5)*Ne.repetitionScore*Math.min(1,we.scrollCapacity/4e3),Gt={feed:.2,chat:.2,article:.08,modal:.08,document:.05,sidebar:-.12,unknown:0}[le]||0,ut=0;ut+=we.viewportCoverage*.18,ut+=we.widthProminence*.15,ut+=(1-we.centerDistance)*.07,ut+=Ae*.22,ut+=An*.18,ut+=lt*.08,ut+=(H>0?Ne.repetitionScore/H:0)*.05,ut+=Xe*.07,ut-=St*.05,ft.hasFocus&&(ut+=.05),ft.hasScrollListeners&&(ut+=.05),ut+=Gt,Me&&(ut-=.05);let jt=Math.max(0,Math.min(1,ut));jt>N&&(N=jt),u.push({element:ae,selector:Ka(ae,ee(ae)),score:jt,features:re,type:le})}if(u.sort((Y,ae)=>ae.score-Y.score),u.length>=2){let Y=u[0],ae=u[1];Math.abs(Y.score-ae.score)<.08&&Y.type==="article"&&ae.type==="feed"&&(u[0]=ae,u[1]=Y)}return u}getScrollContext(f){let u=document.scrollingElement;return f===document.documentElement||f===document.body||!!u&&f===u?{target:u||document.documentElement||document.body,isRoot:!0}:{target:f,isRoot:!1}}async scrollToDirection(f,u){let b=this.getValidPrimary()||this.detectPrimaryScrollable()?.element;if(!b)return{success:!1,error:"No scrollable element found"};let{target:p,isRoot:g}=this.getScrollContext(b),y=ee(p),I=se(y),R=u?.isTabActive??!y.hidden,O=u?.behavior,M=R&&O==="smooth",H=g?Math.max(y.documentElement?y.documentElement.scrollHeight:0,y.body?y.body.scrollHeight:0):p.scrollHeight,N=g?I.innerHeight:p.clientHeight,Y=Math.max(0,H-N),ae=()=>g?I.scrollY:p.scrollTop,re=le=>{if(M)try{g?I.scrollTo({top:le,behavior:"smooth"}):p.scrollTo({top:le,behavior:"smooth"})}catch{g?(y.scrollingElement||y.documentElement||y.body).scrollTop=le:p.scrollTop=le}else if(g){let Me=y.scrollingElement||y.documentElement||y.body;Me.scrollTop=le}else p.scrollTop=le};switch(f){case _t.TOP:return re(0),{success:!0,scrollTop:0,isAtTop:!0};case _t.BOTTOM:return re(Y),{success:!0,scrollTop:Y,isAtBottom:!0};default:return{success:!1,error:`Unknown direction: ${f}`}}}async scrollByAmount(f,u){let b=this.getValidPrimary()||this.detectPrimaryScrollable()?.element;if(!b)return{success:!1,error:"No scrollable element found"};let{target:p,isRoot:g}=this.getScrollContext(b),y=u?.isTabActive??!document.hidden,I=u?.behavior,R=y&&I==="smooth",O=Bo(),M=g&&O?O.innerHeight:p.clientHeight,H=g&&O?O.innerWidth:p.clientWidth,N=u?.amount??M*.8,Y=g?Math.max(document.documentElement?document.documentElement.scrollHeight:0,document.body?document.body.scrollHeight:0):p.scrollHeight,ae=g&&O?O.innerHeight:p.clientHeight,re=Math.max(0,Y-ae),le=ve=>{if(R)try{g?O?.scrollTo({top:ve,behavior:"smooth"}):p.scrollTo({top:ve,behavior:"smooth"})}catch{let we=document.scrollingElement||document.documentElement||document.body;we.scrollTop=ve}else{let we=g?document.scrollingElement||document.documentElement||document.body:p;we.scrollTop=ve}},Me=ve=>{if(R)try{p.scrollBy({left:ve,behavior:"smooth"})}catch{p.scrollLeft+=ve}else p.scrollLeft+=ve};switch(f){case _t.DOWN:{let we=(g&&O?O.scrollY:p.scrollTop)+N;le(we);let Ne=g&&O?O.scrollY:p.scrollTop;return{success:!0,scrollTop:Ne,isAtTop:Ne<=5,isAtBottom:Ne>=re-5}}case _t.UP:{let ve=g&&O?O.scrollY:p.scrollTop,we=Math.max(0,ve-N);le(we);let Ne=g&&O?O.scrollY:p.scrollTop;return{success:!0,scrollTop:Ne,isAtTop:Ne<=5,isAtBottom:Ne>=re-5}}case _t.LEFT:{let ve=-(u?.amount??H*.8);return Me(ve),{success:!0,scrollLeft:p.scrollLeft}}case _t.RIGHT:{let ve=u?.amount??H*.8;return Me(ve),{success:!0,scrollLeft:p.scrollLeft}}default:return{success:!1,error:`Unknown direction: ${f}`}}}normalizeScrollPosition(f){switch(f){case sn.START:return"start";case sn.END:return"end";case sn.NEAREST:return"nearest";case sn.CENTER:default:return"center"}}getScrollContainerForElement(f){let u=document.scrollingElement,b=f;for(;b&&b!==document.body&&b!==document.documentElement;){let y=getComputedStyle(b).overflowY,I=y==="auto"||y==="scroll"||y==="overlay",R=b.scrollHeight-b.clientHeight>8;if(I&&R)return{container:b,isRoot:!1};b=b.parentElement}return{container:u||document.documentElement||document.body,isRoot:!0}}scrollElementIntoView(f,u,b){let p=document.querySelector(f);if(!p)return{success:!1,error:`Element not found for selector: ${f}`};let{container:g,isRoot:y}=this.getScrollContainerForElement(p),I=_e(g),R=I?.DOMRect||DOMRect,O=y?new R(0,0,I.innerWidth??0,I.innerHeight??0):g.getBoundingClientRect(),M=p.getBoundingClientRect(),H=24,N=M.top>=O.top+H&&M.bottom<=O.bottom-H,Y=b?.isTabActive??!document.hidden,ae=b?.behavior,re=Y&&ae==="smooth",le=this.normalizeScrollPosition(u);if(u===sn.NEAREST&&N)return{success:!0,alreadyVisible:!0,...this.getScrollMetricsForContainer(g,y)};try{p.scrollIntoView({behavior:re?"smooth":"auto",block:le,inline:"nearest"})}catch{p.scrollIntoView()}let Me=this.getScrollMetricsForContainer(g,y);return{success:!0,position:le,...Me}}getScrollMetricsForContainer(f,u){let b=u?Math.max(document.documentElement?document.documentElement.scrollHeight:0,document.body?document.body.scrollHeight:0):f.scrollHeight,p=ee(f),g=_e(f),y=u&&g?g.innerHeight:f.clientHeight,I=Math.max(0,b-y),O=(u?p.scrollingElement||p.documentElement||p.body:f).scrollTop;return{scrollTop:O,scrollHeight:b,clientHeight:y,maxScroll:I,isAtTop:O<=5,isAtBottom:O>=I-5,scrollPercentage:I>0?O/I*100:0}}getScrollMetrics(){let f=this.getValidPrimary()||this.detectPrimaryScrollable()?.element;if(!f)return null;let{target:u,isRoot:b}=this.getScrollContext(f),p=ee(u),g=se(p),y=b?Math.max(p.documentElement?p.documentElement.scrollHeight:0,p.body?p.body.scrollHeight:0):u.scrollHeight,I=b?g.innerHeight:u.clientHeight,R=Math.max(0,y-I),M=(b?p.scrollingElement||p.documentElement||p.body:u).scrollTop;return{element:Ka(u,p),scrollTop:M,scrollHeight:y,clientHeight:I,maxScroll:R,isAtTop:M<=5,isAtBottom:M>=R-5,scrollPercentage:R>0?M/R*100:0}}}let r=new o;window[e]=r;let a={execute:d=>r.execute(d)};try{Object.defineProperty(window,t,{value:a,writable:!1,configurable:!1,enumerable:!1})}catch{try{window[t]=a}catch{}}let i=window.__RTRVR_INTERNAL_KEY__||n,s=window[i],c=s&&typeof s=="object"?s:null;if(c){try{c.scroll=c.scroll||a}catch{}try{c.scroll||Object.defineProperty(c,"scroll",{value:a,writable:!1,configurable:!1,enumerable:!1})}catch{}}if(i!==n)try{!window[n]&&c&&Object.defineProperty(window,n,{value:c,writable:!1,configurable:!1,enumerable:!1})}catch{}})();var Rw=/\[id=(\d+)\]/,Ht;(function(e){e.HTML="html",e.PDF="pdf",e.GOOGLE_DOC="google_doc",e.GOOGLE_SHEET="google_sheet",e.PLAIN_TEXT="plain_text"})(Ht||(Ht={}));var Aw=20,Xa=new Map;function Cw(e,t){if(Xa.size>=Aw&&!Xa.has(e)){let n=Xa.keys().next().value;n!==void 0&&Xa.delete(n)}Xa.set(e,t)}var Mw=24,Nw=220,Lw=0,Dw=250,Ow=2,Pw=300,Bw=new Set(["BODY","DIV","SPAN","IMG","PICTURE","SVG"]),Uw=new Set(["A","BUTTON","INPUT","SELECT","TEXTAREA","H1","H2","H3","H4","H5","H6","MAIN","NAV","HEADER","FOOTER","ARTICLE","SECTION","ASIDE"]);function Hw(e){let t={};for(let n of Object.keys(e)){let o=e[Number(n)],r=o?.preservedAttributes?.[Pn["rtrvr-label"]],a=o?.resourceLocator;if(typeof r=="string"&&typeof a=="string"){let i=r.match(Rw);if(i?.[1]){let s=Number(i[1]);Number.isFinite(s)&&(t[s]=a)}}}return t}async function _h(e,t,n={}){let o=e.ownerDocument||document,r=n.pageConfig||$a,a=String(o.contentType||"").trim().toLowerCase(),i=$w(a,o),s=qw(i.documentType,a),c={url:o.URL,title:o.title,contentType:s},d=jw(r),f=Fw(r);if(i.documentType!==Ht.HTML){let ae=Number(r?.pageDataTimeoutMs),re=Number.isFinite(ae)?Math.max(200,Math.floor(ae)):9e3,le=Math.max(200,Math.min(re,Ut(d))),Me=Kw(o,i.documentType,r,d),ve=await Ga(Me,le,o);if(!ve.ok)return{...c,content:"",error:`non_html_timeout:${s}`,metadata:{extractionMethod:"timeout"}};let we=ve.value||{},Ne=i.documentType===Ht.GOOGLE_SHEET?_x(o):void 0;return{...c,...we,contentType:we.contentType||c.contentType,sheetInfo:we.sheetInfo||Ne}}if(r?.onlyTextContent)return{...c,contentType:Wa,content:os(o)};let u=Math.max(0,Math.min(1e3,Ut(d))),b=performance.now(),p=!1;if(!r?.disableAutoScroll&&u>80){let ae=o.hidden?200:400,re=Math.min(ae,u);re>80&&(p=await wx(o,{profile:"light",timeBudgetMs:re,delayMs:o.hidden?0:160,finalWaitMs:o.hidden?0:200}))}let g=Math.max(0,u-(performance.now()-b));g>60&&await bh(o,{...f,deadlineEpochMs:d,totalBudgetMs:g});let y=Math.max(0,u-(performance.now()-b));y>80&&await Tx(o,{mode:"full",totalBudgetMs:Math.min(o.hidden?300:400,y),budgetMs:Math.min(o.hidden?200:300,y),maxPasses:o.hidden?1:2});let I=ns(e,t,{includeFrames:n.includeFrames??!0,disableDomAnnotations:n.disableDomAnnotations??!0}),R="normal",O=0,M=0,H=[],N=Math.max(0,f.sparseTreeRetryMaxAttempts)>0,Y=yh(o,I.rootNodes,I.semanticNodes);if(Y.needsStabilization){H=[...Y.reasons],R="suspicious_unrecovered";let ae=N?Math.max(0,Math.min(Pw,Ut(d)-20)):0;if(ae>20){let re=Date.now();await bh(o,{...f,retries:0,deadlineEpochMs:d,totalBudgetMs:ae}),M=Date.now()-re,O=1,I=ns(e,t,{includeFrames:n.includeFrames??!0,disableDomAnnotations:n.disableDomAnnotations??!0});let le=yh(o,I.rootNodes,I.semanticNodes);le.reasons.length>0&&(H=[...le.reasons]),!le.needsStabilization&&!kh(I.rootNodes,I.semanticNodes)&&(R="suspicious_recovered")}}return kh(I.rootNodes,I.semanticNodes)?{...c,contentType:Wa,content:os(o),metadata:{scrollingPerformed:p,extractionMethod:"empty_tree_fallback",treeCapture:{status:R,attempts:O,waitedMs:M,reasons:H}}}:{...c,contentType:Wa,roots:I.rootNodes,nodes:I.semanticNodes,elementLinkRecord:Hw(I.semanticNodes),metadata:{scrollingPerformed:p,extractionMethod:R!=="normal"?R:void 0,treeCapture:{status:R,attempts:O,waitedMs:M,reasons:H}}}}function Fw(e){let t=Number(e?.adaptiveSettleDebounceMs),n=Number(e?.adaptiveSettleMaxWaitMs),o=Number(e?.adaptiveSettleRetries),r=Number(e?.sparseTreeRetryDelayMs),a=Number(e?.sparseTreeRetryMaxAttempts);return{debounceMs:Number.isFinite(t)?Math.max(8,Math.min(500,Math.floor(t))):Mw,maxWaitMs:Number.isFinite(n)?Math.max(80,Math.min(5e3,Math.floor(n))):Nw,retries:Number.isFinite(o)?Math.max(0,Math.min(6,Math.floor(o))):Lw,sparseTreeRetryDelayMs:Number.isFinite(r)?Math.max(20,Math.min(1e3,Math.floor(r))):Dw,sparseTreeRetryMaxAttempts:Number.isFinite(a)?Math.max(0,Math.min(4,Math.floor(a))):Ow}}async function bh(e,t){let n=Ut(t.deadlineEpochMs);if(n<=20)return;let o=Math.max(20,Math.min(Math.floor(t.totalBudgetMs),n)),r=Date.now()+o,a=0;for(;a<=t.retries&&Ut(r)>20;){let i=Math.max(40,Math.min(t.maxWaitMs,Ut(r)));if(await zw(e,{debounceMs:t.debounceMs,windowBudgetMs:i,deadlineEpochMs:r}))return;a+=1}}async function zw(e,t){let n=e.documentElement;if(!n||typeof MutationObserver>"u")return!0;let o=Date.now(),r=new MutationObserver(()=>{o=Date.now()});try{r.observe(n,{subtree:!0,childList:!0,attributes:!0,characterData:!0})}catch{return!0}let a=Date.now()+Math.max(40,Math.floor(t.windowBudgetMs));try{for(;Ut(t.deadlineEpochMs)>20&&Ut(a)>20;){let i=Date.now()-o;if(i>=t.debounceMs)return!0;let s=Math.max(10,Math.min(60,t.debounceMs-i,Ut(t.deadlineEpochMs),Ut(a)));await $t(s,e)}}finally{r.disconnect()}return!1}function jw(e){let t=Number(e?.deadlineEpochMs);if(Number.isFinite(t)&&t>0)return t;let n=Number(e?.totalBudgetMs),o=Number.isFinite(n)?Math.max(1500,Math.floor(n)):9e3;return Date.now()+o}function qw(e,t){switch(e){case Ht.PDF:return Ju;case Ht.GOOGLE_DOC:return td;case Ht.GOOGLE_SHEET:return Zu;case Ht.PLAIN_TEXT:return Gc;case Ht.HTML:default:return t||Wa}}function $w(e,t){let n=e||String(t.contentType||"").toLowerCase();return ah(n)?{documentType:Ht.PDF}:Ww(t)&&(Gw(t)||Vw(t.URL))?{documentType:Ht.PDF}:ix(t)?{documentType:Ht.GOOGLE_DOC}:sx(t)?{documentType:Ht.GOOGLE_SHEET}:n.includes(Gc)?{documentType:Ht.PLAIN_TEXT}:{documentType:Ht.HTML}}function Ww(e){try{let t=Zw(e);return nd(t)?!0:!!t.querySelector?.('object[type="application/pdf"],object[type="application/x-google-chrome-pdf"]')}catch{return!1}}function Vw(e){try{return e?e.toLowerCase().includes(".pdf")?!0:(new URL(e).searchParams.get("file")||"").toLowerCase().includes(".pdf"):!1}catch{return String(e||"").toLowerCase().includes(".pdf")}}function Gw(e){try{let t=e.body;return!t||t.querySelectorAll('embed[type="application/pdf"],embed[type="application/x-google-chrome-pdf"],object[type="application/pdf"],object[type="application/x-google-chrome-pdf"]').length===0||(t.innerText||"").trim().length>40?!1:Array.from(t.children).filter(a=>!["SCRIPT","STYLE"].includes(String(a.tagName).toUpperCase())).length<=3}catch{return!1}}async function Kw(e,t,n,o){switch(t){case Ht.PDF:return Xw(e,n,o);case Ht.GOOGLE_DOC:return Yw(e);case Ht.GOOGLE_SHEET:return kx(e,n);case Ht.PLAIN_TEXT:return{content:os(e),contentType:Gc};case Ht.HTML:default:return{content:os(e),contentType:Wa}}}async function Xw(e,t,n){Ut(n)>Qu+50&&await ih(Qu,e,n);let r=(()=>{let f=Number(t?.pdfTextSelectionTimeoutMs),u=$a.pdfTextSelectionTimeoutMs;return Number.isFinite(f)?Math.max(150,Math.floor(f)):u})(),a=Ut(n),s=Number.isFinite(a)?Math.max(150,Math.min(r,Math.max(0,a-150))):r,c=await tx(e,s),d=!!c.success&&!!(c.data||"").trim();return{content:d&&c.data||"",contentType:Ju,error:d?void 0:`pdf_extraction_failed:${c.reason||"unknown"}`}}async function Yw(e){return{content:bx(),contentType:td}}function kh(e,t){return!Array.isArray(e)||e.length===0||!t||Object.keys(t).length===0}function Qw(e){return!!(e.documentElement?.hasAttribute(Zr)||e.body?.hasAttribute(Zr)||e.body?.getAttribute?.("aria-busy")==="true")}function Jw(e,t,n){let o=Array.isArray(t)?t.length:0,r=n&&typeof n=="object"?Object.keys(n).length:0,a=r?Object.values(n):[],i=0,s=0;for(let c of a){let d=String(c?.elementName||c?.elementTag||"").trim().toUpperCase();(String(c?.textContent||c?.computedName||c?.computedDescription||"").trim().length>=2||Uw.has(d))&&(s+=1),Bw.has(d)&&(i+=1)}return{rootsCount:o,semanticCount:r,meaningfulNodeCount:s,genericNodeRatio:r>0?i/r:1,visibleTextLength:0,isDocumentComplete:e.readyState==="complete",busy:Qw(e)}}function yh(e,t,n){let o=Jw(e,t,n),r=0;!(o.rootsCount>0&&o.semanticCount>0&&o.isDocumentComplete&&!o.busy&&o.meaningfulNodeCount>=2)&&o.semanticCount>0&&o.semanticCount<=6&&(o.meaningfulNodeCount>=1||o.genericNodeRatio>=.8)&&(r=os(e).trim().length);let s={...o,visibleTextLength:r},c=s.rootsCount>0&&s.semanticCount>0&&s.isDocumentComplete&&!s.busy&&(s.meaningfulNodeCount>=2||s.semanticCount<=6&&s.meaningfulNodeCount>=1&&s.visibleTextLength<160),d=[];return(s.rootsCount===0||s.semanticCount===0)&&d.push("empty_tree"),s.semanticCount>0&&s.semanticCount<=4&&s.meaningfulNodeCount===0&&d.push("generic_shell"),s.semanticCount<=6&&s.meaningfulNodeCount<=1&&s.genericNodeRatio>=.8&&s.visibleTextLength>=80&&(d.includes("generic_shell")||d.push("generic_shell"),d.push("text_semantic_mismatch")),(!s.isDocumentComplete||s.busy)&&s.semanticCount<=8&&s.meaningfulNodeCount<=1&&d.push("dom_not_ready"),{proceedImmediately:c,needsStabilization:!c&&d.length>0,reasons:d,signals:s}}function os(e){return e.body?.innerText||e.body?.textContent||e.documentElement?.innerText||e.documentElement?.textContent||""}function Zw(e){try{let t=e.defaultView||window,n=t.__RTRVR_INTERNAL_KEY__||"__RTRVR_INTERNAL__",r=t[n]?.shadow?.getRoot;if(typeof r=="function"){let a=r(e.body||e.documentElement);if(a)return a}}catch{}return e}function ex(e){let t=e.URL||"";try{let n=new URL(t),o=n.searchParams.get("file")||n.searchParams.get("src")||"";return o||t}catch{return t}}async function tx(e,t){let n=Number.isFinite(t)&&t>0?Math.floor(t):$a.pdfTextSelectionTimeoutMs,o=ex(e),r=Xa.get(o)??"";if(r.trim().length>0)return{success:!0,data:r,reason:"ok"};let a=await nx(e,n);return a.success&&a.data.trim()&&Cw(o,a.data),a}async function nx(e,t){let n=e.defaultView||window,o=ox(e);if(!o||typeof o.postMessage!="function")return{success:!1,data:"",reason:"no_viewer"};let r=globalThis.crypto&&"randomUUID"in globalThis.crypto?globalThis.crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`,a=!1,i="",s=f=>{if(a||!rx(String(f.origin||""),e))return;let u=f.data;ax(u,r)&&typeof u.selectedText=="string"&&u.selectedText.trim().length>0&&(i=u.selectedText,a=!0)};n.addEventListener("message",s);try{o.postMessage({type:"selectAll",requestId:r},"*")}catch{}let c=Date.now();for(;!a&&Date.now()-c<t;){try{o.postMessage({type:"getSelectedText",requestId:r},"*")}catch{}if(await $t(200,e),i.trim()){a=!0;break}}return n.removeEventListener("message",s),i.trim()?{success:!0,data:i,reason:"ok"}:{success:!1,data:"",reason:Date.now()-c>=t?"timeout":"no_response"}}function ox(e){let t=nd(e)||e.querySelector?.('object[type="application/pdf"],object[type="application/x-google-chrome-pdf"]');if(t&&typeof t.postMessage=="function")return t;let n=e.querySelector?.('iframe[type="application/pdf"]');return n?.contentWindow?n.contentWindow:null}function rx(e,t){let n=(e||"").toLowerCase();if(!n||n==="null"||n.startsWith("chrome-extension://")||n.startsWith("chrome://")||n.startsWith("chrome-untrusted://"))return!0;try{let o=new URL(t.URL||"").origin.toLowerCase();if(o&&n===o)return!0}catch{}return!1}function ax(e,t){return!(!e||typeof e!="object"||e.type!=="getSelectedTextReply"||typeof e.selectedText!="string"||e.requestId&&e.requestId!==t)}function ix(e){try{let t=e.defaultView||Bo();if(t?.location.hostname==="docs.google.com"&&t?.location.pathname.startsWith("/document/d/"))return!0}catch{}try{if(e.querySelector('iframe[src^="https://docs.google.com/document/d/"]'))return!0}catch{}return Ya(e)!==null}function sx(e){let n=(e.defaultView||Bo())?.location.href??"";return/^https:\/\/docs\.google\.com\/spreadsheets\/(?:u\/\d+\/)?d\/[a-zA-Z0-9_-]+/.test(n)}function cx(e){try{return e.defaultView?.top?.document??e}catch{return e}}function Zc(e){let t=[e],n=cx(e);return n!==e&&t.push(n),t}var lx=".docs-texteventtarget-iframe",ux=".kix-cursor",dx=".docos-replyview-body",fx=".docos-replyview",mx=".docos-author",Ih="\u200B",px="\xA0";function Ya(e){for(let t of Zc(e)){let n=t.querySelector(lx);if(n)return n}return null}function hx(e){for(let t of Zc(e)){let n=t.querySelector(ux);if(n)return n}return null}function Yc(e){let t=hx(e);return t?(t.ownerDocument?.defaultView?.getComputedStyle(t).display??t.style.display)==="none":!1}function Qc(e,t){let n=Ya(e);if(!n)return;let o=t?"ArrowUp":"ArrowDown",a={key:o,keyCode:t?38:40,altKey:!0,shiftKey:!0,code:o,bubbles:!0,cancelable:!0},i=n.contentDocument,s=n.contentWindow;if(!i)return;let c=s?.KeyboardEvent||KeyboardEvent;i.dispatchEvent(new c("keydown",a))}function vh(e){let t=Ya(e);if(!t)return;let n={key:"ArrowLeft",keyCode:37,code:"ArrowLeft",bubbles:!0,cancelable:!0},o=t.contentDocument,r=t.contentWindow;if(!o)return;let a=r?.KeyboardEvent||KeyboardEvent;o.dispatchEvent(new a("keydown",n))}function gx(e){let t=Ya(e);if(!t)return;let o=(typeof navigator<"u"?String(navigator.platform||""):"").toUpperCase().indexOf("MAC")>=0,r={key:"a",code:"KeyA",ctrlKey:!o,metaKey:o,bubbles:!0,cancelable:!0},a=t.contentDocument,i=t.contentWindow;if(!a)return;let s=i?.KeyboardEvent||KeyboardEvent;a.dispatchEvent(new s("keydown",r))}function Jc(e){let t=Ya(e);if(!t)return"";let n=t.contentDocument,o=t.contentWindow,r=n?.body;if(!n||!r)return"";try{let s=o?.ClipboardEvent||ClipboardEvent,c=new s("copy",{bubbles:!0,cancelable:!0});r.firstChild?.dispatchEvent?.(c),r.firstChild?.dispatchEvent||r.dispatchEvent(c)}catch{}let a=r.innerText||r.textContent||"";return String(a).replace(new RegExp(Ih,"g"),"")??""}function sd(e){let t=`
3
3
 
4
- Comments: `,n=new Set,o=[];for(let a of Qc(e))try{let i=Array.from(a.querySelectorAll(Jw));for(let s of i)n.has(s)||(n.add(s),o.push(s))}catch{}let r=o.filter(a=>a.textContent);if(r.length===0)return"";for(let a of r){let i=a.closest(Zw);if(!i)continue;let s=i.querySelector(ex);s&&s.textContent&&(t+=`
4
+ Comments: `,n=new Set,o=[];for(let a of Zc(e))try{let i=Array.from(a.querySelectorAll(dx));for(let s of i)n.has(s)||(n.add(s),o.push(s))}catch{}let r=o.filter(a=>a.textContent);if(r.length===0)return"";for(let a of r){let i=a.closest(fx);if(!i)continue;let s=i.querySelector(mx);s&&s.textContent&&(t+=`
5
5
  Author: ${s.textContent} `),a.textContent&&(t+=`Comment: ${a.textContent}
6
- `)}return t.trim()}function rx(){let e=xt()||document,t=Ka(e),n=t?.contentDocument,o=t?.contentWindow,r=()=>{let a=n?.body,i=xt(),s=a?.innerText||a?.textContent||""||i?.body?.innerText||i?.body?.textContent||"";return String(s).replace(new RegExp(vh,"g"),"")+ad(e)};try{try{o?.focus(),n?.body?.focus?.()}catch{}if(ox(e),Kc(e)){let c=Yc(e);if(c.trim()!==""){let d=ad(e).trim();return c+d}else hh(e)}let a="";if(Xc(e,!0),Kc(e)){let c=Yc(e);c.endsWith(`
6
+ `)}return t.trim()}function bx(){let e=xt()||document,t=Ya(e),n=t?.contentDocument,o=t?.contentWindow,r=()=>{let a=n?.body,i=xt(),s=a?.innerText||a?.textContent||""||i?.body?.innerText||i?.body?.textContent||"";return String(s).replace(new RegExp(Ih,"g"),"")+sd(e)};try{try{o?.focus(),n?.body?.focus?.()}catch{}if(gx(e),Yc(e)){let c=Jc(e);if(c.trim()!==""){let d=sd(e).trim();return c+d}else vh(e)}let a="";if(Qc(e,!0),Yc(e)){let c=Jc(e);c.endsWith(`
7
7
 
8
- `)||(a+=c.trimEnd())}if(Xc(e,!1),Kc(e)?Yc(e).endsWith(tx+`
9
- `)&&Xc(e,!1):Xc(e,!1),Kc(e)){let c=Yc(e);c.trim()!==""&&!c.startsWith(`
10
- `)&&(a+=c)}hh(e);let i=ad(e).trim(),s=a.trim()+i;return s.trim()?s:r()}catch{return r()}}async function ax(e,t){let n="",o;wh(e,e.defaultView||window);let r=Ut(t?.deadlineEpochMs);try{let a=Math.max(250,Math.min(1500,Math.floor(r*.45))),i=await $a(ix(e),a,e);if(!(i.ok&&i.value))throw new Error("google_sheet_copy_failed");let c=Ut(t?.deadlineEpochMs),d=Math.max(250,Math.min(2500,Math.floor(c*.55)));if(n=await sx(d,e),!n.trim())throw new Error("google_sheet_empty_clipboard")}catch(a){o=a instanceof Error?a.message:String(a)}return{content:n,contentType:Qu,error:o}}function wh(e,t){try{t?.focus?.()}catch{}try{e?.body?.focus?.()}catch{}}function id(e,t){let o=e.defaultView?.KeyboardEvent||KeyboardEvent,r=new o("keydown",{bubbles:!0,cancelable:!0,...t}),a=e.activeElement;(a&&a.ownerDocument===e?a:e).dispatchEvent(r)}async function ix(e){try{if(wh(e,e.defaultView||window),e.hidden||!e.hasFocus())return!1;id(e,{key:"Escape",code:"Escape"}),await Wt(150,e);let t=e.querySelector(".grid-container")||gh(e,".grid-container"),n=e.querySelector(".grid4-inner-container:last-child")||gh(e,".grid4-inner-container:last-child");if(n){try{n.focus()}catch{}await Wt(100,e)}else if(t){try{t.focus?.()}catch{}await Wt(80,e)}let r=(typeof navigator<"u"?String(navigator.platform||""):"").toUpperCase().indexOf("MAC")>=0;id(e,{key:"a",code:"KeyA",ctrlKey:!r,metaKey:r}),await Wt(200,e),id(e,{key:"c",code:"KeyC",ctrlKey:!r,metaKey:r}),await Wt(200,e);try{e.execCommand("copy")}catch{}return!0}catch{return!1}}async function sx(e,t){let n=Math.max(250,Math.min(5e3,Math.floor(e)));if(navigator?.clipboard?.readText){let a=await $a(navigator.clipboard.readText(),n,t);if(a.ok)return a.value||""}let o=t.createElement("textarea");o.style.position="fixed",o.style.opacity="0",o.style.pointerEvents="none",o.style.left="-9999px",o.style.top="0",t.body?.appendChild(o),o.focus();try{t.execCommand("paste")}catch{}let r=o.value||"";return o.remove(),r}function gh(e,t){let n=Qc(e);for(let s of n)try{let c=s.querySelector(t);if(c)return c}catch{}let o=1e5,r=0,a=(s,c)=>{if(!c)return;let d=c.children;if(d)for(let f=0;f<d.length;f++)s.push(d[f])},i=[];for(let s of n)try{a(i,s.documentElement??s.body??null)}catch{}for(;i.length&&r<o;){let s=i.pop();r++;try{if(s.matches(t))return s}catch{}a(i,s);let c=s.shadowRoot;if(c&&a(i,c),String(s.tagName).toUpperCase()==="IFRAME")try{let f=s.contentDocument;f&&a(i,f.documentElement??f.body??null)}catch{}}return null}async function cx(e,t){let n=t?.profile??"light",o=!e.hidden,r=Math.max(0,Math.min(t?.timeBudgetMs??(n==="light"?1600:2800),3e3));if(r<=0)return!1;let a=Date.now(),i=()=>r-(Date.now()-a),s=t?.delayMs??(n==="light"?220:280),c=t?.finalWaitMs??(n==="light"?350:900),d=o?s:0,f=o?c:0,u=t?.amount,b=t?.maxSteps??(n==="light"?8:18),p=t?.maxDistancePx??(n==="light"?12e3:3e4),g=null;try{let O=await bh(e,{action:"detectPrimary"});if(O?.selector){let H=lx(e,O.selector);H&&(g=H)}let M=O?.metrics;if(M&&typeof M.scrollHeight=="number"&&typeof M.clientHeight=="number"){let H=Math.max(0,M.scrollHeight-M.clientHeight);p=Math.min(p,H||p),H<1500?b=Math.min(b,2):H<4e3?b=Math.min(b,4):H<1e4&&(b=Math.min(b,6))}}catch{}if(g||(g=e.scrollingElement||e.documentElement||e.body),!g)return!1;let y=0,E=null,R=0;for(let O=0;O<b&&!(i()<=0);O++){let M=null;try{M=await bh(e,{action:"scrollBy",direction:_t.DOWN,options:{amount:u,behavior:"auto",isTabActive:o}})}catch{}if(!M||!M.success){let N=e.defaultView||window;M=Gc(g,e,N,_t.DOWN,u),R=2}if(!M?.success)break;let H=M.scrollTop??E??0;if(E!==null){let N=Math.max(0,H-E);y+=N,R=N===0?R+1:0}if(E=H,M.isAtBottom||R>=2||y>=p)break;if(d>0&&O<b-1){let N=Math.min(d,Math.max(0,i()));if(N<=0)break;await Wt(N,e)}}if(f>0){let O=Math.min(f,Math.max(0,i()));O>0&&await Wt(O,e)}if(i()>80)try{let O=e.scrollingElement||e.documentElement||e.body,M=e.defaultView||window,H=g===e.documentElement||g===e.body||g===O?O:g;if(H){let N=H===O?M.innerHeight:H.clientHeight||M.innerHeight,Y=Math.max(0,H.scrollHeight-N);H.scrollTop=Y}}catch{}return!0}function lx(e,t){try{return e.querySelector(t)}catch{return null}}async function bh(e,t){let n=e.defaultView||window,o=n.__RTRVR_INTERNAL_KEY__||"__RTRVR_INTERNAL__",i=(n[o]?.scroll||n.__RTRVR_SCROLL_API__)?.execute;return typeof i!="function"?null:i(t)}async function ux(e,t){let n=e.defaultView||window,o=n.__RTRVR_INTERNAL_KEY__||"__RTRVR_INTERNAL__",a=n[o]?.flushScan;if(typeof a!="function"){try{n.rtrvrAIMarkInteractiveElements?.()}catch{}return}let i=Date.now()+Math.max(100,Math.floor(t.totalBudgetMs)),s=0;for(;s<t.maxPasses&&Ut(i)>0;){let c=Math.max(50,Math.min(t.budgetMs,Ut(i)));try{await a({mode:t.mode??"full",includeShadow:!0,includeSameOriginIframes:!0,budgetMs:c,deadlineEpochMs:i})}catch{break}if(kh(e)===0)break;s++}if(kh(e)>0&&Ut(i)>50){let c=Math.min(120,Ut(i));try{await a({mode:"priority",includeShadow:!0,includeSameOriginIframes:!0,budgetMs:c,deadlineEpochMs:i})}catch{}}}function kh(e){let t=e.documentElement;if(!t)return 0;let n=t.getAttribute(Qr);if(!n)return 0;let o=Number.parseInt(n,10);return Number.isFinite(o)&&o>0?o:0}function dx(e){let t=fx(e.URL||"");if(!t?.sheetId)return;let n=mx(e),o=n?.title||"Sheet1";return{sheetId:t.sheetId,sheetTitle:e.title||n?.title||void 0,sheetTab:o,sheetTabId:t.sheetTabId??n?.id,sheetTabs:void 0}}function fx(e){if(!e)return null;try{let t=new URL(e);if(t.hostname!=="docs.google.com")return null;let n=t.pathname.split("/"),o=n.indexOf("spreadsheets"),r=n.indexOf("d");if(o===-1||r===-1||r!==o+1||n.length<=r+1)return null;let a=n[r+1];if(!a||!/^[a-zA-Z0-9_-]+$/.test(a))return null;let i;return t.hash&&t.hash.includes("gid=")&&(i=new URLSearchParams(t.hash.substring(1)).get("gid")??void 0),!i&&t.searchParams.has("gid")&&(i=t.searchParams.get("gid")??void 0),i&&!/^\\d+$/.test(i)&&(i=void 0),{sheetId:a,sheetTabId:i?parseInt(i,10):0}}catch{return null}}function mx(e){try{let t=e.querySelector('[role="tab"][aria-selected="true"]')||e.querySelector(".docs-sheet-tab-active")||e.querySelector('.docs-sheet-tab[aria-selected="true"]');if(!t)return null;let n=t.getAttribute("aria-label")||t.textContent?.trim()||void 0,o=t.getAttribute("data-sheet-id")||t.getAttribute("data-tab-id")||void 0,r=o&&/^\d+$/.test(o)?Number(o):void 0;return{title:n,id:r}}catch{return null}}var Yn;(function(e){e[e.Native=1]="Native",e[e.Inline=2]="Inline",e[e.React=4]="React",e[e.Vue=8]="Vue",e[e.Angular=16]="Angular",e[e.Svelte=32]="Svelte",e[e.JQuery=64]="JQuery",e[e.Delegated=128]="Delegated",e[e.Other=256]="Other",e[e.Inferred=512]="Inferred"})(Yn||(Yn={}));var px={native:Yn.Native,inline:Yn.Inline,react:Yn.React,vue:Yn.Vue,angular:Yn.Angular,svelte:Yn.Svelte,jquery:Yn.JQuery,delegated:Yn.Delegated,other:Yn.Other};(()=>{let e=window,t="__RTRVR_MAIN_WORLD_INITIALIZED__",n=new WeakMap,o={frameworks:new Set,reactRoots:new WeakSet,vueRoots:new WeakSet,angularRoots:new WeakSet,svelteRoots:new WeakSet,jqueryRoots:new WeakSet},r=new WeakMap,a=new WeakMap,i=new Set,s=100,c=50,d=0,f=0,u=new WeakSet,b="__RTRVR_ET_HOOKED__",p="__RTRVR_ATTACH_SHADOW_HOOKED__";function g(h){if(h&&!u.has(h)){u.add(h);try{y(h)}catch{}try{E(h)}catch{}}}function y(h){try{let A=h.EventTarget;if(!A?.prototype||A.prototype[b])return;A.prototype[b]=!0;let D=A.prototype.addEventListener,U=A.prototype.removeEventListener;A.prototype.addEventListener=function(W,X,te){try{to(X)||mn(this,W,te)}catch{}return D.call(this,W,X,te)},A.prototype.removeEventListener=function(W,X,te){try{mr(this,W,te)}catch{}return U.call(this,W,X,te)};try{let W=Function.prototype.toString;A.prototype.addEventListener.toString=()=>W.call(D),A.prototype.removeEventListener.toString=()=>W.call(U)}catch{}}catch{}}function E(h){try{let A=h.Element;if(!A?.prototype?.attachShadow||A.prototype[p])return;A.prototype[p]=!0;let D=A.prototype.attachShadow;A.prototype.attachShadow=function(U){let W=D.call(this,U);try{Vr.set(this,W)}catch{}try{ot(W)}catch{}return W};try{let U=Function.prototype.toString;A.prototype.attachShadow.toString=()=>U.call(D)}catch{}}catch{}}function R(h){let D=n.get(h)?.listenerTypeMasks;if(D&&D.size){let U=[];for(let W of D.keys()){let X=Zo[W];X&&U.push(X)}return U}return zi(h)}let O=["onclick","ondblclick","ondoubleclick","onmousedown","onmouseup","role","contenteditable","draggable","tabindex","disabled","type","aria-haspopup","aria-expanded","data-click","data-action","data-handler","data-toggle","data-target"],M=0,H=new Set,N=null,Y=!1,ae=6,re=["click","input","change","keydown","keyup","pointerdown","pointerup","submit","focus","blur"],le=["mouseenter","mouseleave","mouseover","mouseout","mousedown","mouseup","wheel","scroll","dragstart","drop","touchstart","touchend"];if(e[t]){typeof e.rtrvrAIMarkInteractiveElements=="function"&&e.rtrvrAIMarkInteractiveElements(),typeof e.rtrvrAISetObserverPaused!="function"&&(e.rtrvrAISetObserverPaused=()=>!1),typeof e.rtrvrAIClearObserverPause!="function"&&(e.rtrvrAIClearObserverPause=()=>!1),typeof e.rtrvrAIIsObserverPaused!="function"&&(e.rtrvrAIIsObserverPaused=()=>!!xt()?.hidden);return}e[t]=!0;let Me={onclick:"click",ondblclick:"dblclick",ondoubleclick:"doubleclick",onmousedown:"mousedown",onmouseup:"mouseup",onmouseenter:"mouseenter",onmouseleave:"mouseleave",onmousemove:"mousemove",onmouseover:"mouseover",onmouseout:"mouseout",oncontextmenu:"contextmenu",onauxclick:"auxclick",onkeydown:"keydown",onkeyup:"keyup",onkeypress:"keypress",oninput:"input",onchange:"change",onsubmit:"submit",onreset:"reset",onselect:"select",onsearch:"search",oninvalid:"invalid",onbeforeinput:"beforeinput",onfocus:"focus",onblur:"blur",onfocusin:"focusin",onfocusout:"focusout",ontouchstart:"touchstart",ontouchend:"touchend",ontouchmove:"touchmove",ontouchcancel:"touchcancel",onpointerdown:"pointerdown",onpointerup:"pointerup",onpointermove:"pointermove",onpointerenter:"pointerenter",onpointerleave:"pointerleave",onpointercancel:"pointercancel",onpointerover:"pointerover",ondragstart:"dragstart",ondragend:"dragend",ondrag:"drag",ondragenter:"dragenter",ondragleave:"dragleave",ondragover:"dragover",ondrop:"drop",oncopy:"copy",oncut:"cut",onpaste:"paste",onscroll:"scroll",onwheel:"wheel",onplay:"play",onpause:"pause",onended:"ended",onvolumechange:"volumechange",onseeking:"seeking",onseeked:"seeked",onanimationstart:"animationstart",onanimationend:"animationend",ontransitionend:"transitionend",ontransitionstart:"transitionstart",onresize:"resize",ontoggle:"toggle",onfullscreenchange:"fullscreenchange",onload:"load",onerror:"error",onabort:"abort",onbeforeunload:"beforeunload",onunload:"unload",onhashchange:"hashchange",onpopstate:"popstate",onstorage:"storage",onmessage:"message"};function ve(h){return h?String(h).split(".")[0].toLowerCase():""}let we=["data-click","data-action","data-event","data-handler","data-on-click","data-onclick","data-tap","data-press","data-toggle","data-target"],Ne=0,ft=null,Ae=new MessageChannel,lt=[];Ae.port1.onmessage=()=>{let h=lt.shift();h&&h()};function Xe(){return Date.now()}function Ge(h){return!h||!Number.isFinite(h)?Number.POSITIVE_INFINITY:Math.max(0,h-Xe())}let zt=8,St=new MessageChannel,Rn=!1;function Ee(){if(!Rn){Rn=!0;try{St.port2.postMessage(0)}catch{}}}function Gt(h){let A=h.values().next();if(A.done)return null;let D=A.value;return h.delete(D),D}function ut(){return new Promise(h=>{lt.push(h),Ae.port2.postMessage(0)})}let jt=!1;function Rt(){if(!jt)try{let h=e.jQuery;h&&h.fn&&(ro(h),jt=!0,kt("jquery"))}catch{}}function eo(h,A){for(let D=A.lastElementChild;D;D=D.previousElementSibling)h.push(D)}function An(h,A,D){if(D)try{let U=hr(A);U&&h.push(U)}catch{}}function Yo(h,A,D){if(D&&Fi(A))try{let U=A.contentWindow||null;U&&g(U);let W=U?.document?.documentElement;W&&h.push(W)}catch{}}let Yt=new WeakSet;function Qt(h){h&&(typeof h=="function"||typeof h=="object")&&Yt.add(h)}function to(h){return!!h&&(typeof h=="function"||typeof h=="object")&&Yt.has(h)}St.port1.onmessage=()=>{if(ct()){H.clear(),i.clear(),M=0,Ue(),Rn=!1;return}Rn=!1,Zt(500);let h=performance.now();for(;H.size&&performance.now()-h<zt;){let A=Gt(H);if(!A)break;try{fe(A)}catch{}finally{M=Math.max(0,M-1)}}for(;i.size&&performance.now()-h<zt;){let A=Gt(i);if(!A)break;try{fn(A)}catch{}}Ue(),(H.size||i.size)&&Ee()};function Ue(){try{let h=xt()?.documentElement;if(!h)return;h.setAttribute(Qr,String(M))}catch{}}function Jt(h){let A=n.get(h);return A||(A={frameworks:new Set,listeners:new Map},n.set(h,A)),A}function no(h){ct()||(i.add(h),i.size>2e3&&Zt(1500),Ee())}function vn(h){ct()||H.has(h)||(H.add(h),M++,Ue(),Ee(),H.size>2e3&&Zt(1500))}function Zt(h=1500){let A=0;for(let D of H){if(A>=h)break;A++,D.isConnected||(H.delete(D),M=Math.max(0,M-1))}A=0;for(let D of i){if(A>=h)break;A++,D.isConnected||i.delete(D)}Ue()}let tt=null;function Kt(h,A,D){return`${h}|${A?1:0}|${D?1:0}`}function en(h){let A=h.tagName;if(A==="A"||A==="BUTTON"||A==="INPUT"||A==="SELECT"||A==="TEXTAREA"||A==="SUMMARY"||h.hasAttribute("role")||h.hasAttribute("tabindex")||h.hasAttribute("contenteditable")||h.hasAttribute("onclick")||h.getAttributeNames().some(D=>D.startsWith("on")))return!0;for(let D of we)if(h.hasAttribute(D))return!0;return!!(h.hasAttribute("aria-haspopup")||h.hasAttribute("aria-expanded"))}function Cn(h){let A=_e(h);if(!Pt(h,A))return!1;let D=h.tagName;if(D!=="DIV"&&D!=="SPAN"&&D!=="LI"&&D!=="SECTION"&&D!=="ARTICLE"&&D!=="P")return!1;let U=h;if(U.__ngContext__||U.__svelte__||U.__vue__||U._vnode||U.__reactFiber$||U.__reactProps$)return!0;let W=0;for(let X in U){if(++W>30)break;if(X.startsWith("__react")||X.includes("reactFiber")||X.includes("reactProps"))return!0}return!1}function Mn(){let h=xt()?.documentElement;return h?o.frameworks.size>0||h.hasAttribute("rtrvr-react")||h.hasAttribute("rtrvr-vue")||h.hasAttribute("rtrvr-angular")||h.hasAttribute("rtrvr-svelte")||h.hasAttribute("rtrvr-jquery"):!1}function fo(h){if(ct())return;let A=performance.now();for(;H.size&&performance.now()-A<h;){let D=Gt(H);if(!D)break;try{fe(D)}catch{}finally{M=Math.max(0,M-1)}}for(;i.size&&performance.now()-A<h;){let D=Gt(i);if(!D)break;try{fn(D)}catch{}}}async function jn(h={}){if(ct())return H.clear(),i.clear(),M=0,Ue(),{revision:++Ne,scanned:0,durationMs:0,done:!0,remaining:0};Zt(3e3),Rt(),gr();let A=h.mode??"full",D=h.includeShadow??!0,U=h.includeSameOriginIframes??!0,W=Math.max(50,Math.min(h.budgetMs??2500,15e3)),X=h.deadlineEpochMs,te=Math.max(0,Math.min(W,Ge(X))),be=Kt(A,D,U);if(te<=0){let on=(tt?.stack?.length??0)+H.size+i.size;return{revision:++Ne,scanned:0,durationMs:0,done:on===0,remaining:on}}if((!tt||tt.optsKey!==be)&&Ge(X)>30&&await xe({budgetMs:18,deadlineEpochMs:X}),A==="priority"){let on=performance.now(),ze=0;for(;H.size&&performance.now()-on<=te&&!(X&&Ge(X)<=0);){let et=Gt(H);if(!et)break;try{fe(et)}catch{}ze++,M=Math.max(0,M-1)}for(;i.size&&performance.now()-on<=te&&!(X&&Ge(X)<=0);){let et=Gt(i);if(!et)break;try{fn(et)}catch{}}return Ue(),{revision:++Ne,scanned:ze,durationMs:performance.now()-on,done:H.size===0&&i.size===0,remaining:H.size+i.size}}if(!tt||tt.optsKey!==be){let on=xt()?.documentElement;tt={optsKey:be,stack:on?[on]:[],scannedTotal:0}}let Te=performance.now(),Ze=0;for(M++,Ue();tt.stack.length&&!(X&&Ge(X)<=0);){let on=tt.stack.pop();if(Kn(on)){let et=on.children;for(let rn=et.length-1;rn>=0;rn--)tt.stack.push(et[rn]);continue}let ze=on;if(!(!ze||ze.nodeType!==1)&&!(ze.tagName==="SCRIPT"||ze.tagName==="STYLE"||ze.tagName==="META"||ze.tagName==="NOSCRIPT")){try{(en(ze)||Mn()&&Cn(ze))&&fe(ze)}catch{}try{fn(ze)}catch{}if(H.delete(ze)&&(M=Math.max(0,M-1)),i.delete(ze),Ze++,tt.scannedTotal++,D)try{let et=hr(ze);et&&(ot(et),tt.stack.push(et))}catch{}if(U&&Fi(ze))try{let et=ze.contentWindow||null;et&&g(et);let rn=et?.document,vt=rn?.documentElement;rn&&vt&&(ne(rn),tt.stack.push(vt))}catch{}for(let et=ze.lastElementChild;et;et=et.previousElementSibling)tt.stack.push(et);Ze%800===0&&Ge(X)>20&&await ut()}}let rt=Math.max(0,te-(performance.now()-Te)),Dt=Ge(X);fo(Math.min(250,rt,Dt)),M=Math.max(0,M-1),Ue();let At=tt.stack.length===0,Ye=tt.stack.length;return At&&(tt=null),{revision:++Ne,scanned:Ze,durationMs:performance.now()-Te,done:At,remaining:Ye}}async function tn(h={}){return ft||(ft=jn(h).finally(()=>{ft=null}),ft)}e.rtrvrAIFlushScan=tn;let oo="__RTRVR_INTERNAL__";Object(window).__RTRVR_INTERNAL_KEY__=oo;let un=e[oo],dn=un&&typeof un=="object"?un:{};if(!un)try{Object.defineProperty(e,oo,{value:dn,writable:!1,configurable:!1,enumerable:!1})}catch{}try{Object.defineProperty(dn,"flushScan",{value:tn,writable:!1,configurable:!1,enumerable:!1})}catch{}function pe(h,A){let D=Jt(h),U=ve(A.type);if(!U)return;let W=!1,X=D.listeners.get(U);X||(X=[],D.listeners.set(U,X),W=!0);let te=X.find(Ce=>Ce.source===A.source&&!!Ce.inferred==!!A.inferred);if(te){let Ce=!!te.capture,Te=!!te.passive,Ze=!!te.once;te.capture=te.capture||A.capture,te.passive=te.passive||A.passive,te.once=te.once||A.once,(Ce!==!!te.capture||Te!==!!te.passive||Ze!==!!te.once)&&(W=!0)}else X.push({...A,type:U}),W=!0;let be=Ke[U];if(be!==void 0){D.listenerTypeMasks||(D.listenerTypeMasks=new Map);let Ce=0,Te=px[A.source];Ce|=Te!==void 0?Te:Yn.Other,A.inferred&&(Ce|=Yn.Inferred);let Ze=D.listenerTypeMasks.get(be)||0,rt=Ze|Ce;rt!==Ze&&(D.listenerTypeMasks.set(be,rt),W=!0)}W&&(D.role=void 0,no(h))}function Nn(h){let A=h.listenerTypeMasks;return!A||A.size===0?null:[...A.entries()].sort((U,W)=>U[0]-W[0]).map(([U,W])=>`${U}~${(W||0).toString(36)}`).join(",")}function ge(h,A){let D=Jt(h);D.frameworks.has(A)||(D.frameworks.add(A),no(h))}function kt(h){o.frameworks.has(h)||(o.frameworks.add(h),xt()?.documentElement?.setAttribute(`rtrvr-${h}`,"1"))}function fn(h){let A=n.get(h);if(!A)return;i.delete(h);let D=Nn(A);D?D!==A.lastListenersSerialized&&(h.setAttribute(xr,D),A.lastListenersSerialized=D):A.lastListenersSerialized&&(h.removeAttribute(xr),A.lastListenersSerialized=void 0);let U=_e(h);if(Pt(h,U))if(A.role===void 0&&(A.role=Qo(h)),A.role){let W=Pa[A.role],X=typeof W=="number"?String(W):`s:${A.role}`;X!==A.lastRoleSerialized&&(h.setAttribute(tr,X),A.lastRoleSerialized=X)}else(A.lastRoleSerialized||h.hasAttribute(tr))&&(h.removeAttribute(tr),A.lastRoleSerialized=void 0)}function ht(h){let A=[],D=h;for(;D;)A.push(D),D=D.parentNode||D.host;return A}function $r(h){let A=h.tagName.toLowerCase(),D=h.getAttribute("role"),U=D?D.toLowerCase().trim():"";if(U&&er.has(U)||A==="button"||(A==="a"||A==="area")&&h.hasAttribute("href"))return!0;if(A==="input")return h.type?.toLowerCase()!=="hidden";if(A==="select"||A==="textarea"||(A==="video"||A==="audio")&&h.hasAttribute("controls")||h.isContentEditable||h.hasAttribute("contenteditable"))return!0;let W=h.getAttribute("tabindex");return!!(W!==null&&!Number.isNaN(Number.parseInt(W,10))&&(R(h).some(be=>Ac.has(be))||h.getAttributeNames().some(be=>be.startsWith("on"))))}function wn(h,A=10){let D=[];for(let U=0;U<h.children.length;U++)D.push({node:h.children[U],depth:1});for(;D.length;){let{node:U,depth:W}=D.pop();if($r(U))return!0;if(!(W>=A))for(let X=0;X<U.children.length;X++)D.push({node:U.children[X],depth:W+1})}return!1}function Qo(h){let A=h.tagName.toLowerCase(),D=h.getAttribute("role"),U=D?D.toLowerCase().trim():"",W=h.type?.toLowerCase();if(U&&er.has(U))return U;if(U&&ji.has(U))return null;if(A==="a"&&h.hasAttribute("href"))return"link";if(A==="button")return"button";if(A==="input")return W==="hidden"?null:W==="checkbox"?"checkbox":W==="radio"?"radio":W==="range"?"slider":W==="number"?"spinbutton":W==="search"?"searchbox":["button","submit","reset","image","file"].includes(W)?"button":h.hasAttribute("list")?"combobox":"textbox";if(A==="textarea")return"textbox";if(A==="select"){let rt=h;return rt.multiple||rt.size&&rt.size>1?"listbox":"combobox"}if(A==="option")return"option";if(A==="form")return"form";if(A==="video"||A==="audio"){let rt=zi(h);return h.hasAttribute("controls")||rt.length>0?"media":null}if(h.isContentEditable||h.hasAttribute("contenteditable"))return"textbox";let X=R(h);if(!X.length)return null;let te=!1,be=!1,Ce=!1;for(let rt=0;rt<X.length;rt++){let Dt=X[rt];!te&&Ac.has(Dt)&&(te=!0),!be&&Du.has(Dt)&&(be=!0),!Ce&&Ou.has(Dt)&&(Ce=!0)}if(!te&&!be&&!Ce)return null;let Te=h.getAttribute("tabindex"),Ze=Te!==null&&!Number.isNaN(Number.parseInt(Te,10));if(te&&(Wu(h)||h.getAttribute("href")||h.closest("a[href]")))return"link";if(be){if(h.isContentEditable||h.hasAttribute("contenteditable"))return"textbox";if(U==="textbox"||U==="searchbox"||U==="combobox"||U==="spinbutton")return U;if(!te&&Ze)return"textbox"}if(te){let rt=h.getAttribute("aria-checked"),Dt=h.getAttribute("aria-pressed");if(rt!==null||Dt!==null){if(U==="radio")return"radio";if(U==="menuitemradio")return"menuitemradio";if(U==="menuitemcheckbox")return"menuitemcheckbox";if(Dt!==null)return"button";if(rt!==null)return"checkbox"}if((Ze||U==="button")&&!wn(h))return"button"}return Ce?"application":null}let mo=EventTarget.prototype.addEventListener,Jo=EventTarget.prototype.removeEventListener;function qn(h){let A=!1,D,U;return typeof h=="boolean"?A=h:h&&typeof h=="object"&&(A=!!h.capture,D=h.passive,U=h.once),{capture:A,passive:D,once:U}}function Wn(h){try{let A=h;if(A?.nodeType===9&&A?.documentElement)return A;let D=A?.document;if(D&&D.nodeType===9&&D.documentElement)return D}catch{}return null}function mn(h,A,D){let U=ve(A);if(!U)return;let{capture:W,passive:X,once:te}=qn(D),be=r.get(h);be||(be=new Map,r.set(h,be));let Ce=be.get(U);if(Ce?(Ce.count+=1,Ce.capture=Ce.capture||W,Ce.passive=Ce.passive||X):be.set(U,{count:1,capture:W,passive:X}),Xr(h))try{pe(h,{type:U,source:"native",capture:W,passive:X,once:te})}catch{}let Te=Wn(h);if(Te&&(U==="click"||U==="input"||U==="keydown"))try{Te.documentElement?.setAttribute(`rtrvr-gl-${U}`,"1")}catch{}}function mr(h,A,D){let U=ve(A);if(!U)return;let W=r.get(h);if(!W)return;let X=W.get(U);X&&(X.count-=1,X.count<=0&&W.delete(U),W.size===0&&r.delete(h))}g(window);function ro(h){if(!h||!h.fn)return;let A=h.fn.on,D=h.fn.off;function U(X){if(!X)return[];if(typeof X=="string")return X.split(/\s/).map(te=>ve(te)).filter(Boolean);if(typeof X=="object")try{return Object.keys(X).map(te=>ve(te)).filter(Boolean)}catch{return[]}return[]}function W(X){try{if(!X)return null;if(Xr(X))return X;let te=_e(X);return _c(X,te)||null}catch{}return null}h.fn.on=function(X,te){let be=U(X),Ce=typeof te=="string"&&!!te;return this.each(function(){let Te=W(this);if(Te){if(Ce){let Ze=a.get(Te);Ze||(Ze=[],a.set(Te,Ze));for(let rt of be){let Dt=`${rt}::${te}`;Ze.some(At=>`${At.type}::${At.selector}`===Dt)||(Ze.push({type:rt,selector:te}),Ze.length>400&&Ze.shift())}}else for(let Ze of be)pe(Te,{type:Ze,source:"jquery"});ge(Te,"jquery"),kt("jquery"),o.jqueryRoots.add(Te)}}),A.apply(this,arguments)},h.fn.off=function(){return D.apply(this,arguments)},kt("jquery")}function pr(h){we.some(D=>h.hasAttribute(D))&&(pe(h,{type:"click",source:"other",inferred:!0}),(h.tagName==="INPUT"||h.tagName==="TEXTAREA")&&(pe(h,{type:"input",source:"other",inferred:!0}),pe(h,{type:"change",source:"other",inferred:!0})))}function $n(h){let A=_e(h),D=Pt(h,A),U=h.getAttributeNames().some(Ce=>Ce.startsWith("on")),W=/^(button|a|input|select|textarea|summary)$/i.test(h.tagName),X=h,te=D&&(Lc(h)||!!X.isContentEditable||h.hasAttribute("contenteditable")),be=D&&!!X.draggable;if(!U&&!W&&!te&&!be){pr(h);return}for(let[Ce,Te]of Object.entries(Me))typeof h[Ce]=="function"&&pe(h,{type:Te,source:"inline"});te&&(pe(h,{type:"input",source:"other",inferred:!0}),pe(h,{type:"keydown",source:"other",inferred:!0}),pe(h,{type:"keyup",source:"other",inferred:!0}),pe(h,{type:"paste",source:"other",inferred:!0})),be&&(pe(h,{type:"dragstart",source:"other",inferred:!0}),pe(h,{type:"dragend",source:"other",inferred:!0})),pr(h)}function m(h){if(!h.startsWith("on")||h.length<=2)return null;if(h.endsWith("Capture")){let D=h.substring(2,h.length-7);return D?{type:D.toLowerCase(),capture:!0}:null}let A=h.substring(2);return A?{type:A.toLowerCase(),capture:!1}:null}function T(h){let A=null;if(h){for(let D in h)if(D.startsWith("__react")||D.startsWith("_react")||D.includes("reactFiber")||D.includes("reactProps")||D.includes("reactInternalInstance")){A=D;break}if(A)try{let D=h[A],U=D?.memoizedProps||D?.pendingProps;if(U&&typeof U=="object"){for(let W in U){if(typeof U[W]!="function")continue;let te=m(W);te&&pe(h,{type:te.type,source:"react",capture:te.capture})}Xr(D?.stateNode)&&o.reactRoots.add(D.stateNode),ge(h,"react"),kt("react")}}catch{}}}function _(h){let A=h,D=!1;if(A.__vue__){D=!0;let U=A.__vue__;U.$listeners&&Object.keys(U.$listeners).forEach(W=>pe(h,{type:W,source:"vue"})),U._events&&Object.keys(U._events).forEach(W=>pe(h,{type:W,source:"vue"})),U.$options?._parentListeners&&Object.keys(U.$options._parentListeners).forEach(W=>pe(h,{type:W,source:"vue"})),o.vueRoots.add(h)}if(A._vnode?.props){D=!0;let U=A._vnode.props;Object.keys(U).forEach(W=>{W.startsWith("on")&&W.length>2&&pe(h,{type:W.substring(2).toLowerCase(),source:"vue"})}),o.vueRoots.add(h)}D&&(ge(h,"vue"),kt("vue"))}function I(h){let A=h,D=!1;if(A.__ngContext__||h.hasAttribute("_ngcontent")||h.hasAttribute("ng-version")){D=!0,Array.from(h.attributes).forEach(U=>{if(U.name.startsWith("(")&&U.name.endsWith(")")){let W=U.name.slice(1,-1).split(".")[0];W&&pe(h,{type:W,source:"angular"})}if(U.name.startsWith("on-")){let W=U.name.substring(3);W&&pe(h,{type:W,source:"angular"})}if(U.name.includes(".")){let W=U.name.match(/\(([^.)]+)/);W?.[1]&&pe(h,{type:W[1],source:"angular"})}});try{if(e.ng?.getComponent){let U=e.ng.getComponent(h);U&&Object.keys(U).forEach(W=>{(W.endsWith("Output")||W.endsWith("Emitter"))&&pe(h,{type:W.replace(/(Output|Emitter)$/,"").toLowerCase(),source:"angular"})})}}catch{}}D&&(ge(h,"angular"),kt("angular"),o.angularRoots.add(h))}function v(h){let A=h,D=!1;if(A.__svelte__){D=!0,Array.from(h.attributes).forEach(U=>{if(U.name.startsWith("on:")){let W=U.name.substring(3);W&&pe(h,{type:W,source:"svelte"})}});try{let U=A.__svelte__?.$$?.callbacks;U&&typeof U=="object"&&Object.keys(U).forEach(W=>pe(h,{type:W,source:"svelte"}))}catch{}o.svelteRoots.add(h)}D&&(ge(h,"svelte"),kt("svelte"))}function k(h,A){return h?!!r.get(h)?.has(A):!1}function x(h,A,D=96){let U=ve(A);if(!U)return!1;let W=ee(h),X=se(W);if(k(W,U)||k(X,U))return!0;let te=0,be=h;for(;be&&te<D;){if(be.parentElement)be=be.parentElement;else{let Ce=be.getRootNode?.();if(Kn(Ce)){if(k(Ce,U)||k(Ce.host,U))return!0;be=Ce.host}else break}if(be&&k(be,U))return!0}return!1}function S(h,A,D=128){let U=0,W=h;for(;W&&U<D;){if(A(W),W.parentElement){W=W.parentElement;continue}let X=W.getRootNode?.();if(Kn(X)){W=X.host;continue}break}}function j(h){let A=_e(h);if(!Pt(h,A))return;let D=Jt(h);D.role=D.role||Qo(h);let U=x(h,"click"),W=x(h,"input"),X=x(h,"keydown"),be=ee(h).documentElement;if(o.frameworks.size>0||be.hasAttribute("rtrvr-react")||be.hasAttribute("rtrvr-vue")||be.hasAttribute("rtrvr-angular")||be.hasAttribute("rtrvr-svelte")||be.hasAttribute("rtrvr-jquery")||U||W||X){let Te=D.role||"other";U&&["button","link","checkbox","radio","switch","menuitem","menuitemcheckbox","menuitemradio","tab","option","treeitem","gridcell","cell","img","figure"].includes(Te)&&pe(h,{type:"click",source:"delegated",inferred:!0}),["textbox","searchbox","spinbutton","code"].includes(Te)&&(W&&(pe(h,{type:"input",source:"delegated",inferred:!0}),pe(h,{type:"change",source:"delegated",inferred:!0})),X&&pe(h,{type:"keydown",source:"delegated",inferred:!0})),["combobox","listbox"].includes(Te)&&(U&&pe(h,{type:"click",source:"delegated",inferred:!0}),W&&pe(h,{type:"change",source:"delegated",inferred:!0})),["slider","scrollbar","progressbar","meter"].includes(Te)&&W&&pe(h,{type:"input",source:"delegated",inferred:!0})}S(h,Te=>{let Ze=a.get(Te);if(Ze?.length)for(let{type:rt,selector:Dt}of Ze)try{h.matches(Dt)&&(pe(h,{type:rt,source:"jquery",inferred:!0}),ge(h,"jquery"),kt("jquery"))}catch{}})}function F(h){let A=D=>{if(ct())return;let U=D,W=U.composedPath&&U.composedPath()||ht(D.target),te=h==="mousemove"||h==="pointermove"||h==="scroll"||h==="wheel"?1:Math.min(W.length,ae);for(let be=0;be<te;be++){let Ce=W[be];Xr(Ce)&&pe(Ce,{type:h,source:"delegated",inferred:!0})}};Qt(A);try{mo.call(document,h,A,{capture:!0,passive:!0})}catch{}}let q=!1,$=!1,G=null;function oe(){if($)return;$=!0,re.forEach(F);let h=xt()?.documentElement;if(!h)return;let A=()=>{if(q)return;let D=h.hasAttribute("rtrvr-react")||h.hasAttribute("rtrvr-vue")||h.hasAttribute("rtrvr-angular")||h.hasAttribute("rtrvr-svelte"),U=h.hasAttribute("rtrvr-gl-click")||h.hasAttribute("rtrvr-gl-input")||h.hasAttribute("rtrvr-gl-keydown");(D||U)&&(q=!0,le.forEach(F))};A();try{G=new MutationObserver(()=>A()),G.observe(h,{attributes:!0,attributeFilter:We})}catch{}}function fe(h){if(h.nodeType!==1)return;let A=_e(h);if(Pt(h,A)){let D=Jt(h);D.role=void 0}$n(h),T(h),_(h),I(h),v(h),j(h),no(h)}function De(){if(ct())return;let h=["a[href]","button","input","select","textarea","summary","details > summary",...Array.from(er).map(A=>`[role="${A}"]`),"[onclick]","[ondblclick]","[ondoubleclick]","[onmousedown]","[tabindex]","[contenteditable]",'[draggable="true"]',"[aria-haspopup]","[aria-expanded]","[data-click]","[data-action]","[data-handler]","[data-toggle]","[data-target]",".clickable",".interactive",".btn",".button"];M++,Ue();try{let A=h.join(",");xt()?.querySelectorAll(A).forEach(D=>{try{fe(D)}catch{}})}finally{M=Math.max(0,M-1),Ue()}}let ue=!1,me=[],ye=200;function He(h){if(!ct()){for(let A of h)me.push(A);ue||(ue=!0,queueMicrotask(mt))}}function mt(){ue=!1;let h=me;if(me=[],ct())return;let A=0;for(let D of h){if(A>=ye)break;for(let U of Array.from(D.addedNodes)){if(A>=ye)break;if(U.nodeType!==1)continue;let W=U;vn(W),A++;let X=W.querySelectorAll?.('a,button,input,select,textarea,summary,[role],[onclick],[ondblclick],[ondoubleclick],[contenteditable],[draggable="true"],[tabindex]');if(X){let te=Math.min(X.length,50);for(let be=0;be<te;be++)vn(X[be]),A++}}if(D.type==="attributes"&&D.target.nodeType===1){let U=D.target;D.attributeName==="class"?en(U)&&vn(U):vn(U)}}}async function xe(h={}){if(ct())return;let A=xt(),D=A?.documentElement;if(!D||!(D.hasAttribute("rtrvr-react")||D.hasAttribute("rtrvr-vue")||D.hasAttribute("rtrvr-angular")||D.hasAttribute("rtrvr-svelte")))return;let W=h.deadlineEpochMs,X=Math.max(5,Math.min(h.budgetMs??12,50));if(Math.max(0,Math.min(X,Ge(W)))<=0)return;let be=performance.now();M++,Ue();try{let Ce=0,Te=["div","span","li","section","article","p"];for(let Ze of Te){let rt=A.getElementsByTagName(Ze)??[];for(let Dt=0;Dt<rt.length;Dt++){if(W&&Ge(W)<=0)return;Ce++;let At=rt[Dt],Ye=At;(Ye.__ngContext__||Ye.__svelte__||Ye.__vue__||Ye._vnode||Cn(At))&&fe(At),Ce%250===0&&Ge(W)>20&&await ut()}}}finally{M=Math.max(0,M-1),Ue()}}let Pe=new MutationObserver(He),Be=new WeakMap,$e=new Set;function ot(h){let A=Be.get(h);if(A){if($e.add(A),!Y)try{A.observe(h,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[...O,"class"]})}catch{}return}if(!(d>=s))try{let D=se(h.ownerDocument).MutationObserver||MutationObserver,U=new D(He);Be.set(h,U),$e.add(U),d++,Y||U.observe(h,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[...O,"class"]})}catch{}}let Je=new WeakMap,ie=new Set;function ne(h){let A=Je.get(h);if(A){if(ie.add(A),!Y)try{let D=h.documentElement;D&&A.observe(D,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[...O,"class"]})}catch{}return}if(!(f>=c))try{g(h.defaultView||null);let D=h.documentElement;if(!D)return;let U=se(h).MutationObserver||MutationObserver,W=new U(He);Je.set(h,W),ie.add(W),f++,Y||W.observe(D,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[...O,"class"]})}catch{}}function de(){let h=xt()?.documentElement;h&&Pe.observe(h,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[...O,"class"]})}let We=["rtrvr-react","rtrvr-vue","rtrvr-angular","rtrvr-svelte","rtrvr-gl-click","rtrvr-gl-input","rtrvr-gl-keydown"];function yt(){return N??!!xt()?.hidden}function ct(){return Y}function Fe(h){let A=!!h;if(Y===A)return;if(Y=A,Y){try{Pe.disconnect()}catch{}try{G?.disconnect()}catch{}for(let U of $e)try{U.disconnect()}catch{}for(let U of ie)try{U.disconnect()}catch{}$e.clear(),ie.clear(),H.clear(),i.clear(),M=0,Ue();return}de();let D=xt()?.documentElement;if(D&&G)try{G.observe(D,{attributes:!0,attributeFilter:We})}catch{}De()}function nn(h){return N=typeof h=="boolean"?h:null,Fe(yt()),!0}let Vr=new WeakMap;function hr(h){return h.shadowRoot||Vr.get(h)||null}try{Object.defineProperty(dn,"shadow",{value:Object.freeze({getRoot:h=>hr(h)}),writable:!1,configurable:!1,enumerable:!1})}catch{}function gr(){try{(e.React||e.__REACT_DEVTOOLS_GLOBAL_HOOK__)&&kt("react"),e.Vue&&kt("vue"),e.ng&&kt("angular"),e.jQuery&&kt("jquery"),Rt()}catch{}}e.rtrvrAISetObserverPaused=function(h){return nn(!!h)},e.rtrvrAIClearObserverPause=function(){return nn(null)},e.rtrvrAIIsObserverPaused=function(){return ct()},e.rtrvrAIMarkInteractiveElements=function(){return xt()?.body?(De(),!0):!1};function br(){let h=xt();Rt(),gr(),oe();let A=()=>{N==null&&Fe(yt())};h?.addEventListener("visibilitychange",A,{passive:!0}),Fe(yt());let D=()=>{Rt(),gr(),ct()||(de(),e.rtrvrAIMarkInteractiveElements?.(),xe({budgetMs:20})),h?.documentElement.setAttribute(Mu,"1")};h?.readyState==="loading"?h.addEventListener("DOMContentLoaded",D,{once:!0}):D()}br()})();var Jc=null;function sd(e){try{return e.getAttribute(xr)}catch{return null}}function xh(e){let t=sd(e);return Yr(t)?.entries??[]}function Th(e){try{let t=e.getAttribute(tr);return t&&t.trim()?t:null}catch{return null}}function hx(e){let t=e?.ownerDocument?.defaultView,n=t?.__RTRVR_INTERNAL_KEY__||"__RTRVR_INTERNAL__",r=t?.[n]?.shadow?.getRoot;if(typeof r=="function")try{return r(e)||null}catch{}return e.shadowRoot||null}function gx(e){let t=new Set;for(let n of e){let o=bc(n.mask);for(let r of o)(r==="react"||r==="vue"||r==="angular"||r==="svelte"||r==="jquery")&&t.add(r)}return t}function bx(e){let t=new Set,n=e;return(n.__reactFiber||n.__reactProps||n.__reactInternalInstance||n.__reactRootContainer)&&t.add("react"),(n.__vue__||n.__vueParentComponent||n.__vnode||n.__vue_app__)&&t.add("vue"),n.__ngContext__&&t.add("angular"),(n.__svelte||n.__svelte_meta)&&t.add("svelte"),(n.__jquery||n.jQuery)&&t.add("jquery"),t}function kx(e){let t=xh(e),n=gx(t),o=bx(e);for(let r of o)n.add(r);return{frameworks:[...n],listenersRaw:sd(e)||"",role:Th(e)??(e.getAttribute?.("role")||null)}}function yx(){return{getEventHandlerIds:e=>xh(e).map(t=>t.id),getRoleHint:Th,getShadowRoot:hx}}function _h(e={}){if(Jc)return Jc;if(typeof window<"u")try{window.rtrvrAIMarkInteractiveElements?.()}catch{}return Jc={signalProvider:yx(),getFrameworkMetadata:kx,getListenerEncoding:sd,dispose:()=>{}},Jc}function vx(e,t){return e.endsWith(t)?e.length===t.length||e[e.length-t.length-1]===".":!1}function wx(e,t){let n=e.length-t.length-2,o=e.lastIndexOf(".",n);return o===-1?e:e.slice(o+1)}function cd(e,t,n){if(n.validHosts!==null){let r=n.validHosts;for(let a of r)if(vx(t,a))return a}let o=0;if(t.startsWith("."))for(;o<t.length&&t[o]===".";)o+=1;return e.length===t.length-o?null:wx(t,e)}function ld(e,t){return e.slice(0,-t.length-1)}function Zc(e,t){let n=0,o=e.length,r=!1;if(!t){if(e.startsWith("data:"))return null;for(;n<e.length&&e.charCodeAt(n)<=32;)n+=1;for(;o>n+1&&e.charCodeAt(o-1)<=32;)o-=1;if(e.charCodeAt(n)===47&&e.charCodeAt(n+1)===47)n+=2;else{let d=e.indexOf(":/",n);if(d!==-1){let f=d-n,u=e.charCodeAt(n),b=e.charCodeAt(n+1),p=e.charCodeAt(n+2),g=e.charCodeAt(n+3),y=e.charCodeAt(n+4);if(!(f===5&&u===104&&b===116&&p===116&&g===112&&y===115)){if(!(f===4&&u===104&&b===116&&p===116&&g===112)){if(!(f===3&&u===119&&b===115&&p===115)){if(!(f===2&&u===119&&b===115))for(let E=n;E<d;E+=1){let R=e.charCodeAt(E)|32;if(!(R>=97&&R<=122||R>=48&&R<=57||R===46||R===45||R===43))return null}}}}for(n=d+2;e.charCodeAt(n)===47;)n+=1}}let i=-1,s=-1,c=-1;for(let d=n;d<o;d+=1){let f=e.charCodeAt(d);if(f===35||f===47||f===63){o=d;break}else f===64?i=d:f===93?s=d:f===58?c=d:f>=65&&f<=90&&(r=!0)}if(i!==-1&&i>n&&i<o&&(n=i+1),e.charCodeAt(n)===91)return s!==-1?e.slice(n+1,s).toLowerCase():null;c!==-1&&c>n&&c<o&&(o=c)}for(;o>n+1&&e.charCodeAt(o-1)===46;)o-=1;let a=n!==0||o!==e.length?e.slice(n,o):e;return r?a.toLowerCase():a}function xx(e){if(e.length<7||e.length>15)return!1;let t=0;for(let n=0;n<e.length;n+=1){let o=e.charCodeAt(n);if(o===46)t+=1;else if(o<48||o>57)return!1}return t===3&&e.charCodeAt(0)!==46&&e.charCodeAt(e.length-1)!==46}function Tx(e){if(e.length<3)return!1;let t=e.startsWith("[")?1:0,n=e.length;if(e[n-1]==="]"&&(n-=1),n-t>39)return!1;let o=!1;for(;t<n;t+=1){let r=e.charCodeAt(t);if(r===58)o=!0;else if(!(r>=48&&r<=57||r>=97&&r<=102||r>=65&&r<=90))return!1}return o}function ud(e){return Tx(e)||xx(e)}function Eh(e){return e>=97&&e<=122||e>=48&&e<=57||e>127}function dd(e){if(e.length>255||e.length===0||!Eh(e.charCodeAt(0))&&e.charCodeAt(0)!==46&&e.charCodeAt(0)!==95)return!1;let t=-1,n=-1,o=e.length;for(let r=0;r<o;r+=1){let a=e.charCodeAt(r);if(a===46){if(r-t>64||n===46||n===45||n===95)return!1;t=r}else if(!(Eh(a)||a===45||a===95))return!1;n=a}return o-t-1<=63&&n!==45}function Ih({allowIcannDomains:e=!0,allowPrivateDomains:t=!1,detectIp:n=!0,extractHostname:o=!0,mixedInputs:r=!0,validHosts:a=null,validateHostname:i=!0}){return{allowIcannDomains:e,allowPrivateDomains:t,detectIp:n,extractHostname:o,mixedInputs:r,validHosts:a,validateHostname:i}}var _x=Ih({});function fd(e){return e===void 0?_x:Ih(e)}function md(e,t){return t.length===e.length?"":e.slice(0,-t.length-1)}function el(){return{domain:null,domainWithoutSuffix:null,hostname:null,isIcann:null,isIp:null,isPrivate:null,publicSuffix:null,subdomain:null}}function pd(e){e.domain=null,e.domainWithoutSuffix=null,e.hostname=null,e.isIcann=null,e.isIp=null,e.isPrivate=null,e.publicSuffix=null,e.subdomain=null}function tl(e,t,n,o,r){let a=fd(o);return typeof e!="string"||(a.extractHostname?a.mixedInputs?r.hostname=Zc(e,dd(e)):r.hostname=Zc(e,!1):r.hostname=e,a.detectIp&&r.hostname!==null&&(r.isIp=ud(r.hostname),r.isIp))?r:a.validateHostname&&a.extractHostname&&r.hostname!==null&&!dd(r.hostname)?(r.hostname=null,r):(t===0||r.hostname===null||(n(r.hostname,a,r),t===2||r.publicSuffix===null)||(r.domain=cd(r.publicSuffix,r.hostname,a),t===3||r.domain===null)||(r.subdomain=md(r.hostname,r.domain),t===4)||(r.domainWithoutSuffix=ld(r.domain,r.publicSuffix)),r)}function hd(e,t,n){if(!t.allowPrivateDomains&&e.length>3){let o=e.length-1,r=e.charCodeAt(o),a=e.charCodeAt(o-1),i=e.charCodeAt(o-2),s=e.charCodeAt(o-3);if(r===109&&a===111&&i===99&&s===46)return n.isIcann=!0,n.isPrivate=!1,n.publicSuffix="com",!0;if(r===103&&a===114&&i===111&&s===46)return n.isIcann=!0,n.isPrivate=!1,n.publicSuffix="org",!0;if(r===117&&a===100&&i===101&&s===46)return n.isIcann=!0,n.isPrivate=!1,n.publicSuffix="edu",!0;if(r===118&&a===111&&i===103&&s===46)return n.isIcann=!0,n.isPrivate=!1,n.publicSuffix="gov",!0;if(r===116&&a===101&&i===110&&s===46)return n.isIcann=!0,n.isPrivate=!1,n.publicSuffix="net",!0;if(r===101&&a===100&&i===46)return n.isIcann=!0,n.isPrivate=!1,n.publicSuffix="de",!0}return!1}var Sh=(function(){let e=[1,{}],t=[0,{city:e}];return[0,{ck:[0,{www:e}],jp:[0,{kawasaki:t,kitakyushu:t,kobe:t,nagoya:t,sapporo:t,sendai:t,yokohama:t}]}]})(),Rh=(function(){let e=[1,{}],t=[2,{}],n=[1,{com:e,edu:e,gov:e,net:e,org:e}],o=[1,{com:e,edu:e,gov:e,mil:e,net:e,org:e}],r=[0,{"*":t}],a=[2,{s:r}],i=[0,{relay:t}],s=[2,{id:t}],c=[1,{gov:e}],d=[0,{airflow:r,"lambda-url":t,"transfer-webapp":t}],f=[0,{airflow:r,"transfer-webapp":t}],u=[0,{"transfer-webapp":t}],b=[0,{"transfer-webapp":t,"transfer-webapp-fips":t}],p=[0,{notebook:t,studio:t}],g=[0,{labeling:t,notebook:t,studio:t}],y=[0,{notebook:t}],E=[0,{labeling:t,notebook:t,"notebook-fips":t,studio:t}],R=[0,{notebook:t,"notebook-fips":t,studio:t,"studio-fips":t}],O=[0,{shop:t}],M=[0,{"*":e}],H=[1,{co:t}],N=[0,{objects:t}],Y=[2,{"eu-west-1":t,"us-east-1":t}],ae=[2,{nodes:t}],re=[0,{my:t}],le=[0,{s3:t,"s3-accesspoint":t,"s3-website":t}],Me=[0,{s3:t,"s3-accesspoint":t}],ve=[0,{direct:t}],we=[0,{"webview-assets":t}],Ne=[0,{vfs:t,"webview-assets":t}],ft=[0,{"execute-api":t,"emrappui-prod":t,"emrnotebooks-prod":t,"emrstudio-prod":t,dualstack:le,s3:t,"s3-accesspoint":t,"s3-object-lambda":t,"s3-website":t,"aws-cloud9":we,cloud9:Ne}],Ae=[0,{"execute-api":t,"emrappui-prod":t,"emrnotebooks-prod":t,"emrstudio-prod":t,dualstack:Me,s3:t,"s3-accesspoint":t,"s3-object-lambda":t,"s3-website":t,"aws-cloud9":we,cloud9:Ne}],lt=[0,{"execute-api":t,"emrappui-prod":t,"emrnotebooks-prod":t,"emrstudio-prod":t,dualstack:le,s3:t,"s3-accesspoint":t,"s3-object-lambda":t,"s3-website":t,"analytics-gateway":t,"aws-cloud9":we,cloud9:Ne}],Xe=[0,{"execute-api":t,"emrappui-prod":t,"emrnotebooks-prod":t,"emrstudio-prod":t,dualstack:le,s3:t,"s3-accesspoint":t,"s3-object-lambda":t,"s3-website":t}],Ge=[0,{s3:t,"s3-accesspoint":t,"s3-accesspoint-fips":t,"s3-fips":t,"s3-website":t}],zt=[0,{"execute-api":t,"emrappui-prod":t,"emrnotebooks-prod":t,"emrstudio-prod":t,dualstack:Ge,s3:t,"s3-accesspoint":t,"s3-accesspoint-fips":t,"s3-fips":t,"s3-object-lambda":t,"s3-website":t,"aws-cloud9":we,cloud9:Ne}],St=[0,{"execute-api":t,"emrappui-prod":t,"emrnotebooks-prod":t,"emrstudio-prod":t,dualstack:Ge,s3:t,"s3-accesspoint":t,"s3-accesspoint-fips":t,"s3-fips":t,"s3-object-lambda":t,"s3-website":t}],Rn=[0,{"execute-api":t,"emrappui-prod":t,"emrnotebooks-prod":t,"emrstudio-prod":t,dualstack:Ge,s3:t,"s3-accesspoint":t,"s3-accesspoint-fips":t,"s3-deprecated":t,"s3-fips":t,"s3-object-lambda":t,"s3-website":t,"analytics-gateway":t,"aws-cloud9":we,cloud9:Ne}],Ee=[0,{auth:t}],Gt=[0,{auth:t,"auth-fips":t}],ut=[0,{"auth-fips":t}],jt=[0,{apps:t}],Rt=[0,{paas:t}],eo=[2,{eu:t}],An=[0,{app:t}],Yo=[0,{site:t}],Yt=[1,{com:e,edu:e,net:e,org:e}],Qt=[0,{j:t}],to=[0,{dyn:t}],Ue=[2,{web:t}],Jt=[1,{co:e,com:e,edu:e,gov:e,net:e,org:e}],no=[0,{p:t}],vn=[0,{user:t}],Zt=[1,{ms:t}],tt=[0,{cdn:t}],Kt=[2,{raw:r}],en=[0,{cust:t,reservd:t}],Cn=[0,{cust:t}],Mn=[0,{s3:t}],fo=[1,{biz:e,com:e,edu:e,gov:e,info:e,net:e,org:e}],jn=[0,{ipfs:t}],tn=[1,{framer:t}],oo=[0,{forgot:t}],un=[0,{blob:t,file:t,web:t}],dn=[0,{core:un,servicebus:t}],pe=[1,{gs:e}],Nn=[0,{nes:e}],ge=[1,{k12:e,cc:e,lib:e}],kt=[1,{cc:e}],fn=[1,{cc:e,lib:e}];return[0,{ac:[1,{com:e,edu:e,gov:e,mil:e,net:e,org:e,drr:t,feedback:t,forms:t}],ad:e,ae:[1,{ac:e,co:e,gov:e,mil:e,net:e,org:e,sch:e}],aero:[1,{airline:e,airport:e,"accident-investigation":e,"accident-prevention":e,aerobatic:e,aeroclub:e,aerodrome:e,agents:e,"air-surveillance":e,"air-traffic-control":e,aircraft:e,airtraffic:e,ambulance:e,association:e,author:e,ballooning:e,broker:e,caa:e,cargo:e,catering:e,certification:e,championship:e,charter:e,civilaviation:e,club:e,conference:e,consultant:e,consulting:e,control:e,council:e,crew:e,design:e,dgca:e,educator:e,emergency:e,engine:e,engineer:e,entertainment:e,equipment:e,exchange:e,express:e,federation:e,flight:e,freight:e,fuel:e,gliding:e,government:e,groundhandling:e,group:e,hanggliding:e,homebuilt:e,insurance:e,journal:e,journalist:e,leasing:e,logistics:e,magazine:e,maintenance:e,marketplace:e,media:e,microlight:e,modelling:e,navigation:e,parachuting:e,paragliding:e,"passenger-association":e,pilot:e,press:e,production:e,recreation:e,repbody:e,res:e,research:e,rotorcraft:e,safety:e,scientist:e,services:e,show:e,skydiving:e,software:e,student:e,taxi:e,trader:e,trading:e,trainer:e,union:e,workinggroup:e,works:e}],af:n,ag:[1,{co:e,com:e,net:e,nom:e,org:e,obj:t}],ai:[1,{com:e,net:e,off:e,org:e,uwu:t,framer:t,kiloapps:t}],al:o,am:[1,{co:e,com:e,commune:e,net:e,org:e,radio:t}],ao:[1,{co:e,ed:e,edu:e,gov:e,gv:e,it:e,og:e,org:e,pb:e}],aq:e,ar:[1,{bet:e,com:e,coop:e,edu:e,gob:e,gov:e,int:e,mil:e,musica:e,mutual:e,net:e,org:e,seg:e,senasa:e,tur:e}],arpa:[1,{e164:e,home:e,"in-addr":e,ip6:e,iris:e,uri:e,urn:e}],as:c,asia:[1,{cloudns:t,daemon:t,dix:t}],at:[1,{4:t,ac:[1,{sth:e}],co:e,gv:e,or:e,funkfeuer:[0,{wien:t}],futurecms:[0,{"*":t,ex:r,in:r}],futurehosting:t,futuremailing:t,ortsinfo:[0,{ex:r,kunden:r}],biz:t,info:t,"123webseite":t,priv:t,my:t,myspreadshop:t,"12hp":t,"2ix":t,"4lima":t,"lima-city":t}],au:[1,{asn:e,com:[1,{cloudlets:[0,{mel:t}],myspreadshop:t}],edu:[1,{act:e,catholic:e,nsw:e,nt:e,qld:e,sa:e,tas:e,vic:e,wa:e}],gov:[1,{qld:e,sa:e,tas:e,vic:e,wa:e}],id:e,net:e,org:e,conf:e,oz:e,act:e,nsw:e,nt:e,qld:e,sa:e,tas:e,vic:e,wa:e,hrsn:[0,{vps:t}]}],aw:[1,{com:e}],ax:e,az:[1,{biz:e,co:e,com:e,edu:e,gov:e,info:e,int:e,mil:e,name:e,net:e,org:e,pp:e,pro:e}],ba:[1,{com:e,edu:e,gov:e,mil:e,net:e,org:e,brendly:O,rs:t}],bb:[1,{biz:e,co:e,com:e,edu:e,gov:e,info:e,net:e,org:e,store:e,tv:e}],bd:[1,{ac:e,ai:e,co:e,com:e,edu:e,gov:e,id:e,info:e,it:e,mil:e,net:e,org:e,sch:e,tv:e}],be:[1,{ac:e,cloudns:t,webhosting:t,interhostsolutions:[0,{cloud:t}],kuleuven:[0,{ezproxy:t}],my:t,"123website":t,myspreadshop:t,transurl:r}],bf:c,bg:[1,{0:e,1:e,2:e,3:e,4:e,5:e,6:e,7:e,8:e,9:e,a:e,b:e,c:e,d:e,e,f:e,g:e,h:e,i:e,j:e,k:e,l:e,m:e,n:e,o:e,p:e,q:e,r:e,s:e,t:e,u:e,v:e,w:e,x:e,y:e,z:e,barsy:t}],bh:n,bi:[1,{co:e,com:e,edu:e,or:e,org:e}],biz:[1,{activetrail:t,"cloud-ip":t,cloudns:t,jozi:t,dyndns:t,"for-better":t,"for-more":t,"for-some":t,"for-the":t,selfip:t,webhop:t,orx:t,mmafan:t,myftp:t,"no-ip":t,dscloud:t}],bj:[1,{africa:e,agro:e,architectes:e,assur:e,avocats:e,co:e,com:e,eco:e,econo:e,edu:e,info:e,loisirs:e,money:e,net:e,org:e,ote:e,restaurant:e,resto:e,tourism:e,univ:e}],bm:n,bn:[1,{com:e,edu:e,gov:e,net:e,org:e,co:t}],bo:[1,{com:e,edu:e,gob:e,int:e,mil:e,net:e,org:e,tv:e,web:e,academia:e,agro:e,arte:e,blog:e,bolivia:e,ciencia:e,cooperativa:e,democracia:e,deporte:e,ecologia:e,economia:e,empresa:e,indigena:e,industria:e,info:e,medicina:e,movimiento:e,musica:e,natural:e,nombre:e,noticias:e,patria:e,plurinacional:e,politica:e,profesional:e,pueblo:e,revista:e,salud:e,tecnologia:e,tksat:e,transporte:e,wiki:e}],br:[1,{"9guacu":e,abc:e,adm:e,adv:e,agr:e,aju:e,am:e,anani:e,aparecida:e,api:e,app:e,arq:e,art:e,ato:e,b:e,barueri:e,belem:e,bet:e,bhz:e,bib:e,bio:e,blog:e,bmd:e,boavista:e,bsb:e,campinagrande:e,campinas:e,caxias:e,cim:e,cng:e,cnt:e,com:[1,{simplesite:t}],contagem:e,coop:e,coz:e,cri:e,cuiaba:e,curitiba:e,def:e,des:e,det:e,dev:e,ecn:e,eco:e,edu:e,emp:e,enf:e,eng:e,esp:e,etc:e,eti:e,far:e,feira:e,flog:e,floripa:e,fm:e,fnd:e,fortal:e,fot:e,foz:e,fst:e,g12:e,geo:e,ggf:e,goiania:e,gov:[1,{ac:e,al:e,am:e,ap:e,ba:e,ce:e,df:e,es:e,go:e,ma:e,mg:e,ms:e,mt:e,pa:e,pb:e,pe:e,pi:e,pr:e,rj:e,rn:e,ro:e,rr:e,rs:e,sc:e,se:e,sp:e,to:e}],gru:e,ia:e,imb:e,ind:e,inf:e,jab:e,jampa:e,jdf:e,joinville:e,jor:e,jus:e,leg:[1,{ac:t,al:t,am:t,ap:t,ba:t,ce:t,df:t,es:t,go:t,ma:t,mg:t,ms:t,mt:t,pa:t,pb:t,pe:t,pi:t,pr:t,rj:t,rn:t,ro:t,rr:t,rs:t,sc:t,se:t,sp:t,to:t}],leilao:e,lel:e,log:e,londrina:e,macapa:e,maceio:e,manaus:e,maringa:e,mat:e,med:e,mil:e,morena:e,mp:e,mus:e,natal:e,net:e,niteroi:e,nom:M,not:e,ntr:e,odo:e,ong:e,org:e,osasco:e,palmas:e,poa:e,ppg:e,pro:e,psc:e,psi:e,pvh:e,qsl:e,radio:e,rec:e,recife:e,rep:e,ribeirao:e,rio:e,riobranco:e,riopreto:e,salvador:e,sampa:e,santamaria:e,santoandre:e,saobernardo:e,saogonca:e,seg:e,sjc:e,slg:e,slz:e,social:e,sorocaba:e,srv:e,taxi:e,tc:e,tec:e,teo:e,the:e,tmp:e,trd:e,tur:e,tv:e,udi:e,vet:e,vix:e,vlog:e,wiki:e,xyz:e,zlg:e,tche:t}],bs:[1,{com:e,edu:e,gov:e,net:e,org:e,we:t}],bt:n,bv:e,bw:[1,{ac:e,co:e,gov:e,net:e,org:e}],by:[1,{gov:e,mil:e,com:e,of:e,mediatech:t}],bz:[1,{co:e,com:e,edu:e,gov:e,net:e,org:e,za:t,mydns:t,gsj:t}],ca:[1,{ab:e,bc:e,mb:e,nb:e,nf:e,nl:e,ns:e,nt:e,nu:e,on:e,pe:e,qc:e,sk:e,yk:e,gc:e,barsy:t,awdev:r,co:t,"no-ip":t,onid:t,myspreadshop:t,box:t}],cat:e,cc:[1,{cleverapps:t,"cloud-ip":t,cloudns:t,ccwu:t,ftpaccess:t,"game-server":t,myphotos:t,scrapping:t,twmail:t,csx:t,fantasyleague:t,spawn:[0,{instances:t}],ec:t,eu:t,gu:t,uk:t,us:t}],cd:[1,{gov:e,cc:t}],cf:e,cg:e,ch:[1,{square7:t,cloudns:t,cloudscale:[0,{cust:t,lpg:N,rma:N}],objectstorage:[0,{lpg:t,rma:t}],flow:[0,{ae:[0,{alp1:t}],appengine:t}],"linkyard-cloud":t,gotdns:t,dnsking:t,"123website":t,myspreadshop:t,firenet:[0,{"*":t,svc:r}],"12hp":t,"2ix":t,"4lima":t,"lima-city":t}],ci:[1,{ac:e,"xn--aroport-bya":e,a\u00E9roport:e,asso:e,co:e,com:e,ed:e,edu:e,go:e,gouv:e,int:e,net:e,or:e,org:e,us:t}],ck:M,cl:[1,{co:e,gob:e,gov:e,mil:e,cloudns:t}],cm:[1,{co:e,com:e,gov:e,net:e}],cn:[1,{ac:e,com:[1,{amazonaws:[0,{"cn-north-1":[0,{"execute-api":t,"emrappui-prod":t,"emrnotebooks-prod":t,"emrstudio-prod":t,rds:r,dualstack:le,s3:t,"s3-accesspoint":t,"s3-deprecated":t,"s3-object-lambda":t,"s3-website":t}],"cn-northwest-1":[0,{"execute-api":t,"emrappui-prod":t,"emrnotebooks-prod":t,"emrstudio-prod":t,rds:r,dualstack:Me,s3:t,"s3-accesspoint":t,"s3-object-lambda":t,"s3-website":t}],compute:r,airflow:[0,{"cn-north-1":r,"cn-northwest-1":r}],eb:[0,{"cn-north-1":t,"cn-northwest-1":t}],elb:r}],amazonwebservices:[0,{on:[0,{"cn-north-1":f,"cn-northwest-1":f}]}],sagemaker:[0,{"cn-north-1":p,"cn-northwest-1":p}]}],edu:e,gov:e,mil:e,net:e,org:e,"xn--55qx5d":e,\u516C\u53F8:e,"xn--od0alg":e,\u7DB2\u7D61:e,"xn--io0a7i":e,\u7F51\u7EDC:e,ah:e,bj:e,cq:e,fj:e,gd:e,gs:e,gx:e,gz:e,ha:e,hb:e,he:e,hi:e,hk:e,hl:e,hn:e,jl:e,js:e,jx:e,ln:e,mo:e,nm:e,nx:e,qh:e,sc:e,sd:e,sh:[1,{as:t}],sn:e,sx:e,tj:e,tw:e,xj:e,xz:e,yn:e,zj:e,"canva-apps":t,canvasite:re,myqnapcloud:t,quickconnect:ve}],co:[1,{com:e,edu:e,gov:e,mil:e,net:e,nom:e,org:e,carrd:t,crd:t,otap:r,hidns:t,leadpages:t,lpages:t,mypi:t,xmit:r,rdpa:[0,{clusters:r,srvrless:r}],firewalledreplit:s,repl:s,supabase:[2,{realtime:t,storage:t}],umso:t}],com:[1,{a2hosted:t,cpserver:t,adobeaemcloud:[2,{dev:r}],africa:t,auiusercontent:r,aivencloud:t,alibabacloudcs:t,kasserver:t,amazonaws:[0,{"af-south-1":ft,"ap-east-1":Ae,"ap-northeast-1":lt,"ap-northeast-2":lt,"ap-northeast-3":ft,"ap-south-1":lt,"ap-south-2":Xe,"ap-southeast-1":lt,"ap-southeast-2":lt,"ap-southeast-3":Xe,"ap-southeast-4":Xe,"ap-southeast-5":[0,{"execute-api":t,dualstack:le,s3:t,"s3-accesspoint":t,"s3-deprecated":t,"s3-object-lambda":t,"s3-website":t}],"ca-central-1":zt,"ca-west-1":St,"eu-central-1":lt,"eu-central-2":Xe,"eu-north-1":Ae,"eu-south-1":ft,"eu-south-2":Xe,"eu-west-1":[0,{"execute-api":t,"emrappui-prod":t,"emrnotebooks-prod":t,"emrstudio-prod":t,dualstack:le,s3:t,"s3-accesspoint":t,"s3-deprecated":t,"s3-object-lambda":t,"s3-website":t,"analytics-gateway":t,"aws-cloud9":we,cloud9:Ne}],"eu-west-2":Ae,"eu-west-3":ft,"il-central-1":[0,{"execute-api":t,"emrappui-prod":t,"emrnotebooks-prod":t,"emrstudio-prod":t,dualstack:le,s3:t,"s3-accesspoint":t,"s3-object-lambda":t,"s3-website":t,"aws-cloud9":we,cloud9:[0,{vfs:t}]}],"me-central-1":Xe,"me-south-1":Ae,"sa-east-1":ft,"us-east-1":[2,{"execute-api":t,"emrappui-prod":t,"emrnotebooks-prod":t,"emrstudio-prod":t,dualstack:Ge,s3:t,"s3-accesspoint":t,"s3-accesspoint-fips":t,"s3-deprecated":t,"s3-fips":t,"s3-object-lambda":t,"s3-website":t,"analytics-gateway":t,"aws-cloud9":we,cloud9:Ne}],"us-east-2":Rn,"us-gov-east-1":St,"us-gov-west-1":St,"us-west-1":zt,"us-west-2":Rn,compute:r,"compute-1":r,airflow:[0,{"af-south-1":r,"ap-east-1":r,"ap-northeast-1":r,"ap-northeast-2":r,"ap-northeast-3":r,"ap-south-1":r,"ap-south-2":r,"ap-southeast-1":r,"ap-southeast-2":r,"ap-southeast-3":r,"ap-southeast-4":r,"ap-southeast-5":r,"ap-southeast-7":r,"ca-central-1":r,"ca-west-1":r,"eu-central-1":r,"eu-central-2":r,"eu-north-1":r,"eu-south-1":r,"eu-south-2":r,"eu-west-1":r,"eu-west-2":r,"eu-west-3":r,"il-central-1":r,"me-central-1":r,"me-south-1":r,"sa-east-1":r,"us-east-1":r,"us-east-2":r,"us-west-1":r,"us-west-2":r}],rds:[0,{"af-south-1":r,"ap-east-1":r,"ap-east-2":r,"ap-northeast-1":r,"ap-northeast-2":r,"ap-northeast-3":r,"ap-south-1":r,"ap-south-2":r,"ap-southeast-1":r,"ap-southeast-2":r,"ap-southeast-3":r,"ap-southeast-4":r,"ap-southeast-5":r,"ap-southeast-6":r,"ap-southeast-7":r,"ca-central-1":r,"ca-west-1":r,"eu-central-1":r,"eu-central-2":r,"eu-west-1":r,"eu-west-2":r,"eu-west-3":r,"il-central-1":r,"me-central-1":r,"me-south-1":r,"mx-central-1":r,"sa-east-1":r,"us-east-1":r,"us-east-2":r,"us-gov-east-1":r,"us-gov-west-1":r,"us-northeast-1":r,"us-west-1":r,"us-west-2":r}],s3:t,"s3-1":t,"s3-ap-east-1":t,"s3-ap-northeast-1":t,"s3-ap-northeast-2":t,"s3-ap-northeast-3":t,"s3-ap-south-1":t,"s3-ap-southeast-1":t,"s3-ap-southeast-2":t,"s3-ca-central-1":t,"s3-eu-central-1":t,"s3-eu-north-1":t,"s3-eu-west-1":t,"s3-eu-west-2":t,"s3-eu-west-3":t,"s3-external-1":t,"s3-fips-us-gov-east-1":t,"s3-fips-us-gov-west-1":t,"s3-global":[0,{accesspoint:[0,{mrap:t}]}],"s3-me-south-1":t,"s3-sa-east-1":t,"s3-us-east-2":t,"s3-us-gov-east-1":t,"s3-us-gov-west-1":t,"s3-us-west-1":t,"s3-us-west-2":t,"s3-website-ap-northeast-1":t,"s3-website-ap-southeast-1":t,"s3-website-ap-southeast-2":t,"s3-website-eu-west-1":t,"s3-website-sa-east-1":t,"s3-website-us-east-1":t,"s3-website-us-gov-west-1":t,"s3-website-us-west-1":t,"s3-website-us-west-2":t,elb:r}],amazoncognito:[0,{"af-south-1":Ee,"ap-east-1":Ee,"ap-northeast-1":Ee,"ap-northeast-2":Ee,"ap-northeast-3":Ee,"ap-south-1":Ee,"ap-south-2":Ee,"ap-southeast-1":Ee,"ap-southeast-2":Ee,"ap-southeast-3":Ee,"ap-southeast-4":Ee,"ap-southeast-5":Ee,"ap-southeast-7":Ee,"ca-central-1":Ee,"ca-west-1":Ee,"eu-central-1":Ee,"eu-central-2":Ee,"eu-north-1":Ee,"eu-south-1":Ee,"eu-south-2":Ee,"eu-west-1":Ee,"eu-west-2":Ee,"eu-west-3":Ee,"il-central-1":Ee,"me-central-1":Ee,"me-south-1":Ee,"mx-central-1":Ee,"sa-east-1":Ee,"us-east-1":Gt,"us-east-2":Gt,"us-gov-east-1":ut,"us-gov-west-1":ut,"us-west-1":Gt,"us-west-2":Gt}],amplifyapp:t,awsapprunner:r,awsapps:t,elasticbeanstalk:[2,{"af-south-1":t,"ap-east-1":t,"ap-northeast-1":t,"ap-northeast-2":t,"ap-northeast-3":t,"ap-south-1":t,"ap-southeast-1":t,"ap-southeast-2":t,"ap-southeast-3":t,"ap-southeast-5":t,"ap-southeast-7":t,"ca-central-1":t,"eu-central-1":t,"eu-north-1":t,"eu-south-1":t,"eu-south-2":t,"eu-west-1":t,"eu-west-2":t,"eu-west-3":t,"il-central-1":t,"me-central-1":t,"me-south-1":t,"sa-east-1":t,"us-east-1":t,"us-east-2":t,"us-gov-east-1":t,"us-gov-west-1":t,"us-west-1":t,"us-west-2":t}],awsglobalaccelerator:t,siiites:t,appspacehosted:t,appspaceusercontent:t,"on-aptible":t,myasustor:t,"balena-devices":t,boutir:t,bplaced:t,cafjs:t,"canva-apps":t,"canva-hosted-embed":t,canvacode:t,"rice-labs":t,"cdn77-storage":t,br:t,cn:t,de:t,eu:t,jpn:t,mex:t,ru:t,sa:t,uk:t,us:t,za:t,"clever-cloud":[0,{services:r}],abrdns:t,dnsabr:t,"ip-ddns":t,jdevcloud:t,wpdevcloud:t,"cf-ipfs":t,"cloudflare-ipfs":t,trycloudflare:t,co:t,devinapps:r,builtwithdark:t,datadetect:[0,{demo:t,instance:t}],dattolocal:t,dattorelay:t,dattoweb:t,mydatto:t,digitaloceanspaces:r,discordsays:t,discordsez:t,drayddns:t,dreamhosters:t,durumis:t,blogdns:t,cechire:t,dnsalias:t,dnsdojo:t,doesntexist:t,dontexist:t,doomdns:t,"dyn-o-saur":t,dynalias:t,"dyndns-at-home":t,"dyndns-at-work":t,"dyndns-blog":t,"dyndns-free":t,"dyndns-home":t,"dyndns-ip":t,"dyndns-mail":t,"dyndns-office":t,"dyndns-pics":t,"dyndns-remote":t,"dyndns-server":t,"dyndns-web":t,"dyndns-wiki":t,"dyndns-work":t,"est-a-la-maison":t,"est-a-la-masion":t,"est-le-patron":t,"est-mon-blogueur":t,"from-ak":t,"from-al":t,"from-ar":t,"from-ca":t,"from-ct":t,"from-dc":t,"from-de":t,"from-fl":t,"from-ga":t,"from-hi":t,"from-ia":t,"from-id":t,"from-il":t,"from-in":t,"from-ks":t,"from-ky":t,"from-ma":t,"from-md":t,"from-mi":t,"from-mn":t,"from-mo":t,"from-ms":t,"from-mt":t,"from-nc":t,"from-nd":t,"from-ne":t,"from-nh":t,"from-nj":t,"from-nm":t,"from-nv":t,"from-oh":t,"from-ok":t,"from-or":t,"from-pa":t,"from-pr":t,"from-ri":t,"from-sc":t,"from-sd":t,"from-tn":t,"from-tx":t,"from-ut":t,"from-va":t,"from-vt":t,"from-wa":t,"from-wi":t,"from-wv":t,"from-wy":t,getmyip:t,gotdns:t,"hobby-site":t,homelinux:t,homeunix:t,iamallama:t,"is-a-anarchist":t,"is-a-blogger":t,"is-a-bookkeeper":t,"is-a-bulls-fan":t,"is-a-caterer":t,"is-a-chef":t,"is-a-conservative":t,"is-a-cpa":t,"is-a-cubicle-slave":t,"is-a-democrat":t,"is-a-designer":t,"is-a-doctor":t,"is-a-financialadvisor":t,"is-a-geek":t,"is-a-green":t,"is-a-guru":t,"is-a-hard-worker":t,"is-a-hunter":t,"is-a-landscaper":t,"is-a-lawyer":t,"is-a-liberal":t,"is-a-libertarian":t,"is-a-llama":t,"is-a-musician":t,"is-a-nascarfan":t,"is-a-nurse":t,"is-a-painter":t,"is-a-personaltrainer":t,"is-a-photographer":t,"is-a-player":t,"is-a-republican":t,"is-a-rockstar":t,"is-a-socialist":t,"is-a-student":t,"is-a-teacher":t,"is-a-techie":t,"is-a-therapist":t,"is-an-accountant":t,"is-an-actor":t,"is-an-actress":t,"is-an-anarchist":t,"is-an-artist":t,"is-an-engineer":t,"is-an-entertainer":t,"is-certified":t,"is-gone":t,"is-into-anime":t,"is-into-cars":t,"is-into-cartoons":t,"is-into-games":t,"is-leet":t,"is-not-certified":t,"is-slick":t,"is-uberleet":t,"is-with-theband":t,"isa-geek":t,"isa-hockeynut":t,issmarterthanyou:t,"likes-pie":t,likescandy:t,"neat-url":t,"saves-the-whales":t,selfip:t,"sells-for-less":t,"sells-for-u":t,servebbs:t,"simple-url":t,"space-to-rent":t,"teaches-yoga":t,writesthisblog:t,"1cooldns":t,bumbleshrimp:t,ddnsfree:t,ddnsgeek:t,ddnsguru:t,dynuddns:t,dynuhosting:t,giize:t,gleeze:t,kozow:t,loseyourip:t,ooguy:t,pivohosting:t,theworkpc:t,wiredbladehosting:t,emergentagent:[0,{preview:t}],mytuleap:t,"tuleap-partners":t,encoreapi:t,evennode:[0,{"eu-1":t,"eu-2":t,"eu-3":t,"eu-4":t,"us-1":t,"us-2":t,"us-3":t,"us-4":t}],onfabrica:t,"fastly-edge":t,"fastly-terrarium":t,"fastvps-server":t,mydobiss:t,firebaseapp:t,fldrv:t,framercanvas:t,"freebox-os":t,freeboxos:t,freemyip:t,aliases121:t,gentapps:t,gentlentapis:t,githubusercontent:t,"0emm":r,appspot:[2,{r}],blogspot:t,codespot:t,googleapis:t,googlecode:t,pagespeedmobilizer:t,withgoogle:t,withyoutube:t,grayjayleagues:t,hatenablog:t,hatenadiary:t,"hercules-app":t,"hercules-dev":t,herokuapp:t,gr:t,smushcdn:t,wphostedmail:t,wpmucdn:t,pixolino:t,"apps-1and1":t,"live-website":t,"webspace-host":t,dopaas:t,"hosted-by-previder":Rt,hosteur:[0,{"rag-cloud":t,"rag-cloud-ch":t}],"ik-server":[0,{jcloud:t,"jcloud-ver-jpc":t}],jelastic:[0,{demo:t}],massivegrid:Rt,wafaicloud:[0,{jed:t,ryd:t}],"eu1-plenit":t,"la1-plenit":t,"us1-plenit":t,webadorsite:t,"on-forge":t,"on-vapor":t,lpusercontent:t,linode:[0,{members:t,nodebalancer:r}],linodeobjects:r,linodeusercontent:[0,{ip:t}],localtonet:t,lovableproject:t,barsycenter:t,barsyonline:t,lutrausercontent:r,magicpatternsapp:t,modelscape:t,mwcloudnonprod:t,polyspace:t,miniserver:t,atmeta:t,fbsbx:jt,meteorapp:eo,routingthecloud:t,"same-app":t,"same-preview":t,mydbserver:t,mochausercontent:t,hostedpi:t,"mythic-beasts":[0,{caracal:t,customer:t,fentiger:t,lynx:t,ocelot:t,oncilla:t,onza:t,sphinx:t,vs:t,x:t,yali:t}],nospamproxy:[0,{cloud:[2,{o365:t}]}],"4u":t,nfshost:t,"3utilities":t,blogsyte:t,ciscofreak:t,damnserver:t,ddnsking:t,ditchyourip:t,dnsiskinky:t,dynns:t,geekgalaxy:t,"health-carereform":t,homesecuritymac:t,homesecuritypc:t,myactivedirectory:t,mysecuritycamera:t,myvnc:t,"net-freaks":t,onthewifi:t,point2this:t,quicksytes:t,securitytactics:t,servebeer:t,servecounterstrike:t,serveexchange:t,serveftp:t,servegame:t,servehalflife:t,servehttp:t,servehumour:t,serveirc:t,servemp3:t,servep2p:t,servepics:t,servequake:t,servesarcasm:t,stufftoread:t,unusualperson:t,workisboring:t,myiphost:t,observableusercontent:[0,{static:t}],simplesite:t,oaiusercontent:r,orsites:t,operaunite:t,"customer-oci":[0,{"*":t,oci:r,ocp:r,ocs:r}],oraclecloudapps:r,oraclegovcloudapps:r,"authgear-staging":t,authgearapps:t,outsystemscloud:t,ownprovider:t,pgfog:t,pagexl:t,gotpantheon:t,paywhirl:r,forgeblocks:t,upsunapp:t,"postman-echo":t,prgmr:[0,{xen:t}],"project-study":[0,{dev:t}],pythonanywhere:eo,qa2:t,"alpha-myqnapcloud":t,"dev-myqnapcloud":t,mycloudnas:t,mynascloud:t,myqnapcloud:t,qualifioapp:t,ladesk:t,qualyhqpartner:r,qualyhqportal:r,qbuser:t,quipelements:r,rackmaze:t,"readthedocs-hosted":t,rhcloud:t,onrender:t,render:An,"subsc-pay":t,"180r":t,dojin:t,sakuratan:t,sakuraweb:t,x0:t,code:[0,{builder:r,"dev-builder":r,"stg-builder":r}],salesforce:[0,{platform:[0,{"code-builder-stg":[0,{test:[0,{"001":r}]}]}]}],logoip:t,scrysec:t,"firewall-gateway":t,myshopblocks:t,myshopify:t,shopitsite:t,"1kapp":t,appchizi:t,applinzi:t,sinaapp:t,vipsinaapp:t,streamlitapp:t,"try-snowplow":t,"playstation-cloud":t,myspreadshop:t,"w-corp-staticblitz":t,"w-credentialless-staticblitz":t,"w-staticblitz":t,"stackhero-network":t,stdlib:[0,{api:t}],strapiapp:[2,{media:t}],"streak-link":t,streaklinks:t,streakusercontent:t,"temp-dns":t,dsmynas:t,familyds:t,mytabit:t,taveusercontent:t,"tb-hosting":Yo,reservd:t,thingdustdata:t,"townnews-staging":t,typeform:[0,{pro:t}],hk:t,it:t,"deus-canvas":t,vultrobjects:r,wafflecell:t,hotelwithflight:t,"reserve-online":t,cprapid:t,pleskns:t,remotewd:t,wiardweb:[0,{pages:t}],"drive-platform":t,"base44-sandbox":t,wixsite:t,wixstudio:t,messwithdns:t,"woltlab-demo":t,wpenginepowered:[2,{js:t}],xnbay:[2,{u2:t,"u2-local":t}],xtooldevice:t,yolasite:t}],coop:e,cr:[1,{ac:e,co:e,ed:e,fi:e,go:e,or:e,sa:e}],cu:[1,{com:e,edu:e,gob:e,inf:e,nat:e,net:e,org:e}],cv:[1,{com:e,edu:e,id:e,int:e,net:e,nome:e,org:e,publ:e}],cw:Yt,cx:[1,{gov:e,cloudns:t,ath:t,info:t,assessments:t,calculators:t,funnels:t,paynow:t,quizzes:t,researched:t,tests:t}],cy:[1,{ac:e,biz:e,com:[1,{scaleforce:Qt}],ekloges:e,gov:e,ltd:e,mil:e,net:e,org:e,press:e,pro:e,tm:e}],cz:[1,{gov:e,contentproxy9:[0,{rsc:t}],realm:t,e4:t,co:t,metacentrum:[0,{cloud:r,custom:t}],muni:[0,{cloud:[0,{flt:t,usr:t}]}]}],de:[1,{bplaced:t,square7:t,"bwcloud-os-instance":r,com:t,cosidns:to,dnsupdater:t,"dynamisches-dns":t,"internet-dns":t,"l-o-g-i-n":t,ddnss:[2,{dyn:t,dyndns:t}],"dyn-ip24":t,dyndns1:t,"home-webserver":[2,{dyn:t}],"myhome-server":t,dnshome:t,fuettertdasnetz:t,isteingeek:t,istmein:t,lebtimnetz:t,leitungsen:t,traeumtgerade:t,frusky:r,goip:t,"xn--gnstigbestellen-zvb":t,g\u00FCnstigbestellen:t,"xn--gnstigliefern-wob":t,g\u00FCnstigliefern:t,"hs-heilbronn":[0,{it:[0,{pages:t,"pages-research":t}]}],"dyn-berlin":t,"in-berlin":t,"in-brb":t,"in-butter":t,"in-dsl":t,"in-vpn":t,iservschule:t,"mein-iserv":t,schuldock:t,schulplattform:t,schulserver:t,"test-iserv":t,keymachine:t,co:t,"git-repos":t,"lcube-server":t,"svn-repos":t,barsy:t,webspaceconfig:t,"123webseite":t,rub:t,"ruhr-uni-bochum":[2,{noc:[0,{io:t}]}],logoip:t,"firewall-gateway":t,"my-gateway":t,"my-router":t,spdns:t,my:t,speedpartner:[0,{customer:t}],myspreadshop:t,"taifun-dns":t,"12hp":t,"2ix":t,"4lima":t,"lima-city":t,"virtual-user":t,virtualuser:t,"community-pro":t,diskussionsbereich:t,xenonconnect:r}],dj:e,dk:[1,{biz:t,co:t,firm:t,reg:t,store:t,"123hjemmeside":t,myspreadshop:t}],dm:Jt,do:[1,{art:e,com:e,edu:e,gob:e,gov:e,mil:e,net:e,org:e,sld:e,web:e}],dz:[1,{art:e,asso:e,com:e,edu:e,gov:e,net:e,org:e,pol:e,soc:e,tm:e}],ec:[1,{abg:e,adm:e,agron:e,arqt:e,art:e,bar:e,chef:e,com:e,cont:e,cpa:e,cue:e,dent:e,dgn:e,disco:e,doc:e,edu:e,eng:e,esm:e,fin:e,fot:e,gal:e,gob:e,gov:e,gye:e,ibr:e,info:e,k12:e,lat:e,loj:e,med:e,mil:e,mktg:e,mon:e,net:e,ntr:e,odont:e,org:e,pro:e,prof:e,psic:e,psiq:e,pub:e,rio:e,rrpp:e,sal:e,tech:e,tul:e,tur:e,uio:e,vet:e,xxx:e,base:t,official:t}],edu:[1,{rit:[0,{"git-pages":t}]}],ee:[1,{aip:e,com:e,edu:e,fie:e,gov:e,lib:e,med:e,org:e,pri:e,riik:e}],eg:[1,{ac:e,com:e,edu:e,eun:e,gov:e,info:e,me:e,mil:e,name:e,net:e,org:e,sci:e,sport:e,tv:e}],er:M,es:[1,{com:e,edu:e,gob:e,nom:e,org:e,"123miweb":t,myspreadshop:t}],et:[1,{biz:e,com:e,edu:e,gov:e,info:e,name:e,net:e,org:e}],eu:[1,{amazonwebservices:[0,{on:[0,{"eusc-de-east-1":[0,{"cognito-idp":Ee}]}]}],cloudns:t,prvw:t,deuxfleurs:t,dogado:[0,{jelastic:t}],barsy:t,spdns:t,nxa:r,directwp:t,transurl:r}],fi:[1,{aland:e,dy:t,"xn--hkkinen-5wa":t,h\u00E4kkinen:t,iki:t,cloudplatform:[0,{fi:t}],datacenter:[0,{demo:t,paas:t}],kapsi:t,"123kotisivu":t,myspreadshop:t}],fj:[1,{ac:e,biz:e,com:e,edu:e,gov:e,id:e,info:e,mil:e,name:e,net:e,org:e,pro:e}],fk:M,fm:[1,{com:e,edu:e,net:e,org:e,radio:t,user:r}],fo:e,fr:[1,{asso:e,com:e,gouv:e,nom:e,prd:e,tm:e,avoues:e,cci:e,greta:e,"huissier-justice":e,"fbx-os":t,fbxos:t,"freebox-os":t,freeboxos:t,goupile:t,kdns:t,"123siteweb":t,"on-web":t,"chirurgiens-dentistes-en-france":t,dedibox:t,aeroport:t,avocat:t,chambagri:t,"chirurgiens-dentistes":t,"experts-comptables":t,medecin:t,notaires:t,pharmacien:t,port:t,veterinaire:t,myspreadshop:t,ynh:t}],ga:e,gb:e,gd:[1,{edu:e,gov:e}],ge:[1,{com:e,edu:e,gov:e,net:e,org:e,pvt:e,school:e}],gf:e,gg:[1,{co:e,net:e,org:e,ply:[0,{at:r,d6:t}],botdash:t,kaas:t,stackit:t,panel:[2,{daemon:t}]}],gh:[1,{biz:e,com:e,edu:e,gov:e,mil:e,net:e,org:e}],gi:[1,{com:e,edu:e,gov:e,ltd:e,mod:e,org:e}],gl:[1,{co:e,com:e,edu:e,net:e,org:e}],gm:e,gn:[1,{ac:e,com:e,edu:e,gov:e,net:e,org:e}],gov:e,gp:[1,{asso:e,com:e,edu:e,mobi:e,net:e,org:e}],gq:e,gr:[1,{com:e,edu:e,gov:e,net:e,org:e,barsy:t,simplesite:t}],gs:e,gt:[1,{com:e,edu:e,gob:e,ind:e,mil:e,net:e,org:e}],gu:[1,{com:e,edu:e,gov:e,guam:e,info:e,net:e,org:e,web:e}],gw:[1,{nx:t}],gy:Jt,hk:[1,{com:e,edu:e,gov:e,idv:e,net:e,org:e,"xn--ciqpn":e,\u4E2A\u4EBA:e,"xn--gmqw5a":e,\u500B\u4EBA:e,"xn--55qx5d":e,\u516C\u53F8:e,"xn--mxtq1m":e,\u653F\u5E9C:e,"xn--lcvr32d":e,\u654E\u80B2:e,"xn--wcvs22d":e,\u6559\u80B2:e,"xn--gmq050i":e,\u7B87\u4EBA:e,"xn--uc0atv":e,\u7D44\u7E54:e,"xn--uc0ay4a":e,\u7D44\u7EC7:e,"xn--od0alg":e,\u7DB2\u7D61:e,"xn--zf0avx":e,\u7DB2\u7EDC:e,"xn--mk0axi":e,\u7EC4\u7E54:e,"xn--tn0ag":e,\u7EC4\u7EC7:e,"xn--od0aq3b":e,\u7F51\u7D61:e,"xn--io0a7i":e,\u7F51\u7EDC:e,inc:t,ltd:t}],hm:e,hn:[1,{com:e,edu:e,gob:e,mil:e,net:e,org:e}],hr:[1,{com:e,from:e,iz:e,name:e,brendly:O}],ht:[1,{adult:e,art:e,asso:e,com:e,coop:e,edu:e,firm:e,gouv:e,info:e,med:e,net:e,org:e,perso:e,pol:e,pro:e,rel:e,shop:e,rt:t}],hu:[1,{2e3:e,agrar:e,bolt:e,casino:e,city:e,co:e,erotica:e,erotika:e,film:e,forum:e,games:e,hotel:e,info:e,ingatlan:e,jogasz:e,konyvelo:e,lakas:e,media:e,news:e,org:e,priv:e,reklam:e,sex:e,shop:e,sport:e,suli:e,szex:e,tm:e,tozsde:e,utazas:e,video:e}],id:[1,{ac:e,biz:e,co:e,desa:e,go:e,kop:e,mil:e,my:e,net:e,or:e,ponpes:e,sch:e,web:e,"xn--9tfky":e,"\u1B29\u1B2E\u1B36":e,e:t,zone:t}],ie:[1,{gov:e,myspreadshop:t}],il:[1,{ac:e,co:[1,{ravpage:t,mytabit:t,tabitorder:t}],gov:e,idf:e,k12:e,muni:e,net:e,org:e}],"xn--4dbrk0ce":[1,{"xn--4dbgdty6c":e,"xn--5dbhl8d":e,"xn--8dbq2a":e,"xn--hebda8b":e}],\u05D9\u05E9\u05E8\u05D0\u05DC:[1,{\u05D0\u05E7\u05D3\u05DE\u05D9\u05D4:e,\u05D9\u05E9\u05D5\u05D1:e,\u05E6\u05D4\u05DC:e,\u05DE\u05DE\u05E9\u05DC:e}],im:[1,{ac:e,co:[1,{ltd:e,plc:e}],com:e,net:e,org:e,tt:e,tv:e}],in:[1,{"5g":e,"6g":e,ac:e,ai:e,am:e,bank:e,bihar:e,biz:e,business:e,ca:e,cn:e,co:e,com:e,coop:e,cs:e,delhi:e,dr:e,edu:e,er:e,fin:e,firm:e,gen:e,gov:e,gujarat:e,ind:e,info:e,int:e,internet:e,io:e,me:e,mil:e,net:e,nic:e,org:e,pg:e,post:e,pro:e,res:e,travel:e,tv:e,uk:e,up:e,us:e,cloudns:t,barsy:t,web:t,indevs:t,supabase:t}],info:[1,{cloudns:t,"dynamic-dns":t,"barrel-of-knowledge":t,"barrell-of-knowledge":t,dyndns:t,"for-our":t,"groks-the":t,"groks-this":t,"here-for-more":t,knowsitall:t,selfip:t,webhop:t,barsy:t,mayfirst:t,mittwald:t,mittwaldserver:t,typo3server:t,dvrcam:t,ilovecollege:t,"no-ip":t,forumz:t,nsupdate:t,dnsupdate:t,"v-info":t}],int:[1,{eu:e}],io:[1,{2038:t,co:e,com:e,edu:e,gov:e,mil:e,net:e,nom:e,org:e,"on-acorn":r,myaddr:t,apigee:t,"b-data":t,beagleboard:t,bitbucket:t,bluebite:t,boxfuse:t,brave:a,browsersafetymark:t,bubble:tt,bubbleapps:t,bigv:[0,{uk0:t}],cleverapps:t,cloudbeesusercontent:t,dappnode:[0,{dyndns:t}],darklang:t,definima:t,dedyn:t,icp0:Kt,icp1:Kt,qzz:t,"fh-muenster":t,gitbook:t,github:t,gitlab:t,lolipop:t,"hasura-app":t,hostyhosting:t,hypernode:t,moonscale:r,beebyte:Rt,beebyteapp:[0,{sekd1:t}],jele:t,keenetic:t,kiloapps:t,webthings:t,loginline:t,barsy:t,azurecontainer:r,ngrok:[2,{ap:t,au:t,eu:t,in:t,jp:t,sa:t,us:t}],nodeart:[0,{stage:t}],pantheonsite:t,forgerock:[0,{id:t}],pstmn:[2,{mock:t}],protonet:t,qcx:[2,{sys:r}],qoto:t,vaporcloud:t,myrdbx:t,"rb-hosting":Yo,"on-k3s":r,"on-rio":r,readthedocs:t,resindevice:t,resinstaging:[0,{devices:t}],hzc:t,sandcats:t,scrypted:[0,{client:t}],"mo-siemens":t,lair:jt,stolos:r,musician:t,utwente:t,edugit:t,telebit:t,thingdust:[0,{dev:en,disrec:en,prod:Cn,testing:en}],tickets:t,webflow:t,webflowtest:t,"drive-platform":t,editorx:t,wixstudio:t,basicserver:t,virtualserver:t}],iq:o,ir:[1,{ac:e,co:e,gov:e,id:e,net:e,org:e,sch:e,"xn--mgba3a4f16a":e,\u0627\u06CC\u0631\u0627\u0646:e,"xn--mgba3a4fra":e,\u0627\u064A\u0631\u0627\u0646:e,arvanedge:t,vistablog:t}],is:e,it:[1,{edu:e,gov:e,abr:e,abruzzo:e,"aosta-valley":e,aostavalley:e,bas:e,basilicata:e,cal:e,calabria:e,cam:e,campania:e,"emilia-romagna":e,emiliaromagna:e,emr:e,"friuli-v-giulia":e,"friuli-ve-giulia":e,"friuli-vegiulia":e,"friuli-venezia-giulia":e,"friuli-veneziagiulia":e,"friuli-vgiulia":e,"friuliv-giulia":e,"friulive-giulia":e,friulivegiulia:e,"friulivenezia-giulia":e,friuliveneziagiulia:e,friulivgiulia:e,fvg:e,laz:e,lazio:e,lig:e,liguria:e,lom:e,lombardia:e,lombardy:e,lucania:e,mar:e,marche:e,mol:e,molise:e,piedmont:e,piemonte:e,pmn:e,pug:e,puglia:e,sar:e,sardegna:e,sardinia:e,sic:e,sicilia:e,sicily:e,taa:e,tos:e,toscana:e,"trentin-sud-tirol":e,"xn--trentin-sd-tirol-rzb":e,"trentin-s\xFCd-tirol":e,"trentin-sudtirol":e,"xn--trentin-sdtirol-7vb":e,"trentin-s\xFCdtirol":e,"trentin-sued-tirol":e,"trentin-suedtirol":e,trentino:e,"trentino-a-adige":e,"trentino-aadige":e,"trentino-alto-adige":e,"trentino-altoadige":e,"trentino-s-tirol":e,"trentino-stirol":e,"trentino-sud-tirol":e,"xn--trentino-sd-tirol-c3b":e,"trentino-s\xFCd-tirol":e,"trentino-sudtirol":e,"xn--trentino-sdtirol-szb":e,"trentino-s\xFCdtirol":e,"trentino-sued-tirol":e,"trentino-suedtirol":e,"trentinoa-adige":e,trentinoaadige:e,"trentinoalto-adige":e,trentinoaltoadige:e,"trentinos-tirol":e,trentinostirol:e,"trentinosud-tirol":e,"xn--trentinosd-tirol-rzb":e,"trentinos\xFCd-tirol":e,trentinosudtirol:e,"xn--trentinosdtirol-7vb":e,trentinos\u00FCdtirol:e,"trentinosued-tirol":e,trentinosuedtirol:e,"trentinsud-tirol":e,"xn--trentinsd-tirol-6vb":e,"trentins\xFCd-tirol":e,trentinsudtirol:e,"xn--trentinsdtirol-nsb":e,trentins\u00FCdtirol:e,"trentinsued-tirol":e,trentinsuedtirol:e,tuscany:e,umb:e,umbria:e,"val-d-aosta":e,"val-daosta":e,"vald-aosta":e,valdaosta:e,"valle-aosta":e,"valle-d-aosta":e,"valle-daosta":e,valleaosta:e,"valled-aosta":e,valledaosta:e,"vallee-aoste":e,"xn--valle-aoste-ebb":e,"vall\xE9e-aoste":e,"vallee-d-aoste":e,"xn--valle-d-aoste-ehb":e,"vall\xE9e-d-aoste":e,valleeaoste:e,"xn--valleaoste-e7a":e,vall\u00E9eaoste:e,valleedaoste:e,"xn--valledaoste-ebb":e,vall\u00E9edaoste:e,vao:e,vda:e,ven:e,veneto:e,ag:e,agrigento:e,al:e,alessandria:e,"alto-adige":e,altoadige:e,an:e,ancona:e,"andria-barletta-trani":e,"andria-trani-barletta":e,andriabarlettatrani:e,andriatranibarletta:e,ao:e,aosta:e,aoste:e,ap:e,aq:e,aquila:e,ar:e,arezzo:e,"ascoli-piceno":e,ascolipiceno:e,asti:e,at:e,av:e,avellino:e,ba:e,balsan:e,"balsan-sudtirol":e,"xn--balsan-sdtirol-nsb":e,"balsan-s\xFCdtirol":e,"balsan-suedtirol":e,bari:e,"barletta-trani-andria":e,barlettatraniandria:e,belluno:e,benevento:e,bergamo:e,bg:e,bi:e,biella:e,bl:e,bn:e,bo:e,bologna:e,bolzano:e,"bolzano-altoadige":e,bozen:e,"bozen-sudtirol":e,"xn--bozen-sdtirol-2ob":e,"bozen-s\xFCdtirol":e,"bozen-suedtirol":e,br:e,brescia:e,brindisi:e,bs:e,bt:e,bulsan:e,"bulsan-sudtirol":e,"xn--bulsan-sdtirol-nsb":e,"bulsan-s\xFCdtirol":e,"bulsan-suedtirol":e,bz:e,ca:e,cagliari:e,caltanissetta:e,"campidano-medio":e,campidanomedio:e,campobasso:e,"carbonia-iglesias":e,carboniaiglesias:e,"carrara-massa":e,carraramassa:e,caserta:e,catania:e,catanzaro:e,cb:e,ce:e,"cesena-forli":e,"xn--cesena-forl-mcb":e,"cesena-forl\xEC":e,cesenaforli:e,"xn--cesenaforl-i8a":e,cesenaforl\u00EC:e,ch:e,chieti:e,ci:e,cl:e,cn:e,co:e,como:e,cosenza:e,cr:e,cremona:e,crotone:e,cs:e,ct:e,cuneo:e,cz:e,"dell-ogliastra":e,dellogliastra:e,en:e,enna:e,fc:e,fe:e,fermo:e,ferrara:e,fg:e,fi:e,firenze:e,florence:e,fm:e,foggia:e,"forli-cesena":e,"xn--forl-cesena-fcb":e,"forl\xEC-cesena":e,forlicesena:e,"xn--forlcesena-c8a":e,forl\u00ECcesena:e,fr:e,frosinone:e,ge:e,genoa:e,genova:e,go:e,gorizia:e,gr:e,grosseto:e,"iglesias-carbonia":e,iglesiascarbonia:e,im:e,imperia:e,is:e,isernia:e,kr:e,"la-spezia":e,laquila:e,laspezia:e,latina:e,lc:e,le:e,lecce:e,lecco:e,li:e,livorno:e,lo:e,lodi:e,lt:e,lu:e,lucca:e,macerata:e,mantova:e,"massa-carrara":e,massacarrara:e,matera:e,mb:e,mc:e,me:e,"medio-campidano":e,mediocampidano:e,messina:e,mi:e,milan:e,milano:e,mn:e,mo:e,modena:e,monza:e,"monza-brianza":e,"monza-e-della-brianza":e,monzabrianza:e,monzaebrianza:e,monzaedellabrianza:e,ms:e,mt:e,na:e,naples:e,napoli:e,no:e,novara:e,nu:e,nuoro:e,og:e,ogliastra:e,"olbia-tempio":e,olbiatempio:e,or:e,oristano:e,ot:e,pa:e,padova:e,padua:e,palermo:e,parma:e,pavia:e,pc:e,pd:e,pe:e,perugia:e,"pesaro-urbino":e,pesarourbino:e,pescara:e,pg:e,pi:e,piacenza:e,pisa:e,pistoia:e,pn:e,po:e,pordenone:e,potenza:e,pr:e,prato:e,pt:e,pu:e,pv:e,pz:e,ra:e,ragusa:e,ravenna:e,rc:e,re:e,"reggio-calabria":e,"reggio-emilia":e,reggiocalabria:e,reggioemilia:e,rg:e,ri:e,rieti:e,rimini:e,rm:e,rn:e,ro:e,roma:e,rome:e,rovigo:e,sa:e,salerno:e,sassari:e,savona:e,si:e,siena:e,siracusa:e,so:e,sondrio:e,sp:e,sr:e,ss:e,"xn--sdtirol-n2a":e,s\u00FCdtirol:e,suedtirol:e,sv:e,ta:e,taranto:e,te:e,"tempio-olbia":e,tempioolbia:e,teramo:e,terni:e,tn:e,to:e,torino:e,tp:e,tr:e,"trani-andria-barletta":e,"trani-barletta-andria":e,traniandriabarletta:e,tranibarlettaandria:e,trapani:e,trento:e,treviso:e,trieste:e,ts:e,turin:e,tv:e,ud:e,udine:e,"urbino-pesaro":e,urbinopesaro:e,va:e,varese:e,vb:e,vc:e,ve:e,venezia:e,venice:e,verbania:e,vercelli:e,verona:e,vi:e,"vibo-valentia":e,vibovalentia:e,vicenza:e,viterbo:e,vr:e,vs:e,vt:e,vv:e,ibxos:t,iliadboxos:t,neen:[0,{jc:t}],"123homepage":t,"16-b":t,"32-b":t,"64-b":t,myspreadshop:t,syncloud:t}],je:[1,{co:e,net:e,org:e,of:t}],jm:M,jo:[1,{agri:e,ai:e,com:e,edu:e,eng:e,fm:e,gov:e,mil:e,net:e,org:e,per:e,phd:e,sch:e,tv:e}],jobs:e,jp:[1,{ac:e,ad:e,co:e,ed:e,go:e,gr:e,lg:e,ne:[1,{aseinet:vn,gehirn:t,ivory:t,"mail-box":t,mints:t,mokuren:t,opal:t,sakura:t,sumomo:t,topaz:t}],or:e,aichi:[1,{aisai:e,ama:e,anjo:e,asuke:e,chiryu:e,chita:e,fuso:e,gamagori:e,handa:e,hazu:e,hekinan:e,higashiura:e,ichinomiya:e,inazawa:e,inuyama:e,isshiki:e,iwakura:e,kanie:e,kariya:e,kasugai:e,kira:e,kiyosu:e,komaki:e,konan:e,kota:e,mihama:e,miyoshi:e,nishio:e,nisshin:e,obu:e,oguchi:e,oharu:e,okazaki:e,owariasahi:e,seto:e,shikatsu:e,shinshiro:e,shitara:e,tahara:e,takahama:e,tobishima:e,toei:e,togo:e,tokai:e,tokoname:e,toyoake:e,toyohashi:e,toyokawa:e,toyone:e,toyota:e,tsushima:e,yatomi:e}],akita:[1,{akita:e,daisen:e,fujisato:e,gojome:e,hachirogata:e,happou:e,higashinaruse:e,honjo:e,honjyo:e,ikawa:e,kamikoani:e,kamioka:e,katagami:e,kazuno:e,kitaakita:e,kosaka:e,kyowa:e,misato:e,mitane:e,moriyoshi:e,nikaho:e,noshiro:e,odate:e,oga:e,ogata:e,semboku:e,yokote:e,yurihonjo:e}],aomori:[1,{aomori:e,gonohe:e,hachinohe:e,hashikami:e,hiranai:e,hirosaki:e,itayanagi:e,kuroishi:e,misawa:e,mutsu:e,nakadomari:e,noheji:e,oirase:e,owani:e,rokunohe:e,sannohe:e,shichinohe:e,shingo:e,takko:e,towada:e,tsugaru:e,tsuruta:e}],chiba:[1,{abiko:e,asahi:e,chonan:e,chosei:e,choshi:e,chuo:e,funabashi:e,futtsu:e,hanamigawa:e,ichihara:e,ichikawa:e,ichinomiya:e,inzai:e,isumi:e,kamagaya:e,kamogawa:e,kashiwa:e,katori:e,katsuura:e,kimitsu:e,kisarazu:e,kozaki:e,kujukuri:e,kyonan:e,matsudo:e,midori:e,mihama:e,minamiboso:e,mobara:e,mutsuzawa:e,nagara:e,nagareyama:e,narashino:e,narita:e,noda:e,oamishirasato:e,omigawa:e,onjuku:e,otaki:e,sakae:e,sakura:e,shimofusa:e,shirako:e,shiroi:e,shisui:e,sodegaura:e,sosa:e,tako:e,tateyama:e,togane:e,tohnosho:e,tomisato:e,urayasu:e,yachimata:e,yachiyo:e,yokaichiba:e,yokoshibahikari:e,yotsukaido:e}],ehime:[1,{ainan:e,honai:e,ikata:e,imabari:e,iyo:e,kamijima:e,kihoku:e,kumakogen:e,masaki:e,matsuno:e,matsuyama:e,namikata:e,niihama:e,ozu:e,saijo:e,seiyo:e,shikokuchuo:e,tobe:e,toon:e,uchiko:e,uwajima:e,yawatahama:e}],fukui:[1,{echizen:e,eiheiji:e,fukui:e,ikeda:e,katsuyama:e,mihama:e,minamiechizen:e,obama:e,ohi:e,ono:e,sabae:e,sakai:e,takahama:e,tsuruga:e,wakasa:e}],fukuoka:[1,{ashiya:e,buzen:e,chikugo:e,chikuho:e,chikujo:e,chikushino:e,chikuzen:e,chuo:e,dazaifu:e,fukuchi:e,hakata:e,higashi:e,hirokawa:e,hisayama:e,iizuka:e,inatsuki:e,kaho:e,kasuga:e,kasuya:e,kawara:e,keisen:e,koga:e,kurate:e,kurogi:e,kurume:e,minami:e,miyako:e,miyama:e,miyawaka:e,mizumaki:e,munakata:e,nakagawa:e,nakama:e,nishi:e,nogata:e,ogori:e,okagaki:e,okawa:e,oki:e,omuta:e,onga:e,onojo:e,oto:e,saigawa:e,sasaguri:e,shingu:e,shinyoshitomi:e,shonai:e,soeda:e,sue:e,tachiarai:e,tagawa:e,takata:e,toho:e,toyotsu:e,tsuiki:e,ukiha:e,umi:e,usui:e,yamada:e,yame:e,yanagawa:e,yukuhashi:e}],fukushima:[1,{aizubange:e,aizumisato:e,aizuwakamatsu:e,asakawa:e,bandai:e,date:e,fukushima:e,furudono:e,futaba:e,hanawa:e,higashi:e,hirata:e,hirono:e,iitate:e,inawashiro:e,ishikawa:e,iwaki:e,izumizaki:e,kagamiishi:e,kaneyama:e,kawamata:e,kitakata:e,kitashiobara:e,koori:e,koriyama:e,kunimi:e,miharu:e,mishima:e,namie:e,nango:e,nishiaizu:e,nishigo:e,okuma:e,omotego:e,ono:e,otama:e,samegawa:e,shimogo:e,shirakawa:e,showa:e,soma:e,sukagawa:e,taishin:e,tamakawa:e,tanagura:e,tenei:e,yabuki:e,yamato:e,yamatsuri:e,yanaizu:e,yugawa:e}],gifu:[1,{anpachi:e,ena:e,gifu:e,ginan:e,godo:e,gujo:e,hashima:e,hichiso:e,hida:e,higashishirakawa:e,ibigawa:e,ikeda:e,kakamigahara:e,kani:e,kasahara:e,kasamatsu:e,kawaue:e,kitagata:e,mino:e,minokamo:e,mitake:e,mizunami:e,motosu:e,nakatsugawa:e,ogaki:e,sakahogi:e,seki:e,sekigahara:e,shirakawa:e,tajimi:e,takayama:e,tarui:e,toki:e,tomika:e,wanouchi:e,yamagata:e,yaotsu:e,yoro:e}],gunma:[1,{annaka:e,chiyoda:e,fujioka:e,higashiagatsuma:e,isesaki:e,itakura:e,kanna:e,kanra:e,katashina:e,kawaba:e,kiryu:e,kusatsu:e,maebashi:e,meiwa:e,midori:e,minakami:e,naganohara:e,nakanojo:e,nanmoku:e,numata:e,oizumi:e,ora:e,ota:e,shibukawa:e,shimonita:e,shinto:e,showa:e,takasaki:e,takayama:e,tamamura:e,tatebayashi:e,tomioka:e,tsukiyono:e,tsumagoi:e,ueno:e,yoshioka:e}],hiroshima:[1,{asaminami:e,daiwa:e,etajima:e,fuchu:e,fukuyama:e,hatsukaichi:e,higashihiroshima:e,hongo:e,jinsekikogen:e,kaita:e,kui:e,kumano:e,kure:e,mihara:e,miyoshi:e,naka:e,onomichi:e,osakikamijima:e,otake:e,saka:e,sera:e,seranishi:e,shinichi:e,shobara:e,takehara:e}],hokkaido:[1,{abashiri:e,abira:e,aibetsu:e,akabira:e,akkeshi:e,asahikawa:e,ashibetsu:e,ashoro:e,assabu:e,atsuma:e,bibai:e,biei:e,bifuka:e,bihoro:e,biratori:e,chippubetsu:e,chitose:e,date:e,ebetsu:e,embetsu:e,eniwa:e,erimo:e,esan:e,esashi:e,fukagawa:e,fukushima:e,furano:e,furubira:e,haboro:e,hakodate:e,hamatonbetsu:e,hidaka:e,higashikagura:e,higashikawa:e,hiroo:e,hokuryu:e,hokuto:e,honbetsu:e,horokanai:e,horonobe:e,ikeda:e,imakane:e,ishikari:e,iwamizawa:e,iwanai:e,kamifurano:e,kamikawa:e,kamishihoro:e,kamisunagawa:e,kamoenai:e,kayabe:e,kembuchi:e,kikonai:e,kimobetsu:e,kitahiroshima:e,kitami:e,kiyosato:e,koshimizu:e,kunneppu:e,kuriyama:e,kuromatsunai:e,kushiro:e,kutchan:e,kyowa:e,mashike:e,matsumae:e,mikasa:e,minamifurano:e,mombetsu:e,moseushi:e,mukawa:e,muroran:e,naie:e,nakagawa:e,nakasatsunai:e,nakatombetsu:e,nanae:e,nanporo:e,nayoro:e,nemuro:e,niikappu:e,niki:e,nishiokoppe:e,noboribetsu:e,numata:e,obihiro:e,obira:e,oketo:e,okoppe:e,otaru:e,otobe:e,otofuke:e,otoineppu:e,oumu:e,ozora:e,pippu:e,rankoshi:e,rebun:e,rikubetsu:e,rishiri:e,rishirifuji:e,saroma:e,sarufutsu:e,shakotan:e,shari:e,shibecha:e,shibetsu:e,shikabe:e,shikaoi:e,shimamaki:e,shimizu:e,shimokawa:e,shinshinotsu:e,shintoku:e,shiranuka:e,shiraoi:e,shiriuchi:e,sobetsu:e,sunagawa:e,taiki:e,takasu:e,takikawa:e,takinoue:e,teshikaga:e,tobetsu:e,tohma:e,tomakomai:e,tomari:e,toya:e,toyako:e,toyotomi:e,toyoura:e,tsubetsu:e,tsukigata:e,urakawa:e,urausu:e,uryu:e,utashinai:e,wakkanai:e,wassamu:e,yakumo:e,yoichi:e}],hyogo:[1,{aioi:e,akashi:e,ako:e,amagasaki:e,aogaki:e,asago:e,ashiya:e,awaji:e,fukusaki:e,goshiki:e,harima:e,himeji:e,ichikawa:e,inagawa:e,itami:e,kakogawa:e,kamigori:e,kamikawa:e,kasai:e,kasuga:e,kawanishi:e,miki:e,minamiawaji:e,nishinomiya:e,nishiwaki:e,ono:e,sanda:e,sannan:e,sasayama:e,sayo:e,shingu:e,shinonsen:e,shiso:e,sumoto:e,taishi:e,taka:e,takarazuka:e,takasago:e,takino:e,tamba:e,tatsuno:e,toyooka:e,yabu:e,yashiro:e,yoka:e,yokawa:e}],ibaraki:[1,{ami:e,asahi:e,bando:e,chikusei:e,daigo:e,fujishiro:e,hitachi:e,hitachinaka:e,hitachiomiya:e,hitachiota:e,ibaraki:e,ina:e,inashiki:e,itako:e,iwama:e,joso:e,kamisu:e,kasama:e,kashima:e,kasumigaura:e,koga:e,miho:e,mito:e,moriya:e,naka:e,namegata:e,oarai:e,ogawa:e,omitama:e,ryugasaki:e,sakai:e,sakuragawa:e,shimodate:e,shimotsuma:e,shirosato:e,sowa:e,suifu:e,takahagi:e,tamatsukuri:e,tokai:e,tomobe:e,tone:e,toride:e,tsuchiura:e,tsukuba:e,uchihara:e,ushiku:e,yachiyo:e,yamagata:e,yawara:e,yuki:e}],ishikawa:[1,{anamizu:e,hakui:e,hakusan:e,kaga:e,kahoku:e,kanazawa:e,kawakita:e,komatsu:e,nakanoto:e,nanao:e,nomi:e,nonoichi:e,noto:e,shika:e,suzu:e,tsubata:e,tsurugi:e,uchinada:e,wajima:e}],iwate:[1,{fudai:e,fujisawa:e,hanamaki:e,hiraizumi:e,hirono:e,ichinohe:e,ichinoseki:e,iwaizumi:e,iwate:e,joboji:e,kamaishi:e,kanegasaki:e,karumai:e,kawai:e,kitakami:e,kuji:e,kunohe:e,kuzumaki:e,miyako:e,mizusawa:e,morioka:e,ninohe:e,noda:e,ofunato:e,oshu:e,otsuchi:e,rikuzentakata:e,shiwa:e,shizukuishi:e,sumita:e,tanohata:e,tono:e,yahaba:e,yamada:e}],kagawa:[1,{ayagawa:e,higashikagawa:e,kanonji:e,kotohira:e,manno:e,marugame:e,mitoyo:e,naoshima:e,sanuki:e,tadotsu:e,takamatsu:e,tonosho:e,uchinomi:e,utazu:e,zentsuji:e}],kagoshima:[1,{akune:e,amami:e,hioki:e,isa:e,isen:e,izumi:e,kagoshima:e,kanoya:e,kawanabe:e,kinko:e,kouyama:e,makurazaki:e,matsumoto:e,minamitane:e,nakatane:e,nishinoomote:e,satsumasendai:e,soo:e,tarumizu:e,yusui:e}],kanagawa:[1,{aikawa:e,atsugi:e,ayase:e,chigasaki:e,ebina:e,fujisawa:e,hadano:e,hakone:e,hiratsuka:e,isehara:e,kaisei:e,kamakura:e,kiyokawa:e,matsuda:e,minamiashigara:e,miura:e,nakai:e,ninomiya:e,odawara:e,oi:e,oiso:e,sagamihara:e,samukawa:e,tsukui:e,yamakita:e,yamato:e,yokosuka:e,yugawara:e,zama:e,zushi:e}],kochi:[1,{aki:e,geisei:e,hidaka:e,higashitsuno:e,ino:e,kagami:e,kami:e,kitagawa:e,kochi:e,mihara:e,motoyama:e,muroto:e,nahari:e,nakamura:e,nankoku:e,nishitosa:e,niyodogawa:e,ochi:e,okawa:e,otoyo:e,otsuki:e,sakawa:e,sukumo:e,susaki:e,tosa:e,tosashimizu:e,toyo:e,tsuno:e,umaji:e,yasuda:e,yusuhara:e}],kumamoto:[1,{amakusa:e,arao:e,aso:e,choyo:e,gyokuto:e,kamiamakusa:e,kikuchi:e,kumamoto:e,mashiki:e,mifune:e,minamata:e,minamioguni:e,nagasu:e,nishihara:e,oguni:e,ozu:e,sumoto:e,takamori:e,uki:e,uto:e,yamaga:e,yamato:e,yatsushiro:e}],kyoto:[1,{ayabe:e,fukuchiyama:e,higashiyama:e,ide:e,ine:e,joyo:e,kameoka:e,kamo:e,kita:e,kizu:e,kumiyama:e,kyotamba:e,kyotanabe:e,kyotango:e,maizuru:e,minami:e,minamiyamashiro:e,miyazu:e,muko:e,nagaokakyo:e,nakagyo:e,nantan:e,oyamazaki:e,sakyo:e,seika:e,tanabe:e,uji:e,ujitawara:e,wazuka:e,yamashina:e,yawata:e}],mie:[1,{asahi:e,inabe:e,ise:e,kameyama:e,kawagoe:e,kiho:e,kisosaki:e,kiwa:e,komono:e,kumano:e,kuwana:e,matsusaka:e,meiwa:e,mihama:e,minamiise:e,misugi:e,miyama:e,nabari:e,shima:e,suzuka:e,tado:e,taiki:e,taki:e,tamaki:e,toba:e,tsu:e,udono:e,ureshino:e,watarai:e,yokkaichi:e}],miyagi:[1,{furukawa:e,higashimatsushima:e,ishinomaki:e,iwanuma:e,kakuda:e,kami:e,kawasaki:e,marumori:e,matsushima:e,minamisanriku:e,misato:e,murata:e,natori:e,ogawara:e,ohira:e,onagawa:e,osaki:e,rifu:e,semine:e,shibata:e,shichikashuku:e,shikama:e,shiogama:e,shiroishi:e,tagajo:e,taiwa:e,tome:e,tomiya:e,wakuya:e,watari:e,yamamoto:e,zao:e}],miyazaki:[1,{aya:e,ebino:e,gokase:e,hyuga:e,kadogawa:e,kawaminami:e,kijo:e,kitagawa:e,kitakata:e,kitaura:e,kobayashi:e,kunitomi:e,kushima:e,mimata:e,miyakonojo:e,miyazaki:e,morotsuka:e,nichinan:e,nishimera:e,nobeoka:e,saito:e,shiiba:e,shintomi:e,takaharu:e,takanabe:e,takazaki:e,tsuno:e}],nagano:[1,{achi:e,agematsu:e,anan:e,aoki:e,asahi:e,azumino:e,chikuhoku:e,chikuma:e,chino:e,fujimi:e,hakuba:e,hara:e,hiraya:e,iida:e,iijima:e,iiyama:e,iizuna:e,ikeda:e,ikusaka:e,ina:e,karuizawa:e,kawakami:e,kiso:e,kisofukushima:e,kitaaiki:e,komagane:e,komoro:e,matsukawa:e,matsumoto:e,miasa:e,minamiaiki:e,minamimaki:e,minamiminowa:e,minowa:e,miyada:e,miyota:e,mochizuki:e,nagano:e,nagawa:e,nagiso:e,nakagawa:e,nakano:e,nozawaonsen:e,obuse:e,ogawa:e,okaya:e,omachi:e,omi:e,ookuwa:e,ooshika:e,otaki:e,otari:e,sakae:e,sakaki:e,saku:e,sakuho:e,shimosuwa:e,shinanomachi:e,shiojiri:e,suwa:e,suzaka:e,takagi:e,takamori:e,takayama:e,tateshina:e,tatsuno:e,togakushi:e,togura:e,tomi:e,ueda:e,wada:e,yamagata:e,yamanouchi:e,yasaka:e,yasuoka:e}],nagasaki:[1,{chijiwa:e,futsu:e,goto:e,hasami:e,hirado:e,iki:e,isahaya:e,kawatana:e,kuchinotsu:e,matsuura:e,nagasaki:e,obama:e,omura:e,oseto:e,saikai:e,sasebo:e,seihi:e,shimabara:e,shinkamigoto:e,togitsu:e,tsushima:e,unzen:e}],nara:[1,{ando:e,gose:e,heguri:e,higashiyoshino:e,ikaruga:e,ikoma:e,kamikitayama:e,kanmaki:e,kashiba:e,kashihara:e,katsuragi:e,kawai:e,kawakami:e,kawanishi:e,koryo:e,kurotaki:e,mitsue:e,miyake:e,nara:e,nosegawa:e,oji:e,ouda:e,oyodo:e,sakurai:e,sango:e,shimoichi:e,shimokitayama:e,shinjo:e,soni:e,takatori:e,tawaramoto:e,tenkawa:e,tenri:e,uda:e,yamatokoriyama:e,yamatotakada:e,yamazoe:e,yoshino:e}],niigata:[1,{aga:e,agano:e,gosen:e,itoigawa:e,izumozaki:e,joetsu:e,kamo:e,kariwa:e,kashiwazaki:e,minamiuonuma:e,mitsuke:e,muika:e,murakami:e,myoko:e,nagaoka:e,niigata:e,ojiya:e,omi:e,sado:e,sanjo:e,seiro:e,seirou:e,sekikawa:e,shibata:e,tagami:e,tainai:e,tochio:e,tokamachi:e,tsubame:e,tsunan:e,uonuma:e,yahiko:e,yoita:e,yuzawa:e}],oita:[1,{beppu:e,bungoono:e,bungotakada:e,hasama:e,hiji:e,himeshima:e,hita:e,kamitsue:e,kokonoe:e,kuju:e,kunisaki:e,kusu:e,oita:e,saiki:e,taketa:e,tsukumi:e,usa:e,usuki:e,yufu:e}],okayama:[1,{akaiwa:e,asakuchi:e,bizen:e,hayashima:e,ibara:e,kagamino:e,kasaoka:e,kibichuo:e,kumenan:e,kurashiki:e,maniwa:e,misaki:e,nagi:e,niimi:e,nishiawakura:e,okayama:e,satosho:e,setouchi:e,shinjo:e,shoo:e,soja:e,takahashi:e,tamano:e,tsuyama:e,wake:e,yakage:e}],okinawa:[1,{aguni:e,ginowan:e,ginoza:e,gushikami:e,haebaru:e,higashi:e,hirara:e,iheya:e,ishigaki:e,ishikawa:e,itoman:e,izena:e,kadena:e,kin:e,kitadaito:e,kitanakagusuku:e,kumejima:e,kunigami:e,minamidaito:e,motobu:e,nago:e,naha:e,nakagusuku:e,nakijin:e,nanjo:e,nishihara:e,ogimi:e,okinawa:e,onna:e,shimoji:e,taketomi:e,tarama:e,tokashiki:e,tomigusuku:e,tonaki:e,urasoe:e,uruma:e,yaese:e,yomitan:e,yonabaru:e,yonaguni:e,zamami:e}],osaka:[1,{abeno:e,chihayaakasaka:e,chuo:e,daito:e,fujiidera:e,habikino:e,hannan:e,higashiosaka:e,higashisumiyoshi:e,higashiyodogawa:e,hirakata:e,ibaraki:e,ikeda:e,izumi:e,izumiotsu:e,izumisano:e,kadoma:e,kaizuka:e,kanan:e,kashiwara:e,katano:e,kawachinagano:e,kishiwada:e,kita:e,kumatori:e,matsubara:e,minato:e,minoh:e,misaki:e,moriguchi:e,neyagawa:e,nishi:e,nose:e,osakasayama:e,sakai:e,sayama:e,sennan:e,settsu:e,shijonawate:e,shimamoto:e,suita:e,tadaoka:e,taishi:e,tajiri:e,takaishi:e,takatsuki:e,tondabayashi:e,toyonaka:e,toyono:e,yao:e}],saga:[1,{ariake:e,arita:e,fukudomi:e,genkai:e,hamatama:e,hizen:e,imari:e,kamimine:e,kanzaki:e,karatsu:e,kashima:e,kitagata:e,kitahata:e,kiyama:e,kouhoku:e,kyuragi:e,nishiarita:e,ogi:e,omachi:e,ouchi:e,saga:e,shiroishi:e,taku:e,tara:e,tosu:e,yoshinogari:e}],saitama:[1,{arakawa:e,asaka:e,chichibu:e,fujimi:e,fujimino:e,fukaya:e,hanno:e,hanyu:e,hasuda:e,hatogaya:e,hatoyama:e,hidaka:e,higashichichibu:e,higashimatsuyama:e,honjo:e,ina:e,iruma:e,iwatsuki:e,kamiizumi:e,kamikawa:e,kamisato:e,kasukabe:e,kawagoe:e,kawaguchi:e,kawajima:e,kazo:e,kitamoto:e,koshigaya:e,kounosu:e,kuki:e,kumagaya:e,matsubushi:e,minano:e,misato:e,miyashiro:e,miyoshi:e,moroyama:e,nagatoro:e,namegawa:e,niiza:e,ogano:e,ogawa:e,ogose:e,okegawa:e,omiya:e,otaki:e,ranzan:e,ryokami:e,saitama:e,sakado:e,satte:e,sayama:e,shiki:e,shiraoka:e,soka:e,sugito:e,toda:e,tokigawa:e,tokorozawa:e,tsurugashima:e,urawa:e,warabi:e,yashio:e,yokoze:e,yono:e,yorii:e,yoshida:e,yoshikawa:e,yoshimi:e}],shiga:[1,{aisho:e,gamo:e,higashiomi:e,hikone:e,koka:e,konan:e,kosei:e,koto:e,kusatsu:e,maibara:e,moriyama:e,nagahama:e,nishiazai:e,notogawa:e,omihachiman:e,otsu:e,ritto:e,ryuoh:e,takashima:e,takatsuki:e,torahime:e,toyosato:e,yasu:e}],shimane:[1,{akagi:e,ama:e,gotsu:e,hamada:e,higashiizumo:e,hikawa:e,hikimi:e,izumo:e,kakinoki:e,masuda:e,matsue:e,misato:e,nishinoshima:e,ohda:e,okinoshima:e,okuizumo:e,shimane:e,tamayu:e,tsuwano:e,unnan:e,yakumo:e,yasugi:e,yatsuka:e}],shizuoka:[1,{arai:e,atami:e,fuji:e,fujieda:e,fujikawa:e,fujinomiya:e,fukuroi:e,gotemba:e,haibara:e,hamamatsu:e,higashiizu:e,ito:e,iwata:e,izu:e,izunokuni:e,kakegawa:e,kannami:e,kawanehon:e,kawazu:e,kikugawa:e,kosai:e,makinohara:e,matsuzaki:e,minamiizu:e,mishima:e,morimachi:e,nishiizu:e,numazu:e,omaezaki:e,shimada:e,shimizu:e,shimoda:e,shizuoka:e,susono:e,yaizu:e,yoshida:e}],tochigi:[1,{ashikaga:e,bato:e,haga:e,ichikai:e,iwafune:e,kaminokawa:e,kanuma:e,karasuyama:e,kuroiso:e,mashiko:e,mibu:e,moka:e,motegi:e,nasu:e,nasushiobara:e,nikko:e,nishikata:e,nogi:e,ohira:e,ohtawara:e,oyama:e,sakura:e,sano:e,shimotsuke:e,shioya:e,takanezawa:e,tochigi:e,tsuga:e,ujiie:e,utsunomiya:e,yaita:e}],tokushima:[1,{aizumi:e,anan:e,ichiba:e,itano:e,kainan:e,komatsushima:e,matsushige:e,mima:e,minami:e,miyoshi:e,mugi:e,nakagawa:e,naruto:e,sanagochi:e,shishikui:e,tokushima:e,wajiki:e}],tokyo:[1,{adachi:e,akiruno:e,akishima:e,aogashima:e,arakawa:e,bunkyo:e,chiyoda:e,chofu:e,chuo:e,edogawa:e,fuchu:e,fussa:e,hachijo:e,hachioji:e,hamura:e,higashikurume:e,higashimurayama:e,higashiyamato:e,hino:e,hinode:e,hinohara:e,inagi:e,itabashi:e,katsushika:e,kita:e,kiyose:e,kodaira:e,koganei:e,kokubunji:e,komae:e,koto:e,kouzushima:e,kunitachi:e,machida:e,meguro:e,minato:e,mitaka:e,mizuho:e,musashimurayama:e,musashino:e,nakano:e,nerima:e,ogasawara:e,okutama:e,ome:e,oshima:e,ota:e,setagaya:e,shibuya:e,shinagawa:e,shinjuku:e,suginami:e,sumida:e,tachikawa:e,taito:e,tama:e,toshima:e}],tottori:[1,{chizu:e,hino:e,kawahara:e,koge:e,kotoura:e,misasa:e,nanbu:e,nichinan:e,sakaiminato:e,tottori:e,wakasa:e,yazu:e,yonago:e}],toyama:[1,{asahi:e,fuchu:e,fukumitsu:e,funahashi:e,himi:e,imizu:e,inami:e,johana:e,kamiichi:e,kurobe:e,nakaniikawa:e,namerikawa:e,nanto:e,nyuzen:e,oyabe:e,taira:e,takaoka:e,tateyama:e,toga:e,tonami:e,toyama:e,unazuki:e,uozu:e,yamada:e}],wakayama:[1,{arida:e,aridagawa:e,gobo:e,hashimoto:e,hidaka:e,hirogawa:e,inami:e,iwade:e,kainan:e,kamitonda:e,katsuragi:e,kimino:e,kinokawa:e,kitayama:e,koya:e,koza:e,kozagawa:e,kudoyama:e,kushimoto:e,mihama:e,misato:e,nachikatsuura:e,shingu:e,shirahama:e,taiji:e,tanabe:e,wakayama:e,yuasa:e,yura:e}],yamagata:[1,{asahi:e,funagata:e,higashine:e,iide:e,kahoku:e,kaminoyama:e,kaneyama:e,kawanishi:e,mamurogawa:e,mikawa:e,murayama:e,nagai:e,nakayama:e,nanyo:e,nishikawa:e,obanazawa:e,oe:e,oguni:e,ohkura:e,oishida:e,sagae:e,sakata:e,sakegawa:e,shinjo:e,shirataka:e,shonai:e,takahata:e,tendo:e,tozawa:e,tsuruoka:e,yamagata:e,yamanobe:e,yonezawa:e,yuza:e}],yamaguchi:[1,{abu:e,hagi:e,hikari:e,hofu:e,iwakuni:e,kudamatsu:e,mitou:e,nagato:e,oshima:e,shimonoseki:e,shunan:e,tabuse:e,tokuyama:e,toyota:e,ube:e,yuu:e}],yamanashi:[1,{chuo:e,doshi:e,fuefuki:e,fujikawa:e,fujikawaguchiko:e,fujiyoshida:e,hayakawa:e,hokuto:e,ichikawamisato:e,kai:e,kofu:e,koshu:e,kosuge:e,"minami-alps":e,minobu:e,nakamichi:e,nanbu:e,narusawa:e,nirasaki:e,nishikatsura:e,oshino:e,otsuki:e,showa:e,tabayama:e,tsuru:e,uenohara:e,yamanakako:e,yamanashi:e}],"xn--ehqz56n":e,\u4E09\u91CD:e,"xn--1lqs03n":e,\u4EAC\u90FD:e,"xn--qqqt11m":e,\u4F50\u8CC0:e,"xn--f6qx53a":e,\u5175\u5EAB:e,"xn--djrs72d6uy":e,\u5317\u6D77\u9053:e,"xn--mkru45i":e,\u5343\u8449:e,"xn--0trq7p7nn":e,\u548C\u6B4C\u5C71:e,"xn--5js045d":e,\u57FC\u7389:e,"xn--kbrq7o":e,\u5927\u5206:e,"xn--pssu33l":e,\u5927\u962A:e,"xn--ntsq17g":e,\u5948\u826F:e,"xn--uisz3g":e,\u5BAE\u57CE:e,"xn--6btw5a":e,\u5BAE\u5D0E:e,"xn--1ctwo":e,\u5BCC\u5C71:e,"xn--6orx2r":e,\u5C71\u53E3:e,"xn--rht61e":e,\u5C71\u5F62:e,"xn--rht27z":e,\u5C71\u68A8:e,"xn--nit225k":e,\u5C90\u961C:e,"xn--rht3d":e,\u5CA1\u5C71:e,"xn--djty4k":e,\u5CA9\u624B:e,"xn--klty5x":e,\u5CF6\u6839:e,"xn--kltx9a":e,\u5E83\u5CF6:e,"xn--kltp7d":e,\u5FB3\u5CF6:e,"xn--c3s14m":e,\u611B\u5A9B:e,"xn--vgu402c":e,\u611B\u77E5:e,"xn--efvn9s":e,\u65B0\u6F5F:e,"xn--1lqs71d":e,\u6771\u4EAC:e,"xn--4pvxs":e,\u6803\u6728:e,"xn--uuwu58a":e,\u6C96\u7E04:e,"xn--zbx025d":e,\u6ECB\u8CC0:e,"xn--8pvr4u":e,\u718A\u672C:e,"xn--5rtp49c":e,\u77F3\u5DDD:e,"xn--ntso0iqx3a":e,\u795E\u5948\u5DDD:e,"xn--elqq16h":e,\u798F\u4E95:e,"xn--4it168d":e,\u798F\u5CA1:e,"xn--klt787d":e,\u798F\u5CF6:e,"xn--rny31h":e,\u79CB\u7530:e,"xn--7t0a264c":e,\u7FA4\u99AC:e,"xn--uist22h":e,\u8328\u57CE:e,"xn--8ltr62k":e,\u9577\u5D0E:e,"xn--2m4a15e":e,\u9577\u91CE:e,"xn--32vp30h":e,\u9752\u68EE:e,"xn--4it797k":e,\u9759\u5CA1:e,"xn--5rtq34k":e,\u9999\u5DDD:e,"xn--k7yn95e":e,\u9AD8\u77E5:e,"xn--tor131o":e,\u9CE5\u53D6:e,"xn--d5qv7z876c":e,\u9E7F\u5150\u5CF6:e,kawasaki:M,kitakyushu:M,kobe:M,nagoya:M,sapporo:M,sendai:M,yokohama:M,buyshop:t,fashionstore:t,handcrafted:t,kawaiishop:t,supersale:t,theshop:t,"0am":t,"0g0":t,"0j0":t,"0t0":t,mydns:t,pgw:t,wjg:t,usercontent:t,angry:t,babyblue:t,babymilk:t,backdrop:t,bambina:t,bitter:t,blush:t,boo:t,boy:t,boyfriend:t,but:t,candypop:t,capoo:t,catfood:t,cheap:t,chicappa:t,chillout:t,chips:t,chowder:t,chu:t,ciao:t,cocotte:t,coolblog:t,cranky:t,cutegirl:t,daa:t,deca:t,deci:t,digick:t,egoism:t,fakefur:t,fem:t,flier:t,floppy:t,fool:t,frenchkiss:t,girlfriend:t,girly:t,gloomy:t,gonna:t,greater:t,hacca:t,heavy:t,her:t,hiho:t,hippy:t,holy:t,hungry:t,icurus:t,itigo:t,jellybean:t,kikirara:t,kill:t,kilo:t,kuron:t,littlestar:t,lolipopmc:t,lolitapunk:t,lomo:t,lovepop:t,lovesick:t,main:t,mods:t,mond:t,mongolian:t,moo:t,namaste:t,nikita:t,nobushi:t,noor:t,oops:t,parallel:t,parasite:t,pecori:t,peewee:t,penne:t,pepper:t,perma:t,pigboat:t,pinoko:t,punyu:t,pupu:t,pussycat:t,pya:t,raindrop:t,readymade:t,sadist:t,schoolbus:t,secret:t,staba:t,stripper:t,sub:t,sunnyday:t,thick:t,tonkotsu:t,under:t,upper:t,velvet:t,verse:t,versus:t,vivian:t,watson:t,weblike:t,whitesnow:t,zombie:t,hateblo:t,hatenablog:t,hatenadiary:t,"2-d":t,bona:t,crap:t,daynight:t,eek:t,flop:t,halfmoon:t,jeez:t,matrix:t,mimoza:t,netgamers:t,nyanta:t,o0o0:t,rdy:t,rgr:t,rulez:t,sakurastorage:[0,{isk01:Mn,isk02:Mn}],saloon:t,sblo:t,skr:t,tank:t,"uh-oh":t,undo:t,webaccel:[0,{rs:t,user:t}],websozai:t,xii:t}],ke:[1,{ac:e,co:e,go:e,info:e,me:e,mobi:e,ne:e,or:e,sc:e}],kg:[1,{com:e,edu:e,gov:e,mil:e,net:e,org:e,us:t,xx:t,ae:t}],kh:n,ki:fo,km:[1,{ass:e,com:e,edu:e,gov:e,mil:e,nom:e,org:e,prd:e,tm:e,asso:e,coop:e,gouv:e,medecin:e,notaires:e,pharmaciens:e,presse:e,veterinaire:e}],kn:[1,{edu:e,gov:e,net:e,org:e}],kp:[1,{com:e,edu:e,gov:e,org:e,rep:e,tra:e}],kr:[1,{ac:e,ai:e,co:e,es:e,go:e,hs:e,io:e,it:e,kg:e,me:e,mil:e,ms:e,ne:e,or:e,pe:e,re:e,sc:e,busan:e,chungbuk:e,chungnam:e,daegu:e,daejeon:e,gangwon:e,gwangju:e,gyeongbuk:e,gyeonggi:e,gyeongnam:e,incheon:e,jeju:e,jeonbuk:e,jeonnam:e,seoul:e,ulsan:e,c01:t,"eliv-api":t,"eliv-cdn":t,"eliv-dns":t,mmv:t,vki:t}],kw:[1,{com:e,edu:e,emb:e,gov:e,ind:e,net:e,org:e}],ky:Yt,kz:[1,{com:e,edu:e,gov:e,mil:e,net:e,org:e,jcloud:t}],la:[1,{com:e,edu:e,gov:e,info:e,int:e,net:e,org:e,per:e,bnr:t}],lb:n,lc:[1,{co:e,com:e,edu:e,gov:e,net:e,org:e,oy:t}],li:e,lk:[1,{ac:e,assn:e,com:e,edu:e,gov:e,grp:e,hotel:e,int:e,ltd:e,net:e,ngo:e,org:e,sch:e,soc:e,web:e}],lr:n,ls:[1,{ac:e,biz:e,co:e,edu:e,gov:e,info:e,net:e,org:e,sc:e}],lt:c,lu:[1,{"123website":t}],lv:[1,{asn:e,com:e,conf:e,edu:e,gov:e,id:e,mil:e,net:e,org:e}],ly:[1,{com:e,edu:e,gov:e,id:e,med:e,net:e,org:e,plc:e,sch:e}],ma:[1,{ac:e,co:e,gov:e,net:e,org:e,press:e}],mc:[1,{asso:e,tm:e}],md:[1,{ir:t}],me:[1,{ac:e,co:e,edu:e,gov:e,its:e,net:e,org:e,priv:e,c66:t,craft:t,edgestack:t,mybox:t,filegear:t,"filegear-sg":t,lohmus:t,barsy:t,mcdir:t,brasilia:t,ddns:t,dnsfor:t,hopto:t,loginto:t,noip:t,webhop:t,soundcast:t,tcp4:t,vp4:t,diskstation:t,dscloud:t,i234:t,myds:t,synology:t,transip:Yo,nohost:t}],mg:[1,{co:e,com:e,edu:e,gov:e,mil:e,nom:e,org:e,prd:e}],mh:e,mil:e,mk:[1,{com:e,edu:e,gov:e,inf:e,name:e,net:e,org:e}],ml:[1,{ac:e,art:e,asso:e,com:e,edu:e,gouv:e,gov:e,info:e,inst:e,net:e,org:e,pr:e,presse:e}],mm:M,mn:[1,{edu:e,gov:e,org:e,nyc:t}],mo:n,mobi:[1,{barsy:t,dscloud:t}],mp:[1,{ju:t}],mq:e,mr:c,ms:[1,{com:e,edu:e,gov:e,net:e,org:e,minisite:t}],mt:Yt,mu:[1,{ac:e,co:e,com:e,gov:e,net:e,or:e,org:e}],museum:e,mv:[1,{aero:e,biz:e,com:e,coop:e,edu:e,gov:e,info:e,int:e,mil:e,museum:e,name:e,net:e,org:e,pro:e}],mw:[1,{ac:e,biz:e,co:e,com:e,coop:e,edu:e,gov:e,int:e,net:e,org:e}],mx:[1,{com:e,edu:e,gob:e,net:e,org:e}],my:[1,{biz:e,com:e,edu:e,gov:e,mil:e,name:e,net:e,org:e}],mz:[1,{ac:e,adv:e,co:e,edu:e,gov:e,mil:e,net:e,org:e}],na:[1,{alt:e,co:e,com:e,gov:e,net:e,org:e}],name:[1,{her:oo,his:oo,ispmanager:t,keenetic:t}],nc:[1,{asso:e,nom:e}],ne:e,net:[1,{adobeaemcloud:t,"adobeio-static":t,adobeioruntime:t,akadns:t,akamai:t,"akamai-staging":t,akamaiedge:t,"akamaiedge-staging":t,akamaihd:t,"akamaihd-staging":t,akamaiorigin:t,"akamaiorigin-staging":t,akamaized:t,"akamaized-staging":t,edgekey:t,"edgekey-staging":t,edgesuite:t,"edgesuite-staging":t,alwaysdata:t,myamaze:t,cloudfront:t,appudo:t,"atlassian-dev":[0,{prod:tt}],myfritz:t,shopselect:t,blackbaudcdn:t,boomla:t,bplaced:t,square7:t,cdn77:[0,{r:t}],"cdn77-ssl":t,gb:t,hu:t,jp:t,se:t,uk:t,clickrising:t,"ddns-ip":t,"dns-cloud":t,"dns-dynamic":t,cloudaccess:t,cloudflare:[2,{cdn:t}],cloudflareanycast:tt,cloudflarecn:tt,cloudflareglobal:tt,ctfcloud:t,"feste-ip":t,"knx-server":t,"static-access":t,cryptonomic:r,dattolocal:t,mydatto:t,debian:t,definima:t,deno:[2,{sandbox:t}],icp:r,de5:t,"at-band-camp":t,blogdns:t,"broke-it":t,buyshouses:t,dnsalias:t,dnsdojo:t,"does-it":t,dontexist:t,dynalias:t,dynathome:t,endofinternet:t,"from-az":t,"from-co":t,"from-la":t,"from-ny":t,"gets-it":t,"ham-radio-op":t,homeftp:t,homeip:t,homelinux:t,homeunix:t,"in-the-band":t,"is-a-chef":t,"is-a-geek":t,"isa-geek":t,"kicks-ass":t,"office-on-the":t,podzone:t,"scrapper-site":t,selfip:t,"sells-it":t,servebbs:t,serveftp:t,thruhere:t,webhop:t,casacam:t,dynu:t,dynuddns:t,mysynology:t,opik:t,spryt:t,dynv6:t,twmail:t,ru:t,channelsdvr:[2,{u:t}],fastly:[0,{freetls:t,map:t,prod:[0,{a:t,global:t}],ssl:[0,{a:t,b:t,global:t}]}],fastlylb:[2,{map:t}],"keyword-on":t,"live-on":t,"server-on":t,"cdn-edges":t,heteml:t,cloudfunctions:t,"grafana-dev":t,iobb:t,moonscale:t,"in-dsl":t,"in-vpn":t,oninferno:t,botdash:t,"apps-1and1":t,ipifony:t,cloudjiffy:[2,{"fra1-de":t,"west1-us":t}],elastx:[0,{"jls-sto1":t,"jls-sto2":t,"jls-sto3":t}],massivegrid:[0,{paas:[0,{"fr-1":t,"lon-1":t,"lon-2":t,"ny-1":t,"ny-2":t,"sg-1":t}]}],saveincloud:[0,{jelastic:t,"nordeste-idc":t}],scaleforce:Qt,kinghost:t,uni5:t,krellian:t,ggff:t,localto:r,barsy:t,luyani:t,memset:t,"azure-api":t,"azure-mobile":t,azureedge:t,azurefd:t,azurestaticapps:[2,{1:t,2:t,3:t,4:t,5:t,6:t,7:t,centralus:t,eastasia:t,eastus2:t,westeurope:t,westus2:t}],azurewebsites:t,cloudapp:t,trafficmanager:t,usgovcloudapi:dn,usgovcloudapp:t,usgovtrafficmanager:t,windows:dn,mynetname:[0,{sn:t}],routingthecloud:t,bounceme:t,ddns:t,"eating-organic":t,mydissent:t,myeffect:t,mymediapc:t,mypsx:t,mysecuritycamera:t,nhlfan:t,"no-ip":t,pgafan:t,privatizehealthinsurance:t,redirectme:t,serveblog:t,serveminecraft:t,sytes:t,dnsup:t,hicam:t,"now-dns":t,ownip:t,vpndns:t,cloudycluster:t,ovh:[0,{hosting:r,webpaas:r}],rackmaze:t,myradweb:t,in:t,"subsc-pay":t,squares:t,schokokeks:t,"firewall-gateway":t,seidat:t,senseering:t,siteleaf:t,mafelo:t,myspreadshop:t,"vps-host":[2,{jelastic:[0,{atl:t,njs:t,ric:t}]}],srcf:[0,{soc:t,user:t}],supabase:t,dsmynas:t,familyds:t,ts:[2,{c:r}],torproject:[2,{pages:t}],tunnelmole:t,vusercontent:t,"reserve-online":t,localcert:t,"community-pro":t,meinforum:t,yandexcloud:[2,{storage:t,website:t}],za:t,zabc:t}],nf:[1,{arts:e,com:e,firm:e,info:e,net:e,other:e,per:e,rec:e,store:e,web:e}],ng:[1,{com:e,edu:e,gov:e,i:e,mil:e,mobi:e,name:e,net:e,org:e,sch:e,biz:[2,{co:t,dl:t,go:t,lg:t,on:t}],col:t,firm:t,gen:t,ltd:t,ngo:t,plc:t}],ni:[1,{ac:e,biz:e,co:e,com:e,edu:e,gob:e,in:e,info:e,int:e,mil:e,net:e,nom:e,org:e,web:e}],nl:[1,{co:t,"hosting-cluster":t,gov:t,khplay:t,"123website":t,myspreadshop:t,transurl:r,cistron:t,demon:t}],no:[1,{fhs:e,folkebibl:e,fylkesbibl:e,idrett:e,museum:e,priv:e,vgs:e,dep:e,herad:e,kommune:e,mil:e,stat:e,aa:pe,ah:pe,bu:pe,fm:pe,hl:pe,hm:pe,"jan-mayen":pe,mr:pe,nl:pe,nt:pe,of:pe,ol:pe,oslo:pe,rl:pe,sf:pe,st:pe,svalbard:pe,tm:pe,tr:pe,va:pe,vf:pe,akrehamn:e,"xn--krehamn-dxa":e,\u00E5krehamn:e,algard:e,"xn--lgrd-poac":e,\u00E5lg\u00E5rd:e,arna:e,bronnoysund:e,"xn--brnnysund-m8ac":e,br\u00F8nn\u00F8ysund:e,brumunddal:e,bryne:e,drobak:e,"xn--drbak-wua":e,dr\u00F8bak:e,egersund:e,fetsund:e,floro:e,"xn--flor-jra":e,flor\u00F8:e,fredrikstad:e,hokksund:e,honefoss:e,"xn--hnefoss-q1a":e,h\u00F8nefoss:e,jessheim:e,jorpeland:e,"xn--jrpeland-54a":e,j\u00F8rpeland:e,kirkenes:e,kopervik:e,krokstadelva:e,langevag:e,"xn--langevg-jxa":e,langev\u00E5g:e,leirvik:e,mjondalen:e,"xn--mjndalen-64a":e,mj\u00F8ndalen:e,"mo-i-rana":e,mosjoen:e,"xn--mosjen-eya":e,mosj\u00F8en:e,nesoddtangen:e,orkanger:e,osoyro:e,"xn--osyro-wua":e,os\u00F8yro:e,raholt:e,"xn--rholt-mra":e,r\u00E5holt:e,sandnessjoen:e,"xn--sandnessjen-ogb":e,sandnessj\u00F8en:e,skedsmokorset:e,slattum:e,spjelkavik:e,stathelle:e,stavern:e,stjordalshalsen:e,"xn--stjrdalshalsen-sqb":e,stj\u00F8rdalshalsen:e,tananger:e,tranby:e,vossevangen:e,aarborte:e,aejrie:e,afjord:e,"xn--fjord-lra":e,\u00E5fjord:e,agdenes:e,akershus:Nn,aknoluokta:e,"xn--koluokta-7ya57h":e,\u00E1k\u014Boluokta:e,al:e,"xn--l-1fa":e,\u00E5l:e,alaheadju:e,"xn--laheadju-7ya":e,\u00E1laheadju:e,alesund:e,"xn--lesund-hua":e,\u00E5lesund:e,alstahaug:e,alta:e,"xn--lt-liac":e,\u00E1lt\u00E1:e,alvdal:e,amli:e,"xn--mli-tla":e,\u00E5mli:e,amot:e,"xn--mot-tla":e,\u00E5mot:e,andasuolo:e,andebu:e,andoy:e,"xn--andy-ira":e,and\u00F8y:e,ardal:e,"xn--rdal-poa":e,\u00E5rdal:e,aremark:e,arendal:e,"xn--s-1fa":e,\u00E5s:e,aseral:e,"xn--seral-lra":e,\u00E5seral:e,asker:e,askim:e,askoy:e,"xn--asky-ira":e,ask\u00F8y:e,askvoll:e,asnes:e,"xn--snes-poa":e,\u00E5snes:e,audnedaln:e,aukra:e,aure:e,aurland:e,"aurskog-holand":e,"xn--aurskog-hland-jnb":e,"aurskog-h\xF8land":e,austevoll:e,austrheim:e,averoy:e,"xn--avery-yua":e,aver\u00F8y:e,badaddja:e,"xn--bdddj-mrabd":e,b\u00E5d\u00E5ddj\u00E5:e,"xn--brum-voa":e,b\u00E6rum:e,bahcavuotna:e,"xn--bhcavuotna-s4a":e,b\u00E1hcavuotna:e,bahccavuotna:e,"xn--bhccavuotna-k7a":e,b\u00E1hccavuotna:e,baidar:e,"xn--bidr-5nac":e,b\u00E1id\u00E1r:e,bajddar:e,"xn--bjddar-pta":e,b\u00E1jddar:e,balat:e,"xn--blt-elab":e,b\u00E1l\u00E1t:e,balestrand:e,ballangen:e,balsfjord:e,bamble:e,bardu:e,barum:e,batsfjord:e,"xn--btsfjord-9za":e,b\u00E5tsfjord:e,bearalvahki:e,"xn--bearalvhki-y4a":e,bearalv\u00E1hki:e,beardu:e,beiarn:e,berg:e,bergen:e,berlevag:e,"xn--berlevg-jxa":e,berlev\u00E5g:e,bievat:e,"xn--bievt-0qa":e,biev\u00E1t:e,bindal:e,birkenes:e,bjerkreim:e,bjugn:e,bodo:e,"xn--bod-2na":e,bod\u00F8:e,bokn:e,bomlo:e,"xn--bmlo-gra":e,b\u00F8mlo:e,bremanger:e,bronnoy:e,"xn--brnny-wuac":e,br\u00F8nn\u00F8y:e,budejju:e,buskerud:Nn,bygland:e,bykle:e,cahcesuolo:e,"xn--hcesuolo-7ya35b":e,\u010D\u00E1hcesuolo:e,davvenjarga:e,"xn--davvenjrga-y4a":e,davvenj\u00E1rga:e,davvesiida:e,deatnu:e,dielddanuorri:e,divtasvuodna:e,divttasvuotna:e,donna:e,"xn--dnna-gra":e,d\u00F8nna:e,dovre:e,drammen:e,drangedal:e,dyroy:e,"xn--dyry-ira":e,dyr\u00F8y:e,eid:e,eidfjord:e,eidsberg:e,eidskog:e,eidsvoll:e,eigersund:e,elverum:e,enebakk:e,engerdal:e,etne:e,etnedal:e,evenassi:e,"xn--eveni-0qa01ga":e,even\u00E1\u0161\u0161i:e,evenes:e,"evje-og-hornnes":e,farsund:e,fauske:e,fedje:e,fet:e,finnoy:e,"xn--finny-yua":e,finn\u00F8y:e,fitjar:e,fjaler:e,fjell:e,fla:e,"xn--fl-zia":e,fl\u00E5:e,flakstad:e,flatanger:e,flekkefjord:e,flesberg:e,flora:e,folldal:e,forde:e,"xn--frde-gra":e,f\u00F8rde:e,forsand:e,fosnes:e,"xn--frna-woa":e,fr\u00E6na:e,frana:e,frei:e,frogn:e,froland:e,frosta:e,froya:e,"xn--frya-hra":e,fr\u00F8ya:e,fuoisku:e,fuossko:e,fusa:e,fyresdal:e,gaivuotna:e,"xn--givuotna-8ya":e,g\u00E1ivuotna:e,galsa:e,"xn--gls-elac":e,g\u00E1ls\u00E1:e,gamvik:e,gangaviika:e,"xn--ggaviika-8ya47h":e,g\u00E1\u014Bgaviika:e,gaular:e,gausdal:e,giehtavuoatna:e,gildeskal:e,"xn--gildeskl-g0a":e,gildesk\u00E5l:e,giske:e,gjemnes:e,gjerdrum:e,gjerstad:e,gjesdal:e,gjovik:e,"xn--gjvik-wua":e,gj\u00F8vik:e,gloppen:e,gol:e,gran:e,grane:e,granvin:e,gratangen:e,grimstad:e,grong:e,grue:e,gulen:e,guovdageaidnu:e,ha:e,"xn--h-2fa":e,h\u00E5:e,habmer:e,"xn--hbmer-xqa":e,h\u00E1bmer:e,hadsel:e,"xn--hgebostad-g3a":e,h\u00E6gebostad:e,hagebostad:e,halden:e,halsa:e,hamar:e,hamaroy:e,hammarfeasta:e,"xn--hmmrfeasta-s4ac":e,h\u00E1mm\u00E1rfeasta:e,hammerfest:e,hapmir:e,"xn--hpmir-xqa":e,h\u00E1pmir:e,haram:e,hareid:e,harstad:e,hasvik:e,hattfjelldal:e,haugesund:e,hedmark:[0,{os:e,valer:e,"xn--vler-qoa":e,v\u00E5ler:e}],hemne:e,hemnes:e,hemsedal:e,hitra:e,hjartdal:e,hjelmeland:e,hobol:e,"xn--hobl-ira":e,hob\u00F8l:e,hof:e,hol:e,hole:e,holmestrand:e,holtalen:e,"xn--holtlen-hxa":e,holt\u00E5len:e,hordaland:[0,{os:e}],hornindal:e,horten:e,hoyanger:e,"xn--hyanger-q1a":e,h\u00F8yanger:e,hoylandet:e,"xn--hylandet-54a":e,h\u00F8ylandet:e,hurdal:e,hurum:e,hvaler:e,hyllestad:e,ibestad:e,inderoy:e,"xn--indery-fya":e,inder\u00F8y:e,iveland:e,ivgu:e,jevnaker:e,jolster:e,"xn--jlster-bya":e,j\u00F8lster:e,jondal:e,kafjord:e,"xn--kfjord-iua":e,k\u00E5fjord:e,karasjohka:e,"xn--krjohka-hwab49j":e,k\u00E1r\u00E1\u0161johka:e,karasjok:e,karlsoy:e,karmoy:e,"xn--karmy-yua":e,karm\u00F8y:e,kautokeino:e,klabu:e,"xn--klbu-woa":e,kl\u00E6bu:e,klepp:e,kongsberg:e,kongsvinger:e,kraanghke:e,"xn--kranghke-b0a":e,kr\u00E5anghke:e,kragero:e,"xn--krager-gya":e,krager\u00F8:e,kristiansand:e,kristiansund:e,krodsherad:e,"xn--krdsherad-m8a":e,kr\u00F8dsherad:e,"xn--kvfjord-nxa":e,kv\u00E6fjord:e,"xn--kvnangen-k0a":e,kv\u00E6nangen:e,kvafjord:e,kvalsund:e,kvam:e,kvanangen:e,kvinesdal:e,kvinnherad:e,kviteseid:e,kvitsoy:e,"xn--kvitsy-fya":e,kvits\u00F8y:e,laakesvuemie:e,"xn--lrdal-sra":e,l\u00E6rdal:e,lahppi:e,"xn--lhppi-xqa":e,l\u00E1hppi:e,lardal:e,larvik:e,lavagis:e,lavangen:e,leangaviika:e,"xn--leagaviika-52b":e,lea\u014Bgaviika:e,lebesby:e,leikanger:e,leirfjord:e,leka:e,leksvik:e,lenvik:e,lerdal:e,lesja:e,levanger:e,lier:e,lierne:e,lillehammer:e,lillesand:e,lindas:e,"xn--linds-pra":e,lind\u00E5s:e,lindesnes:e,loabat:e,"xn--loabt-0qa":e,loab\u00E1t:e,lodingen:e,"xn--ldingen-q1a":e,l\u00F8dingen:e,lom:e,loppa:e,lorenskog:e,"xn--lrenskog-54a":e,l\u00F8renskog:e,loten:e,"xn--lten-gra":e,l\u00F8ten:e,lund:e,lunner:e,luroy:e,"xn--lury-ira":e,lur\u00F8y:e,luster:e,lyngdal:e,lyngen:e,malatvuopmi:e,"xn--mlatvuopmi-s4a":e,m\u00E1latvuopmi:e,malselv:e,"xn--mlselv-iua":e,m\u00E5lselv:e,malvik:e,mandal:e,marker:e,marnardal:e,masfjorden:e,masoy:e,"xn--msy-ula0h":e,m\u00E5s\u00F8y:e,"matta-varjjat":e,"xn--mtta-vrjjat-k7af":e,"m\xE1tta-v\xE1rjjat":e,meland:e,meldal:e,melhus:e,meloy:e,"xn--mely-ira":e,mel\u00F8y:e,meraker:e,"xn--merker-kua":e,mer\u00E5ker:e,midsund:e,"midtre-gauldal":e,moareke:e,"xn--moreke-jua":e,mo\u00E5reke:e,modalen:e,modum:e,molde:e,"more-og-romsdal":[0,{heroy:e,sande:e}],"xn--mre-og-romsdal-qqb":[0,{"xn--hery-ira":e,sande:e}],"m\xF8re-og-romsdal":[0,{her\u00F8y:e,sande:e}],moskenes:e,moss:e,muosat:e,"xn--muost-0qa":e,muos\u00E1t:e,naamesjevuemie:e,"xn--nmesjevuemie-tcba":e,n\u00E5\u00E5mesjevuemie:e,"xn--nry-yla5g":e,n\u00E6r\u00F8y:e,namdalseid:e,namsos:e,namsskogan:e,nannestad:e,naroy:e,narviika:e,narvik:e,naustdal:e,navuotna:e,"xn--nvuotna-hwa":e,n\u00E1vuotna:e,"nedre-eiker":e,nesna:e,nesodden:e,nesseby:e,nesset:e,nissedal:e,nittedal:e,"nord-aurdal":e,"nord-fron":e,"nord-odal":e,norddal:e,nordkapp:e,nordland:[0,{bo:e,"xn--b-5ga":e,b\u00F8:e,heroy:e,"xn--hery-ira":e,her\u00F8y:e}],"nordre-land":e,nordreisa:e,"nore-og-uvdal":e,notodden:e,notteroy:e,"xn--nttery-byae":e,n\u00F8tter\u00F8y:e,odda:e,oksnes:e,"xn--ksnes-uua":e,\u00F8ksnes:e,omasvuotna:e,oppdal:e,oppegard:e,"xn--oppegrd-ixa":e,oppeg\u00E5rd:e,orkdal:e,orland:e,"xn--rland-uua":e,\u00F8rland:e,orskog:e,"xn--rskog-uua":e,\u00F8rskog:e,orsta:e,"xn--rsta-fra":e,\u00F8rsta:e,osen:e,osteroy:e,"xn--ostery-fya":e,oster\u00F8y:e,ostfold:[0,{valer:e}],"xn--stfold-9xa":[0,{"xn--vler-qoa":e}],\u00F8stfold:[0,{v\u00E5ler:e}],"ostre-toten":e,"xn--stre-toten-zcb":e,"\xF8stre-toten":e,overhalla:e,"ovre-eiker":e,"xn--vre-eiker-k8a":e,"\xF8vre-eiker":e,oyer:e,"xn--yer-zna":e,\u00F8yer:e,oygarden:e,"xn--ygarden-p1a":e,\u00F8ygarden:e,"oystre-slidre":e,"xn--ystre-slidre-ujb":e,"\xF8ystre-slidre":e,porsanger:e,porsangu:e,"xn--porsgu-sta26f":e,pors\u00E1\u014Bgu:e,porsgrunn:e,rade:e,"xn--rde-ula":e,r\u00E5de:e,radoy:e,"xn--rady-ira":e,rad\u00F8y:e,"xn--rlingen-mxa":e,r\u00E6lingen:e,rahkkeravju:e,"xn--rhkkervju-01af":e,r\u00E1hkker\u00E1vju:e,raisa:e,"xn--risa-5na":e,r\u00E1isa:e,rakkestad:e,ralingen:e,rana:e,randaberg:e,rauma:e,rendalen:e,rennebu:e,rennesoy:e,"xn--rennesy-v1a":e,rennes\u00F8y:e,rindal:e,ringebu:e,ringerike:e,ringsaker:e,risor:e,"xn--risr-ira":e,ris\u00F8r:e,rissa:e,roan:e,rodoy:e,"xn--rdy-0nab":e,r\u00F8d\u00F8y:e,rollag:e,romsa:e,romskog:e,"xn--rmskog-bya":e,r\u00F8mskog:e,roros:e,"xn--rros-gra":e,r\u00F8ros:e,rost:e,"xn--rst-0na":e,r\u00F8st:e,royken:e,"xn--ryken-vua":e,r\u00F8yken:e,royrvik:e,"xn--ryrvik-bya":e,r\u00F8yrvik:e,ruovat:e,rygge:e,salangen:e,salat:e,"xn--slat-5na":e,s\u00E1lat:e,"xn--slt-elab":e,s\u00E1l\u00E1t:e,saltdal:e,samnanger:e,sandefjord:e,sandnes:e,sandoy:e,"xn--sandy-yua":e,sand\u00F8y:e,sarpsborg:e,sauda:e,sauherad:e,sel:e,selbu:e,selje:e,seljord:e,siellak:e,sigdal:e,siljan:e,sirdal:e,skanit:e,"xn--sknit-yqa":e,sk\u00E1nit:e,skanland:e,"xn--sknland-fxa":e,sk\u00E5nland:e,skaun:e,skedsmo:e,ski:e,skien:e,skierva:e,"xn--skierv-uta":e,skierv\u00E1:e,skiptvet:e,skjak:e,"xn--skjk-soa":e,skj\u00E5k:e,skjervoy:e,"xn--skjervy-v1a":e,skjerv\u00F8y:e,skodje:e,smola:e,"xn--smla-hra":e,sm\u00F8la:e,snaase:e,"xn--snase-nra":e,sn\u00E5ase:e,snasa:e,"xn--snsa-roa":e,sn\u00E5sa:e,snillfjord:e,snoasa:e,sogndal:e,sogne:e,"xn--sgne-gra":e,s\u00F8gne:e,sokndal:e,sola:e,solund:e,somna:e,"xn--smna-gra":e,s\u00F8mna:e,"sondre-land":e,"xn--sndre-land-0cb":e,"s\xF8ndre-land":e,songdalen:e,"sor-aurdal":e,"xn--sr-aurdal-l8a":e,"s\xF8r-aurdal":e,"sor-fron":e,"xn--sr-fron-q1a":e,"s\xF8r-fron":e,"sor-odal":e,"xn--sr-odal-q1a":e,"s\xF8r-odal":e,"sor-varanger":e,"xn--sr-varanger-ggb":e,"s\xF8r-varanger":e,sorfold:e,"xn--srfold-bya":e,s\u00F8rfold:e,sorreisa:e,"xn--srreisa-q1a":e,s\u00F8rreisa:e,sortland:e,sorum:e,"xn--srum-gra":e,s\u00F8rum:e,spydeberg:e,stange:e,stavanger:e,steigen:e,steinkjer:e,stjordal:e,"xn--stjrdal-s1a":e,stj\u00F8rdal:e,stokke:e,"stor-elvdal":e,stord:e,stordal:e,storfjord:e,strand:e,stranda:e,stryn:e,sula:e,suldal:e,sund:e,sunndal:e,surnadal:e,sveio:e,svelvik:e,sykkylven:e,tana:e,telemark:[0,{bo:e,"xn--b-5ga":e,b\u00F8:e}],time:e,tingvoll:e,tinn:e,tjeldsund:e,tjome:e,"xn--tjme-hra":e,tj\u00F8me:e,tokke:e,tolga:e,tonsberg:e,"xn--tnsberg-q1a":e,t\u00F8nsberg:e,torsken:e,"xn--trna-woa":e,tr\u00E6na:e,trana:e,tranoy:e,"xn--trany-yua":e,tran\u00F8y:e,troandin:e,trogstad:e,"xn--trgstad-r1a":e,tr\u00F8gstad:e,tromsa:e,tromso:e,"xn--troms-zua":e,troms\u00F8:e,trondheim:e,trysil:e,tvedestrand:e,tydal:e,tynset:e,tysfjord:e,tysnes:e,"xn--tysvr-vra":e,tysv\u00E6r:e,tysvar:e,ullensaker:e,ullensvang:e,ulvik:e,unjarga:e,"xn--unjrga-rta":e,unj\u00E1rga:e,utsira:e,vaapste:e,vadso:e,"xn--vads-jra":e,vads\u00F8:e,"xn--vry-yla5g":e,v\u00E6r\u00F8y:e,vaga:e,"xn--vg-yiab":e,v\u00E5g\u00E5:e,vagan:e,"xn--vgan-qoa":e,v\u00E5gan:e,vagsoy:e,"xn--vgsy-qoa0j":e,v\u00E5gs\u00F8y:e,vaksdal:e,valle:e,vang:e,vanylven:e,vardo:e,"xn--vard-jra":e,vard\u00F8:e,varggat:e,"xn--vrggt-xqad":e,v\u00E1rgg\u00E1t:e,varoy:e,vefsn:e,vega:e,vegarshei:e,"xn--vegrshei-c0a":e,veg\u00E5rshei:e,vennesla:e,verdal:e,verran:e,vestby:e,vestfold:[0,{sande:e}],vestnes:e,"vestre-slidre":e,"vestre-toten":e,vestvagoy:e,"xn--vestvgy-ixa6o":e,vestv\u00E5g\u00F8y:e,vevelstad:e,vik:e,vikna:e,vindafjord:e,voagat:e,volda:e,voss:e,co:t,"123hjemmeside":t,myspreadshop:t}],np:M,nr:fo,nu:[1,{merseine:t,mine:t,shacknet:t,enterprisecloud:t}],nz:[1,{ac:e,co:e,cri:e,geek:e,gen:e,govt:e,health:e,iwi:e,kiwi:e,maori:e,"xn--mori-qsa":e,m\u0101ori:e,mil:e,net:e,org:e,parliament:e,school:e,cloudns:t}],om:[1,{co:e,com:e,edu:e,gov:e,med:e,museum:e,net:e,org:e,pro:e}],onion:e,org:[1,{altervista:t,pimienta:t,poivron:t,potager:t,sweetpepper:t,cdn77:[0,{c:t,rsc:t}],"cdn77-secure":[0,{origin:[0,{ssl:t}]}],ae:t,cloudns:t,"ip-dynamic":t,ddnss:t,dpdns:t,duckdns:t,tunk:t,blogdns:t,blogsite:t,boldlygoingnowhere:t,dnsalias:t,dnsdojo:t,doesntexist:t,dontexist:t,doomdns:t,dvrdns:t,dynalias:t,dyndns:[2,{go:t,home:t}],endofinternet:t,endoftheinternet:t,"from-me":t,"game-host":t,gotdns:t,"hobby-site":t,homedns:t,homeftp:t,homelinux:t,homeunix:t,"is-a-bruinsfan":t,"is-a-candidate":t,"is-a-celticsfan":t,"is-a-chef":t,"is-a-geek":t,"is-a-knight":t,"is-a-linux-user":t,"is-a-patsfan":t,"is-a-soxfan":t,"is-found":t,"is-lost":t,"is-saved":t,"is-very-bad":t,"is-very-evil":t,"is-very-good":t,"is-very-nice":t,"is-very-sweet":t,"isa-geek":t,"kicks-ass":t,misconfused:t,podzone:t,readmyblog:t,selfip:t,sellsyourhome:t,servebbs:t,serveftp:t,servegame:t,"stuff-4-sale":t,webhop:t,accesscam:t,camdvr:t,freeddns:t,mywire:t,roxa:t,webredirect:t,twmail:t,eu:[2,{al:t,asso:t,at:t,au:t,be:t,bg:t,ca:t,cd:t,ch:t,cn:t,cy:t,cz:t,de:t,dk:t,edu:t,ee:t,es:t,fi:t,fr:t,gr:t,hr:t,hu:t,ie:t,il:t,in:t,int:t,is:t,it:t,jp:t,kr:t,lt:t,lu:t,lv:t,me:t,mk:t,mt:t,my:t,net:t,ng:t,nl:t,no:t,nz:t,pl:t,pt:t,ro:t,ru:t,se:t,si:t,sk:t,tr:t,uk:t,us:t}],fedorainfracloud:t,fedorapeople:t,fedoraproject:[0,{cloud:t,os:An,stg:[0,{os:An}]}],freedesktop:t,hatenadiary:t,hepforge:t,"in-dsl":t,"in-vpn":t,js:t,barsy:t,mayfirst:t,routingthecloud:t,bmoattachments:t,"cable-modem":t,collegefan:t,couchpotatofries:t,hopto:t,mlbfan:t,myftp:t,mysecuritycamera:t,nflfan:t,"no-ip":t,"read-books":t,ufcfan:t,zapto:t,dynserv:t,"now-dns":t,"is-local":t,httpbin:t,pubtls:t,jpn:t,"my-firewall":t,myfirewall:t,spdns:t,"small-web":t,dsmynas:t,familyds:t,teckids:Mn,tuxfamily:t,hk:t,us:t,toolforge:t,wmcloud:[2,{beta:t}],wmflabs:t,za:t}],pa:[1,{abo:e,ac:e,com:e,edu:e,gob:e,ing:e,med:e,net:e,nom:e,org:e,sld:e}],pe:[1,{com:e,edu:e,gob:e,mil:e,net:e,nom:e,org:e}],pf:[1,{com:e,edu:e,org:e}],pg:M,ph:[1,{com:e,edu:e,gov:e,i:e,mil:e,net:e,ngo:e,org:e,cloudns:t}],pk:[1,{ac:e,biz:e,com:e,edu:e,fam:e,gkp:e,gob:e,gog:e,gok:e,gop:e,gos:e,gov:e,net:e,org:e,web:e}],pl:[1,{com:e,net:e,org:e,agro:e,aid:e,atm:e,auto:e,biz:e,edu:e,gmina:e,gsm:e,info:e,mail:e,media:e,miasta:e,mil:e,nieruchomosci:e,nom:e,pc:e,powiat:e,priv:e,realestate:e,rel:e,sex:e,shop:e,sklep:e,sos:e,szkola:e,targi:e,tm:e,tourism:e,travel:e,turystyka:e,gov:[1,{ap:e,griw:e,ic:e,is:e,kmpsp:e,konsulat:e,kppsp:e,kwp:e,kwpsp:e,mup:e,mw:e,oia:e,oirm:e,oke:e,oow:e,oschr:e,oum:e,pa:e,pinb:e,piw:e,po:e,pr:e,psp:e,psse:e,pup:e,rzgw:e,sa:e,sdn:e,sko:e,so:e,sr:e,starostwo:e,ug:e,ugim:e,um:e,umig:e,upow:e,uppo:e,us:e,uw:e,uzs:e,wif:e,wiih:e,winb:e,wios:e,witd:e,wiw:e,wkz:e,wsa:e,wskr:e,wsse:e,wuoz:e,wzmiuw:e,zp:e,zpisdn:e}],augustow:e,"babia-gora":e,bedzin:e,beskidy:e,bialowieza:e,bialystok:e,bielawa:e,bieszczady:e,boleslawiec:e,bydgoszcz:e,bytom:e,cieszyn:e,czeladz:e,czest:e,dlugoleka:e,elblag:e,elk:e,glogow:e,gniezno:e,gorlice:e,grajewo:e,ilawa:e,jaworzno:e,"jelenia-gora":e,jgora:e,kalisz:e,karpacz:e,kartuzy:e,kaszuby:e,katowice:e,"kazimierz-dolny":e,kepno:e,ketrzyn:e,klodzko:e,kobierzyce:e,kolobrzeg:e,konin:e,konskowola:e,kutno:e,lapy:e,lebork:e,legnica:e,lezajsk:e,limanowa:e,lomza:e,lowicz:e,lubin:e,lukow:e,malbork:e,malopolska:e,mazowsze:e,mazury:e,mielec:e,mielno:e,mragowo:e,naklo:e,nowaruda:e,nysa:e,olawa:e,olecko:e,olkusz:e,olsztyn:e,opoczno:e,opole:e,ostroda:e,ostroleka:e,ostrowiec:e,ostrowwlkp:e,pila:e,pisz:e,podhale:e,podlasie:e,polkowice:e,pomorskie:e,pomorze:e,prochowice:e,pruszkow:e,przeworsk:e,pulawy:e,radom:e,"rawa-maz":e,rybnik:e,rzeszow:e,sanok:e,sejny:e,skoczow:e,slask:e,slupsk:e,sosnowiec:e,"stalowa-wola":e,starachowice:e,stargard:e,suwalki:e,swidnica:e,swiebodzin:e,swinoujscie:e,szczecin:e,szczytno:e,tarnobrzeg:e,tgory:e,turek:e,tychy:e,ustka:e,walbrzych:e,warmia:e,warszawa:e,waw:e,wegrow:e,wielun:e,wlocl:e,wloclawek:e,wodzislaw:e,wolomin:e,wroclaw:e,zachpomor:e,zagan:e,zarow:e,zgora:e,zgorzelec:e,art:t,gliwice:t,krakow:t,poznan:t,wroc:t,zakopane:t,beep:t,"ecommerce-shop":t,cfolks:t,dfirma:t,dkonto:t,you2:t,shoparena:t,homesklep:t,sdscloud:t,unicloud:t,lodz:t,pabianice:t,plock:t,sieradz:t,skierniewice:t,zgierz:t,krasnik:t,leczna:t,lubartow:t,lublin:t,poniatowa:t,swidnik:t,co:t,torun:t,simplesite:t,myspreadshop:t,gda:t,gdansk:t,gdynia:t,med:t,sopot:t,bielsko:t}],pm:[1,{own:t,name:t}],pn:[1,{co:e,edu:e,gov:e,net:e,org:e}],post:e,pr:[1,{biz:e,com:e,edu:e,gov:e,info:e,isla:e,name:e,net:e,org:e,pro:e,ac:e,est:e,prof:e}],pro:[1,{aaa:e,aca:e,acct:e,avocat:e,bar:e,cpa:e,eng:e,jur:e,law:e,med:e,recht:e,cloudns:t,keenetic:t,barsy:t,ngrok:t}],ps:[1,{com:e,edu:e,gov:e,net:e,org:e,plo:e,sec:e}],pt:[1,{com:e,edu:e,gov:e,int:e,net:e,nome:e,org:e,publ:e,"123paginaweb":t}],pw:[1,{gov:e,cloudns:t,x443:t}],py:[1,{com:e,coop:e,edu:e,gov:e,mil:e,net:e,org:e}],qa:[1,{com:e,edu:e,gov:e,mil:e,name:e,net:e,org:e,sch:e}],re:[1,{asso:e,com:e,netlib:t,can:t}],ro:[1,{arts:e,com:e,firm:e,info:e,nom:e,nt:e,org:e,rec:e,store:e,tm:e,www:e,co:t,shop:t,barsy:t}],rs:[1,{ac:e,co:e,edu:e,gov:e,in:e,org:e,brendly:O,barsy:t,ox:t}],ru:[1,{ac:t,edu:t,gov:t,int:t,mil:t,eurodir:t,adygeya:t,bashkiria:t,bir:t,cbg:t,com:t,dagestan:t,grozny:t,kalmykia:t,kustanai:t,marine:t,mordovia:t,msk:t,mytis:t,nalchik:t,nov:t,pyatigorsk:t,spb:t,vladikavkaz:t,vladimir:t,na4u:t,mircloud:t,myjino:[2,{hosting:r,landing:r,spectrum:r,vps:r}],cldmail:[0,{hb:t}],mcdir:[2,{vps:t}],mcpre:t,net:t,org:t,pp:t,ras:t}],rw:[1,{ac:e,co:e,coop:e,gov:e,mil:e,net:e,org:e}],sa:[1,{com:e,edu:e,gov:e,med:e,net:e,org:e,pub:e,sch:e}],sb:n,sc:n,sd:[1,{com:e,edu:e,gov:e,info:e,med:e,net:e,org:e,tv:e}],se:[1,{a:e,ac:e,b:e,bd:e,brand:e,c:e,d:e,e,f:e,fh:e,fhsk:e,fhv:e,g:e,h:e,i:e,k:e,komforb:e,kommunalforbund:e,komvux:e,l:e,lanbib:e,m:e,n:e,naturbruksgymn:e,o:e,org:e,p:e,parti:e,pp:e,press:e,r:e,s:e,t:e,tm:e,u:e,w:e,x:e,y:e,z:e,com:t,iopsys:t,"123minsida":t,itcouldbewor:t,myspreadshop:t}],sg:[1,{com:e,edu:e,gov:e,net:e,org:e,enscaled:t}],sh:[1,{com:e,gov:e,mil:e,net:e,org:e,hashbang:t,botda:t,lovable:t,platform:[0,{ent:t,eu:t,us:t}],teleport:t,now:t}],si:[1,{f5:t,gitapp:t,gitpage:t}],sj:e,sk:[1,{org:e}],sl:n,sm:e,sn:[1,{art:e,com:e,edu:e,gouv:e,org:e,univ:e}],so:[1,{com:e,edu:e,gov:e,me:e,net:e,org:e,surveys:t}],sr:e,ss:[1,{biz:e,co:e,com:e,edu:e,gov:e,me:e,net:e,org:e,sch:e}],st:[1,{co:e,com:e,consulado:e,edu:e,embaixada:e,mil:e,net:e,org:e,principe:e,saotome:e,store:e,helioho:t,cn:r,kirara:t,noho:t}],su:[1,{abkhazia:t,adygeya:t,aktyubinsk:t,arkhangelsk:t,armenia:t,ashgabad:t,azerbaijan:t,balashov:t,bashkiria:t,bryansk:t,bukhara:t,chimkent:t,dagestan:t,"east-kazakhstan":t,exnet:t,georgia:t,grozny:t,ivanovo:t,jambyl:t,kalmykia:t,kaluga:t,karacol:t,karaganda:t,karelia:t,khakassia:t,krasnodar:t,kurgan:t,kustanai:t,lenug:t,mangyshlak:t,mordovia:t,msk:t,murmansk:t,nalchik:t,navoi:t,"north-kazakhstan":t,nov:t,obninsk:t,penza:t,pokrovsk:t,sochi:t,spb:t,tashkent:t,termez:t,togliatti:t,troitsk:t,tselinograd:t,tula:t,tuva:t,vladikavkaz:t,vladimir:t,vologda:t}],sv:[1,{com:e,edu:e,gob:e,org:e,red:e}],sx:c,sy:o,sz:[1,{ac:e,co:e,org:e}],tc:e,td:e,tel:e,tf:[1,{sch:t}],tg:e,th:[1,{ac:e,co:e,go:e,in:e,mi:e,net:e,or:e,online:t,shop:t}],tj:[1,{ac:e,biz:e,co:e,com:e,edu:e,go:e,gov:e,int:e,mil:e,name:e,net:e,nic:e,org:e,test:e,web:e}],tk:e,tl:c,tm:[1,{co:e,com:e,edu:e,gov:e,mil:e,net:e,nom:e,org:e}],tn:[1,{com:e,ens:e,fin:e,gov:e,ind:e,info:e,intl:e,mincom:e,nat:e,net:e,org:e,perso:e,tourism:e,orangecloud:t}],to:[1,{611:t,com:e,edu:e,gov:e,mil:e,net:e,org:e,oya:t,x0:t,quickconnect:ve,vpnplus:t,nett:t}],tr:[1,{av:e,bbs:e,bel:e,biz:e,com:e,dr:e,edu:e,gen:e,gov:e,info:e,k12:e,kep:e,mil:e,name:e,net:e,org:e,pol:e,tel:e,tsk:e,tv:e,web:e,nc:c}],tt:[1,{biz:e,co:e,com:e,edu:e,gov:e,info:e,mil:e,name:e,net:e,org:e,pro:e}],tv:[1,{"better-than":t,dyndns:t,"on-the-web":t,"worse-than":t,from:t,sakura:t}],tw:[1,{club:e,com:[1,{mymailer:t}],ebiz:e,edu:e,game:e,gov:e,idv:e,mil:e,net:e,org:e,url:t,mydns:t}],tz:[1,{ac:e,co:e,go:e,hotel:e,info:e,me:e,mil:e,mobi:e,ne:e,or:e,sc:e,tv:e}],ua:[1,{com:e,edu:e,gov:e,in:e,net:e,org:e,cherkassy:e,cherkasy:e,chernigov:e,chernihiv:e,chernivtsi:e,chernovtsy:e,ck:e,cn:e,cr:e,crimea:e,cv:e,dn:e,dnepropetrovsk:e,dnipropetrovsk:e,donetsk:e,dp:e,if:e,"ivano-frankivsk":e,kh:e,kharkiv:e,kharkov:e,kherson:e,khmelnitskiy:e,khmelnytskyi:e,kiev:e,kirovograd:e,km:e,kr:e,kropyvnytskyi:e,krym:e,ks:e,kv:e,kyiv:e,lg:e,lt:e,lugansk:e,luhansk:e,lutsk:e,lv:e,lviv:e,mk:e,mykolaiv:e,nikolaev:e,od:e,odesa:e,odessa:e,pl:e,poltava:e,rivne:e,rovno:e,rv:e,sb:e,sebastopol:e,sevastopol:e,sm:e,sumy:e,te:e,ternopil:e,uz:e,uzhgorod:e,uzhhorod:e,vinnica:e,vinnytsia:e,vn:e,volyn:e,yalta:e,zakarpattia:e,zaporizhzhe:e,zaporizhzhia:e,zhitomir:e,zhytomyr:e,zp:e,zt:e,cc:t,inf:t,ltd:t,cx:t,biz:t,co:t,pp:t,v:t}],ug:[1,{ac:e,co:e,com:e,edu:e,go:e,gov:e,mil:e,ne:e,or:e,org:e,sc:e,us:e}],uk:[1,{ac:e,co:[1,{bytemark:[0,{dh:t,vm:t}],layershift:Qt,barsy:t,barsyonline:t,retrosnub:Cn,"nh-serv":t,"no-ip":t,adimo:t,myspreadshop:t}],gov:[1,{api:t,campaign:t,service:t}],ltd:e,me:e,net:e,nhs:e,org:[1,{glug:t,lug:t,lugs:t,affinitylottery:t,raffleentry:t,weeklylottery:t}],plc:e,police:e,sch:M,conn:t,copro:t,hosp:t,"independent-commission":t,"independent-inquest":t,"independent-inquiry":t,"independent-panel":t,"independent-review":t,"public-inquiry":t,"royal-commission":t,pymnt:t,barsy:t,nimsite:t,oraclegovcloudapps:r}],us:[1,{dni:e,isa:e,nsn:e,ak:ge,al:ge,ar:ge,as:ge,az:ge,ca:ge,co:ge,ct:ge,dc:ge,de:kt,fl:ge,ga:ge,gu:ge,hi:fn,ia:ge,id:ge,il:ge,in:ge,ks:ge,ky:ge,la:ge,ma:[1,{k12:[1,{chtr:e,paroch:e,pvt:e}],cc:e,lib:e}],md:ge,me:ge,mi:[1,{k12:e,cc:e,lib:e,"ann-arbor":e,cog:e,dst:e,eaton:e,gen:e,mus:e,tec:e,washtenaw:e}],mn:ge,mo:ge,ms:[1,{k12:e,cc:e}],mt:ge,nc:ge,nd:fn,ne:ge,nh:ge,nj:ge,nm:ge,nv:ge,ny:ge,oh:ge,ok:ge,or:ge,pa:ge,pr:ge,ri:fn,sc:ge,sd:fn,tn:ge,tx:ge,ut:ge,va:ge,vi:ge,vt:ge,wa:ge,wi:ge,wv:kt,wy:ge,cloudns:t,"is-by":t,"land-4-sale":t,"stuff-4-sale":t,heliohost:t,enscaled:[0,{phx:t}],mircloud:t,"azure-api":t,azurewebsites:t,ngo:t,golffan:t,noip:t,pointto:t,freeddns:t,srv:[2,{gh:t,gl:t}],servername:t}],uy:[1,{com:e,edu:e,gub:e,mil:e,net:e,org:e,gv:t}],uz:[1,{co:e,com:e,net:e,org:e}],va:e,vc:[1,{com:e,edu:e,gov:e,mil:e,net:e,org:e,gv:[2,{d:t}],"0e":r,mydns:t}],ve:[1,{arts:e,bib:e,co:e,com:e,e12:e,edu:e,emprende:e,firm:e,gob:e,gov:e,ia:e,info:e,int:e,mil:e,net:e,nom:e,org:e,rar:e,rec:e,store:e,tec:e,web:e}],vg:[1,{edu:e}],vi:[1,{co:e,com:e,k12:e,net:e,org:e}],vn:[1,{ac:e,ai:e,biz:e,com:e,edu:e,gov:e,health:e,id:e,info:e,int:e,io:e,name:e,net:e,org:e,pro:e,angiang:e,bacgiang:e,backan:e,baclieu:e,bacninh:e,"baria-vungtau":e,bentre:e,binhdinh:e,binhduong:e,binhphuoc:e,binhthuan:e,camau:e,cantho:e,caobang:e,daklak:e,daknong:e,danang:e,dienbien:e,dongnai:e,dongthap:e,gialai:e,hagiang:e,haiduong:e,haiphong:e,hanam:e,hanoi:e,hatinh:e,haugiang:e,hoabinh:e,hue:e,hungyen:e,khanhhoa:e,kiengiang:e,kontum:e,laichau:e,lamdong:e,langson:e,laocai:e,longan:e,namdinh:e,nghean:e,ninhbinh:e,ninhthuan:e,phutho:e,phuyen:e,quangbinh:e,quangnam:e,quangngai:e,quangninh:e,quangtri:e,soctrang:e,sonla:e,tayninh:e,thaibinh:e,thainguyen:e,thanhhoa:e,thanhphohochiminh:e,thuathienhue:e,tiengiang:e,travinh:e,tuyenquang:e,vinhlong:e,vinhphuc:e,yenbai:e}],vu:Yt,wf:[1,{biz:t,sch:t}],ws:[1,{com:e,edu:e,gov:e,net:e,org:e,advisor:r,cloud66:t,dyndns:t,mypets:t}],yt:[1,{org:t}],"xn--mgbaam7a8h":e,\u0627\u0645\u0627\u0631\u0627\u062A:e,"xn--y9a3aq":e,\u0570\u0561\u0575:e,"xn--54b7fta0cc":e,\u09AC\u09BE\u0982\u09B2\u09BE:e,"xn--90ae":e,\u0431\u0433:e,"xn--mgbcpq6gpa1a":e,\u0627\u0644\u0628\u062D\u0631\u064A\u0646:e,"xn--90ais":e,\u0431\u0435\u043B:e,"xn--fiqs8s":e,\u4E2D\u56FD:e,"xn--fiqz9s":e,\u4E2D\u570B:e,"xn--lgbbat1ad8j":e,\u0627\u0644\u062C\u0632\u0627\u0626\u0631:e,"xn--wgbh1c":e,\u0645\u0635\u0631:e,"xn--e1a4c":e,\u0435\u044E:e,"xn--qxa6a":e,\u03B5\u03C5:e,"xn--mgbah1a3hjkrd":e,\u0645\u0648\u0631\u064A\u062A\u0627\u0646\u064A\u0627:e,"xn--node":e,\u10D2\u10D4:e,"xn--qxam":e,\u03B5\u03BB:e,"xn--j6w193g":[1,{"xn--gmqw5a":e,"xn--55qx5d":e,"xn--mxtq1m":e,"xn--wcvs22d":e,"xn--uc0atv":e,"xn--od0alg":e}],\u9999\u6E2F:[1,{\u500B\u4EBA:e,\u516C\u53F8:e,\u653F\u5E9C:e,\u6559\u80B2:e,\u7D44\u7E54:e,\u7DB2\u7D61:e}],"xn--2scrj9c":e,\u0CAD\u0CBE\u0CB0\u0CA4:e,"xn--3hcrj9c":e,\u0B2D\u0B3E\u0B30\u0B24:e,"xn--45br5cyl":e,\u09AD\u09BE\u09F0\u09A4:e,"xn--h2breg3eve":e,\u092D\u093E\u0930\u0924\u092E\u094D:e,"xn--h2brj9c8c":e,\u092D\u093E\u0930\u094B\u0924:e,"xn--mgbgu82a":e,\u0680\u0627\u0631\u062A:e,"xn--rvc1e0am3e":e,\u0D2D\u0D3E\u0D30\u0D24\u0D02:e,"xn--h2brj9c":e,\u092D\u093E\u0930\u0924:e,"xn--mgbbh1a":e,\u0628\u0627\u0631\u062A:e,"xn--mgbbh1a71e":e,\u0628\u06BE\u0627\u0631\u062A:e,"xn--fpcrj9c3d":e,\u0C2D\u0C3E\u0C30\u0C24\u0C4D:e,"xn--gecrj9c":e,\u0AAD\u0ABE\u0AB0\u0AA4:e,"xn--s9brj9c":e,\u0A2D\u0A3E\u0A30\u0A24:e,"xn--45brj9c":e,\u09AD\u09BE\u09B0\u09A4:e,"xn--xkc2dl3a5ee0h":e,\u0B87\u0BA8\u0BCD\u0BA4\u0BBF\u0BAF\u0BBE:e,"xn--mgba3a4f16a":e,\u0627\u06CC\u0631\u0627\u0646:e,"xn--mgba3a4fra":e,\u0627\u064A\u0631\u0627\u0646:e,"xn--mgbtx2b":e,\u0639\u0631\u0627\u0642:e,"xn--mgbayh7gpa":e,\u0627\u0644\u0627\u0631\u062F\u0646:e,"xn--3e0b707e":e,\uD55C\uAD6D:e,"xn--80ao21a":e,\u049B\u0430\u0437:e,"xn--q7ce6a":e,\u0EA5\u0EB2\u0EA7:e,"xn--fzc2c9e2c":e,\u0DBD\u0D82\u0D9A\u0DCF:e,"xn--xkc2al3hye2a":e,\u0B87\u0BB2\u0B99\u0BCD\u0B95\u0BC8:e,"xn--mgbc0a9azcg":e,\u0627\u0644\u0645\u063A\u0631\u0628:e,"xn--d1alf":e,\u043C\u043A\u0434:e,"xn--l1acc":e,\u043C\u043E\u043D:e,"xn--mix891f":e,\u6FB3\u9580:e,"xn--mix082f":e,\u6FB3\u95E8:e,"xn--mgbx4cd0ab":e,\u0645\u0644\u064A\u0633\u064A\u0627:e,"xn--mgb9awbf":e,\u0639\u0645\u0627\u0646:e,"xn--mgbai9azgqp6j":e,\u067E\u0627\u06A9\u0633\u062A\u0627\u0646:e,"xn--mgbai9a5eva00b":e,\u067E\u0627\u0643\u0633\u062A\u0627\u0646:e,"xn--ygbi2ammx":e,\u0641\u0644\u0633\u0637\u064A\u0646:e,"xn--90a3ac":[1,{"xn--80au":e,"xn--90azh":e,"xn--d1at":e,"xn--c1avg":e,"xn--o1ac":e,"xn--o1ach":e}],\u0441\u0440\u0431:[1,{\u0430\u043A:e,\u043E\u0431\u0440:e,\u043E\u0434:e,\u043E\u0440\u0433:e,\u043F\u0440:e,\u0443\u043F\u0440:e}],"xn--p1ai":e,\u0440\u0444:e,"xn--wgbl6a":e,\u0642\u0637\u0631:e,"xn--mgberp4a5d4ar":e,\u0627\u0644\u0633\u0639\u0648\u062F\u064A\u0629:e,"xn--mgberp4a5d4a87g":e,\u0627\u0644\u0633\u0639\u0648\u062F\u06CC\u0629:e,"xn--mgbqly7c0a67fbc":e,\u0627\u0644\u0633\u0639\u0648\u062F\u06CC\u06C3:e,"xn--mgbqly7cvafr":e,\u0627\u0644\u0633\u0639\u0648\u062F\u064A\u0647:e,"xn--mgbpl2fh":e,\u0633\u0648\u062F\u0627\u0646:e,"xn--yfro4i67o":e,\u65B0\u52A0\u5761:e,"xn--clchc0ea0b2g2a9gcd":e,\u0B9A\u0BBF\u0B99\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0BC2\u0BB0\u0BCD:e,"xn--ogbpf8fl":e,\u0633\u0648\u0631\u064A\u0629:e,"xn--mgbtf8fl":e,\u0633\u0648\u0631\u064A\u0627:e,"xn--o3cw4h":[1,{"xn--o3cyx2a":e,"xn--12co0c3b4eva":e,"xn--m3ch0j3a":e,"xn--h3cuzk1di":e,"xn--12c1fe0br":e,"xn--12cfi8ixb8l":e}],\u0E44\u0E17\u0E22:[1,{\u0E17\u0E2B\u0E32\u0E23:e,\u0E18\u0E38\u0E23\u0E01\u0E34\u0E08:e,\u0E40\u0E19\u0E47\u0E15:e,\u0E23\u0E31\u0E10\u0E1A\u0E32\u0E25:e,\u0E28\u0E36\u0E01\u0E29\u0E32:e,\u0E2D\u0E07\u0E04\u0E4C\u0E01\u0E23:e}],"xn--pgbs0dh":e,\u062A\u0648\u0646\u0633:e,"xn--kpry57d":e,\u53F0\u7063:e,"xn--kprw13d":e,\u53F0\u6E7E:e,"xn--nnx388a":e,\u81FA\u7063:e,"xn--j1amh":e,\u0443\u043A\u0440:e,"xn--mgb2ddes":e,\u0627\u0644\u064A\u0645\u0646:e,xxx:e,ye:o,za:[0,{ac:e,agric:e,alt:e,co:e,edu:e,gov:e,grondar:e,law:e,mil:e,net:e,ngo:e,nic:e,nis:e,nom:e,org:e,school:e,tm:e,web:e}],zm:[1,{ac:e,biz:e,co:e,com:e,edu:e,gov:e,info:e,mil:e,net:e,org:e,sch:e}],zw:[1,{ac:e,co:e,gov:e,mil:e,org:e}],aaa:e,aarp:e,abb:e,abbott:e,abbvie:e,abc:e,able:e,abogado:e,abudhabi:e,academy:[1,{official:t}],accenture:e,accountant:e,accountants:e,aco:e,actor:e,ads:e,adult:e,aeg:e,aetna:e,afl:e,africa:e,agakhan:e,agency:e,aig:e,airbus:e,airforce:e,airtel:e,akdn:e,alibaba:e,alipay:e,allfinanz:e,allstate:e,ally:e,alsace:e,alstom:e,amazon:e,americanexpress:e,americanfamily:e,amex:e,amfam:e,amica:e,amsterdam:e,analytics:e,android:e,anquan:e,anz:e,aol:e,apartments:e,app:[1,{adaptable:t,aiven:t,beget:r,brave:a,clerk:t,clerkstage:t,cloudflare:t,wnext:t,csb:[2,{preview:t}],convex:t,corespeed:t,deta:t,ondigitalocean:t,easypanel:t,encr:[2,{frontend:t}],evervault:i,expo:[2,{on:t,staging:[2,{on:t}]}],edgecompute:t,"on-fleek":t,flutterflow:t,sprites:t,e2b:t,framer:t,gadget:t,github:t,hosted:r,run:[0,{"*":t,mtls:r}],web:t,hackclub:t,hasura:t,onhercules:t,botdash:t,shiptoday:t,leapcell:t,loginline:t,lovable:t,luyani:t,magicpatterns:t,medusajs:t,messerli:t,miren:t,mocha:t,netlify:t,ngrok:t,"ngrok-free":t,developer:r,noop:t,northflank:r,upsun:r,railway:[0,{up:t}],replit:s,nyat:t,snowflake:[0,{"*":t,privatelink:r}],streamlit:t,spawnbase:t,telebit:t,typedream:t,vercel:t,wal:t,wasmer:t,bookonline:t,windsurf:t,base44:t,zeabur:t,zerops:r}],apple:[1,{int:[2,{cloud:[0,{"*":t,r:[0,{"*":t,"ap-north-1":r,"ap-south-1":r,"ap-south-2":r,"eu-central-1":r,"eu-north-1":r,"us-central-1":r,"us-central-2":r,"us-east-1":r,"us-east-2":r,"us-west-1":r,"us-west-2":r,"us-west-3":r}]}]}]}],aquarelle:e,arab:e,aramco:e,archi:e,army:e,art:e,arte:e,asda:e,associates:e,athleta:e,attorney:e,auction:e,audi:e,audible:e,audio:e,auspost:e,author:e,auto:e,autos:e,aws:[1,{on:[0,{"af-south-1":d,"ap-east-1":d,"ap-northeast-1":d,"ap-northeast-2":d,"ap-northeast-3":d,"ap-south-1":d,"ap-south-2":f,"ap-southeast-1":d,"ap-southeast-2":d,"ap-southeast-3":d,"ap-southeast-4":f,"ap-southeast-5":f,"ca-central-1":d,"ca-west-1":f,"eu-central-1":d,"eu-central-2":f,"eu-north-1":d,"eu-south-1":d,"eu-south-2":f,"eu-west-1":d,"eu-west-2":d,"eu-west-3":d,"il-central-1":f,"me-central-1":f,"me-south-1":d,"sa-east-1":d,"us-east-1":d,"us-east-2":d,"us-west-1":d,"us-west-2":d,"ap-southeast-7":u,"mx-central-1":u,"us-gov-east-1":b,"us-gov-west-1":b}],sagemaker:[0,{"ap-northeast-1":g,"ap-northeast-2":g,"ap-south-1":g,"ap-southeast-1":g,"ap-southeast-2":g,"ca-central-1":E,"eu-central-1":g,"eu-west-1":g,"eu-west-2":g,"us-east-1":E,"us-east-2":E,"us-west-2":E,"af-south-1":p,"ap-east-1":p,"ap-northeast-3":p,"ap-south-2":y,"ap-southeast-3":p,"ap-southeast-4":y,"ca-west-1":[0,{notebook:t,"notebook-fips":t}],"eu-central-2":p,"eu-north-1":p,"eu-south-1":p,"eu-south-2":p,"eu-west-3":p,"il-central-1":p,"me-central-1":p,"me-south-1":p,"sa-east-1":p,"us-gov-east-1":R,"us-gov-west-1":R,"us-west-1":[0,{notebook:t,"notebook-fips":t,studio:t}],experiments:r}],repost:[0,{private:r}]}],axa:e,azure:e,baby:e,baidu:e,banamex:e,band:e,bank:e,bar:e,barcelona:e,barclaycard:e,barclays:e,barefoot:e,bargains:e,baseball:e,basketball:[1,{aus:t,nz:t}],bauhaus:e,bayern:e,bbc:e,bbt:e,bbva:e,bcg:e,bcn:e,beats:e,beauty:e,beer:e,berlin:e,best:e,bestbuy:e,bet:e,bharti:e,bible:e,bid:e,bike:e,bing:e,bingo:e,bio:e,black:e,blackfriday:e,blockbuster:e,blog:e,bloomberg:e,blue:e,bms:e,bmw:e,bnpparibas:e,boats:e,boehringer:e,bofa:e,bom:e,bond:e,boo:e,book:e,booking:e,bosch:e,bostik:e,boston:e,bot:e,boutique:e,box:e,bradesco:e,bridgestone:e,broadway:e,broker:e,brother:e,brussels:e,build:[1,{shiptoday:t,v0:t,windsurf:t}],builders:[1,{cloudsite:t}],business:H,buy:e,buzz:e,bzh:e,cab:e,cafe:e,cal:e,call:e,calvinklein:e,cam:e,camera:e,camp:[1,{emf:[0,{at:t}]}],canon:e,capetown:e,capital:e,capitalone:e,car:e,caravan:e,cards:e,care:e,career:e,careers:e,cars:e,casa:[1,{nabu:[0,{ui:t}]}],case:[1,{sav:t}],cash:e,casino:e,catering:e,catholic:e,cba:e,cbn:e,cbre:e,center:e,ceo:e,cern:e,cfa:e,cfd:e,chanel:e,channel:e,charity:e,chase:e,chat:e,cheap:e,chintai:e,christmas:e,chrome:e,church:e,cipriani:e,circle:e,cisco:e,citadel:e,citi:e,citic:e,city:e,claims:e,cleaning:e,click:e,clinic:e,clinique:e,clothing:e,cloud:[1,{antagonist:t,begetcdn:r,convex:Y,elementor:t,emergent:t,encoway:[0,{eu:t}],statics:r,ravendb:t,axarnet:[0,{"es-1":t}],diadem:t,jelastic:[0,{vip:t}],jele:t,"jenv-aruba":[0,{aruba:[0,{eur:[0,{it1:t}]}],it1:t}],keliweb:[2,{cs:t}],oxa:[2,{tn:t,uk:t}],primetel:[2,{uk:t}],reclaim:[0,{ca:t,uk:t,us:t}],trendhosting:[0,{ch:t,de:t}],jote:t,jotelulu:t,kuleuven:t,laravel:t,linkyard:t,magentosite:r,matlab:t,observablehq:t,perspecta:t,vapor:t,"on-rancher":r,scw:[0,{baremetal:[0,{"fr-par-1":t,"fr-par-2":t,"nl-ams-1":t}],"fr-par":[0,{cockpit:t,ddl:t,dtwh:t,fnc:[2,{functions:t}],ifr:t,k8s:ae,kafk:t,mgdb:t,rdb:t,s3:t,"s3-website":t,scbl:t,whm:t}],instances:[0,{priv:t,pub:t}],k8s:t,"nl-ams":[0,{cockpit:t,ddl:t,dtwh:t,ifr:t,k8s:ae,kafk:t,mgdb:t,rdb:t,s3:t,"s3-website":t,scbl:t,whm:t}],"pl-waw":[0,{cockpit:t,ddl:t,dtwh:t,ifr:t,k8s:ae,kafk:t,mgdb:t,rdb:t,s3:t,"s3-website":t,scbl:t}],scalebook:t,smartlabeling:t}],servebolt:t,onstackit:[0,{runs:t}],trafficplex:t,"unison-services":t,urown:t,voorloper:t,zap:t}],club:[1,{cloudns:t,jele:t,barsy:t}],clubmed:e,coach:e,codes:[1,{owo:r}],coffee:e,college:e,cologne:e,commbank:e,community:[1,{nog:t,ravendb:t,myforum:t}],company:[1,{mybox:t}],compare:e,computer:e,comsec:e,condos:e,construction:e,consulting:e,contact:e,contractors:e,cooking:e,cool:[1,{elementor:t,de:t}],corsica:e,country:e,coupon:e,coupons:e,courses:e,cpa:e,credit:e,creditcard:e,creditunion:e,cricket:e,crown:e,crs:e,cruise:e,cruises:e,cuisinella:e,cymru:e,cyou:e,dad:e,dance:e,data:e,date:e,dating:e,datsun:e,day:e,dclk:e,dds:e,deal:e,dealer:e,deals:e,degree:e,delivery:e,dell:e,deloitte:e,delta:e,democrat:e,dental:e,dentist:e,desi:e,design:[1,{graphic:t,bss:t}],dev:[1,{myaddr:t,panel:t,bearblog:t,brave:a,lcl:r,lclstage:r,stg:r,stgstage:r,pages:t,r2:t,workers:t,deno:t,"deno-staging":t,deta:t,lp:[2,{api:t,objects:t}],evervault:i,fly:t,githubpreview:t,gateway:r,grebedoc:t,botdash:t,inbrowser:r,"is-a-good":t,iserv:t,leapcell:t,runcontainers:t,localcert:[0,{user:r}],loginline:t,barsy:t,mediatech:t,"mocha-sandbox":t,modx:t,ngrok:t,"ngrok-free":t,"is-a-fullstack":t,"is-cool":t,"is-not-a":t,localplayer:t,xmit:t,"platter-app":t,replit:[2,{archer:t,bones:t,canary:t,global:t,hacker:t,id:t,janeway:t,kim:t,kira:t,kirk:t,odo:t,paris:t,picard:t,pike:t,prerelease:t,reed:t,riker:t,sisko:t,spock:t,staging:t,sulu:t,tarpit:t,teams:t,tucker:t,wesley:t,worf:t}],crm:[0,{aa:r,ab:r,ac:r,ad:r,ae:r,af:r,ci:r,d:r,pa:r,pb:r,pc:r,pd:r,pe:r,pf:r,w:r,wa:r,wb:r,wc:r,wd:r,we:r,wf:r}],erp:Ue,vercel:t,webhare:r,hrsn:t,"is-a":t}],dhl:e,diamonds:e,diet:e,digital:[1,{cloudapps:[2,{london:t}]}],direct:[1,{libp2p:t}],directory:e,discount:e,discover:e,dish:e,diy:[1,{discourse:t,imagine:t}],dnp:e,docs:e,doctor:e,dog:e,domains:e,dot:e,download:e,drive:e,dtv:e,dubai:e,dupont:e,durban:e,dvag:e,dvr:e,earth:e,eat:e,eco:e,edeka:e,education:H,email:[1,{crisp:[0,{on:t}],intouch:t,tawk:no,tawkto:no}],emerck:e,energy:e,engineer:e,engineering:e,enterprises:e,epson:e,equipment:e,ericsson:e,erni:e,esq:e,estate:[1,{compute:r}],eurovision:e,eus:[1,{party:vn}],events:[1,{koobin:t,co:t}],exchange:e,expert:e,exposed:e,express:e,extraspace:e,fage:e,fail:e,fairwinds:e,faith:e,family:e,fan:e,fans:e,farm:[1,{storj:t}],farmers:e,fashion:e,fast:e,fedex:e,feedback:e,ferrari:e,ferrero:e,fidelity:e,fido:e,film:e,final:e,finance:e,financial:H,fire:e,firestone:e,firmdale:e,fish:e,fishing:e,fit:e,fitness:e,flickr:e,flights:e,flir:e,florist:e,flowers:e,fly:e,foo:e,food:e,football:e,ford:e,forex:e,forsale:e,forum:e,foundation:e,fox:e,free:e,fresenius:e,frl:e,frogans:e,frontier:e,ftr:e,fujitsu:e,fun:Zt,fund:e,furniture:e,futbol:e,fyi:e,gal:e,gallery:e,gallo:e,gallup:e,game:e,games:[1,{pley:t,sheezy:t}],gap:e,garden:e,gay:[1,{pages:t}],gbiz:e,gdn:[1,{cnpy:t}],gea:e,gent:e,genting:e,george:e,ggee:e,gift:e,gifts:e,gives:e,giving:e,glass:e,gle:e,global:[1,{appwrite:t}],globo:e,gmail:e,gmbh:e,gmo:e,gmx:e,godaddy:e,gold:e,goldpoint:e,golf:e,goodyear:e,goog:[1,{cloud:t,translate:t,usercontent:r}],google:e,gop:e,got:e,grainger:e,graphics:e,gratis:e,green:e,gripe:e,grocery:e,group:[1,{discourse:t}],gucci:e,guge:e,guide:e,guitars:e,guru:e,hair:e,hamburg:e,hangout:e,haus:e,hbo:e,hdfc:e,hdfcbank:e,health:[1,{hra:t}],healthcare:e,help:e,helsinki:e,here:e,hermes:e,hiphop:e,hisamitsu:e,hitachi:e,hiv:e,hkt:e,hockey:e,holdings:e,holiday:e,homedepot:e,homegoods:e,homes:e,homesense:e,honda:e,horse:e,hospital:e,host:[1,{cloudaccess:t,freesite:t,easypanel:t,emergent:t,fastvps:t,myfast:t,gadget:t,tempurl:t,wpmudev:t,iserv:t,jele:t,mircloud:t,bolt:t,wp2:t,half:t}],hosting:[1,{opencraft:t}],hot:e,hotel:e,hotels:e,hotmail:e,house:e,how:e,hsbc:e,hughes:e,hyatt:e,hyundai:e,ibm:e,icbc:e,ice:e,icu:e,ieee:e,ifm:e,ikano:e,imamat:e,imdb:e,immo:e,immobilien:e,inc:e,industries:e,infiniti:e,ing:e,ink:e,institute:e,insurance:e,insure:e,international:e,intuit:e,investments:e,ipiranga:e,irish:e,ismaili:e,ist:e,istanbul:e,itau:e,itv:e,jaguar:e,java:e,jcb:e,jeep:e,jetzt:e,jewelry:e,jio:e,jll:e,jmp:e,jnj:e,joburg:e,jot:e,joy:e,jpmorgan:e,jprs:e,juegos:e,juniper:e,kaufen:e,kddi:e,kerryhotels:e,kerryproperties:e,kfh:e,kia:e,kids:e,kim:e,kindle:e,kitchen:e,kiwi:e,koeln:e,komatsu:e,kosher:e,kpmg:e,kpn:e,krd:[1,{co:t,edu:t}],kred:e,kuokgroup:e,kyoto:e,lacaixa:e,lamborghini:e,lamer:e,land:e,landrover:e,lanxess:e,lasalle:e,lat:e,latino:e,latrobe:e,law:e,lawyer:e,lds:e,lease:e,leclerc:e,lefrak:e,legal:e,lego:e,lexus:e,lgbt:e,lidl:e,life:e,lifeinsurance:e,lifestyle:e,lighting:e,like:e,lilly:e,limited:e,limo:e,lincoln:e,link:[1,{myfritz:t,cyon:t,joinmc:t,dweb:r,inbrowser:r,keenetic:t,nftstorage:jn,mypep:t,storacha:jn,w3s:jn}],live:[1,{aem:t,hlx:t,ewp:r}],living:e,llc:e,llp:e,loan:e,loans:e,locker:e,locus:e,lol:[1,{omg:t}],london:e,lotte:e,lotto:e,love:e,lpl:e,lplfinancial:e,ltd:e,ltda:e,lundbeck:e,luxe:e,luxury:e,madrid:e,maif:e,maison:e,makeup:e,man:e,management:e,mango:e,map:e,market:e,marketing:e,markets:e,marriott:e,marshalls:e,mattel:e,mba:e,mckinsey:e,med:e,media:tn,meet:e,melbourne:e,meme:e,memorial:e,men:e,menu:[1,{barsy:t,barsyonline:t}],merck:e,merckmsd:e,miami:e,microsoft:e,mini:e,mint:e,mit:e,mitsubishi:e,mlb:e,mls:e,mma:e,mobile:e,moda:e,moe:e,moi:e,mom:e,monash:e,money:e,monster:e,mormon:e,mortgage:e,moscow:e,moto:e,motorcycles:e,mov:e,movie:e,msd:e,mtn:e,mtr:e,music:e,nab:e,nagoya:e,navy:e,nba:e,nec:e,netbank:e,netflix:e,network:[1,{aem:t,alces:r,appwrite:t,co:t,arvo:t,azimuth:t,tlon:t}],neustar:e,new:e,news:[1,{noticeable:t}],next:e,nextdirect:e,nexus:e,nfl:e,ngo:e,nhk:e,nico:e,nike:e,nikon:e,ninja:e,nissan:e,nissay:e,nokia:e,norton:e,now:e,nowruz:e,nowtv:e,nra:e,nrw:e,ntt:e,nyc:e,obi:e,observer:e,office:e,okinawa:e,olayan:e,olayangroup:e,ollo:e,omega:e,one:[1,{kin:r,service:t,website:t}],ong:e,onl:e,online:[1,{eero:t,"eero-stage":t,websitebuilder:t,leapcell:t,barsy:t}],ooo:e,open:e,oracle:e,orange:[1,{tech:t}],organic:e,origins:e,osaka:e,otsuka:e,ott:e,ovh:[1,{nerdpol:t}],page:[1,{aem:t,hlx:t,codeberg:t,deuxfleurs:t,mybox:t,heyflow:t,prvcy:t,rocky:t,statichost:t,pdns:t,plesk:t}],panasonic:e,paris:e,pars:e,partners:e,parts:e,party:e,pay:e,pccw:e,pet:e,pfizer:e,pharmacy:e,phd:e,philips:e,phone:e,photo:e,photography:e,photos:tn,physio:e,pics:e,pictet:e,pictures:[1,{1337:t}],pid:e,pin:e,ping:e,pink:e,pioneer:e,pizza:[1,{ngrok:t}],place:H,play:e,playstation:e,plumbing:e,plus:[1,{playit:[2,{at:r,with:t}]}],pnc:e,pohl:e,poker:e,politie:e,porn:e,praxi:e,press:e,prime:e,prod:e,productions:e,prof:e,progressive:e,promo:e,properties:e,property:e,protection:e,pru:e,prudential:e,pub:[1,{id:r,kin:r,barsy:t}],pwc:e,qpon:e,quebec:e,quest:e,racing:e,radio:e,read:e,realestate:e,realtor:e,realty:e,recipes:e,red:e,redumbrella:e,rehab:e,reise:e,reisen:e,reit:e,reliance:e,ren:e,rent:e,rentals:e,repair:e,report:e,republican:e,rest:e,restaurant:e,review:e,reviews:[1,{aem:t}],rexroth:e,rich:e,richardli:e,ricoh:e,ril:e,rio:e,rip:[1,{clan:t}],rocks:[1,{myddns:t,stackit:t,"lima-city":t,webspace:t}],rodeo:e,rogers:e,room:e,rsvp:e,rugby:e,ruhr:e,run:[1,{appwrite:r,canva:t,development:t,ravendb:t,liara:[2,{iran:t}],lovable:t,needle:t,build:r,code:r,database:r,migration:r,onporter:t,repl:t,stackit:t,val:Ue,vercel:t,wix:t}],rwe:e,ryukyu:e,saarland:e,safe:e,safety:e,sakura:e,sale:e,salon:e,samsclub:e,samsung:e,sandvik:e,sandvikcoromant:e,sanofi:e,sap:e,sarl:e,sas:e,save:e,saxo:e,sbi:e,sbs:e,scb:e,schaeffler:e,schmidt:e,scholarships:e,school:e,schule:e,schwarz:e,science:e,scot:[1,{co:t,me:t,org:t,gov:[2,{service:t}]}],search:e,seat:e,secure:e,security:e,seek:e,select:e,sener:e,services:[1,{loginline:t}],seven:e,sew:e,sex:e,sexy:e,sfr:e,shangrila:e,sharp:e,shell:e,shia:e,shiksha:e,shoes:e,shop:[1,{base:t,hoplix:t,barsy:t,barsyonline:t,shopware:t}],shopping:e,shouji:e,show:Zt,silk:e,sina:e,singles:e,site:[1,{square:t,canva:re,cloudera:r,convex:Y,cyon:t,caffeine:t,fastvps:t,figma:t,"figma-gov":t,preview:t,heyflow:t,jele:t,jouwweb:t,loginline:t,barsy:t,co:t,notion:t,omniwe:t,opensocial:t,madethis:t,support:t,platformsh:r,tst:r,byen:t,sol:t,srht:t,novecore:t,cpanel:t,wpsquared:t,sourcecraft:t}],ski:e,skin:e,sky:e,skype:e,sling:e,smart:e,smile:e,sncf:e,soccer:e,social:e,softbank:e,software:e,sohu:e,solar:e,solutions:e,song:e,sony:e,soy:e,spa:e,space:[1,{myfast:t,heiyu:t,hf:[2,{static:t}],"app-ionos":t,project:t,uber:t,xs4all:t}],sport:e,spot:e,srl:e,stada:e,staples:e,star:e,statebank:e,statefarm:e,stc:e,stcgroup:e,stockholm:e,storage:e,store:[1,{barsy:t,sellfy:t,shopware:t,storebase:t}],stream:e,studio:e,study:e,style:e,sucks:e,supplies:e,supply:e,support:[1,{barsy:t}],surf:e,surgery:e,suzuki:e,swatch:e,swiss:e,sydney:e,systems:[1,{knightpoint:t,miren:t}],tab:e,taipei:e,talk:e,taobao:e,target:e,tatamotors:e,tatar:e,tattoo:e,tax:e,taxi:e,tci:e,tdk:e,team:[1,{discourse:t,jelastic:t}],tech:[1,{cleverapps:t}],technology:H,temasek:e,tennis:e,teva:e,thd:e,theater:e,theatre:e,tiaa:e,tickets:e,tienda:e,tips:e,tires:e,tirol:e,tjmaxx:e,tjx:e,tkmaxx:e,tmall:e,today:[1,{prequalifyme:t}],tokyo:e,tools:[1,{addr:to,myaddr:t}],top:[1,{ntdll:t,wadl:r}],toray:e,toshiba:e,total:e,tours:e,town:e,toyota:e,toys:e,trade:e,trading:e,training:e,travel:e,travelers:e,travelersinsurance:e,trust:e,trv:e,tube:e,tui:e,tunes:e,tushu:e,tvs:e,ubank:e,ubs:e,unicom:e,university:e,uno:e,uol:e,ups:e,vacations:e,vana:e,vanguard:e,vegas:e,ventures:e,verisign:e,versicherung:e,vet:e,viajes:e,video:e,vig:e,viking:e,villas:e,vin:e,vip:[1,{hidns:t}],virgin:e,visa:e,vision:e,viva:e,vivo:e,vlaanderen:e,vodka:e,volvo:e,vote:e,voting:e,voto:e,voyage:e,wales:e,walmart:e,walter:e,wang:e,wanggou:e,watch:e,watches:e,weather:e,weatherchannel:e,webcam:e,weber:e,website:tn,wed:e,wedding:e,weibo:e,weir:e,whoswho:e,wien:e,wiki:tn,williamhill:e,win:e,windows:e,wine:e,winners:e,wme:e,woodside:e,work:[1,{"imagine-proxy":t}],works:e,world:e,wow:e,wtc:e,wtf:e,xbox:e,xerox:e,xihuan:e,xin:e,"xn--11b4c3d":e,\u0915\u0949\u092E:e,"xn--1ck2e1b":e,\u30BB\u30FC\u30EB:e,"xn--1qqw23a":e,\u4F5B\u5C71:e,"xn--30rr7y":e,\u6148\u5584:e,"xn--3bst00m":e,\u96C6\u56E2:e,"xn--3ds443g":e,\u5728\u7EBF:e,"xn--3pxu8k":e,\u70B9\u770B:e,"xn--42c2d9a":e,\u0E04\u0E2D\u0E21:e,"xn--45q11c":e,\u516B\u5366:e,"xn--4gbrim":e,\u0645\u0648\u0642\u0639:e,"xn--55qw42g":e,\u516C\u76CA:e,"xn--55qx5d":e,\u516C\u53F8:e,"xn--5su34j936bgsg":e,\u9999\u683C\u91CC\u62C9:e,"xn--5tzm5g":e,\u7F51\u7AD9:e,"xn--6frz82g":e,\u79FB\u52A8:e,"xn--6qq986b3xl":e,\u6211\u7231\u4F60:e,"xn--80adxhks":e,\u043C\u043E\u0441\u043A\u0432\u0430:e,"xn--80aqecdr1a":e,\u043A\u0430\u0442\u043E\u043B\u0438\u043A:e,"xn--80asehdb":e,\u043E\u043D\u043B\u0430\u0439\u043D:e,"xn--80aswg":e,\u0441\u0430\u0439\u0442:e,"xn--8y0a063a":e,\u8054\u901A:e,"xn--9dbq2a":e,\u05E7\u05D5\u05DD:e,"xn--9et52u":e,\u65F6\u5C1A:e,"xn--9krt00a":e,\u5FAE\u535A:e,"xn--b4w605ferd":e,\u6DE1\u9A6C\u9521:e,"xn--bck1b9a5dre4c":e,\u30D5\u30A1\u30C3\u30B7\u30E7\u30F3:e,"xn--c1avg":e,\u043E\u0440\u0433:e,"xn--c2br7g":e,\u0928\u0947\u091F:e,"xn--cck2b3b":e,\u30B9\u30C8\u30A2:e,"xn--cckwcxetd":e,\u30A2\u30DE\u30BE\u30F3:e,"xn--cg4bki":e,\uC0BC\uC131:e,"xn--czr694b":e,\u5546\u6807:e,"xn--czrs0t":e,\u5546\u5E97:e,"xn--czru2d":e,\u5546\u57CE:e,"xn--d1acj3b":e,\u0434\u0435\u0442\u0438:e,"xn--eckvdtc9d":e,\u30DD\u30A4\u30F3\u30C8:e,"xn--efvy88h":e,\u65B0\u95FB:e,"xn--fct429k":e,\u5BB6\u96FB:e,"xn--fhbei":e,\u0643\u0648\u0645:e,"xn--fiq228c5hs":e,\u4E2D\u6587\u7F51:e,"xn--fiq64b":e,\u4E2D\u4FE1:e,"xn--fjq720a":e,\u5A31\u4E50:e,"xn--flw351e":e,\u8C37\u6B4C:e,"xn--fzys8d69uvgm":e,\u96FB\u8A0A\u76C8\u79D1:e,"xn--g2xx48c":e,\u8D2D\u7269:e,"xn--gckr3f0f":e,\u30AF\u30E9\u30A6\u30C9:e,"xn--gk3at1e":e,\u901A\u8CA9:e,"xn--hxt814e":e,\u7F51\u5E97:e,"xn--i1b6b1a6a2e":e,\u0938\u0902\u0917\u0920\u0928:e,"xn--imr513n":e,\u9910\u5385:e,"xn--io0a7i":e,\u7F51\u7EDC:e,"xn--j1aef":e,\u043A\u043E\u043C:e,"xn--jlq480n2rg":e,\u4E9A\u9A6C\u900A:e,"xn--jvr189m":e,\u98DF\u54C1:e,"xn--kcrx77d1x4a":e,\u98DE\u5229\u6D66:e,"xn--kput3i":e,\u624B\u673A:e,"xn--mgba3a3ejt":e,\u0627\u0631\u0627\u0645\u0643\u0648:e,"xn--mgba7c0bbn0a":e,\u0627\u0644\u0639\u0644\u064A\u0627\u0646:e,"xn--mgbab2bd":e,\u0628\u0627\u0632\u0627\u0631:e,"xn--mgbca7dzdo":e,\u0627\u0628\u0648\u0638\u0628\u064A:e,"xn--mgbi4ecexp":e,\u0643\u0627\u062B\u0648\u0644\u064A\u0643:e,"xn--mgbt3dhd":e,\u0647\u0645\u0631\u0627\u0647:e,"xn--mk1bu44c":e,\uB2F7\uCEF4:e,"xn--mxtq1m":e,\u653F\u5E9C:e,"xn--ngbc5azd":e,\u0634\u0628\u0643\u0629:e,"xn--ngbe9e0a":e,\u0628\u064A\u062A\u0643:e,"xn--ngbrx":e,\u0639\u0631\u0628:e,"xn--nqv7f":e,\u673A\u6784:e,"xn--nqv7fs00ema":e,\u7EC4\u7EC7\u673A\u6784:e,"xn--nyqy26a":e,\u5065\u5EB7:e,"xn--otu796d":e,\u62DB\u8058:e,"xn--p1acf":[1,{"xn--90amc":t,"xn--j1aef":t,"xn--j1ael8b":t,"xn--h1ahn":t,"xn--j1adp":t,"xn--c1avg":t,"xn--80aaa0cvac":t,"xn--h1aliz":t,"xn--90a1af":t,"xn--41a":t}],\u0440\u0443\u0441:[1,{\u0431\u0438\u0437:t,\u043A\u043E\u043C:t,\u043A\u0440\u044B\u043C:t,\u043C\u0438\u0440:t,\u043C\u0441\u043A:t,\u043E\u0440\u0433:t,\u0441\u0430\u043C\u0430\u0440\u0430:t,\u0441\u043E\u0447\u0438:t,\u0441\u043F\u0431:t,\u044F:t}],"xn--pssy2u":e,\u5927\u62FF:e,"xn--q9jyb4c":e,\u307F\u3093\u306A:e,"xn--qcka1pmc":e,\u30B0\u30FC\u30B0\u30EB:e,"xn--rhqv96g":e,\u4E16\u754C:e,"xn--rovu88b":e,\u66F8\u7C4D:e,"xn--ses554g":e,\u7F51\u5740:e,"xn--t60b56a":e,\uB2F7\uB137:e,"xn--tckwe":e,\u30B3\u30E0:e,"xn--tiq49xqyj":e,\u5929\u4E3B\u6559:e,"xn--unup4y":e,\u6E38\u620F:e,"xn--vermgensberater-ctb":e,verm\u00F6gensberater:e,"xn--vermgensberatung-pwb":e,verm\u00F6gensberatung:e,"xn--vhquv":e,\u4F01\u4E1A:e,"xn--vuq861b":e,\u4FE1\u606F:e,"xn--w4r85el8fhu5dnra":e,\u5609\u91CC\u5927\u9152\u5E97:e,"xn--w4rs40l":e,\u5609\u91CC:e,"xn--xhq521b":e,\u5E7F\u4E1C:e,"xn--zfr164b":e,\u653F\u52A1:e,xyz:[1,{caffeine:t,exe:t,botdash:t,telebit:r}],yachts:e,yahoo:e,yamaxun:e,yandex:e,yodobashi:e,yoga:e,yokohama:e,you:e,youtube:e,yun:e,zappos:e,zara:e,zero:e,zip:e,zone:[1,{stackit:t,lima:t,triton:r}],zuerich:e}]})();function Ah(e,t,n,o){let r=null,a=t;for(;a!==void 0&&((a[0]&o)!==0&&(r={index:n+1,isIcann:(a[0]&1)!==0,isPrivate:(a[0]&2)!==0}),n!==-1);){let i=a[1];a=Object.prototype.hasOwnProperty.call(i,e[n])?i[e[n]]:i["*"],n-=1}return r}function nl(e,t,n){var o;if(hd(e,t,n))return;let r=e.split("."),a=(t.allowPrivateDomains?2:0)|(t.allowIcannDomains?1:0),i=Ah(r,Sh,r.length-1,a);if(i!==null){n.isIcann=i.isIcann,n.isPrivate=i.isPrivate,n.publicSuffix=r.slice(i.index+1).join(".");return}let s=Ah(r,Rh,r.length-1,a);if(s!==null){n.isIcann=s.isIcann,n.isPrivate=s.isPrivate,n.publicSuffix=r.slice(s.index).join(".");return}n.isIcann=!1,n.isPrivate=!1,n.publicSuffix=(o=r[r.length-1])!==null&&o!==void 0?o:null}var Ch=el();function Mh(e,t={}){return tl(e,5,nl,t,el())}function Nh(e,t={}){return pd(Ch),tl(e,3,nl,t,Ch).domain}function gd(e){let t=String(e||"").trim().toLowerCase().replace(/\.$/,"");return t.startsWith("[")&&t.endsWith("]")?t.slice(1,-1):t}function Ex(e){let t=String(e||"").trim().toLowerCase();if(!t||t.includes("://")||t.startsWith("//"))return!1;let n=t.split(/[/?#]/)[0]?.trim()||"";return!n||n.startsWith("[")?!1:(n.match(/:/g)||[]).length>=2}function Ix(e){let t=String(e||"").trim();return t?/^[a-z][a-z0-9+.-]*:\/\//i.test(t)?t:t.startsWith("//")?`https:${t}`:Ex(t)?`https://[${t}]`:`https://${t}`:""}function Sx(e){let t=Ix(e);if(!t)return"";try{return gd(new URL(t).hostname)}catch{return""}}function Rx(e){return/^\d{1,3}(?:\.\d{1,3}){3}$/.test(e)?e.split(".").every(t=>{let n=Number(t);return Number.isInteger(n)&&n>=0&&n<=255}):!1}function Ax(e){if(!e.includes(":"))return!1;try{return gd(new URL(`https://[${e}]`).hostname)===e}catch{return!1}}function bd(e){let t=gd(e);return Mh(t).isIp===!0||Rx(t)||Ax(t)}function kd(e){let t=Pn(e);return!!t&&bd(t)}function Pn(e){return Sx(String(e||"").trim().toLowerCase())}function ns(e){let t=String(e||"").trim().toLowerCase();if(!t)return"";if(t==="*")return"*";let n=t.startsWith("="),o=!n&&t.startsWith("*."),r=n?t.slice(1):o?t.slice(2):t,a=Pn(r);return a?n?`=${a}`:o?`*.${a}`:a:""}function Lh(e,t){return e?t!=="host_only"||e==="*"||e.startsWith("=")||e.startsWith("*.")?e:`=${e}`:""}function rr(e){let t=Pn(e);return t?t==="localhost"||bd(t)?t:Nh(t,{allowPrivateDomains:!0})||t:""}function Dh(e,t){let n=Pn(e);return n?n==="localhost"||bd(n)?`=${n}`:t==="host_only"?`=${n}`:rr(n):""}function os(e,t,n){let o=Array.isArray(e)?e:typeof e=="string"&&e.trim()?[e]:[],r=new Set;for(let a of o){let i=Lh(ns(String(a||"")),n);i&&r.add(i)}if(!r.size){let a=Dh(t,n);a&&r.add(a)}return Array.from(r)}function ol(e,t){let n=Pn(e),o=ns(t);if(!n||!o)return!1;if(o==="*")return!0;if(o.startsWith("=")){let r=o.slice(1);return!!r&&n===r}if(o.startsWith("*.")){let r=o.slice(2);return!r||n===r?!1:n.endsWith(`.${r}`)}return n===o?!0:n.endsWith(`.${o}`)}function Uo(e){return Pn(e)||null}function wo(e,t){let n=Uo(e);return n?t.length?t.some(o=>ol(n,o)):!0:!1}function yd(e){let t=Pn(e.host||"");if(!t)return!1;let n=e.domainScopeMode==="host_only"?"host_only":"registrable_domain",o=Array.isArray(e.allowedDomains)?e.allowedDomains.map(a=>ns(a)).map(a=>Lh(a,n)).filter(Boolean):[];if(o.length>0)return o.some(a=>ol(t,a));let r=Pn(e.currentHost||"");return r?n==="host_only"?t===r:rr(t)===rr(r):!0}var vd=new Set([z.describe_images,z.wait_action,z.wait_for_element,z.answer_task,z.solve_captcha,z.network_run_recipe]),Cx=new Set([z.goto_url,z.google_search,z.go_back,z.go_forward,z.refresh_page,z.open_new_tab,z.switch_tab,z.close_tab]);function Mx(e){return e==="open_url_new_tab"?z.open_new_tab:String(e||"").trim()}function Nx(e){return e==="allow"||e==="block"||e==="open_new_tab_notice"?e:"open_new_tab_notice"}function Oh(e){let t=Mx(String(e.toolName||""));return!t||Nx(e.externalNavigationPolicy)==="allow"||vd.has(t)||Cx.has(t)?!1:!wo(e.currentUrl,e.allowedDomains)}var sl=class sl{constructor(t={}){P(this,"root");P(this,"includeFrames");P(this,"disableDomAnnotations");P(this,"allowActions");P(this,"runtimeId");P(this,"domainScopeMode");P(this,"allowedDomains");P(this,"externalNavigationPolicy");P(this,"crossHostPolicy");P(this,"registerOpenedTab");P(this,"listKnownTabs");P(this,"switchToLogicalTab");P(this,"onNavigationGuardrail");P(this,"onBeforeAgentNavigation");P(this,"onBeforeCrossHostNavigation");P(this,"instrumentation");P(this,"highlightEl",null);P(this,"clientTools",new Map);P(this,"navigationDelayMs");P(this,"domSettleDebounceMs");P(this,"domSettleMaxWaitMs");P(this,"domSettleRetries");P(this,"sparseTreeRetryDelayMs");P(this,"sparseTreeRetryMaxAttempts");P(this,"uploadStore",new Map);P(this,"uploadProviderInstalled",!1);P(this,"actionGateContext",{});this.root=t.root??document.body??document.documentElement,this.includeFrames=t.includeFrames??!0,this.disableDomAnnotations=t.disableDomAnnotations??!0,this.allowActions=t.allowActions??!0,this.runtimeId=t.runtimeId,this.domainScopeMode=Ph(t.domainScopeMode),this.allowedDomains=os(t.allowedDomains,window.location.hostname,this.domainScopeMode),this.externalNavigationPolicy=Bh(t.externalNavigationPolicy),this.crossHostPolicy=Uh(t.crossHostPolicy),this.registerOpenedTab=t.registerOpenedTab,this.listKnownTabs=t.listKnownTabs,this.switchToLogicalTab=t.switchToLogicalTab,this.onNavigationGuardrail=t.onNavigationGuardrail,this.onBeforeAgentNavigation=t.onBeforeAgentNavigation,this.onBeforeCrossHostNavigation=t.onBeforeCrossHostNavigation,this.navigationDelayMs=t.navigationDelayMs??80,this.domSettleDebounceMs=rs(t.domSettle?.debounceMs,24,8,500),this.domSettleMaxWaitMs=rs(t.domSettle?.maxWaitMs,220,80,5e3),this.domSettleRetries=rs(t.domSettle?.retries,0,0,6),this.sparseTreeRetryDelayMs=rs(t.domSettle?.sparseTreeRetryDelayMs,35,20,1e3),this.sparseTreeRetryMaxAttempts=rs(t.domSettle?.sparseTreeRetryMaxAttempts,1,0,4),this.instrumentation=t.instrumentation??_h({includeIframes:!0,scanInlineHandlers:!0,observeInlineMutations:!0,...t.instrumentationOptions||{}}),uh(),t.uploadBytesProvider&&this.setUploadBytesProvider(t.uploadBytesProvider)}setAllowActions(t){this.allowActions=!!t}setActionGateContext(t){let n={};(t?.mode==="controller"||t?.mode==="observer")&&(n.mode=t.mode),typeof t?.controllerRuntimeId=="string"&&t.controllerRuntimeId.trim()&&(n.controllerRuntimeId=t.controllerRuntimeId.trim()),Number.isFinite(Number(t?.activeLogicalTabId))&&Number(t?.activeLogicalTabId)>0&&(n.activeLogicalTabId=Number(t?.activeLogicalTabId)),Number.isFinite(Number(t?.localLogicalTabId))&&Number(t?.localLogicalTabId)>0&&(n.localLogicalTabId=Number(t?.localLogicalTabId)),typeof t?.reason=="string"&&t.reason.trim()&&(n.reason=t.reason.trim().slice(0,240)),this.actionGateContext=n}setNavigationPolicy(t){t.domainScopeMode&&(this.domainScopeMode=Ph(t.domainScopeMode),t.allowedDomains||(this.allowedDomains=os(void 0,window.location.hostname,this.domainScopeMode))),t.allowedDomains&&(this.allowedDomains=os(t.allowedDomains,window.location.hostname,this.domainScopeMode)),t.externalNavigationPolicy&&(this.externalNavigationPolicy=Bh(t.externalNavigationPolicy)),t.crossHostPolicy&&(this.crossHostPolicy=Uh(t.crossHostPolicy))}async getSnapshot(){return await Fh(this.root),es(this.root,this.instrumentation,{includeFrames:this.includeFrames,disableDomAnnotations:this.disableDomAnnotations})}async getPageData(t){await Fh(this.root);let n=Vc(t?.pageConfig),o={...n||{},adaptiveSettleDebounceMs:typeof n?.adaptiveSettleDebounceMs=="number"?n.adaptiveSettleDebounceMs:this.domSettleDebounceMs,adaptiveSettleMaxWaitMs:typeof n?.adaptiveSettleMaxWaitMs=="number"?n.adaptiveSettleMaxWaitMs:this.domSettleMaxWaitMs,adaptiveSettleRetries:typeof n?.adaptiveSettleRetries=="number"?n.adaptiveSettleRetries:this.domSettleRetries,sparseTreeRetryDelayMs:typeof n?.sparseTreeRetryDelayMs=="number"?n.sparseTreeRetryDelayMs:this.sparseTreeRetryDelayMs,sparseTreeRetryMaxAttempts:typeof n?.sparseTreeRetryMaxAttempts=="number"?n.sparseTreeRetryMaxAttempts:this.sparseTreeRetryMaxAttempts};return await yh(this.root,this.instrumentation,{includeFrames:this.includeFrames,disableDomAnnotations:this.disableDomAnnotations,pageConfig:o})}async executeTool(t,n){let o=Lx(t?.name);if(!o)return{success:!1,error:`Unknown tool: ${String(t?.name)}`,allowFallback:!1};if(this.shouldBlockForOutOfScopeContext(o)){let y=`Current tab host "${Uo(window.location.href)||window.location.hostname||"unknown"}" is outside the allowed navigation scope (${Dx(this.allowedDomains)}).`;return this.domainScopeBlockedResponse(window.location.href,y,{fromCurrentContext:!0})}if(!this.allowActions&&!vd.has(o))return{success:!1,error:"Actions disabled by configuration",allowFallback:!1,output:{reason:this.actionGateContext.mode==="observer"?"Actions are disabled because this tab is currently in observer mode.":this.actionGateContext.reason||"Actions disabled by configuration",actionGate:this.actionGateContext}};let r=await this.handleNavigationTools(o,t?.args||{});if(r)return r;if(o===z.wait_action){let g=Number(t?.args?.duration??1e3);return await new Promise(y=>setTimeout(y,Math.max(0,Math.min(g,6e4)))),{success:!0}}if(o===z.wait_for_element)return this.waitForElement(t?.args||{});if(o===z.answer_task)return{success:!0};if(o===z.solve_captcha)return al("CAPTCHA solving requires human intervention in embed mode.","HUMAN_INTERVENTION_REQUIRED");if(o===z.network_run_recipe)return al("network_run_recipe is not supported in embed mode.","CAPABILITY_UNAVAILABLE");let a=t?.args||{},i=Bx(a),s=Wa(document,a.iframe_id);if(a.iframe_id!=null&&s.unresolvedPath.length>0&&!i)return this.iframeContextUnavailableResponse(a.iframe_id,s);if(o===z.click_element&&a?.open_in_new_tab)return this.openElementInNewTab(a);if(o===z.click_element){let g=this.getInterceptedClickTarget(a);if(g?.targetUrl){if(g.forceOpenInNewTab)return this.openUrlInNewTab(g.targetUrl,{policyBlocked:!0,reason:g.reason,decisionReason:"open_new_tab"});let E=g.reason;return this.externalNavigationPolicy==="open_new_tab_notice"?this.openUrlInNewTab(g.targetUrl,{policyBlocked:!0,reason:E,decisionReason:"open_new_tab"}):this.domainScopeBlockedResponse(g.targetUrl,E,{decisionReason:"policy_blocked"})}let y=this.getClickTargetUrl(a);if(y){let E=this.buildNavigationIntent(y);if(E.isCrossHost){let R=await this.resolveAgentNavigationDecision(E,this.getNavigationFallbackDecision(y));if(R.decision==="block")return this.domainScopeBlockedResponse(y,R.reason||"Navigation blocked by policy.",{decisionReason:R.decisionReason||"policy_blocked"});if(R.decision==="open_new_tab")return this.openUrlInNewTab(y,{policyBlocked:!0,reason:R.reason||"Navigation policy requires opening a new tab.",decisionReason:R.decisionReason||"open_new_tab"});this.notifyCrossHostNavigation(E)}else{let R=await this.resolveAgentNavigationDecision(E,"allow_same_tab");if(R.decision==="block")return this.domainScopeBlockedResponse(y,R.reason||"Navigation blocked by policy.",{decisionReason:R.decisionReason||"policy_blocked"});if(R.decision==="open_new_tab")return this.openUrlInNewTab(y,{policyBlocked:!0,reason:R.reason||"Navigation policy requires opening a new tab.",decisionReason:R.decisionReason||"open_new_tab"})}}}if(o===z.describe_images)return this.describeImages(t?.args||{});if(!(o in gc))return{success:!1,error:`Unknown tool: ${String(t?.name)}`,allowFallback:!1};let{doc:c}=s,d=wd(a),f=d?vo(c,d):null,u;if(f){let g=this.instrumentation.getFrameworkMetadata(f),y=Px(g.listenersRaw||"",o),E=a?.value??a?.text??null;u=Ox({...g,pattern:y,value:E})}let b=gc[o];return o===z.upload_file&&!n&&(n=await this.buildUploadPayload(a).catch(()=>{})),dh({opcode:b,call:{name:o,args:a},elementData:u,tabIndex:0,payload:n})}iframeContextUnavailableResponse(t,n){let r=`iframe_id unresolved: remaining=${n.unresolvedPath.join(">")||"(none)"} (cross-origin, not-ready, or not found)`;return{success:!1,error:r,allowFallback:!1,output:{success:!1,error:{code:"IFRAME_CONTEXT_UNAVAILABLE",message:r,retryable:!1},iframe_context:{requested_iframe_id:t,requested_path:n.iframePath,resolved_path:n.resolvedPath,unresolved_path:n.unresolvedPath}},errorDetails:{code:"IFRAME_CONTEXT_UNAVAILABLE",message:r,retryable:!1,details:{requested_iframe_id:t,requested_path:n.iframePath,resolved_path:n.resolvedPath,unresolved_path:n.unresolvedPath}}}}highlight(t){let n=vo(document,t);if(!n)return;let o=n.getBoundingClientRect();if(!this.highlightEl){let r=document.createElement("div");r.style.position="fixed",r.style.pointerEvents="none",r.style.border="2px solid #ff7a59",r.style.boxShadow="0 0 0 2px rgba(255, 122, 89, 0.2)",r.style.borderRadius="6px",r.style.zIndex="2147483647",this.highlightEl=r,document.body.appendChild(r)}this.highlightEl.style.left=`${o.left}px`,this.highlightEl.style.top=`${o.top}px`,this.highlightEl.style.width=`${Math.max(0,o.width)}px`,this.highlightEl.style.height=`${Math.max(0,o.height)}px`,this.highlightEl.style.display="block"}clearHighlight(){this.highlightEl&&(this.highlightEl.style.display="none")}setUploadBytesProvider(t){window.__ROVER_UPLOAD_BYTES__=t}registerTool(t,n){let o=typeof t=="string"?{name:t}:t;!o?.name||typeof n!="function"||this.clientTools.set(o.name,{handler:n,def:o})}async executeClientTool(t,n){let o=this.clientTools.get(t);if(!o)throw new Error(`Unknown client tool: ${t}`);return o.handler(n)}listClientTools(){return Array.from(this.clientTools.values()).map(t=>t.def)}async handleNavigationTools(t,n){switch(t){case z.goto_url:{let o=String(n.url||"").trim();if(!o)return{success:!1,error:"goto_url: missing url",allowFallback:!0};let r=rl(o,window.location.href);if(!r)return{success:!1,error:`goto_url: invalid url "${o}"`,allowFallback:!0};if(this.shouldPreserveHostRuntime(r)){let s=this.buildNavigationIntent(r),c=await this.resolveAgentNavigationDecision(s,this.getNavigationFallbackDecision(r)),d=this.externalNavigationPolicy==="block"?"block":"open_new_tab";return(c.decision==="allow_same_tab"?d:c.decision)==="block"?this.domainScopeBlockedResponse(r,c.reason||"Navigation blocked by policy.",{decisionReason:c.decisionReason}):await this.openUrlInNewTab(r,{policyBlocked:!0,reason:c.reason||"Opened in a new tab to preserve Rover runtime continuity across hostnames.",decisionReason:c.decisionReason||"open_new_tab"})}if(this.shouldGuardExternalNavigation(r)){let s="Navigation blocked by domain policy.";return this.externalNavigationPolicy==="open_new_tab_notice"?await this.openUrlInNewTab(r,{policyBlocked:!0,reason:s}):this.domainScopeBlockedResponse(r,s)}let a=this.buildNavigationIntent(r);if(a.isCrossHost){let s=await this.resolveAgentNavigationDecision(a,this.getNavigationFallbackDecision(r));return s.decision==="block"?this.domainScopeBlockedResponse(r,s.reason||"Navigation blocked by policy.",{decisionReason:s.decisionReason}):s.decision==="open_new_tab"?await this.openUrlInNewTab(r,{policyBlocked:!0,reason:s.reason||"Navigation policy requires opening a new tab.",decisionReason:s.decisionReason||"open_new_tab"}):this.scheduleSameTabNavigation(r,a,{decisionReason:s.decisionReason||"allow_same_tab",reason:s.reason||"Navigation allowed."})}let i=await this.resolveAgentNavigationDecision(a,"allow_same_tab");return i.decision==="block"?this.domainScopeBlockedResponse(r,i.reason||"Navigation blocked by policy.",{decisionReason:i.decisionReason||"policy_blocked"}):i.decision==="open_new_tab"?await this.openUrlInNewTab(r,{policyBlocked:!0,reason:i.reason||"Navigation policy requires opening a new tab.",decisionReason:i.decisionReason||"open_new_tab"}):this.scheduleSameTabNavigation(r,a,{decisionReason:i.decisionReason||"allow_same_tab",reason:i.reason||"Navigation allowed."})}case z.google_search:{let o=String(n.query||"").trim();if(!o)return{success:!1,error:"google_search: missing query",allowFallback:!0};let r=`https://www.google.com/search?q=${encodeURIComponent(o)}`;if(this.shouldPreserveHostRuntime(r)){let s=this.buildNavigationIntent(r),c=await this.resolveAgentNavigationDecision(s,this.getNavigationFallbackDecision(r)),d=this.externalNavigationPolicy==="block"?"block":"open_new_tab";return(c.decision==="allow_same_tab"?d:c.decision)==="block"?this.domainScopeBlockedResponse(r,c.reason||"Navigation blocked by policy.",{decisionReason:c.decisionReason}):await this.openUrlInNewTab(r,{policyBlocked:!0,reason:c.reason||"Opened in a new tab to preserve Rover runtime continuity across hostnames.",decisionReason:c.decisionReason||"open_new_tab"})}if(this.shouldGuardExternalNavigation(r)){let s="Google search opens outside the allowed navigation scope.";return this.externalNavigationPolicy==="open_new_tab_notice"?await this.openUrlInNewTab(r,{policyBlocked:!0,reason:s}):this.domainScopeBlockedResponse(r,s)}let a=this.buildNavigationIntent(r);if(a.isCrossHost){let s=await this.resolveAgentNavigationDecision(a,this.getNavigationFallbackDecision(r));return s.decision==="block"?this.domainScopeBlockedResponse(r,s.reason||"Navigation blocked by policy.",{decisionReason:s.decisionReason}):s.decision==="open_new_tab"?await this.openUrlInNewTab(r,{policyBlocked:!0,reason:s.reason||"Navigation policy requires opening a new tab.",decisionReason:s.decisionReason||"open_new_tab"}):this.scheduleSameTabNavigation(r,a,{decisionReason:s.decisionReason||"allow_same_tab",reason:s.reason||"Navigation allowed."})}let i=await this.resolveAgentNavigationDecision(a,"allow_same_tab");return i.decision==="block"?this.domainScopeBlockedResponse(r,i.reason||"Navigation blocked by policy.",{decisionReason:i.decisionReason||"policy_blocked"}):i.decision==="open_new_tab"?await this.openUrlInNewTab(r,{policyBlocked:!0,reason:i.reason||"Navigation policy requires opening a new tab.",decisionReason:i.decisionReason||"open_new_tab"}):this.scheduleSameTabNavigation(r,a,{decisionReason:i.decisionReason||"allow_same_tab",reason:i.reason||"Navigation allowed."})}case z.go_back:{let o=this.buildNavigationIntent(window.location.href,{isCrossHost:!1});return await this.resolveAgentNavigationDecision(o,"allow_same_tab"),this.scheduleHistoryNavigation("back"),{success:!0,output:{navigation:"same_tab",navigationOutcome:"same_host_navigated",navigationPending:!1,decisionReason:"allow_same_tab"}}}case z.go_forward:{let o=this.buildNavigationIntent(window.location.href,{isCrossHost:!1});return await this.resolveAgentNavigationDecision(o,"allow_same_tab"),this.scheduleHistoryNavigation("forward"),{success:!0,output:{navigation:"same_tab",navigationOutcome:"same_host_navigated",navigationPending:!1,decisionReason:"allow_same_tab"}}}case z.refresh_page:{let o=this.buildNavigationIntent(window.location.href,{isCrossHost:!1});return await this.resolveAgentNavigationDecision(o,"allow_same_tab"),this.scheduleHistoryNavigation("reload"),{success:!0,output:{navigation:"same_tab",navigationOutcome:"same_host_navigated",navigationPending:!1,decisionReason:"allow_same_tab"}}}case z.open_new_tab:{let o=String(n.url||"").trim();if(!o)return{success:!1,error:"open_new_tab: missing url",allowFallback:!0};let r=rl(o,window.location.href);if(!r)return{success:!1,error:`open_new_tab: invalid url "${o}"`,allowFallback:!0};let a=this.buildNavigationIntent(r),i=await this.resolveAgentNavigationDecision(a,"open_new_tab");return i.decision==="block"?this.domainScopeBlockedResponse(r,i.reason||"Navigation blocked by policy.",{decisionReason:i.decisionReason}):await this.openUrlInNewTab(r,{policyBlocked:!1,reason:i.reason,decisionReason:i.decisionReason||"open_new_tab"})}case z.switch_tab:{let o=Number(n.logical_tab_id??n.tab_id);if(!Number.isFinite(o)||o<=0)return{success:!1,error:(typeof n._tab_id_mapping_error=="string"?String(n._tab_id_mapping_error).trim():"")||"switch_tab: missing/invalid logical_tab_id",allowFallback:!0};if(this.externalNavigationPolicy!=="allow"&&this.listKnownTabs){let r=this.listKnownTabs().find(a=>Number(a.logicalTabId)===o);if(r?.external)return this.domainScopeBlockedResponse(r.url||`logical_tab_id:${o}`,`Tab ${o} is out of scope. Direct actions are blocked for this tab.`)}if(!this.switchToLogicalTab)return al("switch_tab requires session coordinator support.","CAPABILITY_UNAVAILABLE");try{let r=await this.switchToLogicalTab(o);return r?.ok?{success:!0,output:{logicalTabId:o,delegated:!!r.delegated,mode:r.delegated?"delegated":"local"}}:{success:!1,error:r?.reason||`switch_tab failed for logical tab ${o}`,allowFallback:!0}}catch(r){return{success:!1,error:r?.message||"switch_tab failed",allowFallback:!0}}}case z.close_tab:try{return window.close(),{success:!0}}catch{return al("close_tab failed in embed mode.","CAPABILITY_UNAVAILABLE")}default:return null}}shouldGuardExternalNavigation(t){return this.externalNavigationPolicy==="allow"?!1:!wo(t,this.allowedDomains)}shouldPreserveHostRuntime(t){return this.externalNavigationPolicy==="allow"?!1:!wo(t,this.allowedDomains)}getNavigationFallbackDecision(t){return t?wo(t,this.allowedDomains)?this.crossHostPolicy==="open_new_tab"&&this.isCrossHostNavigation(t)?"open_new_tab":"allow_same_tab":this.externalNavigationPolicy==="block"?"block":this.externalNavigationPolicy==="open_new_tab_notice"?"open_new_tab":"allow_same_tab":"allow_same_tab"}isCrossHostNavigation(t){let n=Uo(window.location.href),o=Uo(t);return!n||!o?!1:n!==o}buildNavigationIntent(t,n){let o="";try{o=crypto.randomUUID()}catch{o=`handoff_${Date.now()}_${Math.floor(Math.random()*1e5)}`}return{handoffId:o,targetUrl:t,sourceRuntimeId:this.runtimeId,sourceLogicalTabId:this.actionGateContext.localLogicalTabId,runId:n?.runId,isCrossHost:n?.isCrossHost??this.isCrossHostNavigation(t),ts:Date.now()}}async resolveAgentNavigationDecision(t,n){let o={decision:n,decisionReason:n==="block"?"policy_blocked":n==="open_new_tab"?"open_new_tab":"allow_same_tab"};if(!this.onBeforeAgentNavigation)return o;try{let r=this.onBeforeAgentNavigation(t),a=await this.awaitWithTimeout(r,sl.NAV_PREFLIGHT_TIMEOUT_MS);if(!a||typeof a!="object")return o;let i=String(a.decision||"").trim();return{decision:i==="allow_same_tab"||i==="open_new_tab"||i==="block"?i:i==="stale_run"?n:o.decision,reason:String(a.reason||"").trim()||void 0,decisionReason:String(a.decisionReason||"").trim()||o.decisionReason}}catch{return o}}async awaitWithTimeout(t,n){let o=t;return!o||typeof o.then!="function"?t:await Promise.race([o,new Promise(r=>{window.setTimeout(()=>r(void 0),Math.max(0,n))})])}scheduleHistoryNavigation(t){window.setTimeout(()=>{t==="back"?window.history.back():t==="forward"?window.history.forward():window.location.reload()},this.navigationDelayMs)}scheduleSameTabNavigation(t,n,o){let r=n.isCrossHost===!0,a=wo(t,this.allowedDomains);return r&&this.notifyCrossHostNavigation(n),a?(window.setTimeout(()=>{try{window.location.href=t}catch{window.location.assign(t)}},this.navigationDelayMs),{success:!0,output:{url:t,navigation:"same_tab",navigationOutcome:r?"subdomain_navigated":"same_host_navigated",navigationPending:!1,decisionReason:o?.decisionReason||"allow_same_tab",reason:o?.reason,...o?.convertedFrom?{convertedFrom:o.convertedFrom}:{}}}):(window.setTimeout(()=>{try{window.location.href=t}catch{window.location.assign(t)}},Math.max(this.navigationDelayMs,200)),{success:!0,output:{url:t,navigation:"same_tab",navigationOutcome:"same_tab_scheduled",navigationPending:!0,decisionReason:o?.decisionReason||"allow_same_tab",reason:o?.reason,...o?.convertedFrom?{convertedFrom:o.convertedFrom}:{}}})}notifyCrossHostNavigation(t){if(t.isCrossHost)try{this.onBeforeCrossHostNavigation?.(t)}catch{}}shouldBlockForOutOfScopeContext(t){return Oh({toolName:t,currentUrl:window.location.href,allowedDomains:this.allowedDomains,externalNavigationPolicy:this.externalNavigationPolicy})}getInterceptedClickTarget(t){let n=this.getClickTargetUrl(t);return n?this.shouldPreserveHostRuntime(n)?!wo(n,this.allowedDomains)&&this.externalNavigationPolicy==="block"?{targetUrl:n,reason:"Blocked same-tab navigation to an out-of-scope destination.",forceOpenInNewTab:!1}:{targetUrl:n,reason:"Opened in a new tab to preserve Rover runtime continuity outside allowed domains.",forceOpenInNewTab:!0}:this.externalNavigationPolicy==="allow"||wo(n,this.allowedDomains)?null:{targetUrl:n,reason:"Blocked same-tab navigation to an out-of-scope destination.",forceOpenInNewTab:!1}:null}getClickTargetUrl(t){let n=wd(t);if(!n)return null;let{doc:o}=Wa(document,t.iframe_id),r=vo(o,n);if(!r)return null;let a=Hh(r),i=a?.href||a?.getAttribute("href")||"";return rl(i,window.location.href)}domainScopeBlockedResponse(t,n,o){let r=this.externalNavigationPolicy==="block"?"block":"open_new_tab_notice",a=window.location.href,i=Uo(a)||window.location.hostname||void 0,s=Uo(t)||void 0;return this.emitNavigationGuardrail({blockedUrl:t,currentUrl:a,policyAction:r,reason:n,allowedDomains:this.allowedDomains,openedInNewTab:!1}),{success:!1,error:n,allowFallback:!0,output:{success:!1,error:{code:"DOMAIN_SCOPE_BLOCKED",message:n,missing:[],next_action:r==="block"?"This domain is blocked. Do NOT retry. Acknowledge and proceed with the task using available resources.":"Use open_new_tab to access external pages without losing context.",retryable:!1},blocked_url:t,blocked_host:s,current_url:a,current_host:i,policy_action:r,allowed_domains:this.allowedDomains,domain_scope_mode:this.domainScopeMode,external_navigation_policy:this.externalNavigationPolicy,blockedDomainStatus:"blocked",navigationOutcome:"blocked",decisionReason:o?.decisionReason||"policy_blocked",from_current_context:!!o?.fromCurrentContext,agentInstruction:`Navigation to ${s||t} is blocked by domain policy. Do NOT retry this URL. Acknowledge to user and proceed with the next step.`,blockedDomain:s||t,pageContext:{url:t,title:`[Blocked] ${s||t}`,contentText:`Access to ${s||t} is restricted by navigation policy. The page content is not available. Continue the task without this resource or use /scrape endpoint if external context is needed.`,accessible:!1}},errorDetails:{code:"DOMAIN_SCOPE_BLOCKED",message:n,retryable:!1,details:{blockedUrl:t,blockedHost:s,currentUrl:a,currentHost:i,policyAction:r,allowedDomains:this.allowedDomains,domainScopeMode:this.domainScopeMode,externalNavigationPolicy:this.externalNavigationPolicy,fromCurrentContext:!!o?.fromCurrentContext}}}}emitNavigationGuardrail(t){try{this.onNavigationGuardrail?.(t)}catch{}}async openUrlInNewTab(t,n){let o=!wo(t,this.allowedDomains),r=this.snapshotKnownTabIds(),a=this.openVerifiedPopup(t),i;if(a.opened&&this.registerOpenedTab)try{i=(await this.registerOpenedTab({url:t,title:void 0,external:o,openerRuntimeId:this.runtimeId}))?.logicalTabId}catch{}if(a.opened&&!i&&(i=await this.reconcileOpenedTab(t,r)),!a.opened){let f=await this.reconcileOpenedTab(t,r);f&&(a={opened:!0,verified:!1},i=i||f)}let s=a.opened&&!i&&!!this.registerOpenedTab;if(!a.opened){let f="Browser popup settings blocked opening a new tab.";return n?.policyBlocked&&this.emitNavigationGuardrail({blockedUrl:t,currentUrl:window.location.href,policyAction:"open_new_tab_notice",reason:n.reason||f,allowedDomains:this.allowedDomains,openedInNewTab:!1}),{success:!1,error:"open_new_tab blocked by browser popup settings",allowFallback:!0,output:{url:t,external:o,logicalTabId:i,navigationOutcome:"blocked",decisionReason:n?.decisionReason||"policy_blocked"},errorDetails:{code:"POPUP_BLOCKED",message:f,retryable:!0,next_action:"Allow popups for this site and try again."}}}let c=n?.policyBlocked?n.reason||"Opened in a new tab due to domain policy.":void 0;n?.policyBlocked&&this.emitNavigationGuardrail({blockedUrl:t,currentUrl:window.location.href,policyAction:"open_new_tab_notice",reason:c||"Opened in new tab due to domain policy.",allowedDomains:this.allowedDomains,openedInNewTab:!0});let d=[];return s&&d.push("Tab opened but registration failed; tab may not be targetable."),a.verified||d.push("Tab open was triggered, but browser did not return a popup handle."),{success:!0,output:{url:t,external:o,logicalTabId:i,openedInNewTab:!0,navigationOutcome:"new_tab_opened",navigationPending:!0,decisionReason:n?.decisionReason||"open_new_tab",openVerification:a.verified?"verified":"unverified",policyBlocked:!!n?.policyBlocked,message:c,...d.length?{warning:d.join(" ")}:{}},allowFallback:!0}}openVerifiedPopup(t){let n=window.open("about:blank","_blank");if(n){try{n.opener=null}catch{}try{n.location.href=t}catch{}return{opened:!0,verified:!0}}try{let o=window.open(t,"_blank");if(o){try{o.opener=null}catch{}return{opened:!0,verified:!0}}}catch{}try{let o=window.open(t,"_blank","noopener,noreferrer");if(o){try{o.opener=null}catch{}return{opened:!0,verified:!0}}return{opened:!0,verified:!1}}catch{}try{let o=document.createElement("a");return o.href=t,o.target="_blank",o.rel="noopener noreferrer",o.style.display="none",document.body.appendChild(o),o.click(),o.remove(),{opened:!0,verified:!1}}catch{return{opened:!1,verified:!1}}}snapshotKnownTabIds(){let t=new Set;if(!this.listKnownTabs)return t;try{let n=this.listKnownTabs();for(let o of n){let r=Number(o?.logicalTabId);!Number.isFinite(r)||r<=0||t.add(r)}}catch{return t}return t}async reconcileOpenedTab(t,n){if(!this.listKnownTabs)return;let o=Uo(t),r=Date.now()+2e3;for(;Date.now()<r;){try{let a=this.listKnownTabs();for(let i of a){let s=Number(i?.logicalTabId);if(!Number.isFinite(s)||s<=0||n.has(s))continue;let c=String(i?.url||"").trim();if(!c)return s;let d=Uo(c);if(!o||!d||d===o)return s}}catch{}await new Promise(a=>setTimeout(a,120))}}async openElementInNewTab(t){let n=wd(t);if(!n)return{success:!1,error:"click_element with open_in_new_tab requires element_id.",allowFallback:!0};let{doc:o}=Wa(document,t.iframe_id),r=vo(o,n);if(!r)return{success:!1,error:`click_element: element_id ${String(n)} not found.`,allowFallback:!0};let a=Hh(r),i=a?.href||a?.getAttribute("href")||"",s=rl(i,window.location.href);return s?await this.openUrlInNewTab(s,{policyBlocked:!1}):{success:!1,error:"click_element open_in_new_tab only works when target resolves to a valid link URL.",allowFallback:!0}}async waitForElement(t){let n=String(t.selector||"").trim(),o=Math.max(0,Math.min(Number(t.timeout??5e3),3e4));if(!n)return{success:!1,error:"wait_for_element: missing selector",allowFallback:!0};let r=Date.now(),a=document;for(;Date.now()-r<o;){let i=null;try{i=a.querySelector(n)}catch{i=null}if(i||(i=Ux(a,n)),i)return{success:!0};await new Promise(s=>setTimeout(s,200))}return{success:!1,error:`wait_for_element: not found (${n})`,allowFallback:!0}}async describeImages(t){let n=Lm(t);if(!n.length)return{success:!1,error:"describe_images: element_ids is empty",allowFallback:!1};let o=[],r=[];for(let a of n){let i=vo(document,a);if(!i){r.push(`element_id ${a} not found`);continue}try{let s=await Hx(i);if(!s?.data||!s?.mimeType){r.push(`element_id ${a}: unsupported image`);continue}o.push({element_id:a,...s})}catch(s){r.push(`element_id ${a}: ${s?.message||String(s)}`)}}return o.length?{success:!0,output:{images:o,errors:r.length?r:void 0}}:{success:!1,error:r[0]||"describe_images failed",output:{images:[],errors:r}}}ensureUploadProvider(){this.uploadProviderInstalled||(this.uploadProviderInstalled=!0,this.setUploadBytesProvider(async({token:t,byteLength:n})=>{this.pruneUploadStore();let o=this.uploadStore.get(t);if(!o)throw new Error("upload bytes token not found");if(o.bytes.byteLength!==n)throw new Error("upload bytes size mismatch");return o.bytes}))}pruneUploadStore(){let t=Date.now()-6e5;for(let[n,o]of this.uploadStore.entries())o.createdAt<t&&this.uploadStore.delete(n)}async buildUploadPayload(t){let n=String(t.file_url||"").trim();if(n)try{let o=await rh(0,n,document?.referrer||null),r=o.bytes,a=r.byteLength,i=o.mimeType||t.mime_type||"application/octet-stream",s=t.file_name||o.fileName,c=1024*1024;if(a<=c)return{kind:"upload_file",inlineB64:qh(r),byteLength:a,mimeType:i,fileName:s};this.ensureUploadProvider();let d=crypto.randomUUID();return this.uploadStore.set(d,{bytes:r,createdAt:Date.now()}),{kind:"upload_file",token:d,byteLength:a,mimeType:i,fileName:s,durable:!1}}catch{return}}};P(sl,"NAV_PREFLIGHT_TIMEOUT_MS",1500);var il=sl;function Lx(e){return e==="open_url_new_tab"?z.open_new_tab:String(e||"").trim()}function Dx(e){return e.length?e.join(", "):"(none)"}function Ph(e){return e==="host_only"?"host_only":"registrable_domain"}function Bh(e){return e==="allow"||e==="block"||e==="open_new_tab_notice"?e:"open_new_tab_notice"}function Uh(e){return e==="open_new_tab"||e==="same_tab"?e:"same_tab"}function rs(e,t,n,o){let r=Number(e);return Number.isFinite(r)?Math.max(n,Math.min(o,Math.floor(r))):t}function rl(e,t){let n=String(e||"").trim();if(!n)return null;try{return new URL(n,t).toString()}catch{return null}}function Hh(e){if(e instanceof HTMLAnchorElement&&e.href)return e;let t=e.closest?.("a[href]");return t instanceof HTMLAnchorElement&&t.href?t:null}function al(e,t="CAPABILITY_UNAVAILABLE"){return{success:!1,error:e,allowFallback:!0,errorDetails:{code:t,message:e,retryable:!1}}}function Ox(e){return{frameworks:(e.frameworks||[]).filter(n=>n in Su).map(n=>Su[n]),listenersRaw:e.listenersRaw??"",role:e.role??null,pattern:e.pattern,value:e.value??null}}async function Fh(e){try{let n=(e.ownerDocument||document).defaultView||window,o=n.__RTRVR_INTERNAL_KEY__||"__RTRVR_INTERNAL__",a=n[o]?.flushScan;if(typeof a=="function"){await a({mode:"priority",includeShadow:!0,includeSameOriginIframes:!0,budgetMs:400});return}n.rtrvrAIMarkInteractiveElements?.()}catch{}}function Px(e,t){if(t!==z.click_element)return"standard";let n=Yr(e||"");if(!n)return"standard";let o=new Set(n.entries.map(c=>Zo[c.id]).filter(c=>typeof c=="string")),r=o.has("click")||o.has("mousedown")||o.has("mouseup")||o.has("pointerdown")||o.has("pointerup")||o.has("touchend");if((o.has("mouseenter")||o.has("mouseover")||o.has("pointerenter"))&&r)return"hover-activate";let i=o.has("touchstart"),s=o.has("touchend");return i&&s?"touch-sequence":"standard"}function qh(e){let t=new Uint8Array(e),n="",o=32768;for(let r=0;r<t.length;r+=o)n+=String.fromCharCode(...t.subarray(r,r+o));return btoa(n)}function zh(e){let t=Number(e);if(!Number.isFinite(t))return null;let n=Math.trunc(t);return n>0?n:null}function Wh(e){let t=[];for(let n of hc){let o=e?.[n];if(o==null)continue;if(Array.isArray(o)){for(let a of o){let i=zh(a);i!=null&&t.push(i)}continue}let r=zh(o);r!=null&&t.push(r)}return Array.from(new Set(t))}function Bx(e){return Wh(e).length>0}function wd(e){let t=Wh(e);return t.length?t[0]:null}function Ux(e,t){let n=t.toLowerCase(),o=["button","a","input","textarea","select","label","[role]","div","span"],r=e.querySelectorAll(o.join(","));for(let a of Array.from(r))if((a.textContent||"").trim().toLowerCase().includes(n)||(a.getAttribute("aria-label")||"").toLowerCase().includes(n))return a;return null}async function Hx(e){if(e instanceof HTMLCanvasElement){let r=e.toDataURL(),a=$h(r);if(!a)throw new Error("canvas toDataURL failed");return a}if(e instanceof SVGElement){let r=new XMLSerializer().serializeToString(e);return{data:btoa(unescape(encodeURIComponent(r))),mimeType:"image/svg+xml",displayName:"svg"}}if(e instanceof HTMLImageElement){let r=e.currentSrc||e.src;return await jh(r,e.alt||e.getAttribute("aria-label")||void 0)}let n=window.getComputedStyle(e).backgroundImage||"",o=/url\\((['\"]?)(.*?)\\1\\)/.exec(n);if(o?.[2])return await jh(o[2],e.getAttribute("aria-label")||void 0);throw new Error("unsupported element")}function $h(e){let t=/^data:([^;]+);base64,(.*)$/.exec(e);return t?{mimeType:t[1],data:t[2]}:null}async function jh(e,t){if(!e)throw new Error("missing src");if(e.startsWith("data:")){let s=$h(e);if(!s)throw new Error("invalid data url");return{...s,displayName:t}}let n=await fetch(e,{mode:"cors"});if(!n.ok)throw new Error(`fetch failed (${n.status})`);let o=await n.blob(),r=await o.arrayBuffer(),a=qh(r),i=o.type||"image/png";return{data:a,mimeType:i,displayName:t}}function Vh(e,t){e.onmessage=async n=>{let o=n.data;if(!o||o.t!=="req")return;let{id:r,method:a,params:i}=o;try{let s=t[a];if(!s)throw new Error(`No handler for ${a}`);let c=await s(i);e.postMessage({t:"res",id:r,ok:!0,result:c})}catch(s){e.postMessage({t:"res",id:r,ok:!1,error:{message:s?.message||String(s)}})}}}function Gh(){let e=window;return e.SpeechRecognition||e.webkitSpeechRecognition}function xd(e){return String(e||"").replace(/\s+/g," ").trim()}function Fx(e){let t=e.results;if(!t||typeof t.length!="number")return{finalTranscript:"",interimTranscript:""};let n=[],o=[];for(let r=0;r<t.length;r+=1){let a=t[r];if(!a||typeof a.length!="number")continue;let i=xd(String(a[0]?.transcript||""));i&&(a.isFinal?n.push(i):o.push(i))}return{finalTranscript:xd(n.join(" ")),interimTranscript:xd(o.join(" "))}}function Kh(e){let t=typeof e?.error=="string"?String(e.error||"").trim().toLowerCase():"",n=typeof e?.message=="string"?String(e.message||"").trim():"";return t==="not-allowed"||t==="service-not-allowed"?{code:"permission_denied",message:"Microphone access was blocked. Allow microphone access and try again.",recoverable:!1}:t==="audio-capture"?{code:"audio_capture",message:"No working microphone was found for voice dictation.",recoverable:!0}:t==="network"?{code:"network",message:"Network issues interrupted browser dictation.",recoverable:!0}:t==="no-speech"?{code:"no_speech",message:"No speech was detected.",recoverable:!0}:t==="aborted"?{code:"aborted",message:"Voice dictation was interrupted.",recoverable:!0}:{code:"unknown",message:n||"Voice dictation stopped unexpectedly.",recoverable:!0}}function Xh(e={}){let t=null,n=!1,o=!1;function r(){t&&(t.onstart=null,t.onresult=null,t.onerror=null,t.onend=null,t.onspeechstart=null,t.onspeechend=null,t=null)}function a(i){let s=Gh();if(!s)return null;let c=new s;return c.continuous=!0,c.interimResults=!0,c.maxAlternatives=1,c.lang=String(i||navigator.language||"en-US").trim()||"en-US",c.onstart=()=>{e.onStart?.()},c.onresult=d=>{e.onResult?.(Fx(d))},c.onspeechstart=()=>{e.onSpeechStart?.()},c.onspeechend=()=>{e.onSpeechEnd?.()},c.onerror=d=>{e.onError?.(Kh(d))},c.onend=()=>{let d=o;o=!1,r(),e.onEnd?.({requested:d})},c}return{isSupported(){return!!Gh()},start(i){if(n||t)return;let s=a(i?.language);if(!s){e.onError?.({code:"unsupported",message:"Voice dictation is not available in this browser.",recoverable:!1});return}t=s,o=!1;try{t.start()}catch(c){r(),e.onError?.(Kh(c)),e.onEnd?.({requested:!1})}},stop(){if(t){o=!0;try{t.stop()}catch{r(),e.onEnd?.({requested:!0})}}},dispose(){if(n=!0,o=!0,!t)return;let i=t;r();try{i.abort?.()}catch{}}}}var zx="Rover",jx="https://www.rtrvr.ai/rover/mascot.mp4",qx="https://www.rtrvr.ai/rover/mascot.webm",Ja=1200,Wx=1200,$x=1200,ss=25,Vx=4,Yh=12,Gx=800,Kx=2600,Xx=800,Yx=5e3,Qh=5e3,Jh=6e4,Qx=3,Jx=160,Zx=460,eT=680,Ya=360,Qa=520,cl=720,sa=16,ig=8,sg=16,tT=16,nT=16,oT=[.52,.72,1],rT=[.56,.72,.88],aT=280,iT=360;function cg(e){try{return`${e}-${crypto.randomUUID()}`}catch{return`${e}-${Date.now()}-${Math.floor(Math.random()*1e5)}`}}function Td(e){try{return new Date(e).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}catch{return""}}function sT(e){return e.status?e.status:e.kind==="tool_start"||e.kind==="plan"||e.kind==="thought"?"pending":e.kind==="tool_result"?"success":e.kind==="error"?"error":"info"}function cT(e){let t=String(e.title||"").trim().toLowerCase();return t.startsWith("running ")?`tool:${t.replace(/^running\s+/,"").trim()}`:t.endsWith(" completed")?`tool:${t.replace(/\s+completed$/,"").trim()}`:t==="run started"||t==="run resumed"||t==="run completed"?"run":e.kind==="status"?`status:${t||"status"}`:e.id||cg("trace")}function Mt(e){return String(e||"").trim()}function lT(e){return String(e||"").trim().replace(/[^a-zA-Z0-9-]/g,"").slice(0,48)||void 0}function lg(e){let t=Number(e);return Number.isFinite(t)?Math.max(Xx,Math.min(Yx,Math.trunc(t))):Kx}function Zh(e){if(!e||typeof e!="object")return;let t={};typeof e.enabled=="boolean"&&(t.enabled=e.enabled);let n=lT(e.language);return n&&(t.language=n),e.autoStopMs!==void 0&&(t.autoStopMs=lg(e.autoStopMs)),Object.keys(t).length?t:void 0}function as(){return{code:"no_speech",message:"No speech was detected.",recoverable:!0}}function eg(e){return String(e||"").replace(/\s+/g," ").trim()}function uT(e,t,n){return[String(e||"").trim(),eg(t),eg(n)].filter(Boolean).join(" ")}function Er(e,t,n){return Math.max(t,Math.min(n,e))}function dT(){return`rover:panel-layout:${String(window.location.hostname||"default").trim().replace(/[^a-zA-Z0-9:_-]/g,"").slice(0,96)||"default"}`}function fT(e){try{let t=localStorage.getItem(e);if(!t)return{};let n=JSON.parse(t);return!n||typeof n!="object"?{}:n}catch{return{}}}function tg(e,t){try{localStorage.setItem(e,JSON.stringify(t))}catch{}}function ng(){let e=document.documentElement,t=window.visualViewport,n=Math.max(320,Math.round(t?.width??window.innerWidth??e.clientWidth??0)),o=Math.max(320,Math.round(t?.height??window.innerHeight??e.clientHeight??0)),r=n>=o?"landscape":"portrait",a=n<=640?"phone":n<=1023?"tablet":"desktop",i=a==="desktop"?"desktop":`${a}-${r}`,s=t?Math.max(0,Math.round((window.innerHeight||o)-(t.height+t.offsetTop))):0;return{width:n,height:o,layout:a,orientation:r,storageKey:i,keyboardInset:s}}function is(e,t){let n=Math.max(Ya,Math.min(cl,t.width-sa)),o=Math.max(Qa,t.height-sa);return{width:Er(Math.round(e.width),Ya,n),height:Er(Math.round(e.height),Qa,o)}}function Xa(e){return is({width:Zx,height:eT},e)}function og(e,t){if(!e||typeof e!="object")return;let n=Number(e.width),o=Number(e.height);if(!(!Number.isFinite(n)||!Number.isFinite(o)))return is({width:n,height:o},t)}function rg(e){let t=Number(e);if(Number.isInteger(t)&&!(t<0||t>2))return t}function ag(e){let t=e.layout==="tablet"?rT:oT,n=e.layout==="tablet"?iT:aT,o=e.layout==="tablet"?sg:ig,r=e.layout==="tablet"?nT:tT,a=Math.max(n,Math.round(e.height-o-r));return t.map((i,s)=>s===t.length-1?a:Er(Math.round((e.height-o)*i),Math.min(n,a),a))}function mT(e,t){let n=0,o=Number.POSITIVE_INFINITY;for(let r=0;r<t.length;r+=1){let a=Math.abs(t[r]-e);a<o&&(n=r,o=a)}return n}function pT(e){let t=String(e||"").trim();return t?t.slice(0,64):zx}function hT(e){let t=String(e||"").trim();return t?t[0].toUpperCase():"R"}function gT(e){return String(e||"").replace(/[^a-zA-Z0-9]/g,"").slice(0,3).toUpperCase()||"RVR"}function ug(e){let t=Mt(e),n=/^(Analyze|Route|Execute|Verify|Complete):\s*(.*)$/i.exec(t);if(!n)return{plainTitle:t};let o=n[1].toLowerCase(),r=Mt(n[2]||t);return{stage:o,plainTitle:r||t}}function bT(e){let t=(e.title||"").toLowerCase();if(t==="run started"||t==="run resumed"||t==="run completed"||t==="started new task"||t==="execution completed")return"detail";if(e.kind==="status"){let n=ug(e.title||"");if(n.stage==="analyze"||n.stage==="route"||n.stage==="complete")return"detail"}return"primary"}function _d(e,t){let n=/\[([^\]]+)\]\((https?:\/\/[^\s)]+)\)|\*\*(.+?)\*\*/g,o=0,r;for(;(r=n.exec(t))!==null;){if(r.index>o&&e.appendChild(document.createTextNode(t.slice(o,r.index))),r[1]&&r[2]){let a=document.createElement("a");a.className="rvLink",a.href=r[2],a.target="_blank",a.rel="noopener noreferrer",a.textContent=r[1],e.appendChild(a)}else if(r[3]){let a=document.createElement("strong");a.textContent=r[3],e.appendChild(a)}o=r.index+r[0].length}o<t.length&&e.appendChild(document.createTextNode(t.slice(o)))}function Ir(e){let t=document.createDocumentFragment(),n=e.split(`
11
- `),o=null;for(let r of n){let a=r.trim();if(!a){o&&(t.appendChild(o),o=null);continue}if(a==="---"){o&&(t.appendChild(o),o=null);let c=document.createElement("hr");c.className="rvSep",t.appendChild(c);continue}if(a.startsWith("- ")){o||(o=document.createElement("ul"),o.className="rvList");let c=document.createElement("li");_d(c,a.slice(2)),o.appendChild(c);continue}if(o&&(t.appendChild(o),o=null),/^Step \d+/i.test(a)){let c=document.createElement("div");c.className="rvStepHeader",c.textContent=a,t.appendChild(c);continue}if(a.startsWith("[error] ")){let c=document.createElement("div");c.className="rvError",c.textContent=a.slice(8),t.appendChild(c);continue}if(a.startsWith("[next] ")){let c=document.createElement("div");c.className="rvNext",c.textContent=a.slice(7),t.appendChild(c);continue}let i=a.match(/^\*\*(.+?):\*\*\s*(.*)$/);if(i){let c=document.createElement("div");c.className="rvKv";let d=document.createElement("span");d.className="rvKvLabel",d.textContent=i[1];let f=document.createElement("span");f.className="rvKvValue",_d(f,i[2]),c.appendChild(d),c.appendChild(f),t.appendChild(c);continue}let s=document.createElement("div");s.className="rvLine",_d(s,a),t.appendChild(s)}return o&&t.appendChild(o),t}function ul(e,t){let n=document.createElement("div");if(n.className="expandableWrap",e.length<=t)return n.appendChild(Ir(e)),n;let o=e.split(`
8
+ `)||(a+=c.trimEnd())}if(Qc(e,!1),Yc(e)?Jc(e).endsWith(px+`
9
+ `)&&Qc(e,!1):Qc(e,!1),Yc(e)){let c=Jc(e);c.trim()!==""&&!c.startsWith(`
10
+ `)&&(a+=c)}vh(e);let i=sd(e).trim(),s=a.trim()+i;return s.trim()?s:r()}catch{return r()}}async function kx(e,t){let n="",o;Eh(e,e.defaultView||window);let r=Ut(t?.deadlineEpochMs);try{let a=Math.max(250,Math.min(1500,Math.floor(r*.45))),i=await Ga(yx(e),a,e);if(!(i.ok&&i.value))throw new Error("google_sheet_copy_failed");let c=Ut(t?.deadlineEpochMs),d=Math.max(250,Math.min(2500,Math.floor(c*.55)));if(n=await vx(d,e),!n.trim())throw new Error("google_sheet_empty_clipboard")}catch(a){o=a instanceof Error?a.message:String(a)}return{content:n,contentType:Zu,error:o}}function Eh(e,t){try{t?.focus?.()}catch{}try{e?.body?.focus?.()}catch{}}function cd(e,t){let o=e.defaultView?.KeyboardEvent||KeyboardEvent,r=new o("keydown",{bubbles:!0,cancelable:!0,...t}),a=e.activeElement;(a&&a.ownerDocument===e?a:e).dispatchEvent(r)}async function yx(e){try{if(Eh(e,e.defaultView||window),e.hidden||!e.hasFocus())return!1;cd(e,{key:"Escape",code:"Escape"}),await $t(150,e);let t=e.querySelector(".grid-container")||wh(e,".grid-container"),n=e.querySelector(".grid4-inner-container:last-child")||wh(e,".grid4-inner-container:last-child");if(n){try{n.focus()}catch{}await $t(100,e)}else if(t){try{t.focus?.()}catch{}await $t(80,e)}let r=(typeof navigator<"u"?String(navigator.platform||""):"").toUpperCase().indexOf("MAC")>=0;cd(e,{key:"a",code:"KeyA",ctrlKey:!r,metaKey:r}),await $t(200,e),cd(e,{key:"c",code:"KeyC",ctrlKey:!r,metaKey:r}),await $t(200,e);try{e.execCommand("copy")}catch{}return!0}catch{return!1}}async function vx(e,t){let n=Math.max(250,Math.min(5e3,Math.floor(e)));if(navigator?.clipboard?.readText){let a=await Ga(navigator.clipboard.readText(),n,t);if(a.ok)return a.value||""}let o=t.createElement("textarea");o.style.position="fixed",o.style.opacity="0",o.style.pointerEvents="none",o.style.left="-9999px",o.style.top="0",t.body?.appendChild(o),o.focus();try{t.execCommand("paste")}catch{}let r=o.value||"";return o.remove(),r}function wh(e,t){let n=Zc(e);for(let s of n)try{let c=s.querySelector(t);if(c)return c}catch{}let o=1e5,r=0,a=(s,c)=>{if(!c)return;let d=c.children;if(d)for(let f=0;f<d.length;f++)s.push(d[f])},i=[];for(let s of n)try{a(i,s.documentElement??s.body??null)}catch{}for(;i.length&&r<o;){let s=i.pop();r++;try{if(s.matches(t))return s}catch{}a(i,s);let c=s.shadowRoot;if(c&&a(i,c),String(s.tagName).toUpperCase()==="IFRAME")try{let f=s.contentDocument;f&&a(i,f.documentElement??f.body??null)}catch{}}return null}async function wx(e,t){let n=t?.profile??"light",o=!e.hidden,r=Math.max(0,Math.min(t?.timeBudgetMs??(n==="light"?1600:2800),3e3));if(r<=0)return!1;let a=Date.now(),i=()=>r-(Date.now()-a),s=t?.delayMs??(n==="light"?220:280),c=t?.finalWaitMs??(n==="light"?350:900),d=o?s:0,f=o?c:0,u=t?.amount,b=t?.maxSteps??(n==="light"?8:18),p=t?.maxDistancePx??(n==="light"?12e3:3e4),g=null;try{let O=await xh(e,{action:"detectPrimary"});if(O?.selector){let H=xx(e,O.selector);H&&(g=H)}let M=O?.metrics;if(M&&typeof M.scrollHeight=="number"&&typeof M.clientHeight=="number"){let H=Math.max(0,M.scrollHeight-M.clientHeight);p=Math.min(p,H||p),H<1500?b=Math.min(b,2):H<4e3?b=Math.min(b,4):H<1e4&&(b=Math.min(b,6))}}catch{}if(g||(g=e.scrollingElement||e.documentElement||e.body),!g)return!1;let y=0,I=null,R=0;for(let O=0;O<b&&!(i()<=0);O++){let M=null;try{M=await xh(e,{action:"scrollBy",direction:_t.DOWN,options:{amount:u,behavior:"auto",isTabActive:o}})}catch{}if(!M||!M.success){let N=e.defaultView||window;M=Xc(g,e,N,_t.DOWN,u),R=2}if(!M?.success)break;let H=M.scrollTop??I??0;if(I!==null){let N=Math.max(0,H-I);y+=N,R=N===0?R+1:0}if(I=H,M.isAtBottom||R>=2||y>=p)break;if(d>0&&O<b-1){let N=Math.min(d,Math.max(0,i()));if(N<=0)break;await $t(N,e)}}if(f>0){let O=Math.min(f,Math.max(0,i()));O>0&&await $t(O,e)}if(i()>80)try{let O=e.scrollingElement||e.documentElement||e.body,M=e.defaultView||window,H=g===e.documentElement||g===e.body||g===O?O:g;if(H){let N=H===O?M.innerHeight:H.clientHeight||M.innerHeight,Y=Math.max(0,H.scrollHeight-N);H.scrollTop=Y}}catch{}return!0}function xx(e,t){try{return e.querySelector(t)}catch{return null}}async function xh(e,t){let n=e.defaultView||window,o=n.__RTRVR_INTERNAL_KEY__||"__RTRVR_INTERNAL__",i=(n[o]?.scroll||n.__RTRVR_SCROLL_API__)?.execute;return typeof i!="function"?null:i(t)}async function Tx(e,t){let n=e.defaultView||window,o=n.__RTRVR_INTERNAL_KEY__||"__RTRVR_INTERNAL__",a=n[o]?.flushScan;if(typeof a!="function"){try{n.rtrvrAIMarkInteractiveElements?.()}catch{}return}let i=Date.now()+Math.max(100,Math.floor(t.totalBudgetMs)),s=0;for(;s<t.maxPasses&&Ut(i)>0;){let c=Math.max(50,Math.min(t.budgetMs,Ut(i)));try{await a({mode:t.mode??"full",includeShadow:!0,includeSameOriginIframes:!0,budgetMs:c,deadlineEpochMs:i})}catch{break}if(Th(e)===0)break;s++}if(Th(e)>0&&Ut(i)>50){let c=Math.min(120,Ut(i));try{await a({mode:"priority",includeShadow:!0,includeSameOriginIframes:!0,budgetMs:c,deadlineEpochMs:i})}catch{}}}function Th(e){let t=e.documentElement;if(!t)return 0;let n=t.getAttribute(Zr);if(!n)return 0;let o=Number.parseInt(n,10);return Number.isFinite(o)&&o>0?o:0}function _x(e){let t=Ix(e.URL||"");if(!t?.sheetId)return;let n=Ex(e),o=n?.title||"Sheet1";return{sheetId:t.sheetId,sheetTitle:e.title||n?.title||void 0,sheetTab:o,sheetTabId:t.sheetTabId??n?.id,sheetTabs:void 0}}function Ix(e){if(!e)return null;try{let t=new URL(e);if(t.hostname!=="docs.google.com")return null;let n=t.pathname.split("/"),o=n.indexOf("spreadsheets"),r=n.indexOf("d");if(o===-1||r===-1||r!==o+1||n.length<=r+1)return null;let a=n[r+1];if(!a||!/^[a-zA-Z0-9_-]+$/.test(a))return null;let i;return t.hash&&t.hash.includes("gid=")&&(i=new URLSearchParams(t.hash.substring(1)).get("gid")??void 0),!i&&t.searchParams.has("gid")&&(i=t.searchParams.get("gid")??void 0),i&&!/^\\d+$/.test(i)&&(i=void 0),{sheetId:a,sheetTabId:i?parseInt(i,10):0}}catch{return null}}function Ex(e){try{let t=e.querySelector('[role="tab"][aria-selected="true"]')||e.querySelector(".docs-sheet-tab-active")||e.querySelector('.docs-sheet-tab[aria-selected="true"]');if(!t)return null;let n=t.getAttribute("aria-label")||t.textContent?.trim()||void 0,o=t.getAttribute("data-sheet-id")||t.getAttribute("data-tab-id")||void 0,r=o&&/^\d+$/.test(o)?Number(o):void 0;return{title:n,id:r}}catch{return null}}var Jn;(function(e){e[e.Native=1]="Native",e[e.Inline=2]="Inline",e[e.React=4]="React",e[e.Vue=8]="Vue",e[e.Angular=16]="Angular",e[e.Svelte=32]="Svelte",e[e.JQuery=64]="JQuery",e[e.Delegated=128]="Delegated",e[e.Other=256]="Other",e[e.Inferred=512]="Inferred"})(Jn||(Jn={}));var Sx={native:Jn.Native,inline:Jn.Inline,react:Jn.React,vue:Jn.Vue,angular:Jn.Angular,svelte:Jn.Svelte,jquery:Jn.JQuery,delegated:Jn.Delegated,other:Jn.Other};function Sh(){if(typeof window>"u")return;let e=window,t="__RTRVR_MAIN_WORLD_INITIALIZED__",n=new WeakMap,o={frameworks:new Set,reactRoots:new WeakSet,vueRoots:new WeakSet,angularRoots:new WeakSet,svelteRoots:new WeakSet,jqueryRoots:new WeakSet},r=new WeakMap,a=new WeakMap,i=new Set,s=100,c=50,d=0,f=0,u=new WeakSet,b="__RTRVR_ET_HOOKED__",p="__RTRVR_ATTACH_SHADOW_HOOKED__";function g(h){if(h&&!u.has(h)){u.add(h);try{y(h)}catch{}try{I(h)}catch{}}}function y(h){try{let A=h.EventTarget;if(!A?.prototype||A.prototype[b])return;A.prototype[b]=!0;let D=A.prototype.addEventListener,U=A.prototype.removeEventListener;A.prototype.addEventListener=function($,X,te){try{oo(X)||mn(this,$,te)}catch{}return D.call(this,$,X,te)},A.prototype.removeEventListener=function($,X,te){try{hr(this,$,te)}catch{}return U.call(this,$,X,te)};try{let $=Function.prototype.toString;A.prototype.addEventListener.toString=()=>$.call(D),A.prototype.removeEventListener.toString=()=>$.call(U)}catch{}}catch{}}function I(h){try{let A=h.Element;if(!A?.prototype?.attachShadow||A.prototype[p])return;A.prototype[p]=!0;let D=A.prototype.attachShadow;A.prototype.attachShadow=function(U){let $=D.call(this,U);try{Kr.set(this,$)}catch{}try{ot($)}catch{}return $};try{let U=Function.prototype.toString;A.prototype.attachShadow.toString=()=>U.call(D)}catch{}}catch{}}function R(h){let D=n.get(h)?.listenerTypeMasks;if(D&&D.size){let U=[];for(let $ of D.keys()){let X=nr[$];X&&U.push(X)}return U}return qi(h)}let O=["onclick","ondblclick","ondoubleclick","onmousedown","onmouseup","role","contenteditable","draggable","tabindex","disabled","type","aria-haspopup","aria-expanded","data-click","data-action","data-handler","data-toggle","data-target"],M=0,H=new Set,N=null,Y=!1,ae=6,re=["click","input","change","keydown","keyup","pointerdown","pointerup","submit","focus","blur"],le=["mouseenter","mouseleave","mouseover","mouseout","mousedown","mouseup","wheel","scroll","dragstart","drop","touchstart","touchend"];if(e[t]){typeof e.rtrvrAISetObserverPaused!="function"&&(e.rtrvrAISetObserverPaused=()=>!1),typeof e.rtrvrAIClearObserverPause!="function"&&(e.rtrvrAIClearObserverPause=()=>!1),typeof e.rtrvrAIIsObserverPaused!="function"&&(e.rtrvrAIIsObserverPaused=()=>!!xt()?.hidden);return}e[t]=!0;let Me={onclick:"click",ondblclick:"dblclick",ondoubleclick:"doubleclick",onmousedown:"mousedown",onmouseup:"mouseup",onmouseenter:"mouseenter",onmouseleave:"mouseleave",onmousemove:"mousemove",onmouseover:"mouseover",onmouseout:"mouseout",oncontextmenu:"contextmenu",onauxclick:"auxclick",onkeydown:"keydown",onkeyup:"keyup",onkeypress:"keypress",oninput:"input",onchange:"change",onsubmit:"submit",onreset:"reset",onselect:"select",onsearch:"search",oninvalid:"invalid",onbeforeinput:"beforeinput",onfocus:"focus",onblur:"blur",onfocusin:"focusin",onfocusout:"focusout",ontouchstart:"touchstart",ontouchend:"touchend",ontouchmove:"touchmove",ontouchcancel:"touchcancel",onpointerdown:"pointerdown",onpointerup:"pointerup",onpointermove:"pointermove",onpointerenter:"pointerenter",onpointerleave:"pointerleave",onpointercancel:"pointercancel",onpointerover:"pointerover",ondragstart:"dragstart",ondragend:"dragend",ondrag:"drag",ondragenter:"dragenter",ondragleave:"dragleave",ondragover:"dragover",ondrop:"drop",oncopy:"copy",oncut:"cut",onpaste:"paste",onscroll:"scroll",onwheel:"wheel",onplay:"play",onpause:"pause",onended:"ended",onvolumechange:"volumechange",onseeking:"seeking",onseeked:"seeked",onanimationstart:"animationstart",onanimationend:"animationend",ontransitionend:"transitionend",ontransitionstart:"transitionstart",onresize:"resize",ontoggle:"toggle",onfullscreenchange:"fullscreenchange",onload:"load",onerror:"error",onabort:"abort",onbeforeunload:"beforeunload",onunload:"unload",onhashchange:"hashchange",onpopstate:"popstate",onstorage:"storage",onmessage:"message"};function ve(h){return h?String(h).split(".")[0].toLowerCase():""}let we=["data-click","data-action","data-event","data-handler","data-on-click","data-onclick","data-tap","data-press","data-toggle","data-target"],Ne=0,ft=null,Ae=new MessageChannel,lt=[];Ae.port1.onmessage=()=>{let h=lt.shift();h&&h()};function Xe(){return Date.now()}function Ge(h){return!h||!Number.isFinite(h)?Number.POSITIVE_INFINITY:Math.max(0,h-Xe())}let zt=8,St=new MessageChannel,An=!1;function Ie(){if(!An){An=!0;try{St.port2.postMessage(0)}catch{}}}function Gt(h){let A=h.values().next();if(A.done)return null;let D=A.value;return h.delete(D),D}function ut(){return new Promise(h=>{lt.push(h),Ae.port2.postMessage(0)})}let jt=!1;function Rt(){if(!jt)try{let h=e.jQuery;h&&h.fn&&(io(h),jt=!0,kt("jquery"))}catch{}}function no(h,A){for(let D=A.lastElementChild;D;D=D.previousElementSibling)h.push(D)}function Cn(h,A,D){if(D)try{let U=br(A);U&&h.push(U)}catch{}}function Zo(h,A,D){if(D&&ji(A))try{let U=A.contentWindow||null;U&&g(U);let $=U?.document?.documentElement;$&&h.push($)}catch{}}let Yt=new WeakSet;function Qt(h){h&&(typeof h=="function"||typeof h=="object")&&Yt.add(h)}function oo(h){return!!h&&(typeof h=="function"||typeof h=="object")&&Yt.has(h)}St.port1.onmessage=()=>{if(ct()){H.clear(),i.clear(),M=0,Ue(),An=!1;return}An=!1,Zt(500);let h=performance.now();for(;H.size&&performance.now()-h<zt;){let A=Gt(H);if(!A)break;try{fe(A)}catch{}finally{M=Math.max(0,M-1)}}for(;i.size&&performance.now()-h<zt;){let A=Gt(i);if(!A)break;try{fn(A)}catch{}}Ue(),(H.size||i.size)&&Ie()};function Ue(){try{let h=xt()?.documentElement;if(!h)return;h.setAttribute(Zr,String(M))}catch{}}function Jt(h){let A=n.get(h);return A||(A={frameworks:new Set,listeners:new Map},n.set(h,A)),A}function ro(h){ct()||(i.add(h),i.size>2e3&&Zt(1500),Ie())}function vn(h){ct()||H.has(h)||(H.add(h),M++,Ue(),Ie(),H.size>2e3&&Zt(1500))}function Zt(h=1500){let A=0;for(let D of H){if(A>=h)break;A++,D.isConnected||(H.delete(D),M=Math.max(0,M-1))}A=0;for(let D of i){if(A>=h)break;A++,D.isConnected||i.delete(D)}Ue()}let tt=null;function Kt(h,A,D){return`${h}|${A?1:0}|${D?1:0}`}function en(h){let A=h.tagName;if(A==="A"||A==="BUTTON"||A==="INPUT"||A==="SELECT"||A==="TEXTAREA"||A==="SUMMARY"||h.hasAttribute("role")||h.hasAttribute("tabindex")||h.hasAttribute("contenteditable")||h.hasAttribute("onclick")||h.getAttributeNames().some(D=>D.startsWith("on")))return!0;for(let D of we)if(h.hasAttribute(D))return!0;return!!(h.hasAttribute("aria-haspopup")||h.hasAttribute("aria-expanded"))}function Mn(h){let A=_e(h);if(!Pt(h,A))return!1;let D=h.tagName;if(D!=="DIV"&&D!=="SPAN"&&D!=="LI"&&D!=="SECTION"&&D!=="ARTICLE"&&D!=="P")return!1;let U=h;if(U.__ngContext__||U.__svelte__||U.__vue__||U._vnode||U.__reactFiber$||U.__reactProps$)return!0;let $=0;for(let X in U){if(++$>30)break;if(X.startsWith("__react")||X.includes("reactFiber")||X.includes("reactProps"))return!0}return!1}function Nn(){let h=xt()?.documentElement;return h?o.frameworks.size>0||h.hasAttribute("rtrvr-react")||h.hasAttribute("rtrvr-vue")||h.hasAttribute("rtrvr-angular")||h.hasAttribute("rtrvr-svelte")||h.hasAttribute("rtrvr-jquery"):!1}function po(h){if(ct())return;let A=performance.now();for(;H.size&&performance.now()-A<h;){let D=Gt(H);if(!D)break;try{fe(D)}catch{}finally{M=Math.max(0,M-1)}}for(;i.size&&performance.now()-A<h;){let D=Gt(i);if(!D)break;try{fn(D)}catch{}}}async function $n(h={}){if(ct())return H.clear(),i.clear(),M=0,Ue(),{revision:++Ne,scanned:0,durationMs:0,done:!0,remaining:0};Zt(3e3),Rt(),kr();let A=h.mode??"full",D=h.includeShadow??!0,U=h.includeSameOriginIframes??!0,$=Math.max(50,Math.min(h.budgetMs??2500,15e3)),X=h.deadlineEpochMs,te=Math.max(0,Math.min($,Ge(X))),be=Kt(A,D,U);if(te<=0){let on=(tt?.stack?.length??0)+H.size+i.size;return{revision:++Ne,scanned:0,durationMs:0,done:on===0,remaining:on}}if((!tt||tt.optsKey!==be)&&Ge(X)>30&&await xe({budgetMs:18,deadlineEpochMs:X}),A==="priority"){let on=performance.now(),ze=0;for(;H.size&&performance.now()-on<=te&&!(X&&Ge(X)<=0);){let et=Gt(H);if(!et)break;try{fe(et)}catch{}ze++,M=Math.max(0,M-1)}for(;i.size&&performance.now()-on<=te&&!(X&&Ge(X)<=0);){let et=Gt(i);if(!et)break;try{fn(et)}catch{}}return Ue(),{revision:++Ne,scanned:ze,durationMs:performance.now()-on,done:H.size===0&&i.size===0,remaining:H.size+i.size}}if(!tt||tt.optsKey!==be){let on=xt()?.documentElement;tt={optsKey:be,stack:on?[on]:[],scannedTotal:0}}let Te=performance.now(),Ze=0;for(M++,Ue();tt.stack.length&&!(X&&Ge(X)<=0);){let on=tt.stack.pop();if(Yn(on)){let et=on.children;for(let rn=et.length-1;rn>=0;rn--)tt.stack.push(et[rn]);continue}let ze=on;if(!(!ze||ze.nodeType!==1)&&!(ze.tagName==="SCRIPT"||ze.tagName==="STYLE"||ze.tagName==="META"||ze.tagName==="NOSCRIPT")){try{(en(ze)||Nn()&&Mn(ze))&&fe(ze)}catch{}try{fn(ze)}catch{}if(H.delete(ze)&&(M=Math.max(0,M-1)),i.delete(ze),Ze++,tt.scannedTotal++,D)try{let et=br(ze);et&&(ot(et),tt.stack.push(et))}catch{}if(U&&ji(ze))try{let et=ze.contentWindow||null;et&&g(et);let rn=et?.document,vt=rn?.documentElement;rn&&vt&&(ne(rn),tt.stack.push(vt))}catch{}for(let et=ze.lastElementChild;et;et=et.previousElementSibling)tt.stack.push(et);Ze%800===0&&Ge(X)>20&&await ut()}}let rt=Math.max(0,te-(performance.now()-Te)),Dt=Ge(X);po(Math.min(250,rt,Dt)),M=Math.max(0,M-1),Ue();let At=tt.stack.length===0,Ye=tt.stack.length;return At&&(tt=null),{revision:++Ne,scanned:Ze,durationMs:performance.now()-Te,done:At,remaining:Ye}}async function tn(h={}){return ft||(ft=$n(h).finally(()=>{ft=null}),ft)}e.rtrvrAIFlushScan=tn;let ao="__RTRVR_INTERNAL__";Object(window).__RTRVR_INTERNAL_KEY__=ao;let un=e[ao],dn=un&&typeof un=="object"?un:{};if(!un)try{Object.defineProperty(e,ao,{value:dn,writable:!1,configurable:!1,enumerable:!1})}catch{}try{Object.defineProperty(dn,"flushScan",{value:tn,writable:!1,configurable:!1,enumerable:!1})}catch{}function he(h,A){let D=Jt(h),U=ve(A.type);if(!U)return;let $=!1,X=D.listeners.get(U);X||(X=[],D.listeners.set(U,X),$=!0);let te=X.find(Ce=>Ce.source===A.source&&!!Ce.inferred==!!A.inferred);if(te){let Ce=!!te.capture,Te=!!te.passive,Ze=!!te.once;te.capture=te.capture||A.capture,te.passive=te.passive||A.passive,te.once=te.once||A.once,(Ce!==!!te.capture||Te!==!!te.passive||Ze!==!!te.once)&&($=!0)}else X.push({...A,type:U}),$=!0;let be=Ke[U];if(be!==void 0){D.listenerTypeMasks||(D.listenerTypeMasks=new Map);let Ce=0,Te=Sx[A.source];Ce|=Te!==void 0?Te:Jn.Other,A.inferred&&(Ce|=Jn.Inferred);let Ze=D.listenerTypeMasks.get(be)||0,rt=Ze|Ce;rt!==Ze&&(D.listenerTypeMasks.set(be,rt),$=!0)}$&&(D.role=void 0,ro(h))}function Ln(h){let A=h.listenerTypeMasks;return!A||A.size===0?null:[...A.entries()].sort((U,$)=>U[0]-$[0]).map(([U,$])=>`${U}~${($||0).toString(36)}`).join(",")}function ge(h,A){let D=Jt(h);D.frameworks.has(A)||(D.frameworks.add(A),ro(h))}function kt(h){o.frameworks.has(h)||(o.frameworks.add(h),xt()?.documentElement?.setAttribute(`rtrvr-${h}`,"1"))}function fn(h){let A=n.get(h);if(!A)return;i.delete(h);let D=Ln(A);D?D!==A.lastListenersSerialized&&(h.setAttribute(_r,D),A.lastListenersSerialized=D):A.lastListenersSerialized&&(h.removeAttribute(_r),A.lastListenersSerialized=void 0);let U=_e(h);if(Pt(h,U))if(A.role===void 0&&(A.role=er(h)),A.role){let $=Ua[A.role],X=typeof $=="number"?String($):`s:${A.role}`;X!==A.lastRoleSerialized&&(h.setAttribute(rr,X),A.lastRoleSerialized=X)}else(A.lastRoleSerialized||h.hasAttribute(rr))&&(h.removeAttribute(rr),A.lastRoleSerialized=void 0)}function ht(h){let A=[],D=h;for(;D;)A.push(D),D=D.parentNode||D.host;return A}function Gr(h){let A=h.tagName.toLowerCase(),D=h.getAttribute("role"),U=D?D.toLowerCase().trim():"";if(U&&or.has(U)||A==="button"||(A==="a"||A==="area")&&h.hasAttribute("href"))return!0;if(A==="input")return h.type?.toLowerCase()!=="hidden";if(A==="select"||A==="textarea"||(A==="video"||A==="audio")&&h.hasAttribute("controls")||h.isContentEditable||h.hasAttribute("contenteditable"))return!0;let $=h.getAttribute("tabindex");return!!($!==null&&!Number.isNaN(Number.parseInt($,10))&&(R(h).some(be=>Mc.has(be))||h.getAttributeNames().some(be=>be.startsWith("on"))))}function wn(h,A=10){let D=[];for(let U=0;U<h.children.length;U++)D.push({node:h.children[U],depth:1});for(;D.length;){let{node:U,depth:$}=D.pop();if(Gr(U))return!0;if(!($>=A))for(let X=0;X<U.children.length;X++)D.push({node:U.children[X],depth:$+1})}return!1}function er(h){let A=h.tagName.toLowerCase(),D=h.getAttribute("role"),U=D?D.toLowerCase().trim():"",$=h.type?.toLowerCase();if(U&&or.has(U))return U;if(U&&$i.has(U))return null;if(A==="a"&&h.hasAttribute("href"))return"link";if(A==="button")return"button";if(A==="input")return $==="hidden"?null:$==="checkbox"?"checkbox":$==="radio"?"radio":$==="range"?"slider":$==="number"?"spinbutton":$==="search"?"searchbox":["button","submit","reset","image","file"].includes($)?"button":h.hasAttribute("list")?"combobox":"textbox";if(A==="textarea")return"textbox";if(A==="select"){let rt=h;return rt.multiple||rt.size&&rt.size>1?"listbox":"combobox"}if(A==="option")return"option";if(A==="form")return"form";if(A==="video"||A==="audio"){let rt=qi(h);return h.hasAttribute("controls")||rt.length>0?"media":null}if(h.isContentEditable||h.hasAttribute("contenteditable"))return"textbox";let X=R(h);if(!X.length)return null;let te=!1,be=!1,Ce=!1;for(let rt=0;rt<X.length;rt++){let Dt=X[rt];!te&&Mc.has(Dt)&&(te=!0),!be&&Pu.has(Dt)&&(be=!0),!Ce&&Bu.has(Dt)&&(Ce=!0)}if(!te&&!be&&!Ce)return null;let Te=h.getAttribute("tabindex"),Ze=Te!==null&&!Number.isNaN(Number.parseInt(Te,10));if(te&&(Vu(h)||h.getAttribute("href")||h.closest("a[href]")))return"link";if(be){if(h.isContentEditable||h.hasAttribute("contenteditable"))return"textbox";if(U==="textbox"||U==="searchbox"||U==="combobox"||U==="spinbutton")return U;if(!te&&Ze)return"textbox"}if(te){let rt=h.getAttribute("aria-checked"),Dt=h.getAttribute("aria-pressed");if(rt!==null||Dt!==null){if(U==="radio")return"radio";if(U==="menuitemradio")return"menuitemradio";if(U==="menuitemcheckbox")return"menuitemcheckbox";if(Dt!==null)return"button";if(rt!==null)return"checkbox"}if((Ze||U==="button")&&!wn(h))return"button"}return Ce?"application":null}let ho=EventTarget.prototype.addEventListener,tr=EventTarget.prototype.removeEventListener;function Wn(h){let A=!1,D,U;return typeof h=="boolean"?A=h:h&&typeof h=="object"&&(A=!!h.capture,D=h.passive,U=h.once),{capture:A,passive:D,once:U}}function Vn(h){try{let A=h;if(A?.nodeType===9&&A?.documentElement)return A;let D=A?.document;if(D&&D.nodeType===9&&D.documentElement)return D}catch{}return null}function mn(h,A,D){let U=ve(A);if(!U)return;let{capture:$,passive:X,once:te}=Wn(D),be=r.get(h);be||(be=new Map,r.set(h,be));let Ce=be.get(U);if(Ce?(Ce.count+=1,Ce.capture=Ce.capture||$,Ce.passive=Ce.passive||X):be.set(U,{count:1,capture:$,passive:X}),Qr(h))try{he(h,{type:U,source:"native",capture:$,passive:X,once:te})}catch{}let Te=Vn(h);if(Te&&(U==="click"||U==="input"||U==="keydown"))try{Te.documentElement?.setAttribute(`rtrvr-gl-${U}`,"1")}catch{}}function hr(h,A,D){let U=ve(A);if(!U)return;let $=r.get(h);if(!$)return;let X=$.get(U);X&&(X.count-=1,X.count<=0&&$.delete(U),$.size===0&&r.delete(h))}g(window);function io(h){if(!h||!h.fn)return;let A=h.fn.on,D=h.fn.off;function U(X){if(!X)return[];if(typeof X=="string")return X.split(/\s/).map(te=>ve(te)).filter(Boolean);if(typeof X=="object")try{return Object.keys(X).map(te=>ve(te)).filter(Boolean)}catch{return[]}return[]}function $(X){try{if(!X)return null;if(Qr(X))return X;let te=_e(X);return Ec(X,te)||null}catch{}return null}h.fn.on=function(X,te){let be=U(X),Ce=typeof te=="string"&&!!te;return this.each(function(){let Te=$(this);if(Te){if(Ce){let Ze=a.get(Te);Ze||(Ze=[],a.set(Te,Ze));for(let rt of be){let Dt=`${rt}::${te}`;Ze.some(At=>`${At.type}::${At.selector}`===Dt)||(Ze.push({type:rt,selector:te}),Ze.length>400&&Ze.shift())}}else for(let Ze of be)he(Te,{type:Ze,source:"jquery"});ge(Te,"jquery"),kt("jquery"),o.jqueryRoots.add(Te)}}),A.apply(this,arguments)},h.fn.off=function(){return D.apply(this,arguments)},kt("jquery")}function gr(h){we.some(D=>h.hasAttribute(D))&&(he(h,{type:"click",source:"other",inferred:!0}),(h.tagName==="INPUT"||h.tagName==="TEXTAREA")&&(he(h,{type:"input",source:"other",inferred:!0}),he(h,{type:"change",source:"other",inferred:!0})))}function Gn(h){let A=_e(h),D=Pt(h,A),U=h.getAttributeNames().some(Ce=>Ce.startsWith("on")),$=/^(button|a|input|select|textarea|summary)$/i.test(h.tagName),X=h,te=D&&(Oc(h)||!!X.isContentEditable||h.hasAttribute("contenteditable")),be=D&&!!X.draggable;if(!U&&!$&&!te&&!be){gr(h);return}for(let[Ce,Te]of Object.entries(Me))typeof h[Ce]=="function"&&he(h,{type:Te,source:"inline"});te&&(he(h,{type:"input",source:"other",inferred:!0}),he(h,{type:"keydown",source:"other",inferred:!0}),he(h,{type:"keyup",source:"other",inferred:!0}),he(h,{type:"paste",source:"other",inferred:!0})),be&&(he(h,{type:"dragstart",source:"other",inferred:!0}),he(h,{type:"dragend",source:"other",inferred:!0})),gr(h)}function m(h){if(!h.startsWith("on")||h.length<=2)return null;if(h.endsWith("Capture")){let D=h.substring(2,h.length-7);return D?{type:D.toLowerCase(),capture:!0}:null}let A=h.substring(2);return A?{type:A.toLowerCase(),capture:!1}:null}function T(h){let A=null;if(h){for(let D in h)if(D.startsWith("__react")||D.startsWith("_react")||D.includes("reactFiber")||D.includes("reactProps")||D.includes("reactInternalInstance")){A=D;break}if(A)try{let D=h[A],U=D?.memoizedProps||D?.pendingProps;if(U&&typeof U=="object"){for(let $ in U){if(typeof U[$]!="function")continue;let te=m($);te&&he(h,{type:te.type,source:"react",capture:te.capture})}Qr(D?.stateNode)&&o.reactRoots.add(D.stateNode),ge(h,"react"),kt("react")}}catch{}}}function _(h){let A=h,D=!1;if(A.__vue__){D=!0;let U=A.__vue__;U.$listeners&&Object.keys(U.$listeners).forEach($=>he(h,{type:$,source:"vue"})),U._events&&Object.keys(U._events).forEach($=>he(h,{type:$,source:"vue"})),U.$options?._parentListeners&&Object.keys(U.$options._parentListeners).forEach($=>he(h,{type:$,source:"vue"})),o.vueRoots.add(h)}if(A._vnode?.props){D=!0;let U=A._vnode.props;Object.keys(U).forEach($=>{$.startsWith("on")&&$.length>2&&he(h,{type:$.substring(2).toLowerCase(),source:"vue"})}),o.vueRoots.add(h)}D&&(ge(h,"vue"),kt("vue"))}function E(h){let A=h,D=!1;if(A.__ngContext__||h.hasAttribute("_ngcontent")||h.hasAttribute("ng-version")){D=!0,Array.from(h.attributes).forEach(U=>{if(U.name.startsWith("(")&&U.name.endsWith(")")){let $=U.name.slice(1,-1).split(".")[0];$&&he(h,{type:$,source:"angular"})}if(U.name.startsWith("on-")){let $=U.name.substring(3);$&&he(h,{type:$,source:"angular"})}if(U.name.includes(".")){let $=U.name.match(/\(([^.)]+)/);$?.[1]&&he(h,{type:$[1],source:"angular"})}});try{if(e.ng?.getComponent){let U=e.ng.getComponent(h);U&&Object.keys(U).forEach($=>{($.endsWith("Output")||$.endsWith("Emitter"))&&he(h,{type:$.replace(/(Output|Emitter)$/,"").toLowerCase(),source:"angular"})})}}catch{}}D&&(ge(h,"angular"),kt("angular"),o.angularRoots.add(h))}function v(h){let A=h,D=!1;if(A.__svelte__){D=!0,Array.from(h.attributes).forEach(U=>{if(U.name.startsWith("on:")){let $=U.name.substring(3);$&&he(h,{type:$,source:"svelte"})}});try{let U=A.__svelte__?.$$?.callbacks;U&&typeof U=="object"&&Object.keys(U).forEach($=>he(h,{type:$,source:"svelte"}))}catch{}o.svelteRoots.add(h)}D&&(ge(h,"svelte"),kt("svelte"))}function k(h,A){return h?!!r.get(h)?.has(A):!1}function x(h,A,D=96){let U=ve(A);if(!U)return!1;let $=ee(h),X=se($);if(k($,U)||k(X,U))return!0;let te=0,be=h;for(;be&&te<D;){if(be.parentElement)be=be.parentElement;else{let Ce=be.getRootNode?.();if(Yn(Ce)){if(k(Ce,U)||k(Ce.host,U))return!0;be=Ce.host}else break}if(be&&k(be,U))return!0}return!1}function S(h,A,D=128){let U=0,$=h;for(;$&&U<D;){if(A($),$.parentElement){$=$.parentElement;continue}let X=$.getRootNode?.();if(Yn(X)){$=X.host;continue}break}}function j(h){let A=_e(h);if(!Pt(h,A))return;let D=Jt(h);D.role=D.role||er(h);let U=x(h,"click"),$=x(h,"input"),X=x(h,"keydown"),be=ee(h).documentElement;if(o.frameworks.size>0||be.hasAttribute("rtrvr-react")||be.hasAttribute("rtrvr-vue")||be.hasAttribute("rtrvr-angular")||be.hasAttribute("rtrvr-svelte")||be.hasAttribute("rtrvr-jquery")||U||$||X){let Te=D.role||"other";U&&["button","link","checkbox","radio","switch","menuitem","menuitemcheckbox","menuitemradio","tab","option","treeitem","gridcell","cell","img","figure"].includes(Te)&&he(h,{type:"click",source:"delegated",inferred:!0}),["textbox","searchbox","spinbutton","code"].includes(Te)&&($&&(he(h,{type:"input",source:"delegated",inferred:!0}),he(h,{type:"change",source:"delegated",inferred:!0})),X&&he(h,{type:"keydown",source:"delegated",inferred:!0})),["combobox","listbox"].includes(Te)&&(U&&he(h,{type:"click",source:"delegated",inferred:!0}),$&&he(h,{type:"change",source:"delegated",inferred:!0})),["slider","scrollbar","progressbar","meter"].includes(Te)&&$&&he(h,{type:"input",source:"delegated",inferred:!0})}S(h,Te=>{let Ze=a.get(Te);if(Ze?.length)for(let{type:rt,selector:Dt}of Ze)try{h.matches(Dt)&&(he(h,{type:rt,source:"jquery",inferred:!0}),ge(h,"jquery"),kt("jquery"))}catch{}})}function F(h){let A=D=>{if(ct())return;let U=D,$=U.composedPath&&U.composedPath()||ht(D.target),te=h==="mousemove"||h==="pointermove"||h==="scroll"||h==="wheel"?1:Math.min($.length,ae);for(let be=0;be<te;be++){let Ce=$[be];Qr(Ce)&&he(Ce,{type:h,source:"delegated",inferred:!0})}};Qt(A);try{ho.call(document,h,A,{capture:!0,passive:!0})}catch{}}let q=!1,W=!1,G=null;function oe(){if(W)return;W=!0,re.forEach(F);let h=xt()?.documentElement;if(!h)return;let A=()=>{if(q)return;let D=h.hasAttribute("rtrvr-react")||h.hasAttribute("rtrvr-vue")||h.hasAttribute("rtrvr-angular")||h.hasAttribute("rtrvr-svelte"),U=h.hasAttribute("rtrvr-gl-click")||h.hasAttribute("rtrvr-gl-input")||h.hasAttribute("rtrvr-gl-keydown");(D||U)&&(q=!0,le.forEach(F))};A();try{G=new MutationObserver(()=>A()),G.observe(h,{attributes:!0,attributeFilter:$e})}catch{}}function fe(h){if(h.nodeType!==1)return;let A=_e(h);if(Pt(h,A)){let D=Jt(h);D.role=void 0}Gn(h),T(h),_(h),E(h),v(h),j(h),ro(h)}function De(){if(ct())return;let h=["a[href]","button","input","select","textarea","summary","details > summary",...Array.from(or).map(A=>`[role="${A}"]`),"[onclick]","[ondblclick]","[ondoubleclick]","[onmousedown]","[tabindex]","[contenteditable]",'[draggable="true"]',"[aria-haspopup]","[aria-expanded]","[data-click]","[data-action]","[data-handler]","[data-toggle]","[data-target]",".clickable",".interactive",".btn",".button"];M++,Ue();try{let A=h.join(",");xt()?.querySelectorAll(A).forEach(D=>{try{fe(D)}catch{}})}finally{M=Math.max(0,M-1),Ue()}}let ue=!1,me=[],ye=200;function He(h){if(!ct()){for(let A of h)me.push(A);ue||(ue=!0,queueMicrotask(mt))}}function mt(){ue=!1;let h=me;if(me=[],ct())return;let A=0;for(let D of h){if(A>=ye)break;for(let U of Array.from(D.addedNodes)){if(A>=ye)break;if(U.nodeType!==1)continue;let $=U;vn($),A++;let X=$.querySelectorAll?.('a,button,input,select,textarea,summary,[role],[onclick],[ondblclick],[ondoubleclick],[contenteditable],[draggable="true"],[tabindex]');if(X){let te=Math.min(X.length,50);for(let be=0;be<te;be++)vn(X[be]),A++}}if(D.type==="attributes"&&D.target.nodeType===1){let U=D.target;D.attributeName==="class"?en(U)&&vn(U):vn(U)}}}async function xe(h={}){if(ct())return;let A=xt(),D=A?.documentElement;if(!D||!(D.hasAttribute("rtrvr-react")||D.hasAttribute("rtrvr-vue")||D.hasAttribute("rtrvr-angular")||D.hasAttribute("rtrvr-svelte")))return;let $=h.deadlineEpochMs,X=Math.max(5,Math.min(h.budgetMs??12,50));if(Math.max(0,Math.min(X,Ge($)))<=0)return;let be=performance.now();M++,Ue();try{let Ce=0,Te=["div","span","li","section","article","p"];for(let Ze of Te){let rt=A.getElementsByTagName(Ze)??[];for(let Dt=0;Dt<rt.length;Dt++){if($&&Ge($)<=0)return;Ce++;let At=rt[Dt],Ye=At;(Ye.__ngContext__||Ye.__svelte__||Ye.__vue__||Ye._vnode||Mn(At))&&fe(At),Ce%250===0&&Ge($)>20&&await ut()}}}finally{M=Math.max(0,M-1),Ue()}}let Pe=new MutationObserver(He),Be=new WeakMap,We=new Set;function ot(h){let A=Be.get(h);if(A){if(We.add(A),!Y)try{A.observe(h,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[...O,"class"]})}catch{}return}if(!(d>=s))try{let D=se(h.ownerDocument).MutationObserver||MutationObserver,U=new D(He);Be.set(h,U),We.add(U),d++,Y||U.observe(h,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[...O,"class"]})}catch{}}let Je=new WeakMap,ie=new Set;function ne(h){let A=Je.get(h);if(A){if(ie.add(A),!Y)try{let D=h.documentElement;D&&A.observe(D,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[...O,"class"]})}catch{}return}if(!(f>=c))try{g(h.defaultView||null);let D=h.documentElement;if(!D)return;let U=se(h).MutationObserver||MutationObserver,$=new U(He);Je.set(h,$),ie.add($),f++,Y||$.observe(D,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[...O,"class"]})}catch{}}function de(){let h=xt()?.documentElement;h&&Pe.observe(h,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[...O,"class"]})}let $e=["rtrvr-react","rtrvr-vue","rtrvr-angular","rtrvr-svelte","rtrvr-gl-click","rtrvr-gl-input","rtrvr-gl-keydown"];function yt(){return N??!!xt()?.hidden}function ct(){return Y}function Fe(h){let A=!!h;if(Y===A)return;if(Y=A,Y){try{Pe.disconnect()}catch{}try{G?.disconnect()}catch{}for(let U of We)try{U.disconnect()}catch{}for(let U of ie)try{U.disconnect()}catch{}We.clear(),ie.clear(),H.clear(),i.clear(),M=0,Ue();return}de();let D=xt()?.documentElement;if(D&&G)try{G.observe(D,{attributes:!0,attributeFilter:$e})}catch{}De()}function nn(h){return N=typeof h=="boolean"?h:null,Fe(yt()),!0}let Kr=new WeakMap;function br(h){return h.shadowRoot||Kr.get(h)||null}try{Object.defineProperty(dn,"shadow",{value:Object.freeze({getRoot:h=>br(h)}),writable:!1,configurable:!1,enumerable:!1})}catch{}function kr(){try{(e.React||e.__REACT_DEVTOOLS_GLOBAL_HOOK__)&&kt("react"),e.Vue&&kt("vue"),e.ng&&kt("angular"),e.jQuery&&kt("jquery"),Rt()}catch{}}e.rtrvrAISetObserverPaused=function(h){return nn(!!h)},e.rtrvrAIClearObserverPause=function(){return nn(null)},e.rtrvrAIIsObserverPaused=function(){return ct()},e.rtrvrAIMarkInteractiveElements=function(){return xt()?.body?(De(),!0):!1};function yr(){let h=xt();Rt(),kr(),oe();let A=()=>{N==null&&Fe(yt())};h?.addEventListener("visibilitychange",A,{passive:!0}),Fe(yt());let D=()=>{Rt(),kr(),ct()||(de(),xe({budgetMs:20})),h?.documentElement.setAttribute(Lu,"1")};h?.readyState==="loading"?h.addEventListener("DOMContentLoaded",D,{once:!0}):D()}yr()}var el=null,Rh=!1;function ld(e){try{return e.getAttribute(_r)}catch{return null}}function Ah(e){let t=ld(e);return Jr(t)?.entries??[]}function Ch(e){try{let t=e.getAttribute(rr);return t&&t.trim()?t:null}catch{return null}}function Rx(e){let t=e?.ownerDocument?.defaultView,n=t?.__RTRVR_INTERNAL_KEY__||"__RTRVR_INTERNAL__",r=t?.[n]?.shadow?.getRoot;if(typeof r=="function")try{return r(e)||null}catch{}return e.shadowRoot||null}function Ax(e){let t=new Set;for(let n of e){let o=yc(n.mask);for(let r of o)(r==="react"||r==="vue"||r==="angular"||r==="svelte"||r==="jquery")&&t.add(r)}return t}function Cx(e){let t=new Set,n=e;return(n.__reactFiber||n.__reactProps||n.__reactInternalInstance||n.__reactRootContainer)&&t.add("react"),(n.__vue__||n.__vueParentComponent||n.__vnode||n.__vue_app__)&&t.add("vue"),n.__ngContext__&&t.add("angular"),(n.__svelte||n.__svelte_meta)&&t.add("svelte"),(n.__jquery||n.jQuery)&&t.add("jquery"),t}function Mx(e){let t=Ah(e),n=Ax(t),o=Cx(e);for(let r of o)n.add(r);return{frameworks:[...n],listenersRaw:ld(e)||"",role:Ch(e)??(e.getAttribute?.("role")||null)}}function Nx(){return{getEventHandlerIds:e=>Ah(e).map(t=>t.id),getRoleHint:Ch,getShadowRoot:Rx}}function Mh(e={}){return el||(el={signalProvider:Nx(),getFrameworkMetadata:Mx,getListenerEncoding:ld,dispose:()=>{}},el)}function Nh(){Rh||(Sh(),Rh=!0)}function Lx(e,t){return e.endsWith(t)?e.length===t.length||e[e.length-t.length-1]===".":!1}function Dx(e,t){let n=e.length-t.length-2,o=e.lastIndexOf(".",n);return o===-1?e:e.slice(o+1)}function ud(e,t,n){if(n.validHosts!==null){let r=n.validHosts;for(let a of r)if(Lx(t,a))return a}let o=0;if(t.startsWith("."))for(;o<t.length&&t[o]===".";)o+=1;return e.length===t.length-o?null:Dx(t,e)}function dd(e,t){return e.slice(0,-t.length-1)}function tl(e,t){let n=0,o=e.length,r=!1;if(!t){if(e.startsWith("data:"))return null;for(;n<e.length&&e.charCodeAt(n)<=32;)n+=1;for(;o>n+1&&e.charCodeAt(o-1)<=32;)o-=1;if(e.charCodeAt(n)===47&&e.charCodeAt(n+1)===47)n+=2;else{let d=e.indexOf(":/",n);if(d!==-1){let f=d-n,u=e.charCodeAt(n),b=e.charCodeAt(n+1),p=e.charCodeAt(n+2),g=e.charCodeAt(n+3),y=e.charCodeAt(n+4);if(!(f===5&&u===104&&b===116&&p===116&&g===112&&y===115)){if(!(f===4&&u===104&&b===116&&p===116&&g===112)){if(!(f===3&&u===119&&b===115&&p===115)){if(!(f===2&&u===119&&b===115))for(let I=n;I<d;I+=1){let R=e.charCodeAt(I)|32;if(!(R>=97&&R<=122||R>=48&&R<=57||R===46||R===45||R===43))return null}}}}for(n=d+2;e.charCodeAt(n)===47;)n+=1}}let i=-1,s=-1,c=-1;for(let d=n;d<o;d+=1){let f=e.charCodeAt(d);if(f===35||f===47||f===63){o=d;break}else f===64?i=d:f===93?s=d:f===58?c=d:f>=65&&f<=90&&(r=!0)}if(i!==-1&&i>n&&i<o&&(n=i+1),e.charCodeAt(n)===91)return s!==-1?e.slice(n+1,s).toLowerCase():null;c!==-1&&c>n&&c<o&&(o=c)}for(;o>n+1&&e.charCodeAt(o-1)===46;)o-=1;let a=n!==0||o!==e.length?e.slice(n,o):e;return r?a.toLowerCase():a}function Ox(e){if(e.length<7||e.length>15)return!1;let t=0;for(let n=0;n<e.length;n+=1){let o=e.charCodeAt(n);if(o===46)t+=1;else if(o<48||o>57)return!1}return t===3&&e.charCodeAt(0)!==46&&e.charCodeAt(e.length-1)!==46}function Px(e){if(e.length<3)return!1;let t=e.startsWith("[")?1:0,n=e.length;if(e[n-1]==="]"&&(n-=1),n-t>39)return!1;let o=!1;for(;t<n;t+=1){let r=e.charCodeAt(t);if(r===58)o=!0;else if(!(r>=48&&r<=57||r>=97&&r<=102||r>=65&&r<=90))return!1}return o}function fd(e){return Px(e)||Ox(e)}function Lh(e){return e>=97&&e<=122||e>=48&&e<=57||e>127}function md(e){if(e.length>255||e.length===0||!Lh(e.charCodeAt(0))&&e.charCodeAt(0)!==46&&e.charCodeAt(0)!==95)return!1;let t=-1,n=-1,o=e.length;for(let r=0;r<o;r+=1){let a=e.charCodeAt(r);if(a===46){if(r-t>64||n===46||n===45||n===95)return!1;t=r}else if(!(Lh(a)||a===45||a===95))return!1;n=a}return o-t-1<=63&&n!==45}function Dh({allowIcannDomains:e=!0,allowPrivateDomains:t=!1,detectIp:n=!0,extractHostname:o=!0,mixedInputs:r=!0,validHosts:a=null,validateHostname:i=!0}){return{allowIcannDomains:e,allowPrivateDomains:t,detectIp:n,extractHostname:o,mixedInputs:r,validHosts:a,validateHostname:i}}var Bx=Dh({});function pd(e){return e===void 0?Bx:Dh(e)}function hd(e,t){return t.length===e.length?"":e.slice(0,-t.length-1)}function nl(){return{domain:null,domainWithoutSuffix:null,hostname:null,isIcann:null,isIp:null,isPrivate:null,publicSuffix:null,subdomain:null}}function gd(e){e.domain=null,e.domainWithoutSuffix=null,e.hostname=null,e.isIcann=null,e.isIp=null,e.isPrivate=null,e.publicSuffix=null,e.subdomain=null}function ol(e,t,n,o,r){let a=pd(o);return typeof e!="string"||(a.extractHostname?a.mixedInputs?r.hostname=tl(e,md(e)):r.hostname=tl(e,!1):r.hostname=e,a.detectIp&&r.hostname!==null&&(r.isIp=fd(r.hostname),r.isIp))?r:a.validateHostname&&a.extractHostname&&r.hostname!==null&&!md(r.hostname)?(r.hostname=null,r):(t===0||r.hostname===null||(n(r.hostname,a,r),t===2||r.publicSuffix===null)||(r.domain=ud(r.publicSuffix,r.hostname,a),t===3||r.domain===null)||(r.subdomain=hd(r.hostname,r.domain),t===4)||(r.domainWithoutSuffix=dd(r.domain,r.publicSuffix)),r)}function bd(e,t,n){if(!t.allowPrivateDomains&&e.length>3){let o=e.length-1,r=e.charCodeAt(o),a=e.charCodeAt(o-1),i=e.charCodeAt(o-2),s=e.charCodeAt(o-3);if(r===109&&a===111&&i===99&&s===46)return n.isIcann=!0,n.isPrivate=!1,n.publicSuffix="com",!0;if(r===103&&a===114&&i===111&&s===46)return n.isIcann=!0,n.isPrivate=!1,n.publicSuffix="org",!0;if(r===117&&a===100&&i===101&&s===46)return n.isIcann=!0,n.isPrivate=!1,n.publicSuffix="edu",!0;if(r===118&&a===111&&i===103&&s===46)return n.isIcann=!0,n.isPrivate=!1,n.publicSuffix="gov",!0;if(r===116&&a===101&&i===110&&s===46)return n.isIcann=!0,n.isPrivate=!1,n.publicSuffix="net",!0;if(r===101&&a===100&&i===46)return n.isIcann=!0,n.isPrivate=!1,n.publicSuffix="de",!0}return!1}var Oh=(function(){let e=[1,{}],t=[0,{city:e}];return[0,{ck:[0,{www:e}],jp:[0,{kawasaki:t,kitakyushu:t,kobe:t,nagoya:t,sapporo:t,sendai:t,yokohama:t}]}]})(),Ph=(function(){let e=[1,{}],t=[2,{}],n=[1,{com:e,edu:e,gov:e,net:e,org:e}],o=[1,{com:e,edu:e,gov:e,mil:e,net:e,org:e}],r=[0,{"*":t}],a=[2,{s:r}],i=[0,{relay:t}],s=[2,{id:t}],c=[1,{gov:e}],d=[0,{airflow:r,"lambda-url":t,"transfer-webapp":t}],f=[0,{airflow:r,"transfer-webapp":t}],u=[0,{"transfer-webapp":t}],b=[0,{"transfer-webapp":t,"transfer-webapp-fips":t}],p=[0,{notebook:t,studio:t}],g=[0,{labeling:t,notebook:t,studio:t}],y=[0,{notebook:t}],I=[0,{labeling:t,notebook:t,"notebook-fips":t,studio:t}],R=[0,{notebook:t,"notebook-fips":t,studio:t,"studio-fips":t}],O=[0,{shop:t}],M=[0,{"*":e}],H=[1,{co:t}],N=[0,{objects:t}],Y=[2,{"eu-west-1":t,"us-east-1":t}],ae=[2,{nodes:t}],re=[0,{my:t}],le=[0,{s3:t,"s3-accesspoint":t,"s3-website":t}],Me=[0,{s3:t,"s3-accesspoint":t}],ve=[0,{direct:t}],we=[0,{"webview-assets":t}],Ne=[0,{vfs:t,"webview-assets":t}],ft=[0,{"execute-api":t,"emrappui-prod":t,"emrnotebooks-prod":t,"emrstudio-prod":t,dualstack:le,s3:t,"s3-accesspoint":t,"s3-object-lambda":t,"s3-website":t,"aws-cloud9":we,cloud9:Ne}],Ae=[0,{"execute-api":t,"emrappui-prod":t,"emrnotebooks-prod":t,"emrstudio-prod":t,dualstack:Me,s3:t,"s3-accesspoint":t,"s3-object-lambda":t,"s3-website":t,"aws-cloud9":we,cloud9:Ne}],lt=[0,{"execute-api":t,"emrappui-prod":t,"emrnotebooks-prod":t,"emrstudio-prod":t,dualstack:le,s3:t,"s3-accesspoint":t,"s3-object-lambda":t,"s3-website":t,"analytics-gateway":t,"aws-cloud9":we,cloud9:Ne}],Xe=[0,{"execute-api":t,"emrappui-prod":t,"emrnotebooks-prod":t,"emrstudio-prod":t,dualstack:le,s3:t,"s3-accesspoint":t,"s3-object-lambda":t,"s3-website":t}],Ge=[0,{s3:t,"s3-accesspoint":t,"s3-accesspoint-fips":t,"s3-fips":t,"s3-website":t}],zt=[0,{"execute-api":t,"emrappui-prod":t,"emrnotebooks-prod":t,"emrstudio-prod":t,dualstack:Ge,s3:t,"s3-accesspoint":t,"s3-accesspoint-fips":t,"s3-fips":t,"s3-object-lambda":t,"s3-website":t,"aws-cloud9":we,cloud9:Ne}],St=[0,{"execute-api":t,"emrappui-prod":t,"emrnotebooks-prod":t,"emrstudio-prod":t,dualstack:Ge,s3:t,"s3-accesspoint":t,"s3-accesspoint-fips":t,"s3-fips":t,"s3-object-lambda":t,"s3-website":t}],An=[0,{"execute-api":t,"emrappui-prod":t,"emrnotebooks-prod":t,"emrstudio-prod":t,dualstack:Ge,s3:t,"s3-accesspoint":t,"s3-accesspoint-fips":t,"s3-deprecated":t,"s3-fips":t,"s3-object-lambda":t,"s3-website":t,"analytics-gateway":t,"aws-cloud9":we,cloud9:Ne}],Ie=[0,{auth:t}],Gt=[0,{auth:t,"auth-fips":t}],ut=[0,{"auth-fips":t}],jt=[0,{apps:t}],Rt=[0,{paas:t}],no=[2,{eu:t}],Cn=[0,{app:t}],Zo=[0,{site:t}],Yt=[1,{com:e,edu:e,net:e,org:e}],Qt=[0,{j:t}],oo=[0,{dyn:t}],Ue=[2,{web:t}],Jt=[1,{co:e,com:e,edu:e,gov:e,net:e,org:e}],ro=[0,{p:t}],vn=[0,{user:t}],Zt=[1,{ms:t}],tt=[0,{cdn:t}],Kt=[2,{raw:r}],en=[0,{cust:t,reservd:t}],Mn=[0,{cust:t}],Nn=[0,{s3:t}],po=[1,{biz:e,com:e,edu:e,gov:e,info:e,net:e,org:e}],$n=[0,{ipfs:t}],tn=[1,{framer:t}],ao=[0,{forgot:t}],un=[0,{blob:t,file:t,web:t}],dn=[0,{core:un,servicebus:t}],he=[1,{gs:e}],Ln=[0,{nes:e}],ge=[1,{k12:e,cc:e,lib:e}],kt=[1,{cc:e}],fn=[1,{cc:e,lib:e}];return[0,{ac:[1,{com:e,edu:e,gov:e,mil:e,net:e,org:e,drr:t,feedback:t,forms:t}],ad:e,ae:[1,{ac:e,co:e,gov:e,mil:e,net:e,org:e,sch:e}],aero:[1,{airline:e,airport:e,"accident-investigation":e,"accident-prevention":e,aerobatic:e,aeroclub:e,aerodrome:e,agents:e,"air-surveillance":e,"air-traffic-control":e,aircraft:e,airtraffic:e,ambulance:e,association:e,author:e,ballooning:e,broker:e,caa:e,cargo:e,catering:e,certification:e,championship:e,charter:e,civilaviation:e,club:e,conference:e,consultant:e,consulting:e,control:e,council:e,crew:e,design:e,dgca:e,educator:e,emergency:e,engine:e,engineer:e,entertainment:e,equipment:e,exchange:e,express:e,federation:e,flight:e,freight:e,fuel:e,gliding:e,government:e,groundhandling:e,group:e,hanggliding:e,homebuilt:e,insurance:e,journal:e,journalist:e,leasing:e,logistics:e,magazine:e,maintenance:e,marketplace:e,media:e,microlight:e,modelling:e,navigation:e,parachuting:e,paragliding:e,"passenger-association":e,pilot:e,press:e,production:e,recreation:e,repbody:e,res:e,research:e,rotorcraft:e,safety:e,scientist:e,services:e,show:e,skydiving:e,software:e,student:e,taxi:e,trader:e,trading:e,trainer:e,union:e,workinggroup:e,works:e}],af:n,ag:[1,{co:e,com:e,net:e,nom:e,org:e,obj:t}],ai:[1,{com:e,net:e,off:e,org:e,uwu:t,framer:t,kiloapps:t}],al:o,am:[1,{co:e,com:e,commune:e,net:e,org:e,radio:t}],ao:[1,{co:e,ed:e,edu:e,gov:e,gv:e,it:e,og:e,org:e,pb:e}],aq:e,ar:[1,{bet:e,com:e,coop:e,edu:e,gob:e,gov:e,int:e,mil:e,musica:e,mutual:e,net:e,org:e,seg:e,senasa:e,tur:e}],arpa:[1,{e164:e,home:e,"in-addr":e,ip6:e,iris:e,uri:e,urn:e}],as:c,asia:[1,{cloudns:t,daemon:t,dix:t}],at:[1,{4:t,ac:[1,{sth:e}],co:e,gv:e,or:e,funkfeuer:[0,{wien:t}],futurecms:[0,{"*":t,ex:r,in:r}],futurehosting:t,futuremailing:t,ortsinfo:[0,{ex:r,kunden:r}],biz:t,info:t,"123webseite":t,priv:t,my:t,myspreadshop:t,"12hp":t,"2ix":t,"4lima":t,"lima-city":t}],au:[1,{asn:e,com:[1,{cloudlets:[0,{mel:t}],myspreadshop:t}],edu:[1,{act:e,catholic:e,nsw:e,nt:e,qld:e,sa:e,tas:e,vic:e,wa:e}],gov:[1,{qld:e,sa:e,tas:e,vic:e,wa:e}],id:e,net:e,org:e,conf:e,oz:e,act:e,nsw:e,nt:e,qld:e,sa:e,tas:e,vic:e,wa:e,hrsn:[0,{vps:t}]}],aw:[1,{com:e}],ax:e,az:[1,{biz:e,co:e,com:e,edu:e,gov:e,info:e,int:e,mil:e,name:e,net:e,org:e,pp:e,pro:e}],ba:[1,{com:e,edu:e,gov:e,mil:e,net:e,org:e,brendly:O,rs:t}],bb:[1,{biz:e,co:e,com:e,edu:e,gov:e,info:e,net:e,org:e,store:e,tv:e}],bd:[1,{ac:e,ai:e,co:e,com:e,edu:e,gov:e,id:e,info:e,it:e,mil:e,net:e,org:e,sch:e,tv:e}],be:[1,{ac:e,cloudns:t,webhosting:t,interhostsolutions:[0,{cloud:t}],kuleuven:[0,{ezproxy:t}],my:t,"123website":t,myspreadshop:t,transurl:r}],bf:c,bg:[1,{0:e,1:e,2:e,3:e,4:e,5:e,6:e,7:e,8:e,9:e,a:e,b:e,c:e,d:e,e,f:e,g:e,h:e,i:e,j:e,k:e,l:e,m:e,n:e,o:e,p:e,q:e,r:e,s:e,t:e,u:e,v:e,w:e,x:e,y:e,z:e,barsy:t}],bh:n,bi:[1,{co:e,com:e,edu:e,or:e,org:e}],biz:[1,{activetrail:t,"cloud-ip":t,cloudns:t,jozi:t,dyndns:t,"for-better":t,"for-more":t,"for-some":t,"for-the":t,selfip:t,webhop:t,orx:t,mmafan:t,myftp:t,"no-ip":t,dscloud:t}],bj:[1,{africa:e,agro:e,architectes:e,assur:e,avocats:e,co:e,com:e,eco:e,econo:e,edu:e,info:e,loisirs:e,money:e,net:e,org:e,ote:e,restaurant:e,resto:e,tourism:e,univ:e}],bm:n,bn:[1,{com:e,edu:e,gov:e,net:e,org:e,co:t}],bo:[1,{com:e,edu:e,gob:e,int:e,mil:e,net:e,org:e,tv:e,web:e,academia:e,agro:e,arte:e,blog:e,bolivia:e,ciencia:e,cooperativa:e,democracia:e,deporte:e,ecologia:e,economia:e,empresa:e,indigena:e,industria:e,info:e,medicina:e,movimiento:e,musica:e,natural:e,nombre:e,noticias:e,patria:e,plurinacional:e,politica:e,profesional:e,pueblo:e,revista:e,salud:e,tecnologia:e,tksat:e,transporte:e,wiki:e}],br:[1,{"9guacu":e,abc:e,adm:e,adv:e,agr:e,aju:e,am:e,anani:e,aparecida:e,api:e,app:e,arq:e,art:e,ato:e,b:e,barueri:e,belem:e,bet:e,bhz:e,bib:e,bio:e,blog:e,bmd:e,boavista:e,bsb:e,campinagrande:e,campinas:e,caxias:e,cim:e,cng:e,cnt:e,com:[1,{simplesite:t}],contagem:e,coop:e,coz:e,cri:e,cuiaba:e,curitiba:e,def:e,des:e,det:e,dev:e,ecn:e,eco:e,edu:e,emp:e,enf:e,eng:e,esp:e,etc:e,eti:e,far:e,feira:e,flog:e,floripa:e,fm:e,fnd:e,fortal:e,fot:e,foz:e,fst:e,g12:e,geo:e,ggf:e,goiania:e,gov:[1,{ac:e,al:e,am:e,ap:e,ba:e,ce:e,df:e,es:e,go:e,ma:e,mg:e,ms:e,mt:e,pa:e,pb:e,pe:e,pi:e,pr:e,rj:e,rn:e,ro:e,rr:e,rs:e,sc:e,se:e,sp:e,to:e}],gru:e,ia:e,imb:e,ind:e,inf:e,jab:e,jampa:e,jdf:e,joinville:e,jor:e,jus:e,leg:[1,{ac:t,al:t,am:t,ap:t,ba:t,ce:t,df:t,es:t,go:t,ma:t,mg:t,ms:t,mt:t,pa:t,pb:t,pe:t,pi:t,pr:t,rj:t,rn:t,ro:t,rr:t,rs:t,sc:t,se:t,sp:t,to:t}],leilao:e,lel:e,log:e,londrina:e,macapa:e,maceio:e,manaus:e,maringa:e,mat:e,med:e,mil:e,morena:e,mp:e,mus:e,natal:e,net:e,niteroi:e,nom:M,not:e,ntr:e,odo:e,ong:e,org:e,osasco:e,palmas:e,poa:e,ppg:e,pro:e,psc:e,psi:e,pvh:e,qsl:e,radio:e,rec:e,recife:e,rep:e,ribeirao:e,rio:e,riobranco:e,riopreto:e,salvador:e,sampa:e,santamaria:e,santoandre:e,saobernardo:e,saogonca:e,seg:e,sjc:e,slg:e,slz:e,social:e,sorocaba:e,srv:e,taxi:e,tc:e,tec:e,teo:e,the:e,tmp:e,trd:e,tur:e,tv:e,udi:e,vet:e,vix:e,vlog:e,wiki:e,xyz:e,zlg:e,tche:t}],bs:[1,{com:e,edu:e,gov:e,net:e,org:e,we:t}],bt:n,bv:e,bw:[1,{ac:e,co:e,gov:e,net:e,org:e}],by:[1,{gov:e,mil:e,com:e,of:e,mediatech:t}],bz:[1,{co:e,com:e,edu:e,gov:e,net:e,org:e,za:t,mydns:t,gsj:t}],ca:[1,{ab:e,bc:e,mb:e,nb:e,nf:e,nl:e,ns:e,nt:e,nu:e,on:e,pe:e,qc:e,sk:e,yk:e,gc:e,barsy:t,awdev:r,co:t,"no-ip":t,onid:t,myspreadshop:t,box:t}],cat:e,cc:[1,{cleverapps:t,"cloud-ip":t,cloudns:t,ccwu:t,ftpaccess:t,"game-server":t,myphotos:t,scrapping:t,twmail:t,csx:t,fantasyleague:t,spawn:[0,{instances:t}],ec:t,eu:t,gu:t,uk:t,us:t}],cd:[1,{gov:e,cc:t}],cf:e,cg:e,ch:[1,{square7:t,cloudns:t,cloudscale:[0,{cust:t,lpg:N,rma:N}],objectstorage:[0,{lpg:t,rma:t}],flow:[0,{ae:[0,{alp1:t}],appengine:t}],"linkyard-cloud":t,gotdns:t,dnsking:t,"123website":t,myspreadshop:t,firenet:[0,{"*":t,svc:r}],"12hp":t,"2ix":t,"4lima":t,"lima-city":t}],ci:[1,{ac:e,"xn--aroport-bya":e,a\u00E9roport:e,asso:e,co:e,com:e,ed:e,edu:e,go:e,gouv:e,int:e,net:e,or:e,org:e,us:t}],ck:M,cl:[1,{co:e,gob:e,gov:e,mil:e,cloudns:t}],cm:[1,{co:e,com:e,gov:e,net:e}],cn:[1,{ac:e,com:[1,{amazonaws:[0,{"cn-north-1":[0,{"execute-api":t,"emrappui-prod":t,"emrnotebooks-prod":t,"emrstudio-prod":t,rds:r,dualstack:le,s3:t,"s3-accesspoint":t,"s3-deprecated":t,"s3-object-lambda":t,"s3-website":t}],"cn-northwest-1":[0,{"execute-api":t,"emrappui-prod":t,"emrnotebooks-prod":t,"emrstudio-prod":t,rds:r,dualstack:Me,s3:t,"s3-accesspoint":t,"s3-object-lambda":t,"s3-website":t}],compute:r,airflow:[0,{"cn-north-1":r,"cn-northwest-1":r}],eb:[0,{"cn-north-1":t,"cn-northwest-1":t}],elb:r}],amazonwebservices:[0,{on:[0,{"cn-north-1":f,"cn-northwest-1":f}]}],sagemaker:[0,{"cn-north-1":p,"cn-northwest-1":p}]}],edu:e,gov:e,mil:e,net:e,org:e,"xn--55qx5d":e,\u516C\u53F8:e,"xn--od0alg":e,\u7DB2\u7D61:e,"xn--io0a7i":e,\u7F51\u7EDC:e,ah:e,bj:e,cq:e,fj:e,gd:e,gs:e,gx:e,gz:e,ha:e,hb:e,he:e,hi:e,hk:e,hl:e,hn:e,jl:e,js:e,jx:e,ln:e,mo:e,nm:e,nx:e,qh:e,sc:e,sd:e,sh:[1,{as:t}],sn:e,sx:e,tj:e,tw:e,xj:e,xz:e,yn:e,zj:e,"canva-apps":t,canvasite:re,myqnapcloud:t,quickconnect:ve}],co:[1,{com:e,edu:e,gov:e,mil:e,net:e,nom:e,org:e,carrd:t,crd:t,otap:r,hidns:t,leadpages:t,lpages:t,mypi:t,xmit:r,rdpa:[0,{clusters:r,srvrless:r}],firewalledreplit:s,repl:s,supabase:[2,{realtime:t,storage:t}],umso:t}],com:[1,{a2hosted:t,cpserver:t,adobeaemcloud:[2,{dev:r}],africa:t,auiusercontent:r,aivencloud:t,alibabacloudcs:t,kasserver:t,amazonaws:[0,{"af-south-1":ft,"ap-east-1":Ae,"ap-northeast-1":lt,"ap-northeast-2":lt,"ap-northeast-3":ft,"ap-south-1":lt,"ap-south-2":Xe,"ap-southeast-1":lt,"ap-southeast-2":lt,"ap-southeast-3":Xe,"ap-southeast-4":Xe,"ap-southeast-5":[0,{"execute-api":t,dualstack:le,s3:t,"s3-accesspoint":t,"s3-deprecated":t,"s3-object-lambda":t,"s3-website":t}],"ca-central-1":zt,"ca-west-1":St,"eu-central-1":lt,"eu-central-2":Xe,"eu-north-1":Ae,"eu-south-1":ft,"eu-south-2":Xe,"eu-west-1":[0,{"execute-api":t,"emrappui-prod":t,"emrnotebooks-prod":t,"emrstudio-prod":t,dualstack:le,s3:t,"s3-accesspoint":t,"s3-deprecated":t,"s3-object-lambda":t,"s3-website":t,"analytics-gateway":t,"aws-cloud9":we,cloud9:Ne}],"eu-west-2":Ae,"eu-west-3":ft,"il-central-1":[0,{"execute-api":t,"emrappui-prod":t,"emrnotebooks-prod":t,"emrstudio-prod":t,dualstack:le,s3:t,"s3-accesspoint":t,"s3-object-lambda":t,"s3-website":t,"aws-cloud9":we,cloud9:[0,{vfs:t}]}],"me-central-1":Xe,"me-south-1":Ae,"sa-east-1":ft,"us-east-1":[2,{"execute-api":t,"emrappui-prod":t,"emrnotebooks-prod":t,"emrstudio-prod":t,dualstack:Ge,s3:t,"s3-accesspoint":t,"s3-accesspoint-fips":t,"s3-deprecated":t,"s3-fips":t,"s3-object-lambda":t,"s3-website":t,"analytics-gateway":t,"aws-cloud9":we,cloud9:Ne}],"us-east-2":An,"us-gov-east-1":St,"us-gov-west-1":St,"us-west-1":zt,"us-west-2":An,compute:r,"compute-1":r,airflow:[0,{"af-south-1":r,"ap-east-1":r,"ap-northeast-1":r,"ap-northeast-2":r,"ap-northeast-3":r,"ap-south-1":r,"ap-south-2":r,"ap-southeast-1":r,"ap-southeast-2":r,"ap-southeast-3":r,"ap-southeast-4":r,"ap-southeast-5":r,"ap-southeast-7":r,"ca-central-1":r,"ca-west-1":r,"eu-central-1":r,"eu-central-2":r,"eu-north-1":r,"eu-south-1":r,"eu-south-2":r,"eu-west-1":r,"eu-west-2":r,"eu-west-3":r,"il-central-1":r,"me-central-1":r,"me-south-1":r,"sa-east-1":r,"us-east-1":r,"us-east-2":r,"us-west-1":r,"us-west-2":r}],rds:[0,{"af-south-1":r,"ap-east-1":r,"ap-east-2":r,"ap-northeast-1":r,"ap-northeast-2":r,"ap-northeast-3":r,"ap-south-1":r,"ap-south-2":r,"ap-southeast-1":r,"ap-southeast-2":r,"ap-southeast-3":r,"ap-southeast-4":r,"ap-southeast-5":r,"ap-southeast-6":r,"ap-southeast-7":r,"ca-central-1":r,"ca-west-1":r,"eu-central-1":r,"eu-central-2":r,"eu-west-1":r,"eu-west-2":r,"eu-west-3":r,"il-central-1":r,"me-central-1":r,"me-south-1":r,"mx-central-1":r,"sa-east-1":r,"us-east-1":r,"us-east-2":r,"us-gov-east-1":r,"us-gov-west-1":r,"us-northeast-1":r,"us-west-1":r,"us-west-2":r}],s3:t,"s3-1":t,"s3-ap-east-1":t,"s3-ap-northeast-1":t,"s3-ap-northeast-2":t,"s3-ap-northeast-3":t,"s3-ap-south-1":t,"s3-ap-southeast-1":t,"s3-ap-southeast-2":t,"s3-ca-central-1":t,"s3-eu-central-1":t,"s3-eu-north-1":t,"s3-eu-west-1":t,"s3-eu-west-2":t,"s3-eu-west-3":t,"s3-external-1":t,"s3-fips-us-gov-east-1":t,"s3-fips-us-gov-west-1":t,"s3-global":[0,{accesspoint:[0,{mrap:t}]}],"s3-me-south-1":t,"s3-sa-east-1":t,"s3-us-east-2":t,"s3-us-gov-east-1":t,"s3-us-gov-west-1":t,"s3-us-west-1":t,"s3-us-west-2":t,"s3-website-ap-northeast-1":t,"s3-website-ap-southeast-1":t,"s3-website-ap-southeast-2":t,"s3-website-eu-west-1":t,"s3-website-sa-east-1":t,"s3-website-us-east-1":t,"s3-website-us-gov-west-1":t,"s3-website-us-west-1":t,"s3-website-us-west-2":t,elb:r}],amazoncognito:[0,{"af-south-1":Ie,"ap-east-1":Ie,"ap-northeast-1":Ie,"ap-northeast-2":Ie,"ap-northeast-3":Ie,"ap-south-1":Ie,"ap-south-2":Ie,"ap-southeast-1":Ie,"ap-southeast-2":Ie,"ap-southeast-3":Ie,"ap-southeast-4":Ie,"ap-southeast-5":Ie,"ap-southeast-7":Ie,"ca-central-1":Ie,"ca-west-1":Ie,"eu-central-1":Ie,"eu-central-2":Ie,"eu-north-1":Ie,"eu-south-1":Ie,"eu-south-2":Ie,"eu-west-1":Ie,"eu-west-2":Ie,"eu-west-3":Ie,"il-central-1":Ie,"me-central-1":Ie,"me-south-1":Ie,"mx-central-1":Ie,"sa-east-1":Ie,"us-east-1":Gt,"us-east-2":Gt,"us-gov-east-1":ut,"us-gov-west-1":ut,"us-west-1":Gt,"us-west-2":Gt}],amplifyapp:t,awsapprunner:r,awsapps:t,elasticbeanstalk:[2,{"af-south-1":t,"ap-east-1":t,"ap-northeast-1":t,"ap-northeast-2":t,"ap-northeast-3":t,"ap-south-1":t,"ap-southeast-1":t,"ap-southeast-2":t,"ap-southeast-3":t,"ap-southeast-5":t,"ap-southeast-7":t,"ca-central-1":t,"eu-central-1":t,"eu-north-1":t,"eu-south-1":t,"eu-south-2":t,"eu-west-1":t,"eu-west-2":t,"eu-west-3":t,"il-central-1":t,"me-central-1":t,"me-south-1":t,"sa-east-1":t,"us-east-1":t,"us-east-2":t,"us-gov-east-1":t,"us-gov-west-1":t,"us-west-1":t,"us-west-2":t}],awsglobalaccelerator:t,siiites:t,appspacehosted:t,appspaceusercontent:t,"on-aptible":t,myasustor:t,"balena-devices":t,boutir:t,bplaced:t,cafjs:t,"canva-apps":t,"canva-hosted-embed":t,canvacode:t,"rice-labs":t,"cdn77-storage":t,br:t,cn:t,de:t,eu:t,jpn:t,mex:t,ru:t,sa:t,uk:t,us:t,za:t,"clever-cloud":[0,{services:r}],abrdns:t,dnsabr:t,"ip-ddns":t,jdevcloud:t,wpdevcloud:t,"cf-ipfs":t,"cloudflare-ipfs":t,trycloudflare:t,co:t,devinapps:r,builtwithdark:t,datadetect:[0,{demo:t,instance:t}],dattolocal:t,dattorelay:t,dattoweb:t,mydatto:t,digitaloceanspaces:r,discordsays:t,discordsez:t,drayddns:t,dreamhosters:t,durumis:t,blogdns:t,cechire:t,dnsalias:t,dnsdojo:t,doesntexist:t,dontexist:t,doomdns:t,"dyn-o-saur":t,dynalias:t,"dyndns-at-home":t,"dyndns-at-work":t,"dyndns-blog":t,"dyndns-free":t,"dyndns-home":t,"dyndns-ip":t,"dyndns-mail":t,"dyndns-office":t,"dyndns-pics":t,"dyndns-remote":t,"dyndns-server":t,"dyndns-web":t,"dyndns-wiki":t,"dyndns-work":t,"est-a-la-maison":t,"est-a-la-masion":t,"est-le-patron":t,"est-mon-blogueur":t,"from-ak":t,"from-al":t,"from-ar":t,"from-ca":t,"from-ct":t,"from-dc":t,"from-de":t,"from-fl":t,"from-ga":t,"from-hi":t,"from-ia":t,"from-id":t,"from-il":t,"from-in":t,"from-ks":t,"from-ky":t,"from-ma":t,"from-md":t,"from-mi":t,"from-mn":t,"from-mo":t,"from-ms":t,"from-mt":t,"from-nc":t,"from-nd":t,"from-ne":t,"from-nh":t,"from-nj":t,"from-nm":t,"from-nv":t,"from-oh":t,"from-ok":t,"from-or":t,"from-pa":t,"from-pr":t,"from-ri":t,"from-sc":t,"from-sd":t,"from-tn":t,"from-tx":t,"from-ut":t,"from-va":t,"from-vt":t,"from-wa":t,"from-wi":t,"from-wv":t,"from-wy":t,getmyip:t,gotdns:t,"hobby-site":t,homelinux:t,homeunix:t,iamallama:t,"is-a-anarchist":t,"is-a-blogger":t,"is-a-bookkeeper":t,"is-a-bulls-fan":t,"is-a-caterer":t,"is-a-chef":t,"is-a-conservative":t,"is-a-cpa":t,"is-a-cubicle-slave":t,"is-a-democrat":t,"is-a-designer":t,"is-a-doctor":t,"is-a-financialadvisor":t,"is-a-geek":t,"is-a-green":t,"is-a-guru":t,"is-a-hard-worker":t,"is-a-hunter":t,"is-a-landscaper":t,"is-a-lawyer":t,"is-a-liberal":t,"is-a-libertarian":t,"is-a-llama":t,"is-a-musician":t,"is-a-nascarfan":t,"is-a-nurse":t,"is-a-painter":t,"is-a-personaltrainer":t,"is-a-photographer":t,"is-a-player":t,"is-a-republican":t,"is-a-rockstar":t,"is-a-socialist":t,"is-a-student":t,"is-a-teacher":t,"is-a-techie":t,"is-a-therapist":t,"is-an-accountant":t,"is-an-actor":t,"is-an-actress":t,"is-an-anarchist":t,"is-an-artist":t,"is-an-engineer":t,"is-an-entertainer":t,"is-certified":t,"is-gone":t,"is-into-anime":t,"is-into-cars":t,"is-into-cartoons":t,"is-into-games":t,"is-leet":t,"is-not-certified":t,"is-slick":t,"is-uberleet":t,"is-with-theband":t,"isa-geek":t,"isa-hockeynut":t,issmarterthanyou:t,"likes-pie":t,likescandy:t,"neat-url":t,"saves-the-whales":t,selfip:t,"sells-for-less":t,"sells-for-u":t,servebbs:t,"simple-url":t,"space-to-rent":t,"teaches-yoga":t,writesthisblog:t,"1cooldns":t,bumbleshrimp:t,ddnsfree:t,ddnsgeek:t,ddnsguru:t,dynuddns:t,dynuhosting:t,giize:t,gleeze:t,kozow:t,loseyourip:t,ooguy:t,pivohosting:t,theworkpc:t,wiredbladehosting:t,emergentagent:[0,{preview:t}],mytuleap:t,"tuleap-partners":t,encoreapi:t,evennode:[0,{"eu-1":t,"eu-2":t,"eu-3":t,"eu-4":t,"us-1":t,"us-2":t,"us-3":t,"us-4":t}],onfabrica:t,"fastly-edge":t,"fastly-terrarium":t,"fastvps-server":t,mydobiss:t,firebaseapp:t,fldrv:t,framercanvas:t,"freebox-os":t,freeboxos:t,freemyip:t,aliases121:t,gentapps:t,gentlentapis:t,githubusercontent:t,"0emm":r,appspot:[2,{r}],blogspot:t,codespot:t,googleapis:t,googlecode:t,pagespeedmobilizer:t,withgoogle:t,withyoutube:t,grayjayleagues:t,hatenablog:t,hatenadiary:t,"hercules-app":t,"hercules-dev":t,herokuapp:t,gr:t,smushcdn:t,wphostedmail:t,wpmucdn:t,pixolino:t,"apps-1and1":t,"live-website":t,"webspace-host":t,dopaas:t,"hosted-by-previder":Rt,hosteur:[0,{"rag-cloud":t,"rag-cloud-ch":t}],"ik-server":[0,{jcloud:t,"jcloud-ver-jpc":t}],jelastic:[0,{demo:t}],massivegrid:Rt,wafaicloud:[0,{jed:t,ryd:t}],"eu1-plenit":t,"la1-plenit":t,"us1-plenit":t,webadorsite:t,"on-forge":t,"on-vapor":t,lpusercontent:t,linode:[0,{members:t,nodebalancer:r}],linodeobjects:r,linodeusercontent:[0,{ip:t}],localtonet:t,lovableproject:t,barsycenter:t,barsyonline:t,lutrausercontent:r,magicpatternsapp:t,modelscape:t,mwcloudnonprod:t,polyspace:t,miniserver:t,atmeta:t,fbsbx:jt,meteorapp:no,routingthecloud:t,"same-app":t,"same-preview":t,mydbserver:t,mochausercontent:t,hostedpi:t,"mythic-beasts":[0,{caracal:t,customer:t,fentiger:t,lynx:t,ocelot:t,oncilla:t,onza:t,sphinx:t,vs:t,x:t,yali:t}],nospamproxy:[0,{cloud:[2,{o365:t}]}],"4u":t,nfshost:t,"3utilities":t,blogsyte:t,ciscofreak:t,damnserver:t,ddnsking:t,ditchyourip:t,dnsiskinky:t,dynns:t,geekgalaxy:t,"health-carereform":t,homesecuritymac:t,homesecuritypc:t,myactivedirectory:t,mysecuritycamera:t,myvnc:t,"net-freaks":t,onthewifi:t,point2this:t,quicksytes:t,securitytactics:t,servebeer:t,servecounterstrike:t,serveexchange:t,serveftp:t,servegame:t,servehalflife:t,servehttp:t,servehumour:t,serveirc:t,servemp3:t,servep2p:t,servepics:t,servequake:t,servesarcasm:t,stufftoread:t,unusualperson:t,workisboring:t,myiphost:t,observableusercontent:[0,{static:t}],simplesite:t,oaiusercontent:r,orsites:t,operaunite:t,"customer-oci":[0,{"*":t,oci:r,ocp:r,ocs:r}],oraclecloudapps:r,oraclegovcloudapps:r,"authgear-staging":t,authgearapps:t,outsystemscloud:t,ownprovider:t,pgfog:t,pagexl:t,gotpantheon:t,paywhirl:r,forgeblocks:t,upsunapp:t,"postman-echo":t,prgmr:[0,{xen:t}],"project-study":[0,{dev:t}],pythonanywhere:no,qa2:t,"alpha-myqnapcloud":t,"dev-myqnapcloud":t,mycloudnas:t,mynascloud:t,myqnapcloud:t,qualifioapp:t,ladesk:t,qualyhqpartner:r,qualyhqportal:r,qbuser:t,quipelements:r,rackmaze:t,"readthedocs-hosted":t,rhcloud:t,onrender:t,render:Cn,"subsc-pay":t,"180r":t,dojin:t,sakuratan:t,sakuraweb:t,x0:t,code:[0,{builder:r,"dev-builder":r,"stg-builder":r}],salesforce:[0,{platform:[0,{"code-builder-stg":[0,{test:[0,{"001":r}]}]}]}],logoip:t,scrysec:t,"firewall-gateway":t,myshopblocks:t,myshopify:t,shopitsite:t,"1kapp":t,appchizi:t,applinzi:t,sinaapp:t,vipsinaapp:t,streamlitapp:t,"try-snowplow":t,"playstation-cloud":t,myspreadshop:t,"w-corp-staticblitz":t,"w-credentialless-staticblitz":t,"w-staticblitz":t,"stackhero-network":t,stdlib:[0,{api:t}],strapiapp:[2,{media:t}],"streak-link":t,streaklinks:t,streakusercontent:t,"temp-dns":t,dsmynas:t,familyds:t,mytabit:t,taveusercontent:t,"tb-hosting":Zo,reservd:t,thingdustdata:t,"townnews-staging":t,typeform:[0,{pro:t}],hk:t,it:t,"deus-canvas":t,vultrobjects:r,wafflecell:t,hotelwithflight:t,"reserve-online":t,cprapid:t,pleskns:t,remotewd:t,wiardweb:[0,{pages:t}],"drive-platform":t,"base44-sandbox":t,wixsite:t,wixstudio:t,messwithdns:t,"woltlab-demo":t,wpenginepowered:[2,{js:t}],xnbay:[2,{u2:t,"u2-local":t}],xtooldevice:t,yolasite:t}],coop:e,cr:[1,{ac:e,co:e,ed:e,fi:e,go:e,or:e,sa:e}],cu:[1,{com:e,edu:e,gob:e,inf:e,nat:e,net:e,org:e}],cv:[1,{com:e,edu:e,id:e,int:e,net:e,nome:e,org:e,publ:e}],cw:Yt,cx:[1,{gov:e,cloudns:t,ath:t,info:t,assessments:t,calculators:t,funnels:t,paynow:t,quizzes:t,researched:t,tests:t}],cy:[1,{ac:e,biz:e,com:[1,{scaleforce:Qt}],ekloges:e,gov:e,ltd:e,mil:e,net:e,org:e,press:e,pro:e,tm:e}],cz:[1,{gov:e,contentproxy9:[0,{rsc:t}],realm:t,e4:t,co:t,metacentrum:[0,{cloud:r,custom:t}],muni:[0,{cloud:[0,{flt:t,usr:t}]}]}],de:[1,{bplaced:t,square7:t,"bwcloud-os-instance":r,com:t,cosidns:oo,dnsupdater:t,"dynamisches-dns":t,"internet-dns":t,"l-o-g-i-n":t,ddnss:[2,{dyn:t,dyndns:t}],"dyn-ip24":t,dyndns1:t,"home-webserver":[2,{dyn:t}],"myhome-server":t,dnshome:t,fuettertdasnetz:t,isteingeek:t,istmein:t,lebtimnetz:t,leitungsen:t,traeumtgerade:t,frusky:r,goip:t,"xn--gnstigbestellen-zvb":t,g\u00FCnstigbestellen:t,"xn--gnstigliefern-wob":t,g\u00FCnstigliefern:t,"hs-heilbronn":[0,{it:[0,{pages:t,"pages-research":t}]}],"dyn-berlin":t,"in-berlin":t,"in-brb":t,"in-butter":t,"in-dsl":t,"in-vpn":t,iservschule:t,"mein-iserv":t,schuldock:t,schulplattform:t,schulserver:t,"test-iserv":t,keymachine:t,co:t,"git-repos":t,"lcube-server":t,"svn-repos":t,barsy:t,webspaceconfig:t,"123webseite":t,rub:t,"ruhr-uni-bochum":[2,{noc:[0,{io:t}]}],logoip:t,"firewall-gateway":t,"my-gateway":t,"my-router":t,spdns:t,my:t,speedpartner:[0,{customer:t}],myspreadshop:t,"taifun-dns":t,"12hp":t,"2ix":t,"4lima":t,"lima-city":t,"virtual-user":t,virtualuser:t,"community-pro":t,diskussionsbereich:t,xenonconnect:r}],dj:e,dk:[1,{biz:t,co:t,firm:t,reg:t,store:t,"123hjemmeside":t,myspreadshop:t}],dm:Jt,do:[1,{art:e,com:e,edu:e,gob:e,gov:e,mil:e,net:e,org:e,sld:e,web:e}],dz:[1,{art:e,asso:e,com:e,edu:e,gov:e,net:e,org:e,pol:e,soc:e,tm:e}],ec:[1,{abg:e,adm:e,agron:e,arqt:e,art:e,bar:e,chef:e,com:e,cont:e,cpa:e,cue:e,dent:e,dgn:e,disco:e,doc:e,edu:e,eng:e,esm:e,fin:e,fot:e,gal:e,gob:e,gov:e,gye:e,ibr:e,info:e,k12:e,lat:e,loj:e,med:e,mil:e,mktg:e,mon:e,net:e,ntr:e,odont:e,org:e,pro:e,prof:e,psic:e,psiq:e,pub:e,rio:e,rrpp:e,sal:e,tech:e,tul:e,tur:e,uio:e,vet:e,xxx:e,base:t,official:t}],edu:[1,{rit:[0,{"git-pages":t}]}],ee:[1,{aip:e,com:e,edu:e,fie:e,gov:e,lib:e,med:e,org:e,pri:e,riik:e}],eg:[1,{ac:e,com:e,edu:e,eun:e,gov:e,info:e,me:e,mil:e,name:e,net:e,org:e,sci:e,sport:e,tv:e}],er:M,es:[1,{com:e,edu:e,gob:e,nom:e,org:e,"123miweb":t,myspreadshop:t}],et:[1,{biz:e,com:e,edu:e,gov:e,info:e,name:e,net:e,org:e}],eu:[1,{amazonwebservices:[0,{on:[0,{"eusc-de-east-1":[0,{"cognito-idp":Ie}]}]}],cloudns:t,prvw:t,deuxfleurs:t,dogado:[0,{jelastic:t}],barsy:t,spdns:t,nxa:r,directwp:t,transurl:r}],fi:[1,{aland:e,dy:t,"xn--hkkinen-5wa":t,h\u00E4kkinen:t,iki:t,cloudplatform:[0,{fi:t}],datacenter:[0,{demo:t,paas:t}],kapsi:t,"123kotisivu":t,myspreadshop:t}],fj:[1,{ac:e,biz:e,com:e,edu:e,gov:e,id:e,info:e,mil:e,name:e,net:e,org:e,pro:e}],fk:M,fm:[1,{com:e,edu:e,net:e,org:e,radio:t,user:r}],fo:e,fr:[1,{asso:e,com:e,gouv:e,nom:e,prd:e,tm:e,avoues:e,cci:e,greta:e,"huissier-justice":e,"fbx-os":t,fbxos:t,"freebox-os":t,freeboxos:t,goupile:t,kdns:t,"123siteweb":t,"on-web":t,"chirurgiens-dentistes-en-france":t,dedibox:t,aeroport:t,avocat:t,chambagri:t,"chirurgiens-dentistes":t,"experts-comptables":t,medecin:t,notaires:t,pharmacien:t,port:t,veterinaire:t,myspreadshop:t,ynh:t}],ga:e,gb:e,gd:[1,{edu:e,gov:e}],ge:[1,{com:e,edu:e,gov:e,net:e,org:e,pvt:e,school:e}],gf:e,gg:[1,{co:e,net:e,org:e,ply:[0,{at:r,d6:t}],botdash:t,kaas:t,stackit:t,panel:[2,{daemon:t}]}],gh:[1,{biz:e,com:e,edu:e,gov:e,mil:e,net:e,org:e}],gi:[1,{com:e,edu:e,gov:e,ltd:e,mod:e,org:e}],gl:[1,{co:e,com:e,edu:e,net:e,org:e}],gm:e,gn:[1,{ac:e,com:e,edu:e,gov:e,net:e,org:e}],gov:e,gp:[1,{asso:e,com:e,edu:e,mobi:e,net:e,org:e}],gq:e,gr:[1,{com:e,edu:e,gov:e,net:e,org:e,barsy:t,simplesite:t}],gs:e,gt:[1,{com:e,edu:e,gob:e,ind:e,mil:e,net:e,org:e}],gu:[1,{com:e,edu:e,gov:e,guam:e,info:e,net:e,org:e,web:e}],gw:[1,{nx:t}],gy:Jt,hk:[1,{com:e,edu:e,gov:e,idv:e,net:e,org:e,"xn--ciqpn":e,\u4E2A\u4EBA:e,"xn--gmqw5a":e,\u500B\u4EBA:e,"xn--55qx5d":e,\u516C\u53F8:e,"xn--mxtq1m":e,\u653F\u5E9C:e,"xn--lcvr32d":e,\u654E\u80B2:e,"xn--wcvs22d":e,\u6559\u80B2:e,"xn--gmq050i":e,\u7B87\u4EBA:e,"xn--uc0atv":e,\u7D44\u7E54:e,"xn--uc0ay4a":e,\u7D44\u7EC7:e,"xn--od0alg":e,\u7DB2\u7D61:e,"xn--zf0avx":e,\u7DB2\u7EDC:e,"xn--mk0axi":e,\u7EC4\u7E54:e,"xn--tn0ag":e,\u7EC4\u7EC7:e,"xn--od0aq3b":e,\u7F51\u7D61:e,"xn--io0a7i":e,\u7F51\u7EDC:e,inc:t,ltd:t}],hm:e,hn:[1,{com:e,edu:e,gob:e,mil:e,net:e,org:e}],hr:[1,{com:e,from:e,iz:e,name:e,brendly:O}],ht:[1,{adult:e,art:e,asso:e,com:e,coop:e,edu:e,firm:e,gouv:e,info:e,med:e,net:e,org:e,perso:e,pol:e,pro:e,rel:e,shop:e,rt:t}],hu:[1,{2e3:e,agrar:e,bolt:e,casino:e,city:e,co:e,erotica:e,erotika:e,film:e,forum:e,games:e,hotel:e,info:e,ingatlan:e,jogasz:e,konyvelo:e,lakas:e,media:e,news:e,org:e,priv:e,reklam:e,sex:e,shop:e,sport:e,suli:e,szex:e,tm:e,tozsde:e,utazas:e,video:e}],id:[1,{ac:e,biz:e,co:e,desa:e,go:e,kop:e,mil:e,my:e,net:e,or:e,ponpes:e,sch:e,web:e,"xn--9tfky":e,"\u1B29\u1B2E\u1B36":e,e:t,zone:t}],ie:[1,{gov:e,myspreadshop:t}],il:[1,{ac:e,co:[1,{ravpage:t,mytabit:t,tabitorder:t}],gov:e,idf:e,k12:e,muni:e,net:e,org:e}],"xn--4dbrk0ce":[1,{"xn--4dbgdty6c":e,"xn--5dbhl8d":e,"xn--8dbq2a":e,"xn--hebda8b":e}],\u05D9\u05E9\u05E8\u05D0\u05DC:[1,{\u05D0\u05E7\u05D3\u05DE\u05D9\u05D4:e,\u05D9\u05E9\u05D5\u05D1:e,\u05E6\u05D4\u05DC:e,\u05DE\u05DE\u05E9\u05DC:e}],im:[1,{ac:e,co:[1,{ltd:e,plc:e}],com:e,net:e,org:e,tt:e,tv:e}],in:[1,{"5g":e,"6g":e,ac:e,ai:e,am:e,bank:e,bihar:e,biz:e,business:e,ca:e,cn:e,co:e,com:e,coop:e,cs:e,delhi:e,dr:e,edu:e,er:e,fin:e,firm:e,gen:e,gov:e,gujarat:e,ind:e,info:e,int:e,internet:e,io:e,me:e,mil:e,net:e,nic:e,org:e,pg:e,post:e,pro:e,res:e,travel:e,tv:e,uk:e,up:e,us:e,cloudns:t,barsy:t,web:t,indevs:t,supabase:t}],info:[1,{cloudns:t,"dynamic-dns":t,"barrel-of-knowledge":t,"barrell-of-knowledge":t,dyndns:t,"for-our":t,"groks-the":t,"groks-this":t,"here-for-more":t,knowsitall:t,selfip:t,webhop:t,barsy:t,mayfirst:t,mittwald:t,mittwaldserver:t,typo3server:t,dvrcam:t,ilovecollege:t,"no-ip":t,forumz:t,nsupdate:t,dnsupdate:t,"v-info":t}],int:[1,{eu:e}],io:[1,{2038:t,co:e,com:e,edu:e,gov:e,mil:e,net:e,nom:e,org:e,"on-acorn":r,myaddr:t,apigee:t,"b-data":t,beagleboard:t,bitbucket:t,bluebite:t,boxfuse:t,brave:a,browsersafetymark:t,bubble:tt,bubbleapps:t,bigv:[0,{uk0:t}],cleverapps:t,cloudbeesusercontent:t,dappnode:[0,{dyndns:t}],darklang:t,definima:t,dedyn:t,icp0:Kt,icp1:Kt,qzz:t,"fh-muenster":t,gitbook:t,github:t,gitlab:t,lolipop:t,"hasura-app":t,hostyhosting:t,hypernode:t,moonscale:r,beebyte:Rt,beebyteapp:[0,{sekd1:t}],jele:t,keenetic:t,kiloapps:t,webthings:t,loginline:t,barsy:t,azurecontainer:r,ngrok:[2,{ap:t,au:t,eu:t,in:t,jp:t,sa:t,us:t}],nodeart:[0,{stage:t}],pantheonsite:t,forgerock:[0,{id:t}],pstmn:[2,{mock:t}],protonet:t,qcx:[2,{sys:r}],qoto:t,vaporcloud:t,myrdbx:t,"rb-hosting":Zo,"on-k3s":r,"on-rio":r,readthedocs:t,resindevice:t,resinstaging:[0,{devices:t}],hzc:t,sandcats:t,scrypted:[0,{client:t}],"mo-siemens":t,lair:jt,stolos:r,musician:t,utwente:t,edugit:t,telebit:t,thingdust:[0,{dev:en,disrec:en,prod:Mn,testing:en}],tickets:t,webflow:t,webflowtest:t,"drive-platform":t,editorx:t,wixstudio:t,basicserver:t,virtualserver:t}],iq:o,ir:[1,{ac:e,co:e,gov:e,id:e,net:e,org:e,sch:e,"xn--mgba3a4f16a":e,\u0627\u06CC\u0631\u0627\u0646:e,"xn--mgba3a4fra":e,\u0627\u064A\u0631\u0627\u0646:e,arvanedge:t,vistablog:t}],is:e,it:[1,{edu:e,gov:e,abr:e,abruzzo:e,"aosta-valley":e,aostavalley:e,bas:e,basilicata:e,cal:e,calabria:e,cam:e,campania:e,"emilia-romagna":e,emiliaromagna:e,emr:e,"friuli-v-giulia":e,"friuli-ve-giulia":e,"friuli-vegiulia":e,"friuli-venezia-giulia":e,"friuli-veneziagiulia":e,"friuli-vgiulia":e,"friuliv-giulia":e,"friulive-giulia":e,friulivegiulia:e,"friulivenezia-giulia":e,friuliveneziagiulia:e,friulivgiulia:e,fvg:e,laz:e,lazio:e,lig:e,liguria:e,lom:e,lombardia:e,lombardy:e,lucania:e,mar:e,marche:e,mol:e,molise:e,piedmont:e,piemonte:e,pmn:e,pug:e,puglia:e,sar:e,sardegna:e,sardinia:e,sic:e,sicilia:e,sicily:e,taa:e,tos:e,toscana:e,"trentin-sud-tirol":e,"xn--trentin-sd-tirol-rzb":e,"trentin-s\xFCd-tirol":e,"trentin-sudtirol":e,"xn--trentin-sdtirol-7vb":e,"trentin-s\xFCdtirol":e,"trentin-sued-tirol":e,"trentin-suedtirol":e,trentino:e,"trentino-a-adige":e,"trentino-aadige":e,"trentino-alto-adige":e,"trentino-altoadige":e,"trentino-s-tirol":e,"trentino-stirol":e,"trentino-sud-tirol":e,"xn--trentino-sd-tirol-c3b":e,"trentino-s\xFCd-tirol":e,"trentino-sudtirol":e,"xn--trentino-sdtirol-szb":e,"trentino-s\xFCdtirol":e,"trentino-sued-tirol":e,"trentino-suedtirol":e,"trentinoa-adige":e,trentinoaadige:e,"trentinoalto-adige":e,trentinoaltoadige:e,"trentinos-tirol":e,trentinostirol:e,"trentinosud-tirol":e,"xn--trentinosd-tirol-rzb":e,"trentinos\xFCd-tirol":e,trentinosudtirol:e,"xn--trentinosdtirol-7vb":e,trentinos\u00FCdtirol:e,"trentinosued-tirol":e,trentinosuedtirol:e,"trentinsud-tirol":e,"xn--trentinsd-tirol-6vb":e,"trentins\xFCd-tirol":e,trentinsudtirol:e,"xn--trentinsdtirol-nsb":e,trentins\u00FCdtirol:e,"trentinsued-tirol":e,trentinsuedtirol:e,tuscany:e,umb:e,umbria:e,"val-d-aosta":e,"val-daosta":e,"vald-aosta":e,valdaosta:e,"valle-aosta":e,"valle-d-aosta":e,"valle-daosta":e,valleaosta:e,"valled-aosta":e,valledaosta:e,"vallee-aoste":e,"xn--valle-aoste-ebb":e,"vall\xE9e-aoste":e,"vallee-d-aoste":e,"xn--valle-d-aoste-ehb":e,"vall\xE9e-d-aoste":e,valleeaoste:e,"xn--valleaoste-e7a":e,vall\u00E9eaoste:e,valleedaoste:e,"xn--valledaoste-ebb":e,vall\u00E9edaoste:e,vao:e,vda:e,ven:e,veneto:e,ag:e,agrigento:e,al:e,alessandria:e,"alto-adige":e,altoadige:e,an:e,ancona:e,"andria-barletta-trani":e,"andria-trani-barletta":e,andriabarlettatrani:e,andriatranibarletta:e,ao:e,aosta:e,aoste:e,ap:e,aq:e,aquila:e,ar:e,arezzo:e,"ascoli-piceno":e,ascolipiceno:e,asti:e,at:e,av:e,avellino:e,ba:e,balsan:e,"balsan-sudtirol":e,"xn--balsan-sdtirol-nsb":e,"balsan-s\xFCdtirol":e,"balsan-suedtirol":e,bari:e,"barletta-trani-andria":e,barlettatraniandria:e,belluno:e,benevento:e,bergamo:e,bg:e,bi:e,biella:e,bl:e,bn:e,bo:e,bologna:e,bolzano:e,"bolzano-altoadige":e,bozen:e,"bozen-sudtirol":e,"xn--bozen-sdtirol-2ob":e,"bozen-s\xFCdtirol":e,"bozen-suedtirol":e,br:e,brescia:e,brindisi:e,bs:e,bt:e,bulsan:e,"bulsan-sudtirol":e,"xn--bulsan-sdtirol-nsb":e,"bulsan-s\xFCdtirol":e,"bulsan-suedtirol":e,bz:e,ca:e,cagliari:e,caltanissetta:e,"campidano-medio":e,campidanomedio:e,campobasso:e,"carbonia-iglesias":e,carboniaiglesias:e,"carrara-massa":e,carraramassa:e,caserta:e,catania:e,catanzaro:e,cb:e,ce:e,"cesena-forli":e,"xn--cesena-forl-mcb":e,"cesena-forl\xEC":e,cesenaforli:e,"xn--cesenaforl-i8a":e,cesenaforl\u00EC:e,ch:e,chieti:e,ci:e,cl:e,cn:e,co:e,como:e,cosenza:e,cr:e,cremona:e,crotone:e,cs:e,ct:e,cuneo:e,cz:e,"dell-ogliastra":e,dellogliastra:e,en:e,enna:e,fc:e,fe:e,fermo:e,ferrara:e,fg:e,fi:e,firenze:e,florence:e,fm:e,foggia:e,"forli-cesena":e,"xn--forl-cesena-fcb":e,"forl\xEC-cesena":e,forlicesena:e,"xn--forlcesena-c8a":e,forl\u00ECcesena:e,fr:e,frosinone:e,ge:e,genoa:e,genova:e,go:e,gorizia:e,gr:e,grosseto:e,"iglesias-carbonia":e,iglesiascarbonia:e,im:e,imperia:e,is:e,isernia:e,kr:e,"la-spezia":e,laquila:e,laspezia:e,latina:e,lc:e,le:e,lecce:e,lecco:e,li:e,livorno:e,lo:e,lodi:e,lt:e,lu:e,lucca:e,macerata:e,mantova:e,"massa-carrara":e,massacarrara:e,matera:e,mb:e,mc:e,me:e,"medio-campidano":e,mediocampidano:e,messina:e,mi:e,milan:e,milano:e,mn:e,mo:e,modena:e,monza:e,"monza-brianza":e,"monza-e-della-brianza":e,monzabrianza:e,monzaebrianza:e,monzaedellabrianza:e,ms:e,mt:e,na:e,naples:e,napoli:e,no:e,novara:e,nu:e,nuoro:e,og:e,ogliastra:e,"olbia-tempio":e,olbiatempio:e,or:e,oristano:e,ot:e,pa:e,padova:e,padua:e,palermo:e,parma:e,pavia:e,pc:e,pd:e,pe:e,perugia:e,"pesaro-urbino":e,pesarourbino:e,pescara:e,pg:e,pi:e,piacenza:e,pisa:e,pistoia:e,pn:e,po:e,pordenone:e,potenza:e,pr:e,prato:e,pt:e,pu:e,pv:e,pz:e,ra:e,ragusa:e,ravenna:e,rc:e,re:e,"reggio-calabria":e,"reggio-emilia":e,reggiocalabria:e,reggioemilia:e,rg:e,ri:e,rieti:e,rimini:e,rm:e,rn:e,ro:e,roma:e,rome:e,rovigo:e,sa:e,salerno:e,sassari:e,savona:e,si:e,siena:e,siracusa:e,so:e,sondrio:e,sp:e,sr:e,ss:e,"xn--sdtirol-n2a":e,s\u00FCdtirol:e,suedtirol:e,sv:e,ta:e,taranto:e,te:e,"tempio-olbia":e,tempioolbia:e,teramo:e,terni:e,tn:e,to:e,torino:e,tp:e,tr:e,"trani-andria-barletta":e,"trani-barletta-andria":e,traniandriabarletta:e,tranibarlettaandria:e,trapani:e,trento:e,treviso:e,trieste:e,ts:e,turin:e,tv:e,ud:e,udine:e,"urbino-pesaro":e,urbinopesaro:e,va:e,varese:e,vb:e,vc:e,ve:e,venezia:e,venice:e,verbania:e,vercelli:e,verona:e,vi:e,"vibo-valentia":e,vibovalentia:e,vicenza:e,viterbo:e,vr:e,vs:e,vt:e,vv:e,ibxos:t,iliadboxos:t,neen:[0,{jc:t}],"123homepage":t,"16-b":t,"32-b":t,"64-b":t,myspreadshop:t,syncloud:t}],je:[1,{co:e,net:e,org:e,of:t}],jm:M,jo:[1,{agri:e,ai:e,com:e,edu:e,eng:e,fm:e,gov:e,mil:e,net:e,org:e,per:e,phd:e,sch:e,tv:e}],jobs:e,jp:[1,{ac:e,ad:e,co:e,ed:e,go:e,gr:e,lg:e,ne:[1,{aseinet:vn,gehirn:t,ivory:t,"mail-box":t,mints:t,mokuren:t,opal:t,sakura:t,sumomo:t,topaz:t}],or:e,aichi:[1,{aisai:e,ama:e,anjo:e,asuke:e,chiryu:e,chita:e,fuso:e,gamagori:e,handa:e,hazu:e,hekinan:e,higashiura:e,ichinomiya:e,inazawa:e,inuyama:e,isshiki:e,iwakura:e,kanie:e,kariya:e,kasugai:e,kira:e,kiyosu:e,komaki:e,konan:e,kota:e,mihama:e,miyoshi:e,nishio:e,nisshin:e,obu:e,oguchi:e,oharu:e,okazaki:e,owariasahi:e,seto:e,shikatsu:e,shinshiro:e,shitara:e,tahara:e,takahama:e,tobishima:e,toei:e,togo:e,tokai:e,tokoname:e,toyoake:e,toyohashi:e,toyokawa:e,toyone:e,toyota:e,tsushima:e,yatomi:e}],akita:[1,{akita:e,daisen:e,fujisato:e,gojome:e,hachirogata:e,happou:e,higashinaruse:e,honjo:e,honjyo:e,ikawa:e,kamikoani:e,kamioka:e,katagami:e,kazuno:e,kitaakita:e,kosaka:e,kyowa:e,misato:e,mitane:e,moriyoshi:e,nikaho:e,noshiro:e,odate:e,oga:e,ogata:e,semboku:e,yokote:e,yurihonjo:e}],aomori:[1,{aomori:e,gonohe:e,hachinohe:e,hashikami:e,hiranai:e,hirosaki:e,itayanagi:e,kuroishi:e,misawa:e,mutsu:e,nakadomari:e,noheji:e,oirase:e,owani:e,rokunohe:e,sannohe:e,shichinohe:e,shingo:e,takko:e,towada:e,tsugaru:e,tsuruta:e}],chiba:[1,{abiko:e,asahi:e,chonan:e,chosei:e,choshi:e,chuo:e,funabashi:e,futtsu:e,hanamigawa:e,ichihara:e,ichikawa:e,ichinomiya:e,inzai:e,isumi:e,kamagaya:e,kamogawa:e,kashiwa:e,katori:e,katsuura:e,kimitsu:e,kisarazu:e,kozaki:e,kujukuri:e,kyonan:e,matsudo:e,midori:e,mihama:e,minamiboso:e,mobara:e,mutsuzawa:e,nagara:e,nagareyama:e,narashino:e,narita:e,noda:e,oamishirasato:e,omigawa:e,onjuku:e,otaki:e,sakae:e,sakura:e,shimofusa:e,shirako:e,shiroi:e,shisui:e,sodegaura:e,sosa:e,tako:e,tateyama:e,togane:e,tohnosho:e,tomisato:e,urayasu:e,yachimata:e,yachiyo:e,yokaichiba:e,yokoshibahikari:e,yotsukaido:e}],ehime:[1,{ainan:e,honai:e,ikata:e,imabari:e,iyo:e,kamijima:e,kihoku:e,kumakogen:e,masaki:e,matsuno:e,matsuyama:e,namikata:e,niihama:e,ozu:e,saijo:e,seiyo:e,shikokuchuo:e,tobe:e,toon:e,uchiko:e,uwajima:e,yawatahama:e}],fukui:[1,{echizen:e,eiheiji:e,fukui:e,ikeda:e,katsuyama:e,mihama:e,minamiechizen:e,obama:e,ohi:e,ono:e,sabae:e,sakai:e,takahama:e,tsuruga:e,wakasa:e}],fukuoka:[1,{ashiya:e,buzen:e,chikugo:e,chikuho:e,chikujo:e,chikushino:e,chikuzen:e,chuo:e,dazaifu:e,fukuchi:e,hakata:e,higashi:e,hirokawa:e,hisayama:e,iizuka:e,inatsuki:e,kaho:e,kasuga:e,kasuya:e,kawara:e,keisen:e,koga:e,kurate:e,kurogi:e,kurume:e,minami:e,miyako:e,miyama:e,miyawaka:e,mizumaki:e,munakata:e,nakagawa:e,nakama:e,nishi:e,nogata:e,ogori:e,okagaki:e,okawa:e,oki:e,omuta:e,onga:e,onojo:e,oto:e,saigawa:e,sasaguri:e,shingu:e,shinyoshitomi:e,shonai:e,soeda:e,sue:e,tachiarai:e,tagawa:e,takata:e,toho:e,toyotsu:e,tsuiki:e,ukiha:e,umi:e,usui:e,yamada:e,yame:e,yanagawa:e,yukuhashi:e}],fukushima:[1,{aizubange:e,aizumisato:e,aizuwakamatsu:e,asakawa:e,bandai:e,date:e,fukushima:e,furudono:e,futaba:e,hanawa:e,higashi:e,hirata:e,hirono:e,iitate:e,inawashiro:e,ishikawa:e,iwaki:e,izumizaki:e,kagamiishi:e,kaneyama:e,kawamata:e,kitakata:e,kitashiobara:e,koori:e,koriyama:e,kunimi:e,miharu:e,mishima:e,namie:e,nango:e,nishiaizu:e,nishigo:e,okuma:e,omotego:e,ono:e,otama:e,samegawa:e,shimogo:e,shirakawa:e,showa:e,soma:e,sukagawa:e,taishin:e,tamakawa:e,tanagura:e,tenei:e,yabuki:e,yamato:e,yamatsuri:e,yanaizu:e,yugawa:e}],gifu:[1,{anpachi:e,ena:e,gifu:e,ginan:e,godo:e,gujo:e,hashima:e,hichiso:e,hida:e,higashishirakawa:e,ibigawa:e,ikeda:e,kakamigahara:e,kani:e,kasahara:e,kasamatsu:e,kawaue:e,kitagata:e,mino:e,minokamo:e,mitake:e,mizunami:e,motosu:e,nakatsugawa:e,ogaki:e,sakahogi:e,seki:e,sekigahara:e,shirakawa:e,tajimi:e,takayama:e,tarui:e,toki:e,tomika:e,wanouchi:e,yamagata:e,yaotsu:e,yoro:e}],gunma:[1,{annaka:e,chiyoda:e,fujioka:e,higashiagatsuma:e,isesaki:e,itakura:e,kanna:e,kanra:e,katashina:e,kawaba:e,kiryu:e,kusatsu:e,maebashi:e,meiwa:e,midori:e,minakami:e,naganohara:e,nakanojo:e,nanmoku:e,numata:e,oizumi:e,ora:e,ota:e,shibukawa:e,shimonita:e,shinto:e,showa:e,takasaki:e,takayama:e,tamamura:e,tatebayashi:e,tomioka:e,tsukiyono:e,tsumagoi:e,ueno:e,yoshioka:e}],hiroshima:[1,{asaminami:e,daiwa:e,etajima:e,fuchu:e,fukuyama:e,hatsukaichi:e,higashihiroshima:e,hongo:e,jinsekikogen:e,kaita:e,kui:e,kumano:e,kure:e,mihara:e,miyoshi:e,naka:e,onomichi:e,osakikamijima:e,otake:e,saka:e,sera:e,seranishi:e,shinichi:e,shobara:e,takehara:e}],hokkaido:[1,{abashiri:e,abira:e,aibetsu:e,akabira:e,akkeshi:e,asahikawa:e,ashibetsu:e,ashoro:e,assabu:e,atsuma:e,bibai:e,biei:e,bifuka:e,bihoro:e,biratori:e,chippubetsu:e,chitose:e,date:e,ebetsu:e,embetsu:e,eniwa:e,erimo:e,esan:e,esashi:e,fukagawa:e,fukushima:e,furano:e,furubira:e,haboro:e,hakodate:e,hamatonbetsu:e,hidaka:e,higashikagura:e,higashikawa:e,hiroo:e,hokuryu:e,hokuto:e,honbetsu:e,horokanai:e,horonobe:e,ikeda:e,imakane:e,ishikari:e,iwamizawa:e,iwanai:e,kamifurano:e,kamikawa:e,kamishihoro:e,kamisunagawa:e,kamoenai:e,kayabe:e,kembuchi:e,kikonai:e,kimobetsu:e,kitahiroshima:e,kitami:e,kiyosato:e,koshimizu:e,kunneppu:e,kuriyama:e,kuromatsunai:e,kushiro:e,kutchan:e,kyowa:e,mashike:e,matsumae:e,mikasa:e,minamifurano:e,mombetsu:e,moseushi:e,mukawa:e,muroran:e,naie:e,nakagawa:e,nakasatsunai:e,nakatombetsu:e,nanae:e,nanporo:e,nayoro:e,nemuro:e,niikappu:e,niki:e,nishiokoppe:e,noboribetsu:e,numata:e,obihiro:e,obira:e,oketo:e,okoppe:e,otaru:e,otobe:e,otofuke:e,otoineppu:e,oumu:e,ozora:e,pippu:e,rankoshi:e,rebun:e,rikubetsu:e,rishiri:e,rishirifuji:e,saroma:e,sarufutsu:e,shakotan:e,shari:e,shibecha:e,shibetsu:e,shikabe:e,shikaoi:e,shimamaki:e,shimizu:e,shimokawa:e,shinshinotsu:e,shintoku:e,shiranuka:e,shiraoi:e,shiriuchi:e,sobetsu:e,sunagawa:e,taiki:e,takasu:e,takikawa:e,takinoue:e,teshikaga:e,tobetsu:e,tohma:e,tomakomai:e,tomari:e,toya:e,toyako:e,toyotomi:e,toyoura:e,tsubetsu:e,tsukigata:e,urakawa:e,urausu:e,uryu:e,utashinai:e,wakkanai:e,wassamu:e,yakumo:e,yoichi:e}],hyogo:[1,{aioi:e,akashi:e,ako:e,amagasaki:e,aogaki:e,asago:e,ashiya:e,awaji:e,fukusaki:e,goshiki:e,harima:e,himeji:e,ichikawa:e,inagawa:e,itami:e,kakogawa:e,kamigori:e,kamikawa:e,kasai:e,kasuga:e,kawanishi:e,miki:e,minamiawaji:e,nishinomiya:e,nishiwaki:e,ono:e,sanda:e,sannan:e,sasayama:e,sayo:e,shingu:e,shinonsen:e,shiso:e,sumoto:e,taishi:e,taka:e,takarazuka:e,takasago:e,takino:e,tamba:e,tatsuno:e,toyooka:e,yabu:e,yashiro:e,yoka:e,yokawa:e}],ibaraki:[1,{ami:e,asahi:e,bando:e,chikusei:e,daigo:e,fujishiro:e,hitachi:e,hitachinaka:e,hitachiomiya:e,hitachiota:e,ibaraki:e,ina:e,inashiki:e,itako:e,iwama:e,joso:e,kamisu:e,kasama:e,kashima:e,kasumigaura:e,koga:e,miho:e,mito:e,moriya:e,naka:e,namegata:e,oarai:e,ogawa:e,omitama:e,ryugasaki:e,sakai:e,sakuragawa:e,shimodate:e,shimotsuma:e,shirosato:e,sowa:e,suifu:e,takahagi:e,tamatsukuri:e,tokai:e,tomobe:e,tone:e,toride:e,tsuchiura:e,tsukuba:e,uchihara:e,ushiku:e,yachiyo:e,yamagata:e,yawara:e,yuki:e}],ishikawa:[1,{anamizu:e,hakui:e,hakusan:e,kaga:e,kahoku:e,kanazawa:e,kawakita:e,komatsu:e,nakanoto:e,nanao:e,nomi:e,nonoichi:e,noto:e,shika:e,suzu:e,tsubata:e,tsurugi:e,uchinada:e,wajima:e}],iwate:[1,{fudai:e,fujisawa:e,hanamaki:e,hiraizumi:e,hirono:e,ichinohe:e,ichinoseki:e,iwaizumi:e,iwate:e,joboji:e,kamaishi:e,kanegasaki:e,karumai:e,kawai:e,kitakami:e,kuji:e,kunohe:e,kuzumaki:e,miyako:e,mizusawa:e,morioka:e,ninohe:e,noda:e,ofunato:e,oshu:e,otsuchi:e,rikuzentakata:e,shiwa:e,shizukuishi:e,sumita:e,tanohata:e,tono:e,yahaba:e,yamada:e}],kagawa:[1,{ayagawa:e,higashikagawa:e,kanonji:e,kotohira:e,manno:e,marugame:e,mitoyo:e,naoshima:e,sanuki:e,tadotsu:e,takamatsu:e,tonosho:e,uchinomi:e,utazu:e,zentsuji:e}],kagoshima:[1,{akune:e,amami:e,hioki:e,isa:e,isen:e,izumi:e,kagoshima:e,kanoya:e,kawanabe:e,kinko:e,kouyama:e,makurazaki:e,matsumoto:e,minamitane:e,nakatane:e,nishinoomote:e,satsumasendai:e,soo:e,tarumizu:e,yusui:e}],kanagawa:[1,{aikawa:e,atsugi:e,ayase:e,chigasaki:e,ebina:e,fujisawa:e,hadano:e,hakone:e,hiratsuka:e,isehara:e,kaisei:e,kamakura:e,kiyokawa:e,matsuda:e,minamiashigara:e,miura:e,nakai:e,ninomiya:e,odawara:e,oi:e,oiso:e,sagamihara:e,samukawa:e,tsukui:e,yamakita:e,yamato:e,yokosuka:e,yugawara:e,zama:e,zushi:e}],kochi:[1,{aki:e,geisei:e,hidaka:e,higashitsuno:e,ino:e,kagami:e,kami:e,kitagawa:e,kochi:e,mihara:e,motoyama:e,muroto:e,nahari:e,nakamura:e,nankoku:e,nishitosa:e,niyodogawa:e,ochi:e,okawa:e,otoyo:e,otsuki:e,sakawa:e,sukumo:e,susaki:e,tosa:e,tosashimizu:e,toyo:e,tsuno:e,umaji:e,yasuda:e,yusuhara:e}],kumamoto:[1,{amakusa:e,arao:e,aso:e,choyo:e,gyokuto:e,kamiamakusa:e,kikuchi:e,kumamoto:e,mashiki:e,mifune:e,minamata:e,minamioguni:e,nagasu:e,nishihara:e,oguni:e,ozu:e,sumoto:e,takamori:e,uki:e,uto:e,yamaga:e,yamato:e,yatsushiro:e}],kyoto:[1,{ayabe:e,fukuchiyama:e,higashiyama:e,ide:e,ine:e,joyo:e,kameoka:e,kamo:e,kita:e,kizu:e,kumiyama:e,kyotamba:e,kyotanabe:e,kyotango:e,maizuru:e,minami:e,minamiyamashiro:e,miyazu:e,muko:e,nagaokakyo:e,nakagyo:e,nantan:e,oyamazaki:e,sakyo:e,seika:e,tanabe:e,uji:e,ujitawara:e,wazuka:e,yamashina:e,yawata:e}],mie:[1,{asahi:e,inabe:e,ise:e,kameyama:e,kawagoe:e,kiho:e,kisosaki:e,kiwa:e,komono:e,kumano:e,kuwana:e,matsusaka:e,meiwa:e,mihama:e,minamiise:e,misugi:e,miyama:e,nabari:e,shima:e,suzuka:e,tado:e,taiki:e,taki:e,tamaki:e,toba:e,tsu:e,udono:e,ureshino:e,watarai:e,yokkaichi:e}],miyagi:[1,{furukawa:e,higashimatsushima:e,ishinomaki:e,iwanuma:e,kakuda:e,kami:e,kawasaki:e,marumori:e,matsushima:e,minamisanriku:e,misato:e,murata:e,natori:e,ogawara:e,ohira:e,onagawa:e,osaki:e,rifu:e,semine:e,shibata:e,shichikashuku:e,shikama:e,shiogama:e,shiroishi:e,tagajo:e,taiwa:e,tome:e,tomiya:e,wakuya:e,watari:e,yamamoto:e,zao:e}],miyazaki:[1,{aya:e,ebino:e,gokase:e,hyuga:e,kadogawa:e,kawaminami:e,kijo:e,kitagawa:e,kitakata:e,kitaura:e,kobayashi:e,kunitomi:e,kushima:e,mimata:e,miyakonojo:e,miyazaki:e,morotsuka:e,nichinan:e,nishimera:e,nobeoka:e,saito:e,shiiba:e,shintomi:e,takaharu:e,takanabe:e,takazaki:e,tsuno:e}],nagano:[1,{achi:e,agematsu:e,anan:e,aoki:e,asahi:e,azumino:e,chikuhoku:e,chikuma:e,chino:e,fujimi:e,hakuba:e,hara:e,hiraya:e,iida:e,iijima:e,iiyama:e,iizuna:e,ikeda:e,ikusaka:e,ina:e,karuizawa:e,kawakami:e,kiso:e,kisofukushima:e,kitaaiki:e,komagane:e,komoro:e,matsukawa:e,matsumoto:e,miasa:e,minamiaiki:e,minamimaki:e,minamiminowa:e,minowa:e,miyada:e,miyota:e,mochizuki:e,nagano:e,nagawa:e,nagiso:e,nakagawa:e,nakano:e,nozawaonsen:e,obuse:e,ogawa:e,okaya:e,omachi:e,omi:e,ookuwa:e,ooshika:e,otaki:e,otari:e,sakae:e,sakaki:e,saku:e,sakuho:e,shimosuwa:e,shinanomachi:e,shiojiri:e,suwa:e,suzaka:e,takagi:e,takamori:e,takayama:e,tateshina:e,tatsuno:e,togakushi:e,togura:e,tomi:e,ueda:e,wada:e,yamagata:e,yamanouchi:e,yasaka:e,yasuoka:e}],nagasaki:[1,{chijiwa:e,futsu:e,goto:e,hasami:e,hirado:e,iki:e,isahaya:e,kawatana:e,kuchinotsu:e,matsuura:e,nagasaki:e,obama:e,omura:e,oseto:e,saikai:e,sasebo:e,seihi:e,shimabara:e,shinkamigoto:e,togitsu:e,tsushima:e,unzen:e}],nara:[1,{ando:e,gose:e,heguri:e,higashiyoshino:e,ikaruga:e,ikoma:e,kamikitayama:e,kanmaki:e,kashiba:e,kashihara:e,katsuragi:e,kawai:e,kawakami:e,kawanishi:e,koryo:e,kurotaki:e,mitsue:e,miyake:e,nara:e,nosegawa:e,oji:e,ouda:e,oyodo:e,sakurai:e,sango:e,shimoichi:e,shimokitayama:e,shinjo:e,soni:e,takatori:e,tawaramoto:e,tenkawa:e,tenri:e,uda:e,yamatokoriyama:e,yamatotakada:e,yamazoe:e,yoshino:e}],niigata:[1,{aga:e,agano:e,gosen:e,itoigawa:e,izumozaki:e,joetsu:e,kamo:e,kariwa:e,kashiwazaki:e,minamiuonuma:e,mitsuke:e,muika:e,murakami:e,myoko:e,nagaoka:e,niigata:e,ojiya:e,omi:e,sado:e,sanjo:e,seiro:e,seirou:e,sekikawa:e,shibata:e,tagami:e,tainai:e,tochio:e,tokamachi:e,tsubame:e,tsunan:e,uonuma:e,yahiko:e,yoita:e,yuzawa:e}],oita:[1,{beppu:e,bungoono:e,bungotakada:e,hasama:e,hiji:e,himeshima:e,hita:e,kamitsue:e,kokonoe:e,kuju:e,kunisaki:e,kusu:e,oita:e,saiki:e,taketa:e,tsukumi:e,usa:e,usuki:e,yufu:e}],okayama:[1,{akaiwa:e,asakuchi:e,bizen:e,hayashima:e,ibara:e,kagamino:e,kasaoka:e,kibichuo:e,kumenan:e,kurashiki:e,maniwa:e,misaki:e,nagi:e,niimi:e,nishiawakura:e,okayama:e,satosho:e,setouchi:e,shinjo:e,shoo:e,soja:e,takahashi:e,tamano:e,tsuyama:e,wake:e,yakage:e}],okinawa:[1,{aguni:e,ginowan:e,ginoza:e,gushikami:e,haebaru:e,higashi:e,hirara:e,iheya:e,ishigaki:e,ishikawa:e,itoman:e,izena:e,kadena:e,kin:e,kitadaito:e,kitanakagusuku:e,kumejima:e,kunigami:e,minamidaito:e,motobu:e,nago:e,naha:e,nakagusuku:e,nakijin:e,nanjo:e,nishihara:e,ogimi:e,okinawa:e,onna:e,shimoji:e,taketomi:e,tarama:e,tokashiki:e,tomigusuku:e,tonaki:e,urasoe:e,uruma:e,yaese:e,yomitan:e,yonabaru:e,yonaguni:e,zamami:e}],osaka:[1,{abeno:e,chihayaakasaka:e,chuo:e,daito:e,fujiidera:e,habikino:e,hannan:e,higashiosaka:e,higashisumiyoshi:e,higashiyodogawa:e,hirakata:e,ibaraki:e,ikeda:e,izumi:e,izumiotsu:e,izumisano:e,kadoma:e,kaizuka:e,kanan:e,kashiwara:e,katano:e,kawachinagano:e,kishiwada:e,kita:e,kumatori:e,matsubara:e,minato:e,minoh:e,misaki:e,moriguchi:e,neyagawa:e,nishi:e,nose:e,osakasayama:e,sakai:e,sayama:e,sennan:e,settsu:e,shijonawate:e,shimamoto:e,suita:e,tadaoka:e,taishi:e,tajiri:e,takaishi:e,takatsuki:e,tondabayashi:e,toyonaka:e,toyono:e,yao:e}],saga:[1,{ariake:e,arita:e,fukudomi:e,genkai:e,hamatama:e,hizen:e,imari:e,kamimine:e,kanzaki:e,karatsu:e,kashima:e,kitagata:e,kitahata:e,kiyama:e,kouhoku:e,kyuragi:e,nishiarita:e,ogi:e,omachi:e,ouchi:e,saga:e,shiroishi:e,taku:e,tara:e,tosu:e,yoshinogari:e}],saitama:[1,{arakawa:e,asaka:e,chichibu:e,fujimi:e,fujimino:e,fukaya:e,hanno:e,hanyu:e,hasuda:e,hatogaya:e,hatoyama:e,hidaka:e,higashichichibu:e,higashimatsuyama:e,honjo:e,ina:e,iruma:e,iwatsuki:e,kamiizumi:e,kamikawa:e,kamisato:e,kasukabe:e,kawagoe:e,kawaguchi:e,kawajima:e,kazo:e,kitamoto:e,koshigaya:e,kounosu:e,kuki:e,kumagaya:e,matsubushi:e,minano:e,misato:e,miyashiro:e,miyoshi:e,moroyama:e,nagatoro:e,namegawa:e,niiza:e,ogano:e,ogawa:e,ogose:e,okegawa:e,omiya:e,otaki:e,ranzan:e,ryokami:e,saitama:e,sakado:e,satte:e,sayama:e,shiki:e,shiraoka:e,soka:e,sugito:e,toda:e,tokigawa:e,tokorozawa:e,tsurugashima:e,urawa:e,warabi:e,yashio:e,yokoze:e,yono:e,yorii:e,yoshida:e,yoshikawa:e,yoshimi:e}],shiga:[1,{aisho:e,gamo:e,higashiomi:e,hikone:e,koka:e,konan:e,kosei:e,koto:e,kusatsu:e,maibara:e,moriyama:e,nagahama:e,nishiazai:e,notogawa:e,omihachiman:e,otsu:e,ritto:e,ryuoh:e,takashima:e,takatsuki:e,torahime:e,toyosato:e,yasu:e}],shimane:[1,{akagi:e,ama:e,gotsu:e,hamada:e,higashiizumo:e,hikawa:e,hikimi:e,izumo:e,kakinoki:e,masuda:e,matsue:e,misato:e,nishinoshima:e,ohda:e,okinoshima:e,okuizumo:e,shimane:e,tamayu:e,tsuwano:e,unnan:e,yakumo:e,yasugi:e,yatsuka:e}],shizuoka:[1,{arai:e,atami:e,fuji:e,fujieda:e,fujikawa:e,fujinomiya:e,fukuroi:e,gotemba:e,haibara:e,hamamatsu:e,higashiizu:e,ito:e,iwata:e,izu:e,izunokuni:e,kakegawa:e,kannami:e,kawanehon:e,kawazu:e,kikugawa:e,kosai:e,makinohara:e,matsuzaki:e,minamiizu:e,mishima:e,morimachi:e,nishiizu:e,numazu:e,omaezaki:e,shimada:e,shimizu:e,shimoda:e,shizuoka:e,susono:e,yaizu:e,yoshida:e}],tochigi:[1,{ashikaga:e,bato:e,haga:e,ichikai:e,iwafune:e,kaminokawa:e,kanuma:e,karasuyama:e,kuroiso:e,mashiko:e,mibu:e,moka:e,motegi:e,nasu:e,nasushiobara:e,nikko:e,nishikata:e,nogi:e,ohira:e,ohtawara:e,oyama:e,sakura:e,sano:e,shimotsuke:e,shioya:e,takanezawa:e,tochigi:e,tsuga:e,ujiie:e,utsunomiya:e,yaita:e}],tokushima:[1,{aizumi:e,anan:e,ichiba:e,itano:e,kainan:e,komatsushima:e,matsushige:e,mima:e,minami:e,miyoshi:e,mugi:e,nakagawa:e,naruto:e,sanagochi:e,shishikui:e,tokushima:e,wajiki:e}],tokyo:[1,{adachi:e,akiruno:e,akishima:e,aogashima:e,arakawa:e,bunkyo:e,chiyoda:e,chofu:e,chuo:e,edogawa:e,fuchu:e,fussa:e,hachijo:e,hachioji:e,hamura:e,higashikurume:e,higashimurayama:e,higashiyamato:e,hino:e,hinode:e,hinohara:e,inagi:e,itabashi:e,katsushika:e,kita:e,kiyose:e,kodaira:e,koganei:e,kokubunji:e,komae:e,koto:e,kouzushima:e,kunitachi:e,machida:e,meguro:e,minato:e,mitaka:e,mizuho:e,musashimurayama:e,musashino:e,nakano:e,nerima:e,ogasawara:e,okutama:e,ome:e,oshima:e,ota:e,setagaya:e,shibuya:e,shinagawa:e,shinjuku:e,suginami:e,sumida:e,tachikawa:e,taito:e,tama:e,toshima:e}],tottori:[1,{chizu:e,hino:e,kawahara:e,koge:e,kotoura:e,misasa:e,nanbu:e,nichinan:e,sakaiminato:e,tottori:e,wakasa:e,yazu:e,yonago:e}],toyama:[1,{asahi:e,fuchu:e,fukumitsu:e,funahashi:e,himi:e,imizu:e,inami:e,johana:e,kamiichi:e,kurobe:e,nakaniikawa:e,namerikawa:e,nanto:e,nyuzen:e,oyabe:e,taira:e,takaoka:e,tateyama:e,toga:e,tonami:e,toyama:e,unazuki:e,uozu:e,yamada:e}],wakayama:[1,{arida:e,aridagawa:e,gobo:e,hashimoto:e,hidaka:e,hirogawa:e,inami:e,iwade:e,kainan:e,kamitonda:e,katsuragi:e,kimino:e,kinokawa:e,kitayama:e,koya:e,koza:e,kozagawa:e,kudoyama:e,kushimoto:e,mihama:e,misato:e,nachikatsuura:e,shingu:e,shirahama:e,taiji:e,tanabe:e,wakayama:e,yuasa:e,yura:e}],yamagata:[1,{asahi:e,funagata:e,higashine:e,iide:e,kahoku:e,kaminoyama:e,kaneyama:e,kawanishi:e,mamurogawa:e,mikawa:e,murayama:e,nagai:e,nakayama:e,nanyo:e,nishikawa:e,obanazawa:e,oe:e,oguni:e,ohkura:e,oishida:e,sagae:e,sakata:e,sakegawa:e,shinjo:e,shirataka:e,shonai:e,takahata:e,tendo:e,tozawa:e,tsuruoka:e,yamagata:e,yamanobe:e,yonezawa:e,yuza:e}],yamaguchi:[1,{abu:e,hagi:e,hikari:e,hofu:e,iwakuni:e,kudamatsu:e,mitou:e,nagato:e,oshima:e,shimonoseki:e,shunan:e,tabuse:e,tokuyama:e,toyota:e,ube:e,yuu:e}],yamanashi:[1,{chuo:e,doshi:e,fuefuki:e,fujikawa:e,fujikawaguchiko:e,fujiyoshida:e,hayakawa:e,hokuto:e,ichikawamisato:e,kai:e,kofu:e,koshu:e,kosuge:e,"minami-alps":e,minobu:e,nakamichi:e,nanbu:e,narusawa:e,nirasaki:e,nishikatsura:e,oshino:e,otsuki:e,showa:e,tabayama:e,tsuru:e,uenohara:e,yamanakako:e,yamanashi:e}],"xn--ehqz56n":e,\u4E09\u91CD:e,"xn--1lqs03n":e,\u4EAC\u90FD:e,"xn--qqqt11m":e,\u4F50\u8CC0:e,"xn--f6qx53a":e,\u5175\u5EAB:e,"xn--djrs72d6uy":e,\u5317\u6D77\u9053:e,"xn--mkru45i":e,\u5343\u8449:e,"xn--0trq7p7nn":e,\u548C\u6B4C\u5C71:e,"xn--5js045d":e,\u57FC\u7389:e,"xn--kbrq7o":e,\u5927\u5206:e,"xn--pssu33l":e,\u5927\u962A:e,"xn--ntsq17g":e,\u5948\u826F:e,"xn--uisz3g":e,\u5BAE\u57CE:e,"xn--6btw5a":e,\u5BAE\u5D0E:e,"xn--1ctwo":e,\u5BCC\u5C71:e,"xn--6orx2r":e,\u5C71\u53E3:e,"xn--rht61e":e,\u5C71\u5F62:e,"xn--rht27z":e,\u5C71\u68A8:e,"xn--nit225k":e,\u5C90\u961C:e,"xn--rht3d":e,\u5CA1\u5C71:e,"xn--djty4k":e,\u5CA9\u624B:e,"xn--klty5x":e,\u5CF6\u6839:e,"xn--kltx9a":e,\u5E83\u5CF6:e,"xn--kltp7d":e,\u5FB3\u5CF6:e,"xn--c3s14m":e,\u611B\u5A9B:e,"xn--vgu402c":e,\u611B\u77E5:e,"xn--efvn9s":e,\u65B0\u6F5F:e,"xn--1lqs71d":e,\u6771\u4EAC:e,"xn--4pvxs":e,\u6803\u6728:e,"xn--uuwu58a":e,\u6C96\u7E04:e,"xn--zbx025d":e,\u6ECB\u8CC0:e,"xn--8pvr4u":e,\u718A\u672C:e,"xn--5rtp49c":e,\u77F3\u5DDD:e,"xn--ntso0iqx3a":e,\u795E\u5948\u5DDD:e,"xn--elqq16h":e,\u798F\u4E95:e,"xn--4it168d":e,\u798F\u5CA1:e,"xn--klt787d":e,\u798F\u5CF6:e,"xn--rny31h":e,\u79CB\u7530:e,"xn--7t0a264c":e,\u7FA4\u99AC:e,"xn--uist22h":e,\u8328\u57CE:e,"xn--8ltr62k":e,\u9577\u5D0E:e,"xn--2m4a15e":e,\u9577\u91CE:e,"xn--32vp30h":e,\u9752\u68EE:e,"xn--4it797k":e,\u9759\u5CA1:e,"xn--5rtq34k":e,\u9999\u5DDD:e,"xn--k7yn95e":e,\u9AD8\u77E5:e,"xn--tor131o":e,\u9CE5\u53D6:e,"xn--d5qv7z876c":e,\u9E7F\u5150\u5CF6:e,kawasaki:M,kitakyushu:M,kobe:M,nagoya:M,sapporo:M,sendai:M,yokohama:M,buyshop:t,fashionstore:t,handcrafted:t,kawaiishop:t,supersale:t,theshop:t,"0am":t,"0g0":t,"0j0":t,"0t0":t,mydns:t,pgw:t,wjg:t,usercontent:t,angry:t,babyblue:t,babymilk:t,backdrop:t,bambina:t,bitter:t,blush:t,boo:t,boy:t,boyfriend:t,but:t,candypop:t,capoo:t,catfood:t,cheap:t,chicappa:t,chillout:t,chips:t,chowder:t,chu:t,ciao:t,cocotte:t,coolblog:t,cranky:t,cutegirl:t,daa:t,deca:t,deci:t,digick:t,egoism:t,fakefur:t,fem:t,flier:t,floppy:t,fool:t,frenchkiss:t,girlfriend:t,girly:t,gloomy:t,gonna:t,greater:t,hacca:t,heavy:t,her:t,hiho:t,hippy:t,holy:t,hungry:t,icurus:t,itigo:t,jellybean:t,kikirara:t,kill:t,kilo:t,kuron:t,littlestar:t,lolipopmc:t,lolitapunk:t,lomo:t,lovepop:t,lovesick:t,main:t,mods:t,mond:t,mongolian:t,moo:t,namaste:t,nikita:t,nobushi:t,noor:t,oops:t,parallel:t,parasite:t,pecori:t,peewee:t,penne:t,pepper:t,perma:t,pigboat:t,pinoko:t,punyu:t,pupu:t,pussycat:t,pya:t,raindrop:t,readymade:t,sadist:t,schoolbus:t,secret:t,staba:t,stripper:t,sub:t,sunnyday:t,thick:t,tonkotsu:t,under:t,upper:t,velvet:t,verse:t,versus:t,vivian:t,watson:t,weblike:t,whitesnow:t,zombie:t,hateblo:t,hatenablog:t,hatenadiary:t,"2-d":t,bona:t,crap:t,daynight:t,eek:t,flop:t,halfmoon:t,jeez:t,matrix:t,mimoza:t,netgamers:t,nyanta:t,o0o0:t,rdy:t,rgr:t,rulez:t,sakurastorage:[0,{isk01:Nn,isk02:Nn}],saloon:t,sblo:t,skr:t,tank:t,"uh-oh":t,undo:t,webaccel:[0,{rs:t,user:t}],websozai:t,xii:t}],ke:[1,{ac:e,co:e,go:e,info:e,me:e,mobi:e,ne:e,or:e,sc:e}],kg:[1,{com:e,edu:e,gov:e,mil:e,net:e,org:e,us:t,xx:t,ae:t}],kh:n,ki:po,km:[1,{ass:e,com:e,edu:e,gov:e,mil:e,nom:e,org:e,prd:e,tm:e,asso:e,coop:e,gouv:e,medecin:e,notaires:e,pharmaciens:e,presse:e,veterinaire:e}],kn:[1,{edu:e,gov:e,net:e,org:e}],kp:[1,{com:e,edu:e,gov:e,org:e,rep:e,tra:e}],kr:[1,{ac:e,ai:e,co:e,es:e,go:e,hs:e,io:e,it:e,kg:e,me:e,mil:e,ms:e,ne:e,or:e,pe:e,re:e,sc:e,busan:e,chungbuk:e,chungnam:e,daegu:e,daejeon:e,gangwon:e,gwangju:e,gyeongbuk:e,gyeonggi:e,gyeongnam:e,incheon:e,jeju:e,jeonbuk:e,jeonnam:e,seoul:e,ulsan:e,c01:t,"eliv-api":t,"eliv-cdn":t,"eliv-dns":t,mmv:t,vki:t}],kw:[1,{com:e,edu:e,emb:e,gov:e,ind:e,net:e,org:e}],ky:Yt,kz:[1,{com:e,edu:e,gov:e,mil:e,net:e,org:e,jcloud:t}],la:[1,{com:e,edu:e,gov:e,info:e,int:e,net:e,org:e,per:e,bnr:t}],lb:n,lc:[1,{co:e,com:e,edu:e,gov:e,net:e,org:e,oy:t}],li:e,lk:[1,{ac:e,assn:e,com:e,edu:e,gov:e,grp:e,hotel:e,int:e,ltd:e,net:e,ngo:e,org:e,sch:e,soc:e,web:e}],lr:n,ls:[1,{ac:e,biz:e,co:e,edu:e,gov:e,info:e,net:e,org:e,sc:e}],lt:c,lu:[1,{"123website":t}],lv:[1,{asn:e,com:e,conf:e,edu:e,gov:e,id:e,mil:e,net:e,org:e}],ly:[1,{com:e,edu:e,gov:e,id:e,med:e,net:e,org:e,plc:e,sch:e}],ma:[1,{ac:e,co:e,gov:e,net:e,org:e,press:e}],mc:[1,{asso:e,tm:e}],md:[1,{ir:t}],me:[1,{ac:e,co:e,edu:e,gov:e,its:e,net:e,org:e,priv:e,c66:t,craft:t,edgestack:t,mybox:t,filegear:t,"filegear-sg":t,lohmus:t,barsy:t,mcdir:t,brasilia:t,ddns:t,dnsfor:t,hopto:t,loginto:t,noip:t,webhop:t,soundcast:t,tcp4:t,vp4:t,diskstation:t,dscloud:t,i234:t,myds:t,synology:t,transip:Zo,nohost:t}],mg:[1,{co:e,com:e,edu:e,gov:e,mil:e,nom:e,org:e,prd:e}],mh:e,mil:e,mk:[1,{com:e,edu:e,gov:e,inf:e,name:e,net:e,org:e}],ml:[1,{ac:e,art:e,asso:e,com:e,edu:e,gouv:e,gov:e,info:e,inst:e,net:e,org:e,pr:e,presse:e}],mm:M,mn:[1,{edu:e,gov:e,org:e,nyc:t}],mo:n,mobi:[1,{barsy:t,dscloud:t}],mp:[1,{ju:t}],mq:e,mr:c,ms:[1,{com:e,edu:e,gov:e,net:e,org:e,minisite:t}],mt:Yt,mu:[1,{ac:e,co:e,com:e,gov:e,net:e,or:e,org:e}],museum:e,mv:[1,{aero:e,biz:e,com:e,coop:e,edu:e,gov:e,info:e,int:e,mil:e,museum:e,name:e,net:e,org:e,pro:e}],mw:[1,{ac:e,biz:e,co:e,com:e,coop:e,edu:e,gov:e,int:e,net:e,org:e}],mx:[1,{com:e,edu:e,gob:e,net:e,org:e}],my:[1,{biz:e,com:e,edu:e,gov:e,mil:e,name:e,net:e,org:e}],mz:[1,{ac:e,adv:e,co:e,edu:e,gov:e,mil:e,net:e,org:e}],na:[1,{alt:e,co:e,com:e,gov:e,net:e,org:e}],name:[1,{her:ao,his:ao,ispmanager:t,keenetic:t}],nc:[1,{asso:e,nom:e}],ne:e,net:[1,{adobeaemcloud:t,"adobeio-static":t,adobeioruntime:t,akadns:t,akamai:t,"akamai-staging":t,akamaiedge:t,"akamaiedge-staging":t,akamaihd:t,"akamaihd-staging":t,akamaiorigin:t,"akamaiorigin-staging":t,akamaized:t,"akamaized-staging":t,edgekey:t,"edgekey-staging":t,edgesuite:t,"edgesuite-staging":t,alwaysdata:t,myamaze:t,cloudfront:t,appudo:t,"atlassian-dev":[0,{prod:tt}],myfritz:t,shopselect:t,blackbaudcdn:t,boomla:t,bplaced:t,square7:t,cdn77:[0,{r:t}],"cdn77-ssl":t,gb:t,hu:t,jp:t,se:t,uk:t,clickrising:t,"ddns-ip":t,"dns-cloud":t,"dns-dynamic":t,cloudaccess:t,cloudflare:[2,{cdn:t}],cloudflareanycast:tt,cloudflarecn:tt,cloudflareglobal:tt,ctfcloud:t,"feste-ip":t,"knx-server":t,"static-access":t,cryptonomic:r,dattolocal:t,mydatto:t,debian:t,definima:t,deno:[2,{sandbox:t}],icp:r,de5:t,"at-band-camp":t,blogdns:t,"broke-it":t,buyshouses:t,dnsalias:t,dnsdojo:t,"does-it":t,dontexist:t,dynalias:t,dynathome:t,endofinternet:t,"from-az":t,"from-co":t,"from-la":t,"from-ny":t,"gets-it":t,"ham-radio-op":t,homeftp:t,homeip:t,homelinux:t,homeunix:t,"in-the-band":t,"is-a-chef":t,"is-a-geek":t,"isa-geek":t,"kicks-ass":t,"office-on-the":t,podzone:t,"scrapper-site":t,selfip:t,"sells-it":t,servebbs:t,serveftp:t,thruhere:t,webhop:t,casacam:t,dynu:t,dynuddns:t,mysynology:t,opik:t,spryt:t,dynv6:t,twmail:t,ru:t,channelsdvr:[2,{u:t}],fastly:[0,{freetls:t,map:t,prod:[0,{a:t,global:t}],ssl:[0,{a:t,b:t,global:t}]}],fastlylb:[2,{map:t}],"keyword-on":t,"live-on":t,"server-on":t,"cdn-edges":t,heteml:t,cloudfunctions:t,"grafana-dev":t,iobb:t,moonscale:t,"in-dsl":t,"in-vpn":t,oninferno:t,botdash:t,"apps-1and1":t,ipifony:t,cloudjiffy:[2,{"fra1-de":t,"west1-us":t}],elastx:[0,{"jls-sto1":t,"jls-sto2":t,"jls-sto3":t}],massivegrid:[0,{paas:[0,{"fr-1":t,"lon-1":t,"lon-2":t,"ny-1":t,"ny-2":t,"sg-1":t}]}],saveincloud:[0,{jelastic:t,"nordeste-idc":t}],scaleforce:Qt,kinghost:t,uni5:t,krellian:t,ggff:t,localto:r,barsy:t,luyani:t,memset:t,"azure-api":t,"azure-mobile":t,azureedge:t,azurefd:t,azurestaticapps:[2,{1:t,2:t,3:t,4:t,5:t,6:t,7:t,centralus:t,eastasia:t,eastus2:t,westeurope:t,westus2:t}],azurewebsites:t,cloudapp:t,trafficmanager:t,usgovcloudapi:dn,usgovcloudapp:t,usgovtrafficmanager:t,windows:dn,mynetname:[0,{sn:t}],routingthecloud:t,bounceme:t,ddns:t,"eating-organic":t,mydissent:t,myeffect:t,mymediapc:t,mypsx:t,mysecuritycamera:t,nhlfan:t,"no-ip":t,pgafan:t,privatizehealthinsurance:t,redirectme:t,serveblog:t,serveminecraft:t,sytes:t,dnsup:t,hicam:t,"now-dns":t,ownip:t,vpndns:t,cloudycluster:t,ovh:[0,{hosting:r,webpaas:r}],rackmaze:t,myradweb:t,in:t,"subsc-pay":t,squares:t,schokokeks:t,"firewall-gateway":t,seidat:t,senseering:t,siteleaf:t,mafelo:t,myspreadshop:t,"vps-host":[2,{jelastic:[0,{atl:t,njs:t,ric:t}]}],srcf:[0,{soc:t,user:t}],supabase:t,dsmynas:t,familyds:t,ts:[2,{c:r}],torproject:[2,{pages:t}],tunnelmole:t,vusercontent:t,"reserve-online":t,localcert:t,"community-pro":t,meinforum:t,yandexcloud:[2,{storage:t,website:t}],za:t,zabc:t}],nf:[1,{arts:e,com:e,firm:e,info:e,net:e,other:e,per:e,rec:e,store:e,web:e}],ng:[1,{com:e,edu:e,gov:e,i:e,mil:e,mobi:e,name:e,net:e,org:e,sch:e,biz:[2,{co:t,dl:t,go:t,lg:t,on:t}],col:t,firm:t,gen:t,ltd:t,ngo:t,plc:t}],ni:[1,{ac:e,biz:e,co:e,com:e,edu:e,gob:e,in:e,info:e,int:e,mil:e,net:e,nom:e,org:e,web:e}],nl:[1,{co:t,"hosting-cluster":t,gov:t,khplay:t,"123website":t,myspreadshop:t,transurl:r,cistron:t,demon:t}],no:[1,{fhs:e,folkebibl:e,fylkesbibl:e,idrett:e,museum:e,priv:e,vgs:e,dep:e,herad:e,kommune:e,mil:e,stat:e,aa:he,ah:he,bu:he,fm:he,hl:he,hm:he,"jan-mayen":he,mr:he,nl:he,nt:he,of:he,ol:he,oslo:he,rl:he,sf:he,st:he,svalbard:he,tm:he,tr:he,va:he,vf:he,akrehamn:e,"xn--krehamn-dxa":e,\u00E5krehamn:e,algard:e,"xn--lgrd-poac":e,\u00E5lg\u00E5rd:e,arna:e,bronnoysund:e,"xn--brnnysund-m8ac":e,br\u00F8nn\u00F8ysund:e,brumunddal:e,bryne:e,drobak:e,"xn--drbak-wua":e,dr\u00F8bak:e,egersund:e,fetsund:e,floro:e,"xn--flor-jra":e,flor\u00F8:e,fredrikstad:e,hokksund:e,honefoss:e,"xn--hnefoss-q1a":e,h\u00F8nefoss:e,jessheim:e,jorpeland:e,"xn--jrpeland-54a":e,j\u00F8rpeland:e,kirkenes:e,kopervik:e,krokstadelva:e,langevag:e,"xn--langevg-jxa":e,langev\u00E5g:e,leirvik:e,mjondalen:e,"xn--mjndalen-64a":e,mj\u00F8ndalen:e,"mo-i-rana":e,mosjoen:e,"xn--mosjen-eya":e,mosj\u00F8en:e,nesoddtangen:e,orkanger:e,osoyro:e,"xn--osyro-wua":e,os\u00F8yro:e,raholt:e,"xn--rholt-mra":e,r\u00E5holt:e,sandnessjoen:e,"xn--sandnessjen-ogb":e,sandnessj\u00F8en:e,skedsmokorset:e,slattum:e,spjelkavik:e,stathelle:e,stavern:e,stjordalshalsen:e,"xn--stjrdalshalsen-sqb":e,stj\u00F8rdalshalsen:e,tananger:e,tranby:e,vossevangen:e,aarborte:e,aejrie:e,afjord:e,"xn--fjord-lra":e,\u00E5fjord:e,agdenes:e,akershus:Ln,aknoluokta:e,"xn--koluokta-7ya57h":e,\u00E1k\u014Boluokta:e,al:e,"xn--l-1fa":e,\u00E5l:e,alaheadju:e,"xn--laheadju-7ya":e,\u00E1laheadju:e,alesund:e,"xn--lesund-hua":e,\u00E5lesund:e,alstahaug:e,alta:e,"xn--lt-liac":e,\u00E1lt\u00E1:e,alvdal:e,amli:e,"xn--mli-tla":e,\u00E5mli:e,amot:e,"xn--mot-tla":e,\u00E5mot:e,andasuolo:e,andebu:e,andoy:e,"xn--andy-ira":e,and\u00F8y:e,ardal:e,"xn--rdal-poa":e,\u00E5rdal:e,aremark:e,arendal:e,"xn--s-1fa":e,\u00E5s:e,aseral:e,"xn--seral-lra":e,\u00E5seral:e,asker:e,askim:e,askoy:e,"xn--asky-ira":e,ask\u00F8y:e,askvoll:e,asnes:e,"xn--snes-poa":e,\u00E5snes:e,audnedaln:e,aukra:e,aure:e,aurland:e,"aurskog-holand":e,"xn--aurskog-hland-jnb":e,"aurskog-h\xF8land":e,austevoll:e,austrheim:e,averoy:e,"xn--avery-yua":e,aver\u00F8y:e,badaddja:e,"xn--bdddj-mrabd":e,b\u00E5d\u00E5ddj\u00E5:e,"xn--brum-voa":e,b\u00E6rum:e,bahcavuotna:e,"xn--bhcavuotna-s4a":e,b\u00E1hcavuotna:e,bahccavuotna:e,"xn--bhccavuotna-k7a":e,b\u00E1hccavuotna:e,baidar:e,"xn--bidr-5nac":e,b\u00E1id\u00E1r:e,bajddar:e,"xn--bjddar-pta":e,b\u00E1jddar:e,balat:e,"xn--blt-elab":e,b\u00E1l\u00E1t:e,balestrand:e,ballangen:e,balsfjord:e,bamble:e,bardu:e,barum:e,batsfjord:e,"xn--btsfjord-9za":e,b\u00E5tsfjord:e,bearalvahki:e,"xn--bearalvhki-y4a":e,bearalv\u00E1hki:e,beardu:e,beiarn:e,berg:e,bergen:e,berlevag:e,"xn--berlevg-jxa":e,berlev\u00E5g:e,bievat:e,"xn--bievt-0qa":e,biev\u00E1t:e,bindal:e,birkenes:e,bjerkreim:e,bjugn:e,bodo:e,"xn--bod-2na":e,bod\u00F8:e,bokn:e,bomlo:e,"xn--bmlo-gra":e,b\u00F8mlo:e,bremanger:e,bronnoy:e,"xn--brnny-wuac":e,br\u00F8nn\u00F8y:e,budejju:e,buskerud:Ln,bygland:e,bykle:e,cahcesuolo:e,"xn--hcesuolo-7ya35b":e,\u010D\u00E1hcesuolo:e,davvenjarga:e,"xn--davvenjrga-y4a":e,davvenj\u00E1rga:e,davvesiida:e,deatnu:e,dielddanuorri:e,divtasvuodna:e,divttasvuotna:e,donna:e,"xn--dnna-gra":e,d\u00F8nna:e,dovre:e,drammen:e,drangedal:e,dyroy:e,"xn--dyry-ira":e,dyr\u00F8y:e,eid:e,eidfjord:e,eidsberg:e,eidskog:e,eidsvoll:e,eigersund:e,elverum:e,enebakk:e,engerdal:e,etne:e,etnedal:e,evenassi:e,"xn--eveni-0qa01ga":e,even\u00E1\u0161\u0161i:e,evenes:e,"evje-og-hornnes":e,farsund:e,fauske:e,fedje:e,fet:e,finnoy:e,"xn--finny-yua":e,finn\u00F8y:e,fitjar:e,fjaler:e,fjell:e,fla:e,"xn--fl-zia":e,fl\u00E5:e,flakstad:e,flatanger:e,flekkefjord:e,flesberg:e,flora:e,folldal:e,forde:e,"xn--frde-gra":e,f\u00F8rde:e,forsand:e,fosnes:e,"xn--frna-woa":e,fr\u00E6na:e,frana:e,frei:e,frogn:e,froland:e,frosta:e,froya:e,"xn--frya-hra":e,fr\u00F8ya:e,fuoisku:e,fuossko:e,fusa:e,fyresdal:e,gaivuotna:e,"xn--givuotna-8ya":e,g\u00E1ivuotna:e,galsa:e,"xn--gls-elac":e,g\u00E1ls\u00E1:e,gamvik:e,gangaviika:e,"xn--ggaviika-8ya47h":e,g\u00E1\u014Bgaviika:e,gaular:e,gausdal:e,giehtavuoatna:e,gildeskal:e,"xn--gildeskl-g0a":e,gildesk\u00E5l:e,giske:e,gjemnes:e,gjerdrum:e,gjerstad:e,gjesdal:e,gjovik:e,"xn--gjvik-wua":e,gj\u00F8vik:e,gloppen:e,gol:e,gran:e,grane:e,granvin:e,gratangen:e,grimstad:e,grong:e,grue:e,gulen:e,guovdageaidnu:e,ha:e,"xn--h-2fa":e,h\u00E5:e,habmer:e,"xn--hbmer-xqa":e,h\u00E1bmer:e,hadsel:e,"xn--hgebostad-g3a":e,h\u00E6gebostad:e,hagebostad:e,halden:e,halsa:e,hamar:e,hamaroy:e,hammarfeasta:e,"xn--hmmrfeasta-s4ac":e,h\u00E1mm\u00E1rfeasta:e,hammerfest:e,hapmir:e,"xn--hpmir-xqa":e,h\u00E1pmir:e,haram:e,hareid:e,harstad:e,hasvik:e,hattfjelldal:e,haugesund:e,hedmark:[0,{os:e,valer:e,"xn--vler-qoa":e,v\u00E5ler:e}],hemne:e,hemnes:e,hemsedal:e,hitra:e,hjartdal:e,hjelmeland:e,hobol:e,"xn--hobl-ira":e,hob\u00F8l:e,hof:e,hol:e,hole:e,holmestrand:e,holtalen:e,"xn--holtlen-hxa":e,holt\u00E5len:e,hordaland:[0,{os:e}],hornindal:e,horten:e,hoyanger:e,"xn--hyanger-q1a":e,h\u00F8yanger:e,hoylandet:e,"xn--hylandet-54a":e,h\u00F8ylandet:e,hurdal:e,hurum:e,hvaler:e,hyllestad:e,ibestad:e,inderoy:e,"xn--indery-fya":e,inder\u00F8y:e,iveland:e,ivgu:e,jevnaker:e,jolster:e,"xn--jlster-bya":e,j\u00F8lster:e,jondal:e,kafjord:e,"xn--kfjord-iua":e,k\u00E5fjord:e,karasjohka:e,"xn--krjohka-hwab49j":e,k\u00E1r\u00E1\u0161johka:e,karasjok:e,karlsoy:e,karmoy:e,"xn--karmy-yua":e,karm\u00F8y:e,kautokeino:e,klabu:e,"xn--klbu-woa":e,kl\u00E6bu:e,klepp:e,kongsberg:e,kongsvinger:e,kraanghke:e,"xn--kranghke-b0a":e,kr\u00E5anghke:e,kragero:e,"xn--krager-gya":e,krager\u00F8:e,kristiansand:e,kristiansund:e,krodsherad:e,"xn--krdsherad-m8a":e,kr\u00F8dsherad:e,"xn--kvfjord-nxa":e,kv\u00E6fjord:e,"xn--kvnangen-k0a":e,kv\u00E6nangen:e,kvafjord:e,kvalsund:e,kvam:e,kvanangen:e,kvinesdal:e,kvinnherad:e,kviteseid:e,kvitsoy:e,"xn--kvitsy-fya":e,kvits\u00F8y:e,laakesvuemie:e,"xn--lrdal-sra":e,l\u00E6rdal:e,lahppi:e,"xn--lhppi-xqa":e,l\u00E1hppi:e,lardal:e,larvik:e,lavagis:e,lavangen:e,leangaviika:e,"xn--leagaviika-52b":e,lea\u014Bgaviika:e,lebesby:e,leikanger:e,leirfjord:e,leka:e,leksvik:e,lenvik:e,lerdal:e,lesja:e,levanger:e,lier:e,lierne:e,lillehammer:e,lillesand:e,lindas:e,"xn--linds-pra":e,lind\u00E5s:e,lindesnes:e,loabat:e,"xn--loabt-0qa":e,loab\u00E1t:e,lodingen:e,"xn--ldingen-q1a":e,l\u00F8dingen:e,lom:e,loppa:e,lorenskog:e,"xn--lrenskog-54a":e,l\u00F8renskog:e,loten:e,"xn--lten-gra":e,l\u00F8ten:e,lund:e,lunner:e,luroy:e,"xn--lury-ira":e,lur\u00F8y:e,luster:e,lyngdal:e,lyngen:e,malatvuopmi:e,"xn--mlatvuopmi-s4a":e,m\u00E1latvuopmi:e,malselv:e,"xn--mlselv-iua":e,m\u00E5lselv:e,malvik:e,mandal:e,marker:e,marnardal:e,masfjorden:e,masoy:e,"xn--msy-ula0h":e,m\u00E5s\u00F8y:e,"matta-varjjat":e,"xn--mtta-vrjjat-k7af":e,"m\xE1tta-v\xE1rjjat":e,meland:e,meldal:e,melhus:e,meloy:e,"xn--mely-ira":e,mel\u00F8y:e,meraker:e,"xn--merker-kua":e,mer\u00E5ker:e,midsund:e,"midtre-gauldal":e,moareke:e,"xn--moreke-jua":e,mo\u00E5reke:e,modalen:e,modum:e,molde:e,"more-og-romsdal":[0,{heroy:e,sande:e}],"xn--mre-og-romsdal-qqb":[0,{"xn--hery-ira":e,sande:e}],"m\xF8re-og-romsdal":[0,{her\u00F8y:e,sande:e}],moskenes:e,moss:e,muosat:e,"xn--muost-0qa":e,muos\u00E1t:e,naamesjevuemie:e,"xn--nmesjevuemie-tcba":e,n\u00E5\u00E5mesjevuemie:e,"xn--nry-yla5g":e,n\u00E6r\u00F8y:e,namdalseid:e,namsos:e,namsskogan:e,nannestad:e,naroy:e,narviika:e,narvik:e,naustdal:e,navuotna:e,"xn--nvuotna-hwa":e,n\u00E1vuotna:e,"nedre-eiker":e,nesna:e,nesodden:e,nesseby:e,nesset:e,nissedal:e,nittedal:e,"nord-aurdal":e,"nord-fron":e,"nord-odal":e,norddal:e,nordkapp:e,nordland:[0,{bo:e,"xn--b-5ga":e,b\u00F8:e,heroy:e,"xn--hery-ira":e,her\u00F8y:e}],"nordre-land":e,nordreisa:e,"nore-og-uvdal":e,notodden:e,notteroy:e,"xn--nttery-byae":e,n\u00F8tter\u00F8y:e,odda:e,oksnes:e,"xn--ksnes-uua":e,\u00F8ksnes:e,omasvuotna:e,oppdal:e,oppegard:e,"xn--oppegrd-ixa":e,oppeg\u00E5rd:e,orkdal:e,orland:e,"xn--rland-uua":e,\u00F8rland:e,orskog:e,"xn--rskog-uua":e,\u00F8rskog:e,orsta:e,"xn--rsta-fra":e,\u00F8rsta:e,osen:e,osteroy:e,"xn--ostery-fya":e,oster\u00F8y:e,ostfold:[0,{valer:e}],"xn--stfold-9xa":[0,{"xn--vler-qoa":e}],\u00F8stfold:[0,{v\u00E5ler:e}],"ostre-toten":e,"xn--stre-toten-zcb":e,"\xF8stre-toten":e,overhalla:e,"ovre-eiker":e,"xn--vre-eiker-k8a":e,"\xF8vre-eiker":e,oyer:e,"xn--yer-zna":e,\u00F8yer:e,oygarden:e,"xn--ygarden-p1a":e,\u00F8ygarden:e,"oystre-slidre":e,"xn--ystre-slidre-ujb":e,"\xF8ystre-slidre":e,porsanger:e,porsangu:e,"xn--porsgu-sta26f":e,pors\u00E1\u014Bgu:e,porsgrunn:e,rade:e,"xn--rde-ula":e,r\u00E5de:e,radoy:e,"xn--rady-ira":e,rad\u00F8y:e,"xn--rlingen-mxa":e,r\u00E6lingen:e,rahkkeravju:e,"xn--rhkkervju-01af":e,r\u00E1hkker\u00E1vju:e,raisa:e,"xn--risa-5na":e,r\u00E1isa:e,rakkestad:e,ralingen:e,rana:e,randaberg:e,rauma:e,rendalen:e,rennebu:e,rennesoy:e,"xn--rennesy-v1a":e,rennes\u00F8y:e,rindal:e,ringebu:e,ringerike:e,ringsaker:e,risor:e,"xn--risr-ira":e,ris\u00F8r:e,rissa:e,roan:e,rodoy:e,"xn--rdy-0nab":e,r\u00F8d\u00F8y:e,rollag:e,romsa:e,romskog:e,"xn--rmskog-bya":e,r\u00F8mskog:e,roros:e,"xn--rros-gra":e,r\u00F8ros:e,rost:e,"xn--rst-0na":e,r\u00F8st:e,royken:e,"xn--ryken-vua":e,r\u00F8yken:e,royrvik:e,"xn--ryrvik-bya":e,r\u00F8yrvik:e,ruovat:e,rygge:e,salangen:e,salat:e,"xn--slat-5na":e,s\u00E1lat:e,"xn--slt-elab":e,s\u00E1l\u00E1t:e,saltdal:e,samnanger:e,sandefjord:e,sandnes:e,sandoy:e,"xn--sandy-yua":e,sand\u00F8y:e,sarpsborg:e,sauda:e,sauherad:e,sel:e,selbu:e,selje:e,seljord:e,siellak:e,sigdal:e,siljan:e,sirdal:e,skanit:e,"xn--sknit-yqa":e,sk\u00E1nit:e,skanland:e,"xn--sknland-fxa":e,sk\u00E5nland:e,skaun:e,skedsmo:e,ski:e,skien:e,skierva:e,"xn--skierv-uta":e,skierv\u00E1:e,skiptvet:e,skjak:e,"xn--skjk-soa":e,skj\u00E5k:e,skjervoy:e,"xn--skjervy-v1a":e,skjerv\u00F8y:e,skodje:e,smola:e,"xn--smla-hra":e,sm\u00F8la:e,snaase:e,"xn--snase-nra":e,sn\u00E5ase:e,snasa:e,"xn--snsa-roa":e,sn\u00E5sa:e,snillfjord:e,snoasa:e,sogndal:e,sogne:e,"xn--sgne-gra":e,s\u00F8gne:e,sokndal:e,sola:e,solund:e,somna:e,"xn--smna-gra":e,s\u00F8mna:e,"sondre-land":e,"xn--sndre-land-0cb":e,"s\xF8ndre-land":e,songdalen:e,"sor-aurdal":e,"xn--sr-aurdal-l8a":e,"s\xF8r-aurdal":e,"sor-fron":e,"xn--sr-fron-q1a":e,"s\xF8r-fron":e,"sor-odal":e,"xn--sr-odal-q1a":e,"s\xF8r-odal":e,"sor-varanger":e,"xn--sr-varanger-ggb":e,"s\xF8r-varanger":e,sorfold:e,"xn--srfold-bya":e,s\u00F8rfold:e,sorreisa:e,"xn--srreisa-q1a":e,s\u00F8rreisa:e,sortland:e,sorum:e,"xn--srum-gra":e,s\u00F8rum:e,spydeberg:e,stange:e,stavanger:e,steigen:e,steinkjer:e,stjordal:e,"xn--stjrdal-s1a":e,stj\u00F8rdal:e,stokke:e,"stor-elvdal":e,stord:e,stordal:e,storfjord:e,strand:e,stranda:e,stryn:e,sula:e,suldal:e,sund:e,sunndal:e,surnadal:e,sveio:e,svelvik:e,sykkylven:e,tana:e,telemark:[0,{bo:e,"xn--b-5ga":e,b\u00F8:e}],time:e,tingvoll:e,tinn:e,tjeldsund:e,tjome:e,"xn--tjme-hra":e,tj\u00F8me:e,tokke:e,tolga:e,tonsberg:e,"xn--tnsberg-q1a":e,t\u00F8nsberg:e,torsken:e,"xn--trna-woa":e,tr\u00E6na:e,trana:e,tranoy:e,"xn--trany-yua":e,tran\u00F8y:e,troandin:e,trogstad:e,"xn--trgstad-r1a":e,tr\u00F8gstad:e,tromsa:e,tromso:e,"xn--troms-zua":e,troms\u00F8:e,trondheim:e,trysil:e,tvedestrand:e,tydal:e,tynset:e,tysfjord:e,tysnes:e,"xn--tysvr-vra":e,tysv\u00E6r:e,tysvar:e,ullensaker:e,ullensvang:e,ulvik:e,unjarga:e,"xn--unjrga-rta":e,unj\u00E1rga:e,utsira:e,vaapste:e,vadso:e,"xn--vads-jra":e,vads\u00F8:e,"xn--vry-yla5g":e,v\u00E6r\u00F8y:e,vaga:e,"xn--vg-yiab":e,v\u00E5g\u00E5:e,vagan:e,"xn--vgan-qoa":e,v\u00E5gan:e,vagsoy:e,"xn--vgsy-qoa0j":e,v\u00E5gs\u00F8y:e,vaksdal:e,valle:e,vang:e,vanylven:e,vardo:e,"xn--vard-jra":e,vard\u00F8:e,varggat:e,"xn--vrggt-xqad":e,v\u00E1rgg\u00E1t:e,varoy:e,vefsn:e,vega:e,vegarshei:e,"xn--vegrshei-c0a":e,veg\u00E5rshei:e,vennesla:e,verdal:e,verran:e,vestby:e,vestfold:[0,{sande:e}],vestnes:e,"vestre-slidre":e,"vestre-toten":e,vestvagoy:e,"xn--vestvgy-ixa6o":e,vestv\u00E5g\u00F8y:e,vevelstad:e,vik:e,vikna:e,vindafjord:e,voagat:e,volda:e,voss:e,co:t,"123hjemmeside":t,myspreadshop:t}],np:M,nr:po,nu:[1,{merseine:t,mine:t,shacknet:t,enterprisecloud:t}],nz:[1,{ac:e,co:e,cri:e,geek:e,gen:e,govt:e,health:e,iwi:e,kiwi:e,maori:e,"xn--mori-qsa":e,m\u0101ori:e,mil:e,net:e,org:e,parliament:e,school:e,cloudns:t}],om:[1,{co:e,com:e,edu:e,gov:e,med:e,museum:e,net:e,org:e,pro:e}],onion:e,org:[1,{altervista:t,pimienta:t,poivron:t,potager:t,sweetpepper:t,cdn77:[0,{c:t,rsc:t}],"cdn77-secure":[0,{origin:[0,{ssl:t}]}],ae:t,cloudns:t,"ip-dynamic":t,ddnss:t,dpdns:t,duckdns:t,tunk:t,blogdns:t,blogsite:t,boldlygoingnowhere:t,dnsalias:t,dnsdojo:t,doesntexist:t,dontexist:t,doomdns:t,dvrdns:t,dynalias:t,dyndns:[2,{go:t,home:t}],endofinternet:t,endoftheinternet:t,"from-me":t,"game-host":t,gotdns:t,"hobby-site":t,homedns:t,homeftp:t,homelinux:t,homeunix:t,"is-a-bruinsfan":t,"is-a-candidate":t,"is-a-celticsfan":t,"is-a-chef":t,"is-a-geek":t,"is-a-knight":t,"is-a-linux-user":t,"is-a-patsfan":t,"is-a-soxfan":t,"is-found":t,"is-lost":t,"is-saved":t,"is-very-bad":t,"is-very-evil":t,"is-very-good":t,"is-very-nice":t,"is-very-sweet":t,"isa-geek":t,"kicks-ass":t,misconfused:t,podzone:t,readmyblog:t,selfip:t,sellsyourhome:t,servebbs:t,serveftp:t,servegame:t,"stuff-4-sale":t,webhop:t,accesscam:t,camdvr:t,freeddns:t,mywire:t,roxa:t,webredirect:t,twmail:t,eu:[2,{al:t,asso:t,at:t,au:t,be:t,bg:t,ca:t,cd:t,ch:t,cn:t,cy:t,cz:t,de:t,dk:t,edu:t,ee:t,es:t,fi:t,fr:t,gr:t,hr:t,hu:t,ie:t,il:t,in:t,int:t,is:t,it:t,jp:t,kr:t,lt:t,lu:t,lv:t,me:t,mk:t,mt:t,my:t,net:t,ng:t,nl:t,no:t,nz:t,pl:t,pt:t,ro:t,ru:t,se:t,si:t,sk:t,tr:t,uk:t,us:t}],fedorainfracloud:t,fedorapeople:t,fedoraproject:[0,{cloud:t,os:Cn,stg:[0,{os:Cn}]}],freedesktop:t,hatenadiary:t,hepforge:t,"in-dsl":t,"in-vpn":t,js:t,barsy:t,mayfirst:t,routingthecloud:t,bmoattachments:t,"cable-modem":t,collegefan:t,couchpotatofries:t,hopto:t,mlbfan:t,myftp:t,mysecuritycamera:t,nflfan:t,"no-ip":t,"read-books":t,ufcfan:t,zapto:t,dynserv:t,"now-dns":t,"is-local":t,httpbin:t,pubtls:t,jpn:t,"my-firewall":t,myfirewall:t,spdns:t,"small-web":t,dsmynas:t,familyds:t,teckids:Nn,tuxfamily:t,hk:t,us:t,toolforge:t,wmcloud:[2,{beta:t}],wmflabs:t,za:t}],pa:[1,{abo:e,ac:e,com:e,edu:e,gob:e,ing:e,med:e,net:e,nom:e,org:e,sld:e}],pe:[1,{com:e,edu:e,gob:e,mil:e,net:e,nom:e,org:e}],pf:[1,{com:e,edu:e,org:e}],pg:M,ph:[1,{com:e,edu:e,gov:e,i:e,mil:e,net:e,ngo:e,org:e,cloudns:t}],pk:[1,{ac:e,biz:e,com:e,edu:e,fam:e,gkp:e,gob:e,gog:e,gok:e,gop:e,gos:e,gov:e,net:e,org:e,web:e}],pl:[1,{com:e,net:e,org:e,agro:e,aid:e,atm:e,auto:e,biz:e,edu:e,gmina:e,gsm:e,info:e,mail:e,media:e,miasta:e,mil:e,nieruchomosci:e,nom:e,pc:e,powiat:e,priv:e,realestate:e,rel:e,sex:e,shop:e,sklep:e,sos:e,szkola:e,targi:e,tm:e,tourism:e,travel:e,turystyka:e,gov:[1,{ap:e,griw:e,ic:e,is:e,kmpsp:e,konsulat:e,kppsp:e,kwp:e,kwpsp:e,mup:e,mw:e,oia:e,oirm:e,oke:e,oow:e,oschr:e,oum:e,pa:e,pinb:e,piw:e,po:e,pr:e,psp:e,psse:e,pup:e,rzgw:e,sa:e,sdn:e,sko:e,so:e,sr:e,starostwo:e,ug:e,ugim:e,um:e,umig:e,upow:e,uppo:e,us:e,uw:e,uzs:e,wif:e,wiih:e,winb:e,wios:e,witd:e,wiw:e,wkz:e,wsa:e,wskr:e,wsse:e,wuoz:e,wzmiuw:e,zp:e,zpisdn:e}],augustow:e,"babia-gora":e,bedzin:e,beskidy:e,bialowieza:e,bialystok:e,bielawa:e,bieszczady:e,boleslawiec:e,bydgoszcz:e,bytom:e,cieszyn:e,czeladz:e,czest:e,dlugoleka:e,elblag:e,elk:e,glogow:e,gniezno:e,gorlice:e,grajewo:e,ilawa:e,jaworzno:e,"jelenia-gora":e,jgora:e,kalisz:e,karpacz:e,kartuzy:e,kaszuby:e,katowice:e,"kazimierz-dolny":e,kepno:e,ketrzyn:e,klodzko:e,kobierzyce:e,kolobrzeg:e,konin:e,konskowola:e,kutno:e,lapy:e,lebork:e,legnica:e,lezajsk:e,limanowa:e,lomza:e,lowicz:e,lubin:e,lukow:e,malbork:e,malopolska:e,mazowsze:e,mazury:e,mielec:e,mielno:e,mragowo:e,naklo:e,nowaruda:e,nysa:e,olawa:e,olecko:e,olkusz:e,olsztyn:e,opoczno:e,opole:e,ostroda:e,ostroleka:e,ostrowiec:e,ostrowwlkp:e,pila:e,pisz:e,podhale:e,podlasie:e,polkowice:e,pomorskie:e,pomorze:e,prochowice:e,pruszkow:e,przeworsk:e,pulawy:e,radom:e,"rawa-maz":e,rybnik:e,rzeszow:e,sanok:e,sejny:e,skoczow:e,slask:e,slupsk:e,sosnowiec:e,"stalowa-wola":e,starachowice:e,stargard:e,suwalki:e,swidnica:e,swiebodzin:e,swinoujscie:e,szczecin:e,szczytno:e,tarnobrzeg:e,tgory:e,turek:e,tychy:e,ustka:e,walbrzych:e,warmia:e,warszawa:e,waw:e,wegrow:e,wielun:e,wlocl:e,wloclawek:e,wodzislaw:e,wolomin:e,wroclaw:e,zachpomor:e,zagan:e,zarow:e,zgora:e,zgorzelec:e,art:t,gliwice:t,krakow:t,poznan:t,wroc:t,zakopane:t,beep:t,"ecommerce-shop":t,cfolks:t,dfirma:t,dkonto:t,you2:t,shoparena:t,homesklep:t,sdscloud:t,unicloud:t,lodz:t,pabianice:t,plock:t,sieradz:t,skierniewice:t,zgierz:t,krasnik:t,leczna:t,lubartow:t,lublin:t,poniatowa:t,swidnik:t,co:t,torun:t,simplesite:t,myspreadshop:t,gda:t,gdansk:t,gdynia:t,med:t,sopot:t,bielsko:t}],pm:[1,{own:t,name:t}],pn:[1,{co:e,edu:e,gov:e,net:e,org:e}],post:e,pr:[1,{biz:e,com:e,edu:e,gov:e,info:e,isla:e,name:e,net:e,org:e,pro:e,ac:e,est:e,prof:e}],pro:[1,{aaa:e,aca:e,acct:e,avocat:e,bar:e,cpa:e,eng:e,jur:e,law:e,med:e,recht:e,cloudns:t,keenetic:t,barsy:t,ngrok:t}],ps:[1,{com:e,edu:e,gov:e,net:e,org:e,plo:e,sec:e}],pt:[1,{com:e,edu:e,gov:e,int:e,net:e,nome:e,org:e,publ:e,"123paginaweb":t}],pw:[1,{gov:e,cloudns:t,x443:t}],py:[1,{com:e,coop:e,edu:e,gov:e,mil:e,net:e,org:e}],qa:[1,{com:e,edu:e,gov:e,mil:e,name:e,net:e,org:e,sch:e}],re:[1,{asso:e,com:e,netlib:t,can:t}],ro:[1,{arts:e,com:e,firm:e,info:e,nom:e,nt:e,org:e,rec:e,store:e,tm:e,www:e,co:t,shop:t,barsy:t}],rs:[1,{ac:e,co:e,edu:e,gov:e,in:e,org:e,brendly:O,barsy:t,ox:t}],ru:[1,{ac:t,edu:t,gov:t,int:t,mil:t,eurodir:t,adygeya:t,bashkiria:t,bir:t,cbg:t,com:t,dagestan:t,grozny:t,kalmykia:t,kustanai:t,marine:t,mordovia:t,msk:t,mytis:t,nalchik:t,nov:t,pyatigorsk:t,spb:t,vladikavkaz:t,vladimir:t,na4u:t,mircloud:t,myjino:[2,{hosting:r,landing:r,spectrum:r,vps:r}],cldmail:[0,{hb:t}],mcdir:[2,{vps:t}],mcpre:t,net:t,org:t,pp:t,ras:t}],rw:[1,{ac:e,co:e,coop:e,gov:e,mil:e,net:e,org:e}],sa:[1,{com:e,edu:e,gov:e,med:e,net:e,org:e,pub:e,sch:e}],sb:n,sc:n,sd:[1,{com:e,edu:e,gov:e,info:e,med:e,net:e,org:e,tv:e}],se:[1,{a:e,ac:e,b:e,bd:e,brand:e,c:e,d:e,e,f:e,fh:e,fhsk:e,fhv:e,g:e,h:e,i:e,k:e,komforb:e,kommunalforbund:e,komvux:e,l:e,lanbib:e,m:e,n:e,naturbruksgymn:e,o:e,org:e,p:e,parti:e,pp:e,press:e,r:e,s:e,t:e,tm:e,u:e,w:e,x:e,y:e,z:e,com:t,iopsys:t,"123minsida":t,itcouldbewor:t,myspreadshop:t}],sg:[1,{com:e,edu:e,gov:e,net:e,org:e,enscaled:t}],sh:[1,{com:e,gov:e,mil:e,net:e,org:e,hashbang:t,botda:t,lovable:t,platform:[0,{ent:t,eu:t,us:t}],teleport:t,now:t}],si:[1,{f5:t,gitapp:t,gitpage:t}],sj:e,sk:[1,{org:e}],sl:n,sm:e,sn:[1,{art:e,com:e,edu:e,gouv:e,org:e,univ:e}],so:[1,{com:e,edu:e,gov:e,me:e,net:e,org:e,surveys:t}],sr:e,ss:[1,{biz:e,co:e,com:e,edu:e,gov:e,me:e,net:e,org:e,sch:e}],st:[1,{co:e,com:e,consulado:e,edu:e,embaixada:e,mil:e,net:e,org:e,principe:e,saotome:e,store:e,helioho:t,cn:r,kirara:t,noho:t}],su:[1,{abkhazia:t,adygeya:t,aktyubinsk:t,arkhangelsk:t,armenia:t,ashgabad:t,azerbaijan:t,balashov:t,bashkiria:t,bryansk:t,bukhara:t,chimkent:t,dagestan:t,"east-kazakhstan":t,exnet:t,georgia:t,grozny:t,ivanovo:t,jambyl:t,kalmykia:t,kaluga:t,karacol:t,karaganda:t,karelia:t,khakassia:t,krasnodar:t,kurgan:t,kustanai:t,lenug:t,mangyshlak:t,mordovia:t,msk:t,murmansk:t,nalchik:t,navoi:t,"north-kazakhstan":t,nov:t,obninsk:t,penza:t,pokrovsk:t,sochi:t,spb:t,tashkent:t,termez:t,togliatti:t,troitsk:t,tselinograd:t,tula:t,tuva:t,vladikavkaz:t,vladimir:t,vologda:t}],sv:[1,{com:e,edu:e,gob:e,org:e,red:e}],sx:c,sy:o,sz:[1,{ac:e,co:e,org:e}],tc:e,td:e,tel:e,tf:[1,{sch:t}],tg:e,th:[1,{ac:e,co:e,go:e,in:e,mi:e,net:e,or:e,online:t,shop:t}],tj:[1,{ac:e,biz:e,co:e,com:e,edu:e,go:e,gov:e,int:e,mil:e,name:e,net:e,nic:e,org:e,test:e,web:e}],tk:e,tl:c,tm:[1,{co:e,com:e,edu:e,gov:e,mil:e,net:e,nom:e,org:e}],tn:[1,{com:e,ens:e,fin:e,gov:e,ind:e,info:e,intl:e,mincom:e,nat:e,net:e,org:e,perso:e,tourism:e,orangecloud:t}],to:[1,{611:t,com:e,edu:e,gov:e,mil:e,net:e,org:e,oya:t,x0:t,quickconnect:ve,vpnplus:t,nett:t}],tr:[1,{av:e,bbs:e,bel:e,biz:e,com:e,dr:e,edu:e,gen:e,gov:e,info:e,k12:e,kep:e,mil:e,name:e,net:e,org:e,pol:e,tel:e,tsk:e,tv:e,web:e,nc:c}],tt:[1,{biz:e,co:e,com:e,edu:e,gov:e,info:e,mil:e,name:e,net:e,org:e,pro:e}],tv:[1,{"better-than":t,dyndns:t,"on-the-web":t,"worse-than":t,from:t,sakura:t}],tw:[1,{club:e,com:[1,{mymailer:t}],ebiz:e,edu:e,game:e,gov:e,idv:e,mil:e,net:e,org:e,url:t,mydns:t}],tz:[1,{ac:e,co:e,go:e,hotel:e,info:e,me:e,mil:e,mobi:e,ne:e,or:e,sc:e,tv:e}],ua:[1,{com:e,edu:e,gov:e,in:e,net:e,org:e,cherkassy:e,cherkasy:e,chernigov:e,chernihiv:e,chernivtsi:e,chernovtsy:e,ck:e,cn:e,cr:e,crimea:e,cv:e,dn:e,dnepropetrovsk:e,dnipropetrovsk:e,donetsk:e,dp:e,if:e,"ivano-frankivsk":e,kh:e,kharkiv:e,kharkov:e,kherson:e,khmelnitskiy:e,khmelnytskyi:e,kiev:e,kirovograd:e,km:e,kr:e,kropyvnytskyi:e,krym:e,ks:e,kv:e,kyiv:e,lg:e,lt:e,lugansk:e,luhansk:e,lutsk:e,lv:e,lviv:e,mk:e,mykolaiv:e,nikolaev:e,od:e,odesa:e,odessa:e,pl:e,poltava:e,rivne:e,rovno:e,rv:e,sb:e,sebastopol:e,sevastopol:e,sm:e,sumy:e,te:e,ternopil:e,uz:e,uzhgorod:e,uzhhorod:e,vinnica:e,vinnytsia:e,vn:e,volyn:e,yalta:e,zakarpattia:e,zaporizhzhe:e,zaporizhzhia:e,zhitomir:e,zhytomyr:e,zp:e,zt:e,cc:t,inf:t,ltd:t,cx:t,biz:t,co:t,pp:t,v:t}],ug:[1,{ac:e,co:e,com:e,edu:e,go:e,gov:e,mil:e,ne:e,or:e,org:e,sc:e,us:e}],uk:[1,{ac:e,co:[1,{bytemark:[0,{dh:t,vm:t}],layershift:Qt,barsy:t,barsyonline:t,retrosnub:Mn,"nh-serv":t,"no-ip":t,adimo:t,myspreadshop:t}],gov:[1,{api:t,campaign:t,service:t}],ltd:e,me:e,net:e,nhs:e,org:[1,{glug:t,lug:t,lugs:t,affinitylottery:t,raffleentry:t,weeklylottery:t}],plc:e,police:e,sch:M,conn:t,copro:t,hosp:t,"independent-commission":t,"independent-inquest":t,"independent-inquiry":t,"independent-panel":t,"independent-review":t,"public-inquiry":t,"royal-commission":t,pymnt:t,barsy:t,nimsite:t,oraclegovcloudapps:r}],us:[1,{dni:e,isa:e,nsn:e,ak:ge,al:ge,ar:ge,as:ge,az:ge,ca:ge,co:ge,ct:ge,dc:ge,de:kt,fl:ge,ga:ge,gu:ge,hi:fn,ia:ge,id:ge,il:ge,in:ge,ks:ge,ky:ge,la:ge,ma:[1,{k12:[1,{chtr:e,paroch:e,pvt:e}],cc:e,lib:e}],md:ge,me:ge,mi:[1,{k12:e,cc:e,lib:e,"ann-arbor":e,cog:e,dst:e,eaton:e,gen:e,mus:e,tec:e,washtenaw:e}],mn:ge,mo:ge,ms:[1,{k12:e,cc:e}],mt:ge,nc:ge,nd:fn,ne:ge,nh:ge,nj:ge,nm:ge,nv:ge,ny:ge,oh:ge,ok:ge,or:ge,pa:ge,pr:ge,ri:fn,sc:ge,sd:fn,tn:ge,tx:ge,ut:ge,va:ge,vi:ge,vt:ge,wa:ge,wi:ge,wv:kt,wy:ge,cloudns:t,"is-by":t,"land-4-sale":t,"stuff-4-sale":t,heliohost:t,enscaled:[0,{phx:t}],mircloud:t,"azure-api":t,azurewebsites:t,ngo:t,golffan:t,noip:t,pointto:t,freeddns:t,srv:[2,{gh:t,gl:t}],servername:t}],uy:[1,{com:e,edu:e,gub:e,mil:e,net:e,org:e,gv:t}],uz:[1,{co:e,com:e,net:e,org:e}],va:e,vc:[1,{com:e,edu:e,gov:e,mil:e,net:e,org:e,gv:[2,{d:t}],"0e":r,mydns:t}],ve:[1,{arts:e,bib:e,co:e,com:e,e12:e,edu:e,emprende:e,firm:e,gob:e,gov:e,ia:e,info:e,int:e,mil:e,net:e,nom:e,org:e,rar:e,rec:e,store:e,tec:e,web:e}],vg:[1,{edu:e}],vi:[1,{co:e,com:e,k12:e,net:e,org:e}],vn:[1,{ac:e,ai:e,biz:e,com:e,edu:e,gov:e,health:e,id:e,info:e,int:e,io:e,name:e,net:e,org:e,pro:e,angiang:e,bacgiang:e,backan:e,baclieu:e,bacninh:e,"baria-vungtau":e,bentre:e,binhdinh:e,binhduong:e,binhphuoc:e,binhthuan:e,camau:e,cantho:e,caobang:e,daklak:e,daknong:e,danang:e,dienbien:e,dongnai:e,dongthap:e,gialai:e,hagiang:e,haiduong:e,haiphong:e,hanam:e,hanoi:e,hatinh:e,haugiang:e,hoabinh:e,hue:e,hungyen:e,khanhhoa:e,kiengiang:e,kontum:e,laichau:e,lamdong:e,langson:e,laocai:e,longan:e,namdinh:e,nghean:e,ninhbinh:e,ninhthuan:e,phutho:e,phuyen:e,quangbinh:e,quangnam:e,quangngai:e,quangninh:e,quangtri:e,soctrang:e,sonla:e,tayninh:e,thaibinh:e,thainguyen:e,thanhhoa:e,thanhphohochiminh:e,thuathienhue:e,tiengiang:e,travinh:e,tuyenquang:e,vinhlong:e,vinhphuc:e,yenbai:e}],vu:Yt,wf:[1,{biz:t,sch:t}],ws:[1,{com:e,edu:e,gov:e,net:e,org:e,advisor:r,cloud66:t,dyndns:t,mypets:t}],yt:[1,{org:t}],"xn--mgbaam7a8h":e,\u0627\u0645\u0627\u0631\u0627\u062A:e,"xn--y9a3aq":e,\u0570\u0561\u0575:e,"xn--54b7fta0cc":e,\u09AC\u09BE\u0982\u09B2\u09BE:e,"xn--90ae":e,\u0431\u0433:e,"xn--mgbcpq6gpa1a":e,\u0627\u0644\u0628\u062D\u0631\u064A\u0646:e,"xn--90ais":e,\u0431\u0435\u043B:e,"xn--fiqs8s":e,\u4E2D\u56FD:e,"xn--fiqz9s":e,\u4E2D\u570B:e,"xn--lgbbat1ad8j":e,\u0627\u0644\u062C\u0632\u0627\u0626\u0631:e,"xn--wgbh1c":e,\u0645\u0635\u0631:e,"xn--e1a4c":e,\u0435\u044E:e,"xn--qxa6a":e,\u03B5\u03C5:e,"xn--mgbah1a3hjkrd":e,\u0645\u0648\u0631\u064A\u062A\u0627\u0646\u064A\u0627:e,"xn--node":e,\u10D2\u10D4:e,"xn--qxam":e,\u03B5\u03BB:e,"xn--j6w193g":[1,{"xn--gmqw5a":e,"xn--55qx5d":e,"xn--mxtq1m":e,"xn--wcvs22d":e,"xn--uc0atv":e,"xn--od0alg":e}],\u9999\u6E2F:[1,{\u500B\u4EBA:e,\u516C\u53F8:e,\u653F\u5E9C:e,\u6559\u80B2:e,\u7D44\u7E54:e,\u7DB2\u7D61:e}],"xn--2scrj9c":e,\u0CAD\u0CBE\u0CB0\u0CA4:e,"xn--3hcrj9c":e,\u0B2D\u0B3E\u0B30\u0B24:e,"xn--45br5cyl":e,\u09AD\u09BE\u09F0\u09A4:e,"xn--h2breg3eve":e,\u092D\u093E\u0930\u0924\u092E\u094D:e,"xn--h2brj9c8c":e,\u092D\u093E\u0930\u094B\u0924:e,"xn--mgbgu82a":e,\u0680\u0627\u0631\u062A:e,"xn--rvc1e0am3e":e,\u0D2D\u0D3E\u0D30\u0D24\u0D02:e,"xn--h2brj9c":e,\u092D\u093E\u0930\u0924:e,"xn--mgbbh1a":e,\u0628\u0627\u0631\u062A:e,"xn--mgbbh1a71e":e,\u0628\u06BE\u0627\u0631\u062A:e,"xn--fpcrj9c3d":e,\u0C2D\u0C3E\u0C30\u0C24\u0C4D:e,"xn--gecrj9c":e,\u0AAD\u0ABE\u0AB0\u0AA4:e,"xn--s9brj9c":e,\u0A2D\u0A3E\u0A30\u0A24:e,"xn--45brj9c":e,\u09AD\u09BE\u09B0\u09A4:e,"xn--xkc2dl3a5ee0h":e,\u0B87\u0BA8\u0BCD\u0BA4\u0BBF\u0BAF\u0BBE:e,"xn--mgba3a4f16a":e,\u0627\u06CC\u0631\u0627\u0646:e,"xn--mgba3a4fra":e,\u0627\u064A\u0631\u0627\u0646:e,"xn--mgbtx2b":e,\u0639\u0631\u0627\u0642:e,"xn--mgbayh7gpa":e,\u0627\u0644\u0627\u0631\u062F\u0646:e,"xn--3e0b707e":e,\uD55C\uAD6D:e,"xn--80ao21a":e,\u049B\u0430\u0437:e,"xn--q7ce6a":e,\u0EA5\u0EB2\u0EA7:e,"xn--fzc2c9e2c":e,\u0DBD\u0D82\u0D9A\u0DCF:e,"xn--xkc2al3hye2a":e,\u0B87\u0BB2\u0B99\u0BCD\u0B95\u0BC8:e,"xn--mgbc0a9azcg":e,\u0627\u0644\u0645\u063A\u0631\u0628:e,"xn--d1alf":e,\u043C\u043A\u0434:e,"xn--l1acc":e,\u043C\u043E\u043D:e,"xn--mix891f":e,\u6FB3\u9580:e,"xn--mix082f":e,\u6FB3\u95E8:e,"xn--mgbx4cd0ab":e,\u0645\u0644\u064A\u0633\u064A\u0627:e,"xn--mgb9awbf":e,\u0639\u0645\u0627\u0646:e,"xn--mgbai9azgqp6j":e,\u067E\u0627\u06A9\u0633\u062A\u0627\u0646:e,"xn--mgbai9a5eva00b":e,\u067E\u0627\u0643\u0633\u062A\u0627\u0646:e,"xn--ygbi2ammx":e,\u0641\u0644\u0633\u0637\u064A\u0646:e,"xn--90a3ac":[1,{"xn--80au":e,"xn--90azh":e,"xn--d1at":e,"xn--c1avg":e,"xn--o1ac":e,"xn--o1ach":e}],\u0441\u0440\u0431:[1,{\u0430\u043A:e,\u043E\u0431\u0440:e,\u043E\u0434:e,\u043E\u0440\u0433:e,\u043F\u0440:e,\u0443\u043F\u0440:e}],"xn--p1ai":e,\u0440\u0444:e,"xn--wgbl6a":e,\u0642\u0637\u0631:e,"xn--mgberp4a5d4ar":e,\u0627\u0644\u0633\u0639\u0648\u062F\u064A\u0629:e,"xn--mgberp4a5d4a87g":e,\u0627\u0644\u0633\u0639\u0648\u062F\u06CC\u0629:e,"xn--mgbqly7c0a67fbc":e,\u0627\u0644\u0633\u0639\u0648\u062F\u06CC\u06C3:e,"xn--mgbqly7cvafr":e,\u0627\u0644\u0633\u0639\u0648\u062F\u064A\u0647:e,"xn--mgbpl2fh":e,\u0633\u0648\u062F\u0627\u0646:e,"xn--yfro4i67o":e,\u65B0\u52A0\u5761:e,"xn--clchc0ea0b2g2a9gcd":e,\u0B9A\u0BBF\u0B99\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0BC2\u0BB0\u0BCD:e,"xn--ogbpf8fl":e,\u0633\u0648\u0631\u064A\u0629:e,"xn--mgbtf8fl":e,\u0633\u0648\u0631\u064A\u0627:e,"xn--o3cw4h":[1,{"xn--o3cyx2a":e,"xn--12co0c3b4eva":e,"xn--m3ch0j3a":e,"xn--h3cuzk1di":e,"xn--12c1fe0br":e,"xn--12cfi8ixb8l":e}],\u0E44\u0E17\u0E22:[1,{\u0E17\u0E2B\u0E32\u0E23:e,\u0E18\u0E38\u0E23\u0E01\u0E34\u0E08:e,\u0E40\u0E19\u0E47\u0E15:e,\u0E23\u0E31\u0E10\u0E1A\u0E32\u0E25:e,\u0E28\u0E36\u0E01\u0E29\u0E32:e,\u0E2D\u0E07\u0E04\u0E4C\u0E01\u0E23:e}],"xn--pgbs0dh":e,\u062A\u0648\u0646\u0633:e,"xn--kpry57d":e,\u53F0\u7063:e,"xn--kprw13d":e,\u53F0\u6E7E:e,"xn--nnx388a":e,\u81FA\u7063:e,"xn--j1amh":e,\u0443\u043A\u0440:e,"xn--mgb2ddes":e,\u0627\u0644\u064A\u0645\u0646:e,xxx:e,ye:o,za:[0,{ac:e,agric:e,alt:e,co:e,edu:e,gov:e,grondar:e,law:e,mil:e,net:e,ngo:e,nic:e,nis:e,nom:e,org:e,school:e,tm:e,web:e}],zm:[1,{ac:e,biz:e,co:e,com:e,edu:e,gov:e,info:e,mil:e,net:e,org:e,sch:e}],zw:[1,{ac:e,co:e,gov:e,mil:e,org:e}],aaa:e,aarp:e,abb:e,abbott:e,abbvie:e,abc:e,able:e,abogado:e,abudhabi:e,academy:[1,{official:t}],accenture:e,accountant:e,accountants:e,aco:e,actor:e,ads:e,adult:e,aeg:e,aetna:e,afl:e,africa:e,agakhan:e,agency:e,aig:e,airbus:e,airforce:e,airtel:e,akdn:e,alibaba:e,alipay:e,allfinanz:e,allstate:e,ally:e,alsace:e,alstom:e,amazon:e,americanexpress:e,americanfamily:e,amex:e,amfam:e,amica:e,amsterdam:e,analytics:e,android:e,anquan:e,anz:e,aol:e,apartments:e,app:[1,{adaptable:t,aiven:t,beget:r,brave:a,clerk:t,clerkstage:t,cloudflare:t,wnext:t,csb:[2,{preview:t}],convex:t,corespeed:t,deta:t,ondigitalocean:t,easypanel:t,encr:[2,{frontend:t}],evervault:i,expo:[2,{on:t,staging:[2,{on:t}]}],edgecompute:t,"on-fleek":t,flutterflow:t,sprites:t,e2b:t,framer:t,gadget:t,github:t,hosted:r,run:[0,{"*":t,mtls:r}],web:t,hackclub:t,hasura:t,onhercules:t,botdash:t,shiptoday:t,leapcell:t,loginline:t,lovable:t,luyani:t,magicpatterns:t,medusajs:t,messerli:t,miren:t,mocha:t,netlify:t,ngrok:t,"ngrok-free":t,developer:r,noop:t,northflank:r,upsun:r,railway:[0,{up:t}],replit:s,nyat:t,snowflake:[0,{"*":t,privatelink:r}],streamlit:t,spawnbase:t,telebit:t,typedream:t,vercel:t,wal:t,wasmer:t,bookonline:t,windsurf:t,base44:t,zeabur:t,zerops:r}],apple:[1,{int:[2,{cloud:[0,{"*":t,r:[0,{"*":t,"ap-north-1":r,"ap-south-1":r,"ap-south-2":r,"eu-central-1":r,"eu-north-1":r,"us-central-1":r,"us-central-2":r,"us-east-1":r,"us-east-2":r,"us-west-1":r,"us-west-2":r,"us-west-3":r}]}]}]}],aquarelle:e,arab:e,aramco:e,archi:e,army:e,art:e,arte:e,asda:e,associates:e,athleta:e,attorney:e,auction:e,audi:e,audible:e,audio:e,auspost:e,author:e,auto:e,autos:e,aws:[1,{on:[0,{"af-south-1":d,"ap-east-1":d,"ap-northeast-1":d,"ap-northeast-2":d,"ap-northeast-3":d,"ap-south-1":d,"ap-south-2":f,"ap-southeast-1":d,"ap-southeast-2":d,"ap-southeast-3":d,"ap-southeast-4":f,"ap-southeast-5":f,"ca-central-1":d,"ca-west-1":f,"eu-central-1":d,"eu-central-2":f,"eu-north-1":d,"eu-south-1":d,"eu-south-2":f,"eu-west-1":d,"eu-west-2":d,"eu-west-3":d,"il-central-1":f,"me-central-1":f,"me-south-1":d,"sa-east-1":d,"us-east-1":d,"us-east-2":d,"us-west-1":d,"us-west-2":d,"ap-southeast-7":u,"mx-central-1":u,"us-gov-east-1":b,"us-gov-west-1":b}],sagemaker:[0,{"ap-northeast-1":g,"ap-northeast-2":g,"ap-south-1":g,"ap-southeast-1":g,"ap-southeast-2":g,"ca-central-1":I,"eu-central-1":g,"eu-west-1":g,"eu-west-2":g,"us-east-1":I,"us-east-2":I,"us-west-2":I,"af-south-1":p,"ap-east-1":p,"ap-northeast-3":p,"ap-south-2":y,"ap-southeast-3":p,"ap-southeast-4":y,"ca-west-1":[0,{notebook:t,"notebook-fips":t}],"eu-central-2":p,"eu-north-1":p,"eu-south-1":p,"eu-south-2":p,"eu-west-3":p,"il-central-1":p,"me-central-1":p,"me-south-1":p,"sa-east-1":p,"us-gov-east-1":R,"us-gov-west-1":R,"us-west-1":[0,{notebook:t,"notebook-fips":t,studio:t}],experiments:r}],repost:[0,{private:r}]}],axa:e,azure:e,baby:e,baidu:e,banamex:e,band:e,bank:e,bar:e,barcelona:e,barclaycard:e,barclays:e,barefoot:e,bargains:e,baseball:e,basketball:[1,{aus:t,nz:t}],bauhaus:e,bayern:e,bbc:e,bbt:e,bbva:e,bcg:e,bcn:e,beats:e,beauty:e,beer:e,berlin:e,best:e,bestbuy:e,bet:e,bharti:e,bible:e,bid:e,bike:e,bing:e,bingo:e,bio:e,black:e,blackfriday:e,blockbuster:e,blog:e,bloomberg:e,blue:e,bms:e,bmw:e,bnpparibas:e,boats:e,boehringer:e,bofa:e,bom:e,bond:e,boo:e,book:e,booking:e,bosch:e,bostik:e,boston:e,bot:e,boutique:e,box:e,bradesco:e,bridgestone:e,broadway:e,broker:e,brother:e,brussels:e,build:[1,{shiptoday:t,v0:t,windsurf:t}],builders:[1,{cloudsite:t}],business:H,buy:e,buzz:e,bzh:e,cab:e,cafe:e,cal:e,call:e,calvinklein:e,cam:e,camera:e,camp:[1,{emf:[0,{at:t}]}],canon:e,capetown:e,capital:e,capitalone:e,car:e,caravan:e,cards:e,care:e,career:e,careers:e,cars:e,casa:[1,{nabu:[0,{ui:t}]}],case:[1,{sav:t}],cash:e,casino:e,catering:e,catholic:e,cba:e,cbn:e,cbre:e,center:e,ceo:e,cern:e,cfa:e,cfd:e,chanel:e,channel:e,charity:e,chase:e,chat:e,cheap:e,chintai:e,christmas:e,chrome:e,church:e,cipriani:e,circle:e,cisco:e,citadel:e,citi:e,citic:e,city:e,claims:e,cleaning:e,click:e,clinic:e,clinique:e,clothing:e,cloud:[1,{antagonist:t,begetcdn:r,convex:Y,elementor:t,emergent:t,encoway:[0,{eu:t}],statics:r,ravendb:t,axarnet:[0,{"es-1":t}],diadem:t,jelastic:[0,{vip:t}],jele:t,"jenv-aruba":[0,{aruba:[0,{eur:[0,{it1:t}]}],it1:t}],keliweb:[2,{cs:t}],oxa:[2,{tn:t,uk:t}],primetel:[2,{uk:t}],reclaim:[0,{ca:t,uk:t,us:t}],trendhosting:[0,{ch:t,de:t}],jote:t,jotelulu:t,kuleuven:t,laravel:t,linkyard:t,magentosite:r,matlab:t,observablehq:t,perspecta:t,vapor:t,"on-rancher":r,scw:[0,{baremetal:[0,{"fr-par-1":t,"fr-par-2":t,"nl-ams-1":t}],"fr-par":[0,{cockpit:t,ddl:t,dtwh:t,fnc:[2,{functions:t}],ifr:t,k8s:ae,kafk:t,mgdb:t,rdb:t,s3:t,"s3-website":t,scbl:t,whm:t}],instances:[0,{priv:t,pub:t}],k8s:t,"nl-ams":[0,{cockpit:t,ddl:t,dtwh:t,ifr:t,k8s:ae,kafk:t,mgdb:t,rdb:t,s3:t,"s3-website":t,scbl:t,whm:t}],"pl-waw":[0,{cockpit:t,ddl:t,dtwh:t,ifr:t,k8s:ae,kafk:t,mgdb:t,rdb:t,s3:t,"s3-website":t,scbl:t}],scalebook:t,smartlabeling:t}],servebolt:t,onstackit:[0,{runs:t}],trafficplex:t,"unison-services":t,urown:t,voorloper:t,zap:t}],club:[1,{cloudns:t,jele:t,barsy:t}],clubmed:e,coach:e,codes:[1,{owo:r}],coffee:e,college:e,cologne:e,commbank:e,community:[1,{nog:t,ravendb:t,myforum:t}],company:[1,{mybox:t}],compare:e,computer:e,comsec:e,condos:e,construction:e,consulting:e,contact:e,contractors:e,cooking:e,cool:[1,{elementor:t,de:t}],corsica:e,country:e,coupon:e,coupons:e,courses:e,cpa:e,credit:e,creditcard:e,creditunion:e,cricket:e,crown:e,crs:e,cruise:e,cruises:e,cuisinella:e,cymru:e,cyou:e,dad:e,dance:e,data:e,date:e,dating:e,datsun:e,day:e,dclk:e,dds:e,deal:e,dealer:e,deals:e,degree:e,delivery:e,dell:e,deloitte:e,delta:e,democrat:e,dental:e,dentist:e,desi:e,design:[1,{graphic:t,bss:t}],dev:[1,{myaddr:t,panel:t,bearblog:t,brave:a,lcl:r,lclstage:r,stg:r,stgstage:r,pages:t,r2:t,workers:t,deno:t,"deno-staging":t,deta:t,lp:[2,{api:t,objects:t}],evervault:i,fly:t,githubpreview:t,gateway:r,grebedoc:t,botdash:t,inbrowser:r,"is-a-good":t,iserv:t,leapcell:t,runcontainers:t,localcert:[0,{user:r}],loginline:t,barsy:t,mediatech:t,"mocha-sandbox":t,modx:t,ngrok:t,"ngrok-free":t,"is-a-fullstack":t,"is-cool":t,"is-not-a":t,localplayer:t,xmit:t,"platter-app":t,replit:[2,{archer:t,bones:t,canary:t,global:t,hacker:t,id:t,janeway:t,kim:t,kira:t,kirk:t,odo:t,paris:t,picard:t,pike:t,prerelease:t,reed:t,riker:t,sisko:t,spock:t,staging:t,sulu:t,tarpit:t,teams:t,tucker:t,wesley:t,worf:t}],crm:[0,{aa:r,ab:r,ac:r,ad:r,ae:r,af:r,ci:r,d:r,pa:r,pb:r,pc:r,pd:r,pe:r,pf:r,w:r,wa:r,wb:r,wc:r,wd:r,we:r,wf:r}],erp:Ue,vercel:t,webhare:r,hrsn:t,"is-a":t}],dhl:e,diamonds:e,diet:e,digital:[1,{cloudapps:[2,{london:t}]}],direct:[1,{libp2p:t}],directory:e,discount:e,discover:e,dish:e,diy:[1,{discourse:t,imagine:t}],dnp:e,docs:e,doctor:e,dog:e,domains:e,dot:e,download:e,drive:e,dtv:e,dubai:e,dupont:e,durban:e,dvag:e,dvr:e,earth:e,eat:e,eco:e,edeka:e,education:H,email:[1,{crisp:[0,{on:t}],intouch:t,tawk:ro,tawkto:ro}],emerck:e,energy:e,engineer:e,engineering:e,enterprises:e,epson:e,equipment:e,ericsson:e,erni:e,esq:e,estate:[1,{compute:r}],eurovision:e,eus:[1,{party:vn}],events:[1,{koobin:t,co:t}],exchange:e,expert:e,exposed:e,express:e,extraspace:e,fage:e,fail:e,fairwinds:e,faith:e,family:e,fan:e,fans:e,farm:[1,{storj:t}],farmers:e,fashion:e,fast:e,fedex:e,feedback:e,ferrari:e,ferrero:e,fidelity:e,fido:e,film:e,final:e,finance:e,financial:H,fire:e,firestone:e,firmdale:e,fish:e,fishing:e,fit:e,fitness:e,flickr:e,flights:e,flir:e,florist:e,flowers:e,fly:e,foo:e,food:e,football:e,ford:e,forex:e,forsale:e,forum:e,foundation:e,fox:e,free:e,fresenius:e,frl:e,frogans:e,frontier:e,ftr:e,fujitsu:e,fun:Zt,fund:e,furniture:e,futbol:e,fyi:e,gal:e,gallery:e,gallo:e,gallup:e,game:e,games:[1,{pley:t,sheezy:t}],gap:e,garden:e,gay:[1,{pages:t}],gbiz:e,gdn:[1,{cnpy:t}],gea:e,gent:e,genting:e,george:e,ggee:e,gift:e,gifts:e,gives:e,giving:e,glass:e,gle:e,global:[1,{appwrite:t}],globo:e,gmail:e,gmbh:e,gmo:e,gmx:e,godaddy:e,gold:e,goldpoint:e,golf:e,goodyear:e,goog:[1,{cloud:t,translate:t,usercontent:r}],google:e,gop:e,got:e,grainger:e,graphics:e,gratis:e,green:e,gripe:e,grocery:e,group:[1,{discourse:t}],gucci:e,guge:e,guide:e,guitars:e,guru:e,hair:e,hamburg:e,hangout:e,haus:e,hbo:e,hdfc:e,hdfcbank:e,health:[1,{hra:t}],healthcare:e,help:e,helsinki:e,here:e,hermes:e,hiphop:e,hisamitsu:e,hitachi:e,hiv:e,hkt:e,hockey:e,holdings:e,holiday:e,homedepot:e,homegoods:e,homes:e,homesense:e,honda:e,horse:e,hospital:e,host:[1,{cloudaccess:t,freesite:t,easypanel:t,emergent:t,fastvps:t,myfast:t,gadget:t,tempurl:t,wpmudev:t,iserv:t,jele:t,mircloud:t,bolt:t,wp2:t,half:t}],hosting:[1,{opencraft:t}],hot:e,hotel:e,hotels:e,hotmail:e,house:e,how:e,hsbc:e,hughes:e,hyatt:e,hyundai:e,ibm:e,icbc:e,ice:e,icu:e,ieee:e,ifm:e,ikano:e,imamat:e,imdb:e,immo:e,immobilien:e,inc:e,industries:e,infiniti:e,ing:e,ink:e,institute:e,insurance:e,insure:e,international:e,intuit:e,investments:e,ipiranga:e,irish:e,ismaili:e,ist:e,istanbul:e,itau:e,itv:e,jaguar:e,java:e,jcb:e,jeep:e,jetzt:e,jewelry:e,jio:e,jll:e,jmp:e,jnj:e,joburg:e,jot:e,joy:e,jpmorgan:e,jprs:e,juegos:e,juniper:e,kaufen:e,kddi:e,kerryhotels:e,kerryproperties:e,kfh:e,kia:e,kids:e,kim:e,kindle:e,kitchen:e,kiwi:e,koeln:e,komatsu:e,kosher:e,kpmg:e,kpn:e,krd:[1,{co:t,edu:t}],kred:e,kuokgroup:e,kyoto:e,lacaixa:e,lamborghini:e,lamer:e,land:e,landrover:e,lanxess:e,lasalle:e,lat:e,latino:e,latrobe:e,law:e,lawyer:e,lds:e,lease:e,leclerc:e,lefrak:e,legal:e,lego:e,lexus:e,lgbt:e,lidl:e,life:e,lifeinsurance:e,lifestyle:e,lighting:e,like:e,lilly:e,limited:e,limo:e,lincoln:e,link:[1,{myfritz:t,cyon:t,joinmc:t,dweb:r,inbrowser:r,keenetic:t,nftstorage:$n,mypep:t,storacha:$n,w3s:$n}],live:[1,{aem:t,hlx:t,ewp:r}],living:e,llc:e,llp:e,loan:e,loans:e,locker:e,locus:e,lol:[1,{omg:t}],london:e,lotte:e,lotto:e,love:e,lpl:e,lplfinancial:e,ltd:e,ltda:e,lundbeck:e,luxe:e,luxury:e,madrid:e,maif:e,maison:e,makeup:e,man:e,management:e,mango:e,map:e,market:e,marketing:e,markets:e,marriott:e,marshalls:e,mattel:e,mba:e,mckinsey:e,med:e,media:tn,meet:e,melbourne:e,meme:e,memorial:e,men:e,menu:[1,{barsy:t,barsyonline:t}],merck:e,merckmsd:e,miami:e,microsoft:e,mini:e,mint:e,mit:e,mitsubishi:e,mlb:e,mls:e,mma:e,mobile:e,moda:e,moe:e,moi:e,mom:e,monash:e,money:e,monster:e,mormon:e,mortgage:e,moscow:e,moto:e,motorcycles:e,mov:e,movie:e,msd:e,mtn:e,mtr:e,music:e,nab:e,nagoya:e,navy:e,nba:e,nec:e,netbank:e,netflix:e,network:[1,{aem:t,alces:r,appwrite:t,co:t,arvo:t,azimuth:t,tlon:t}],neustar:e,new:e,news:[1,{noticeable:t}],next:e,nextdirect:e,nexus:e,nfl:e,ngo:e,nhk:e,nico:e,nike:e,nikon:e,ninja:e,nissan:e,nissay:e,nokia:e,norton:e,now:e,nowruz:e,nowtv:e,nra:e,nrw:e,ntt:e,nyc:e,obi:e,observer:e,office:e,okinawa:e,olayan:e,olayangroup:e,ollo:e,omega:e,one:[1,{kin:r,service:t,website:t}],ong:e,onl:e,online:[1,{eero:t,"eero-stage":t,websitebuilder:t,leapcell:t,barsy:t}],ooo:e,open:e,oracle:e,orange:[1,{tech:t}],organic:e,origins:e,osaka:e,otsuka:e,ott:e,ovh:[1,{nerdpol:t}],page:[1,{aem:t,hlx:t,codeberg:t,deuxfleurs:t,mybox:t,heyflow:t,prvcy:t,rocky:t,statichost:t,pdns:t,plesk:t}],panasonic:e,paris:e,pars:e,partners:e,parts:e,party:e,pay:e,pccw:e,pet:e,pfizer:e,pharmacy:e,phd:e,philips:e,phone:e,photo:e,photography:e,photos:tn,physio:e,pics:e,pictet:e,pictures:[1,{1337:t}],pid:e,pin:e,ping:e,pink:e,pioneer:e,pizza:[1,{ngrok:t}],place:H,play:e,playstation:e,plumbing:e,plus:[1,{playit:[2,{at:r,with:t}]}],pnc:e,pohl:e,poker:e,politie:e,porn:e,praxi:e,press:e,prime:e,prod:e,productions:e,prof:e,progressive:e,promo:e,properties:e,property:e,protection:e,pru:e,prudential:e,pub:[1,{id:r,kin:r,barsy:t}],pwc:e,qpon:e,quebec:e,quest:e,racing:e,radio:e,read:e,realestate:e,realtor:e,realty:e,recipes:e,red:e,redumbrella:e,rehab:e,reise:e,reisen:e,reit:e,reliance:e,ren:e,rent:e,rentals:e,repair:e,report:e,republican:e,rest:e,restaurant:e,review:e,reviews:[1,{aem:t}],rexroth:e,rich:e,richardli:e,ricoh:e,ril:e,rio:e,rip:[1,{clan:t}],rocks:[1,{myddns:t,stackit:t,"lima-city":t,webspace:t}],rodeo:e,rogers:e,room:e,rsvp:e,rugby:e,ruhr:e,run:[1,{appwrite:r,canva:t,development:t,ravendb:t,liara:[2,{iran:t}],lovable:t,needle:t,build:r,code:r,database:r,migration:r,onporter:t,repl:t,stackit:t,val:Ue,vercel:t,wix:t}],rwe:e,ryukyu:e,saarland:e,safe:e,safety:e,sakura:e,sale:e,salon:e,samsclub:e,samsung:e,sandvik:e,sandvikcoromant:e,sanofi:e,sap:e,sarl:e,sas:e,save:e,saxo:e,sbi:e,sbs:e,scb:e,schaeffler:e,schmidt:e,scholarships:e,school:e,schule:e,schwarz:e,science:e,scot:[1,{co:t,me:t,org:t,gov:[2,{service:t}]}],search:e,seat:e,secure:e,security:e,seek:e,select:e,sener:e,services:[1,{loginline:t}],seven:e,sew:e,sex:e,sexy:e,sfr:e,shangrila:e,sharp:e,shell:e,shia:e,shiksha:e,shoes:e,shop:[1,{base:t,hoplix:t,barsy:t,barsyonline:t,shopware:t}],shopping:e,shouji:e,show:Zt,silk:e,sina:e,singles:e,site:[1,{square:t,canva:re,cloudera:r,convex:Y,cyon:t,caffeine:t,fastvps:t,figma:t,"figma-gov":t,preview:t,heyflow:t,jele:t,jouwweb:t,loginline:t,barsy:t,co:t,notion:t,omniwe:t,opensocial:t,madethis:t,support:t,platformsh:r,tst:r,byen:t,sol:t,srht:t,novecore:t,cpanel:t,wpsquared:t,sourcecraft:t}],ski:e,skin:e,sky:e,skype:e,sling:e,smart:e,smile:e,sncf:e,soccer:e,social:e,softbank:e,software:e,sohu:e,solar:e,solutions:e,song:e,sony:e,soy:e,spa:e,space:[1,{myfast:t,heiyu:t,hf:[2,{static:t}],"app-ionos":t,project:t,uber:t,xs4all:t}],sport:e,spot:e,srl:e,stada:e,staples:e,star:e,statebank:e,statefarm:e,stc:e,stcgroup:e,stockholm:e,storage:e,store:[1,{barsy:t,sellfy:t,shopware:t,storebase:t}],stream:e,studio:e,study:e,style:e,sucks:e,supplies:e,supply:e,support:[1,{barsy:t}],surf:e,surgery:e,suzuki:e,swatch:e,swiss:e,sydney:e,systems:[1,{knightpoint:t,miren:t}],tab:e,taipei:e,talk:e,taobao:e,target:e,tatamotors:e,tatar:e,tattoo:e,tax:e,taxi:e,tci:e,tdk:e,team:[1,{discourse:t,jelastic:t}],tech:[1,{cleverapps:t}],technology:H,temasek:e,tennis:e,teva:e,thd:e,theater:e,theatre:e,tiaa:e,tickets:e,tienda:e,tips:e,tires:e,tirol:e,tjmaxx:e,tjx:e,tkmaxx:e,tmall:e,today:[1,{prequalifyme:t}],tokyo:e,tools:[1,{addr:oo,myaddr:t}],top:[1,{ntdll:t,wadl:r}],toray:e,toshiba:e,total:e,tours:e,town:e,toyota:e,toys:e,trade:e,trading:e,training:e,travel:e,travelers:e,travelersinsurance:e,trust:e,trv:e,tube:e,tui:e,tunes:e,tushu:e,tvs:e,ubank:e,ubs:e,unicom:e,university:e,uno:e,uol:e,ups:e,vacations:e,vana:e,vanguard:e,vegas:e,ventures:e,verisign:e,versicherung:e,vet:e,viajes:e,video:e,vig:e,viking:e,villas:e,vin:e,vip:[1,{hidns:t}],virgin:e,visa:e,vision:e,viva:e,vivo:e,vlaanderen:e,vodka:e,volvo:e,vote:e,voting:e,voto:e,voyage:e,wales:e,walmart:e,walter:e,wang:e,wanggou:e,watch:e,watches:e,weather:e,weatherchannel:e,webcam:e,weber:e,website:tn,wed:e,wedding:e,weibo:e,weir:e,whoswho:e,wien:e,wiki:tn,williamhill:e,win:e,windows:e,wine:e,winners:e,wme:e,woodside:e,work:[1,{"imagine-proxy":t}],works:e,world:e,wow:e,wtc:e,wtf:e,xbox:e,xerox:e,xihuan:e,xin:e,"xn--11b4c3d":e,\u0915\u0949\u092E:e,"xn--1ck2e1b":e,\u30BB\u30FC\u30EB:e,"xn--1qqw23a":e,\u4F5B\u5C71:e,"xn--30rr7y":e,\u6148\u5584:e,"xn--3bst00m":e,\u96C6\u56E2:e,"xn--3ds443g":e,\u5728\u7EBF:e,"xn--3pxu8k":e,\u70B9\u770B:e,"xn--42c2d9a":e,\u0E04\u0E2D\u0E21:e,"xn--45q11c":e,\u516B\u5366:e,"xn--4gbrim":e,\u0645\u0648\u0642\u0639:e,"xn--55qw42g":e,\u516C\u76CA:e,"xn--55qx5d":e,\u516C\u53F8:e,"xn--5su34j936bgsg":e,\u9999\u683C\u91CC\u62C9:e,"xn--5tzm5g":e,\u7F51\u7AD9:e,"xn--6frz82g":e,\u79FB\u52A8:e,"xn--6qq986b3xl":e,\u6211\u7231\u4F60:e,"xn--80adxhks":e,\u043C\u043E\u0441\u043A\u0432\u0430:e,"xn--80aqecdr1a":e,\u043A\u0430\u0442\u043E\u043B\u0438\u043A:e,"xn--80asehdb":e,\u043E\u043D\u043B\u0430\u0439\u043D:e,"xn--80aswg":e,\u0441\u0430\u0439\u0442:e,"xn--8y0a063a":e,\u8054\u901A:e,"xn--9dbq2a":e,\u05E7\u05D5\u05DD:e,"xn--9et52u":e,\u65F6\u5C1A:e,"xn--9krt00a":e,\u5FAE\u535A:e,"xn--b4w605ferd":e,\u6DE1\u9A6C\u9521:e,"xn--bck1b9a5dre4c":e,\u30D5\u30A1\u30C3\u30B7\u30E7\u30F3:e,"xn--c1avg":e,\u043E\u0440\u0433:e,"xn--c2br7g":e,\u0928\u0947\u091F:e,"xn--cck2b3b":e,\u30B9\u30C8\u30A2:e,"xn--cckwcxetd":e,\u30A2\u30DE\u30BE\u30F3:e,"xn--cg4bki":e,\uC0BC\uC131:e,"xn--czr694b":e,\u5546\u6807:e,"xn--czrs0t":e,\u5546\u5E97:e,"xn--czru2d":e,\u5546\u57CE:e,"xn--d1acj3b":e,\u0434\u0435\u0442\u0438:e,"xn--eckvdtc9d":e,\u30DD\u30A4\u30F3\u30C8:e,"xn--efvy88h":e,\u65B0\u95FB:e,"xn--fct429k":e,\u5BB6\u96FB:e,"xn--fhbei":e,\u0643\u0648\u0645:e,"xn--fiq228c5hs":e,\u4E2D\u6587\u7F51:e,"xn--fiq64b":e,\u4E2D\u4FE1:e,"xn--fjq720a":e,\u5A31\u4E50:e,"xn--flw351e":e,\u8C37\u6B4C:e,"xn--fzys8d69uvgm":e,\u96FB\u8A0A\u76C8\u79D1:e,"xn--g2xx48c":e,\u8D2D\u7269:e,"xn--gckr3f0f":e,\u30AF\u30E9\u30A6\u30C9:e,"xn--gk3at1e":e,\u901A\u8CA9:e,"xn--hxt814e":e,\u7F51\u5E97:e,"xn--i1b6b1a6a2e":e,\u0938\u0902\u0917\u0920\u0928:e,"xn--imr513n":e,\u9910\u5385:e,"xn--io0a7i":e,\u7F51\u7EDC:e,"xn--j1aef":e,\u043A\u043E\u043C:e,"xn--jlq480n2rg":e,\u4E9A\u9A6C\u900A:e,"xn--jvr189m":e,\u98DF\u54C1:e,"xn--kcrx77d1x4a":e,\u98DE\u5229\u6D66:e,"xn--kput3i":e,\u624B\u673A:e,"xn--mgba3a3ejt":e,\u0627\u0631\u0627\u0645\u0643\u0648:e,"xn--mgba7c0bbn0a":e,\u0627\u0644\u0639\u0644\u064A\u0627\u0646:e,"xn--mgbab2bd":e,\u0628\u0627\u0632\u0627\u0631:e,"xn--mgbca7dzdo":e,\u0627\u0628\u0648\u0638\u0628\u064A:e,"xn--mgbi4ecexp":e,\u0643\u0627\u062B\u0648\u0644\u064A\u0643:e,"xn--mgbt3dhd":e,\u0647\u0645\u0631\u0627\u0647:e,"xn--mk1bu44c":e,\uB2F7\uCEF4:e,"xn--mxtq1m":e,\u653F\u5E9C:e,"xn--ngbc5azd":e,\u0634\u0628\u0643\u0629:e,"xn--ngbe9e0a":e,\u0628\u064A\u062A\u0643:e,"xn--ngbrx":e,\u0639\u0631\u0628:e,"xn--nqv7f":e,\u673A\u6784:e,"xn--nqv7fs00ema":e,\u7EC4\u7EC7\u673A\u6784:e,"xn--nyqy26a":e,\u5065\u5EB7:e,"xn--otu796d":e,\u62DB\u8058:e,"xn--p1acf":[1,{"xn--90amc":t,"xn--j1aef":t,"xn--j1ael8b":t,"xn--h1ahn":t,"xn--j1adp":t,"xn--c1avg":t,"xn--80aaa0cvac":t,"xn--h1aliz":t,"xn--90a1af":t,"xn--41a":t}],\u0440\u0443\u0441:[1,{\u0431\u0438\u0437:t,\u043A\u043E\u043C:t,\u043A\u0440\u044B\u043C:t,\u043C\u0438\u0440:t,\u043C\u0441\u043A:t,\u043E\u0440\u0433:t,\u0441\u0430\u043C\u0430\u0440\u0430:t,\u0441\u043E\u0447\u0438:t,\u0441\u043F\u0431:t,\u044F:t}],"xn--pssy2u":e,\u5927\u62FF:e,"xn--q9jyb4c":e,\u307F\u3093\u306A:e,"xn--qcka1pmc":e,\u30B0\u30FC\u30B0\u30EB:e,"xn--rhqv96g":e,\u4E16\u754C:e,"xn--rovu88b":e,\u66F8\u7C4D:e,"xn--ses554g":e,\u7F51\u5740:e,"xn--t60b56a":e,\uB2F7\uB137:e,"xn--tckwe":e,\u30B3\u30E0:e,"xn--tiq49xqyj":e,\u5929\u4E3B\u6559:e,"xn--unup4y":e,\u6E38\u620F:e,"xn--vermgensberater-ctb":e,verm\u00F6gensberater:e,"xn--vermgensberatung-pwb":e,verm\u00F6gensberatung:e,"xn--vhquv":e,\u4F01\u4E1A:e,"xn--vuq861b":e,\u4FE1\u606F:e,"xn--w4r85el8fhu5dnra":e,\u5609\u91CC\u5927\u9152\u5E97:e,"xn--w4rs40l":e,\u5609\u91CC:e,"xn--xhq521b":e,\u5E7F\u4E1C:e,"xn--zfr164b":e,\u653F\u52A1:e,xyz:[1,{caffeine:t,exe:t,botdash:t,telebit:r}],yachts:e,yahoo:e,yamaxun:e,yandex:e,yodobashi:e,yoga:e,yokohama:e,you:e,youtube:e,yun:e,zappos:e,zara:e,zero:e,zip:e,zone:[1,{stackit:t,lima:t,triton:r}],zuerich:e}]})();function Bh(e,t,n,o){let r=null,a=t;for(;a!==void 0&&((a[0]&o)!==0&&(r={index:n+1,isIcann:(a[0]&1)!==0,isPrivate:(a[0]&2)!==0}),n!==-1);){let i=a[1];a=Object.prototype.hasOwnProperty.call(i,e[n])?i[e[n]]:i["*"],n-=1}return r}function rl(e,t,n){var o;if(bd(e,t,n))return;let r=e.split("."),a=(t.allowPrivateDomains?2:0)|(t.allowIcannDomains?1:0),i=Bh(r,Oh,r.length-1,a);if(i!==null){n.isIcann=i.isIcann,n.isPrivate=i.isPrivate,n.publicSuffix=r.slice(i.index+1).join(".");return}let s=Bh(r,Ph,r.length-1,a);if(s!==null){n.isIcann=s.isIcann,n.isPrivate=s.isPrivate,n.publicSuffix=r.slice(s.index).join(".");return}n.isIcann=!1,n.isPrivate=!1,n.publicSuffix=(o=r[r.length-1])!==null&&o!==void 0?o:null}var Uh=nl();function Hh(e,t={}){return ol(e,5,rl,t,nl())}function Fh(e,t={}){return gd(Uh),ol(e,3,rl,t,Uh).domain}function kd(e){let t=String(e||"").trim().toLowerCase().replace(/\.$/,"");return t.startsWith("[")&&t.endsWith("]")?t.slice(1,-1):t}function Ux(e){let t=String(e||"").trim().toLowerCase();if(!t||t.includes("://")||t.startsWith("//"))return!1;let n=t.split(/[/?#]/)[0]?.trim()||"";return!n||n.startsWith("[")?!1:(n.match(/:/g)||[]).length>=2}function Hx(e){let t=String(e||"").trim();return t?/^[a-z][a-z0-9+.-]*:\/\//i.test(t)?t:t.startsWith("//")?`https:${t}`:Ux(t)?`https://[${t}]`:`https://${t}`:""}function Fx(e){let t=Hx(e);if(!t)return"";try{return kd(new URL(t).hostname)}catch{return""}}function zx(e){return/^\d{1,3}(?:\.\d{1,3}){3}$/.test(e)?e.split(".").every(t=>{let n=Number(t);return Number.isInteger(n)&&n>=0&&n<=255}):!1}function jx(e){if(!e.includes(":"))return!1;try{return kd(new URL(`https://[${e}]`).hostname)===e}catch{return!1}}function yd(e){let t=kd(e);return Hh(t).isIp===!0||zx(t)||jx(t)}function vd(e){let t=Bn(e);return!!t&&yd(t)}function Bn(e){return Fx(String(e||"").trim().toLowerCase())}function rs(e){let t=String(e||"").trim().toLowerCase();if(!t)return"";if(t==="*")return"*";let n=t.startsWith("="),o=!n&&t.startsWith("*."),r=n?t.slice(1):o?t.slice(2):t,a=Bn(r);return a?n?`=${a}`:o?`*.${a}`:a:""}function zh(e,t){return e?t!=="host_only"||e==="*"||e.startsWith("=")||e.startsWith("*.")?e:`=${e}`:""}function sr(e){let t=Bn(e);return t?t==="localhost"||yd(t)?t:Fh(t,{allowPrivateDomains:!0})||t:""}function jh(e,t){let n=Bn(e);return n?n==="localhost"||yd(n)?`=${n}`:t==="host_only"?`=${n}`:sr(n):""}function as(e,t,n){let o=Array.isArray(e)?e:typeof e=="string"&&e.trim()?[e]:[],r=new Set;for(let a of o){let i=zh(rs(String(a||"")),n);i&&r.add(i)}if(!r.size){let a=jh(t,n);a&&r.add(a)}return Array.from(r)}function al(e,t){let n=Bn(e),o=rs(t);if(!n||!o)return!1;if(o==="*")return!0;if(o.startsWith("=")){let r=o.slice(1);return!!r&&n===r}if(o.startsWith("*.")){let r=o.slice(2);return!r||n===r?!1:n.endsWith(`.${r}`)}return n===o?!0:n.endsWith(`.${o}`)}function Fo(e){return Bn(e)||null}function To(e,t){let n=Fo(e);return n?t.length?t.some(o=>al(n,o)):!0:!1}function wd(e){let t=Bn(e.host||"");if(!t)return!1;let n=e.domainScopeMode==="host_only"?"host_only":"registrable_domain",o=Array.isArray(e.allowedDomains)?e.allowedDomains.map(a=>rs(a)).map(a=>zh(a,n)).filter(Boolean):[];if(o.length>0)return o.some(a=>al(t,a));let r=Bn(e.currentHost||"");return r?n==="host_only"?t===r:sr(t)===sr(r):!0}var xd=new Set([z.describe_images,z.wait_action,z.wait_for_element,z.answer_task,z.solve_captcha,z.network_run_recipe]),qx=new Set([z.goto_url,z.google_search,z.go_back,z.go_forward,z.refresh_page,z.open_new_tab,z.switch_tab,z.close_tab]);function $x(e){return e==="open_url_new_tab"?z.open_new_tab:String(e||"").trim()}function Wx(e){return e==="allow"||e==="block"||e==="open_new_tab_notice"?e:"open_new_tab_notice"}function qh(e){let t=$x(String(e.toolName||""));return!t||Wx(e.externalNavigationPolicy)==="allow"||xd.has(t)||qx.has(t)?!1:!To(e.currentUrl,e.allowedDomains)}var ll=class ll{constructor(t={}){P(this,"root");P(this,"includeFrames");P(this,"disableDomAnnotations");P(this,"allowActions");P(this,"runtimeId");P(this,"domainScopeMode");P(this,"allowedDomains");P(this,"externalNavigationPolicy");P(this,"crossHostPolicy");P(this,"registerOpenedTab");P(this,"listKnownTabs");P(this,"switchToLogicalTab");P(this,"onNavigationGuardrail");P(this,"onBeforeAgentNavigation");P(this,"onBeforeCrossHostNavigation");P(this,"instrumentation");P(this,"highlightEl",null);P(this,"clientTools",new Map);P(this,"navigationDelayMs");P(this,"domSettleDebounceMs");P(this,"domSettleMaxWaitMs");P(this,"domSettleRetries");P(this,"sparseTreeRetryDelayMs");P(this,"sparseTreeRetryMaxAttempts");P(this,"uploadStore",new Map);P(this,"uploadProviderInstalled",!1);P(this,"actionGateContext",{});P(this,"instrumentationStarted",!1);this.root=t.root??document.body??document.documentElement,this.includeFrames=t.includeFrames??!0,this.disableDomAnnotations=t.disableDomAnnotations??!0,this.allowActions=t.allowActions??!0,this.runtimeId=t.runtimeId,this.domainScopeMode=$h(t.domainScopeMode),this.allowedDomains=as(t.allowedDomains,window.location.hostname,this.domainScopeMode),this.externalNavigationPolicy=Wh(t.externalNavigationPolicy),this.crossHostPolicy=Vh(t.crossHostPolicy),this.registerOpenedTab=t.registerOpenedTab,this.listKnownTabs=t.listKnownTabs,this.switchToLogicalTab=t.switchToLogicalTab,this.onNavigationGuardrail=t.onNavigationGuardrail,this.onBeforeAgentNavigation=t.onBeforeAgentNavigation,this.onBeforeCrossHostNavigation=t.onBeforeCrossHostNavigation,this.navigationDelayMs=t.navigationDelayMs??80,this.domSettleDebounceMs=is(t.domSettle?.debounceMs,24,8,500),this.domSettleMaxWaitMs=is(t.domSettle?.maxWaitMs,220,80,5e3),this.domSettleRetries=is(t.domSettle?.retries,0,0,6),this.sparseTreeRetryDelayMs=is(t.domSettle?.sparseTreeRetryDelayMs,35,20,1e3),this.sparseTreeRetryMaxAttempts=is(t.domSettle?.sparseTreeRetryMaxAttempts,1,0,4),this.instrumentation=t.instrumentation??Mh({includeIframes:!0,scanInlineHandlers:!0,observeInlineMutations:!0,...t.instrumentationOptions||{}}),hh(),t.uploadBytesProvider&&this.setUploadBytesProvider(t.uploadBytesProvider)}setAllowActions(t){this.allowActions=!!t}setActionGateContext(t){let n={};(t?.mode==="controller"||t?.mode==="observer")&&(n.mode=t.mode),typeof t?.controllerRuntimeId=="string"&&t.controllerRuntimeId.trim()&&(n.controllerRuntimeId=t.controllerRuntimeId.trim()),Number.isFinite(Number(t?.activeLogicalTabId))&&Number(t?.activeLogicalTabId)>0&&(n.activeLogicalTabId=Number(t?.activeLogicalTabId)),Number.isFinite(Number(t?.localLogicalTabId))&&Number(t?.localLogicalTabId)>0&&(n.localLogicalTabId=Number(t?.localLogicalTabId)),typeof t?.reason=="string"&&t.reason.trim()&&(n.reason=t.reason.trim().slice(0,240)),this.actionGateContext=n}setNavigationPolicy(t){t.domainScopeMode&&(this.domainScopeMode=$h(t.domainScopeMode),t.allowedDomains||(this.allowedDomains=as(void 0,window.location.hostname,this.domainScopeMode))),t.allowedDomains&&(this.allowedDomains=as(t.allowedDomains,window.location.hostname,this.domainScopeMode)),t.externalNavigationPolicy&&(this.externalNavigationPolicy=Wh(t.externalNavigationPolicy)),t.crossHostPolicy&&(this.crossHostPolicy=Vh(t.crossHostPolicy))}async getSnapshot(){return await this.ensureListenerScan(),ns(this.root,this.instrumentation,{includeFrames:this.includeFrames,disableDomAnnotations:this.disableDomAnnotations})}async getPageData(t){await this.ensureListenerScan();let n=Kc(t?.pageConfig),o={...n||{},adaptiveSettleDebounceMs:typeof n?.adaptiveSettleDebounceMs=="number"?n.adaptiveSettleDebounceMs:this.domSettleDebounceMs,adaptiveSettleMaxWaitMs:typeof n?.adaptiveSettleMaxWaitMs=="number"?n.adaptiveSettleMaxWaitMs:this.domSettleMaxWaitMs,adaptiveSettleRetries:typeof n?.adaptiveSettleRetries=="number"?n.adaptiveSettleRetries:this.domSettleRetries,sparseTreeRetryDelayMs:typeof n?.sparseTreeRetryDelayMs=="number"?n.sparseTreeRetryDelayMs:this.sparseTreeRetryDelayMs,sparseTreeRetryMaxAttempts:typeof n?.sparseTreeRetryMaxAttempts=="number"?n.sparseTreeRetryMaxAttempts:this.sparseTreeRetryMaxAttempts};return await _h(this.root,this.instrumentation,{includeFrames:this.includeFrames,disableDomAnnotations:this.disableDomAnnotations,pageConfig:o})}ensureInstrumentationStarted(){this.instrumentationStarted||(Nh(),this.instrumentationStarted=!0)}async ensureListenerScan(){this.ensureInstrumentationStarted();try{let n=(this.root.ownerDocument||document).defaultView||window,o=n.__RTRVR_INTERNAL_KEY__||"__RTRVR_INTERNAL__",a=n[o]?.flushScan;if(typeof a=="function"){await a({mode:"priority",includeShadow:!0,includeSameOriginIframes:!0,budgetMs:400});return}n.rtrvrAIMarkInteractiveElements?.()}catch{}}async executeTool(t,n){let o=Vx(t?.name);if(!o)return{success:!1,error:`Unknown tool: ${String(t?.name)}`,allowFallback:!1};if(this.shouldBlockForOutOfScopeContext(o)){let y=`Current tab host "${Fo(window.location.href)||window.location.hostname||"unknown"}" is outside the allowed navigation scope (${Gx(this.allowedDomains)}).`;return this.domainScopeBlockedResponse(window.location.href,y,{fromCurrentContext:!0})}if(!this.allowActions&&!xd.has(o))return{success:!1,error:"Actions disabled by configuration",allowFallback:!1,output:{reason:this.actionGateContext.mode==="observer"?"Actions are disabled because this tab is currently in observer mode.":this.actionGateContext.reason||"Actions disabled by configuration",actionGate:this.actionGateContext}};let r=await this.handleNavigationTools(o,t?.args||{});if(r)return r;if(o===z.wait_action){let g=Number(t?.args?.duration??1e3);return await new Promise(y=>setTimeout(y,Math.max(0,Math.min(g,6e4)))),{success:!0}}if(o===z.wait_for_element)return this.waitForElement(t?.args||{});if(o===z.answer_task)return{success:!0};if(o===z.solve_captcha)return sl("CAPTCHA solving requires human intervention in embed mode.","HUMAN_INTERVENTION_REQUIRED");if(o===z.network_run_recipe)return sl("network_run_recipe is not supported in embed mode.","CAPABILITY_UNAVAILABLE");let a=t?.args||{},i=Yx(a),s=Va(document,a.iframe_id);if(a.iframe_id!=null&&s.unresolvedPath.length>0&&!i)return this.iframeContextUnavailableResponse(a.iframe_id,s);if(o===z.click_element&&a?.open_in_new_tab)return this.openElementInNewTab(a);if(o===z.click_element){let g=this.getInterceptedClickTarget(a);if(g?.targetUrl){if(g.forceOpenInNewTab)return this.openUrlInNewTab(g.targetUrl,{policyBlocked:!0,reason:g.reason,decisionReason:"open_new_tab"});let I=g.reason;return this.externalNavigationPolicy==="open_new_tab_notice"?this.openUrlInNewTab(g.targetUrl,{policyBlocked:!0,reason:I,decisionReason:"open_new_tab"}):this.domainScopeBlockedResponse(g.targetUrl,I,{decisionReason:"policy_blocked"})}let y=this.getClickTargetUrl(a);if(y){let I=this.buildNavigationIntent(y);if(I.isCrossHost){let R=await this.resolveAgentNavigationDecision(I,this.getNavigationFallbackDecision(y));if(R.decision==="block")return this.domainScopeBlockedResponse(y,R.reason||"Navigation blocked by policy.",{decisionReason:R.decisionReason||"policy_blocked"});if(R.decision==="open_new_tab")return this.openUrlInNewTab(y,{policyBlocked:!0,reason:R.reason||"Navigation policy requires opening a new tab.",decisionReason:R.decisionReason||"open_new_tab"});this.notifyCrossHostNavigation(I)}else{let R=await this.resolveAgentNavigationDecision(I,"allow_same_tab");if(R.decision==="block")return this.domainScopeBlockedResponse(y,R.reason||"Navigation blocked by policy.",{decisionReason:R.decisionReason||"policy_blocked"});if(R.decision==="open_new_tab")return this.openUrlInNewTab(y,{policyBlocked:!0,reason:R.reason||"Navigation policy requires opening a new tab.",decisionReason:R.decisionReason||"open_new_tab"})}}}if(o===z.describe_images)return this.describeImages(t?.args||{});if(!(o in kc))return{success:!1,error:`Unknown tool: ${String(t?.name)}`,allowFallback:!1};let{doc:c}=s,d=Td(a),f=d?xo(c,d):null,u;if(f){let g=this.instrumentation.getFrameworkMetadata(f),y=Xx(g.listenersRaw||"",o),I=a?.value??a?.text??null;u=Kx({...g,pattern:y,value:I})}let b=kc[o];return o===z.upload_file&&!n&&(n=await this.buildUploadPayload(a).catch(()=>{})),gh({opcode:b,call:{name:o,args:a},elementData:u,tabIndex:0,payload:n})}iframeContextUnavailableResponse(t,n){let r=`iframe_id unresolved: remaining=${n.unresolvedPath.join(">")||"(none)"} (cross-origin, not-ready, or not found)`;return{success:!1,error:r,allowFallback:!1,output:{success:!1,error:{code:"IFRAME_CONTEXT_UNAVAILABLE",message:r,retryable:!1},iframe_context:{requested_iframe_id:t,requested_path:n.iframePath,resolved_path:n.resolvedPath,unresolved_path:n.unresolvedPath}},errorDetails:{code:"IFRAME_CONTEXT_UNAVAILABLE",message:r,retryable:!1,details:{requested_iframe_id:t,requested_path:n.iframePath,resolved_path:n.resolvedPath,unresolved_path:n.unresolvedPath}}}}highlight(t){let n=xo(document,t);if(!n)return;let o=n.getBoundingClientRect();if(!this.highlightEl){let r=document.createElement("div");r.style.position="fixed",r.style.pointerEvents="none",r.style.border="2px solid #ff7a59",r.style.boxShadow="0 0 0 2px rgba(255, 122, 89, 0.2)",r.style.borderRadius="6px",r.style.zIndex="2147483647",this.highlightEl=r,document.body.appendChild(r)}this.highlightEl.style.left=`${o.left}px`,this.highlightEl.style.top=`${o.top}px`,this.highlightEl.style.width=`${Math.max(0,o.width)}px`,this.highlightEl.style.height=`${Math.max(0,o.height)}px`,this.highlightEl.style.display="block"}clearHighlight(){this.highlightEl&&(this.highlightEl.style.display="none")}setUploadBytesProvider(t){window.__ROVER_UPLOAD_BYTES__=t}registerTool(t,n){let o=typeof t=="string"?{name:t}:t;!o?.name||typeof n!="function"||this.clientTools.set(o.name,{handler:n,def:o})}async executeClientTool(t,n){let o=this.clientTools.get(t);if(!o)throw new Error(`Unknown client tool: ${t}`);return o.handler(n)}listClientTools(){return Array.from(this.clientTools.values()).map(t=>t.def)}async handleNavigationTools(t,n){switch(t){case z.goto_url:{let o=String(n.url||"").trim();if(!o)return{success:!1,error:"goto_url: missing url",allowFallback:!0};let r=il(o,window.location.href);if(!r)return{success:!1,error:`goto_url: invalid url "${o}"`,allowFallback:!0};if(this.shouldPreserveHostRuntime(r)){let s=this.buildNavigationIntent(r),c=await this.resolveAgentNavigationDecision(s,this.getNavigationFallbackDecision(r)),d=this.externalNavigationPolicy==="block"?"block":"open_new_tab";return(c.decision==="allow_same_tab"?d:c.decision)==="block"?this.domainScopeBlockedResponse(r,c.reason||"Navigation blocked by policy.",{decisionReason:c.decisionReason}):await this.openUrlInNewTab(r,{policyBlocked:!0,reason:c.reason||"Opened in a new tab to preserve Rover runtime continuity across hostnames.",decisionReason:c.decisionReason||"open_new_tab"})}if(this.shouldGuardExternalNavigation(r)){let s="Navigation blocked by domain policy.";return this.externalNavigationPolicy==="open_new_tab_notice"?await this.openUrlInNewTab(r,{policyBlocked:!0,reason:s}):this.domainScopeBlockedResponse(r,s)}let a=this.buildNavigationIntent(r);if(a.isCrossHost){let s=await this.resolveAgentNavigationDecision(a,this.getNavigationFallbackDecision(r));return s.decision==="block"?this.domainScopeBlockedResponse(r,s.reason||"Navigation blocked by policy.",{decisionReason:s.decisionReason}):s.decision==="open_new_tab"?await this.openUrlInNewTab(r,{policyBlocked:!0,reason:s.reason||"Navigation policy requires opening a new tab.",decisionReason:s.decisionReason||"open_new_tab"}):this.scheduleSameTabNavigation(r,a,{decisionReason:s.decisionReason||"allow_same_tab",reason:s.reason||"Navigation allowed."})}let i=await this.resolveAgentNavigationDecision(a,"allow_same_tab");return i.decision==="block"?this.domainScopeBlockedResponse(r,i.reason||"Navigation blocked by policy.",{decisionReason:i.decisionReason||"policy_blocked"}):i.decision==="open_new_tab"?await this.openUrlInNewTab(r,{policyBlocked:!0,reason:i.reason||"Navigation policy requires opening a new tab.",decisionReason:i.decisionReason||"open_new_tab"}):this.scheduleSameTabNavigation(r,a,{decisionReason:i.decisionReason||"allow_same_tab",reason:i.reason||"Navigation allowed."})}case z.google_search:{let o=String(n.query||"").trim();if(!o)return{success:!1,error:"google_search: missing query",allowFallback:!0};let r=`https://www.google.com/search?q=${encodeURIComponent(o)}`;if(this.shouldPreserveHostRuntime(r)){let s=this.buildNavigationIntent(r),c=await this.resolveAgentNavigationDecision(s,this.getNavigationFallbackDecision(r)),d=this.externalNavigationPolicy==="block"?"block":"open_new_tab";return(c.decision==="allow_same_tab"?d:c.decision)==="block"?this.domainScopeBlockedResponse(r,c.reason||"Navigation blocked by policy.",{decisionReason:c.decisionReason}):await this.openUrlInNewTab(r,{policyBlocked:!0,reason:c.reason||"Opened in a new tab to preserve Rover runtime continuity across hostnames.",decisionReason:c.decisionReason||"open_new_tab"})}if(this.shouldGuardExternalNavigation(r)){let s="Google search opens outside the allowed navigation scope.";return this.externalNavigationPolicy==="open_new_tab_notice"?await this.openUrlInNewTab(r,{policyBlocked:!0,reason:s}):this.domainScopeBlockedResponse(r,s)}let a=this.buildNavigationIntent(r);if(a.isCrossHost){let s=await this.resolveAgentNavigationDecision(a,this.getNavigationFallbackDecision(r));return s.decision==="block"?this.domainScopeBlockedResponse(r,s.reason||"Navigation blocked by policy.",{decisionReason:s.decisionReason}):s.decision==="open_new_tab"?await this.openUrlInNewTab(r,{policyBlocked:!0,reason:s.reason||"Navigation policy requires opening a new tab.",decisionReason:s.decisionReason||"open_new_tab"}):this.scheduleSameTabNavigation(r,a,{decisionReason:s.decisionReason||"allow_same_tab",reason:s.reason||"Navigation allowed."})}let i=await this.resolveAgentNavigationDecision(a,"allow_same_tab");return i.decision==="block"?this.domainScopeBlockedResponse(r,i.reason||"Navigation blocked by policy.",{decisionReason:i.decisionReason||"policy_blocked"}):i.decision==="open_new_tab"?await this.openUrlInNewTab(r,{policyBlocked:!0,reason:i.reason||"Navigation policy requires opening a new tab.",decisionReason:i.decisionReason||"open_new_tab"}):this.scheduleSameTabNavigation(r,a,{decisionReason:i.decisionReason||"allow_same_tab",reason:i.reason||"Navigation allowed."})}case z.go_back:{let o=this.buildNavigationIntent(window.location.href,{isCrossHost:!1});return await this.resolveAgentNavigationDecision(o,"allow_same_tab"),this.scheduleHistoryNavigation("back"),{success:!0,output:{navigation:"same_tab",navigationOutcome:"same_host_navigated",navigationPending:!1,decisionReason:"allow_same_tab"}}}case z.go_forward:{let o=this.buildNavigationIntent(window.location.href,{isCrossHost:!1});return await this.resolveAgentNavigationDecision(o,"allow_same_tab"),this.scheduleHistoryNavigation("forward"),{success:!0,output:{navigation:"same_tab",navigationOutcome:"same_host_navigated",navigationPending:!1,decisionReason:"allow_same_tab"}}}case z.refresh_page:{let o=this.buildNavigationIntent(window.location.href,{isCrossHost:!1});return await this.resolveAgentNavigationDecision(o,"allow_same_tab"),this.scheduleHistoryNavigation("reload"),{success:!0,output:{navigation:"same_tab",navigationOutcome:"same_host_navigated",navigationPending:!1,decisionReason:"allow_same_tab"}}}case z.open_new_tab:{let o=String(n.url||"").trim();if(!o)return{success:!1,error:"open_new_tab: missing url",allowFallback:!0};let r=il(o,window.location.href);if(!r)return{success:!1,error:`open_new_tab: invalid url "${o}"`,allowFallback:!0};let a=this.buildNavigationIntent(r),i=await this.resolveAgentNavigationDecision(a,"open_new_tab");return i.decision==="block"?this.domainScopeBlockedResponse(r,i.reason||"Navigation blocked by policy.",{decisionReason:i.decisionReason}):await this.openUrlInNewTab(r,{policyBlocked:!1,reason:i.reason,decisionReason:i.decisionReason||"open_new_tab"})}case z.switch_tab:{let o=Number(n.logical_tab_id??n.tab_id);if(!Number.isFinite(o)||o<=0)return{success:!1,error:(typeof n._tab_id_mapping_error=="string"?String(n._tab_id_mapping_error).trim():"")||"switch_tab: missing/invalid logical_tab_id",allowFallback:!0};if(this.externalNavigationPolicy!=="allow"&&this.listKnownTabs){let r=this.listKnownTabs().find(a=>Number(a.logicalTabId)===o);if(r?.external)return this.domainScopeBlockedResponse(r.url||`logical_tab_id:${o}`,`Tab ${o} is out of scope. Direct actions are blocked for this tab.`)}if(!this.switchToLogicalTab)return sl("switch_tab requires session coordinator support.","CAPABILITY_UNAVAILABLE");try{let r=await this.switchToLogicalTab(o);return r?.ok?{success:!0,output:{logicalTabId:o,delegated:!!r.delegated,mode:r.delegated?"delegated":"local"}}:{success:!1,error:r?.reason||`switch_tab failed for logical tab ${o}`,allowFallback:!0}}catch(r){return{success:!1,error:r?.message||"switch_tab failed",allowFallback:!0}}}case z.close_tab:try{return window.close(),{success:!0}}catch{return sl("close_tab failed in embed mode.","CAPABILITY_UNAVAILABLE")}default:return null}}shouldGuardExternalNavigation(t){return this.externalNavigationPolicy==="allow"?!1:!To(t,this.allowedDomains)}shouldPreserveHostRuntime(t){return this.externalNavigationPolicy==="allow"?!1:!To(t,this.allowedDomains)}getNavigationFallbackDecision(t){return t?To(t,this.allowedDomains)?this.crossHostPolicy==="open_new_tab"&&this.isCrossHostNavigation(t)?"open_new_tab":"allow_same_tab":this.externalNavigationPolicy==="block"?"block":this.externalNavigationPolicy==="open_new_tab_notice"?"open_new_tab":"allow_same_tab":"allow_same_tab"}isCrossHostNavigation(t){let n=Fo(window.location.href),o=Fo(t);return!n||!o?!1:n!==o}buildNavigationIntent(t,n){let o="";try{o=crypto.randomUUID()}catch{o=`handoff_${Date.now()}_${Math.floor(Math.random()*1e5)}`}return{handoffId:o,targetUrl:t,sourceRuntimeId:this.runtimeId,sourceLogicalTabId:this.actionGateContext.localLogicalTabId,runId:n?.runId,isCrossHost:n?.isCrossHost??this.isCrossHostNavigation(t),ts:Date.now()}}async resolveAgentNavigationDecision(t,n){let o={decision:n,decisionReason:n==="block"?"policy_blocked":n==="open_new_tab"?"open_new_tab":"allow_same_tab"};if(!this.onBeforeAgentNavigation)return o;try{let r=this.onBeforeAgentNavigation(t),a=await this.awaitWithTimeout(r,ll.NAV_PREFLIGHT_TIMEOUT_MS);if(!a||typeof a!="object")return o;let i=String(a.decision||"").trim();return{decision:i==="allow_same_tab"||i==="open_new_tab"||i==="block"?i:i==="stale_run"?n:o.decision,reason:String(a.reason||"").trim()||void 0,decisionReason:String(a.decisionReason||"").trim()||o.decisionReason}}catch{return o}}async awaitWithTimeout(t,n){let o=t;return!o||typeof o.then!="function"?t:await Promise.race([o,new Promise(r=>{window.setTimeout(()=>r(void 0),Math.max(0,n))})])}scheduleHistoryNavigation(t){window.setTimeout(()=>{t==="back"?window.history.back():t==="forward"?window.history.forward():window.location.reload()},this.navigationDelayMs)}scheduleSameTabNavigation(t,n,o){let r=n.isCrossHost===!0,a=To(t,this.allowedDomains);return r&&this.notifyCrossHostNavigation(n),a?(window.setTimeout(()=>{try{window.location.href=t}catch{window.location.assign(t)}},this.navigationDelayMs),{success:!0,output:{url:t,navigation:"same_tab",navigationOutcome:r?"subdomain_navigated":"same_host_navigated",navigationPending:!1,decisionReason:o?.decisionReason||"allow_same_tab",reason:o?.reason,...o?.convertedFrom?{convertedFrom:o.convertedFrom}:{}}}):(window.setTimeout(()=>{try{window.location.href=t}catch{window.location.assign(t)}},Math.max(this.navigationDelayMs,200)),{success:!0,output:{url:t,navigation:"same_tab",navigationOutcome:"same_tab_scheduled",navigationPending:!0,decisionReason:o?.decisionReason||"allow_same_tab",reason:o?.reason,...o?.convertedFrom?{convertedFrom:o.convertedFrom}:{}}})}notifyCrossHostNavigation(t){if(t.isCrossHost)try{this.onBeforeCrossHostNavigation?.(t)}catch{}}shouldBlockForOutOfScopeContext(t){return qh({toolName:t,currentUrl:window.location.href,allowedDomains:this.allowedDomains,externalNavigationPolicy:this.externalNavigationPolicy})}getInterceptedClickTarget(t){let n=this.getClickTargetUrl(t);return n?this.shouldPreserveHostRuntime(n)?!To(n,this.allowedDomains)&&this.externalNavigationPolicy==="block"?{targetUrl:n,reason:"Blocked same-tab navigation to an out-of-scope destination.",forceOpenInNewTab:!1}:{targetUrl:n,reason:"Opened in a new tab to preserve Rover runtime continuity outside allowed domains.",forceOpenInNewTab:!0}:this.externalNavigationPolicy==="allow"||To(n,this.allowedDomains)?null:{targetUrl:n,reason:"Blocked same-tab navigation to an out-of-scope destination.",forceOpenInNewTab:!1}:null}getClickTargetUrl(t){let n=Td(t);if(!n)return null;let{doc:o}=Va(document,t.iframe_id),r=xo(o,n);if(!r)return null;let a=Gh(r),i=a?.href||a?.getAttribute("href")||"";return il(i,window.location.href)}domainScopeBlockedResponse(t,n,o){let r=this.externalNavigationPolicy==="block"?"block":"open_new_tab_notice",a=window.location.href,i=Fo(a)||window.location.hostname||void 0,s=Fo(t)||void 0;return this.emitNavigationGuardrail({blockedUrl:t,currentUrl:a,policyAction:r,reason:n,allowedDomains:this.allowedDomains,openedInNewTab:!1}),{success:!1,error:n,allowFallback:!0,output:{success:!1,error:{code:"DOMAIN_SCOPE_BLOCKED",message:n,missing:[],next_action:r==="block"?"This domain is blocked. Do NOT retry. Acknowledge and proceed with the task using available resources.":"Use open_new_tab to access external pages without losing context.",retryable:!1},blocked_url:t,blocked_host:s,current_url:a,current_host:i,policy_action:r,allowed_domains:this.allowedDomains,domain_scope_mode:this.domainScopeMode,external_navigation_policy:this.externalNavigationPolicy,blockedDomainStatus:"blocked",navigationOutcome:"blocked",decisionReason:o?.decisionReason||"policy_blocked",from_current_context:!!o?.fromCurrentContext,agentInstruction:`Navigation to ${s||t} is blocked by domain policy. Do NOT retry this URL. Acknowledge to user and proceed with the next step.`,blockedDomain:s||t,pageContext:{url:t,title:`[Blocked] ${s||t}`,contentText:`Access to ${s||t} is restricted by navigation policy. The page content is not available. Continue the task without this resource or use /scrape endpoint if external context is needed.`,accessible:!1}},errorDetails:{code:"DOMAIN_SCOPE_BLOCKED",message:n,retryable:!1,details:{blockedUrl:t,blockedHost:s,currentUrl:a,currentHost:i,policyAction:r,allowedDomains:this.allowedDomains,domainScopeMode:this.domainScopeMode,externalNavigationPolicy:this.externalNavigationPolicy,fromCurrentContext:!!o?.fromCurrentContext}}}}emitNavigationGuardrail(t){try{this.onNavigationGuardrail?.(t)}catch{}}async openUrlInNewTab(t,n){let o=!To(t,this.allowedDomains),r=this.snapshotKnownTabIds(),a=this.openVerifiedPopup(t),i;if(a.opened&&this.registerOpenedTab)try{i=(await this.registerOpenedTab({url:t,title:void 0,external:o,openerRuntimeId:this.runtimeId}))?.logicalTabId}catch{}if(a.opened&&!i&&(i=await this.reconcileOpenedTab(t,r)),!a.opened){let f=await this.reconcileOpenedTab(t,r);f&&(a={opened:!0,verified:!1},i=i||f)}let s=a.opened&&!i&&!!this.registerOpenedTab;if(!a.opened){let f="Browser popup settings blocked opening a new tab.";return n?.policyBlocked&&this.emitNavigationGuardrail({blockedUrl:t,currentUrl:window.location.href,policyAction:"open_new_tab_notice",reason:n.reason||f,allowedDomains:this.allowedDomains,openedInNewTab:!1}),{success:!1,error:"open_new_tab blocked by browser popup settings",allowFallback:!0,output:{url:t,external:o,logicalTabId:i,navigationOutcome:"blocked",decisionReason:n?.decisionReason||"policy_blocked"},errorDetails:{code:"POPUP_BLOCKED",message:f,retryable:!0,next_action:"Allow popups for this site and try again."}}}let c=n?.policyBlocked?n.reason||"Opened in a new tab due to domain policy.":void 0;n?.policyBlocked&&this.emitNavigationGuardrail({blockedUrl:t,currentUrl:window.location.href,policyAction:"open_new_tab_notice",reason:c||"Opened in new tab due to domain policy.",allowedDomains:this.allowedDomains,openedInNewTab:!0});let d=[];return s&&d.push("Tab opened but registration failed; tab may not be targetable."),a.verified||d.push("Tab open was triggered, but browser did not return a popup handle."),{success:!0,output:{url:t,external:o,logicalTabId:i,openedInNewTab:!0,navigationOutcome:"new_tab_opened",navigationPending:!0,decisionReason:n?.decisionReason||"open_new_tab",openVerification:a.verified?"verified":"unverified",policyBlocked:!!n?.policyBlocked,message:c,...d.length?{warning:d.join(" ")}:{}},allowFallback:!0}}openVerifiedPopup(t){let n=window.open("about:blank","_blank");if(n){try{n.opener=null}catch{}try{n.location.href=t}catch{}return{opened:!0,verified:!0}}try{let o=window.open(t,"_blank");if(o){try{o.opener=null}catch{}return{opened:!0,verified:!0}}}catch{}try{let o=window.open(t,"_blank","noopener,noreferrer");if(o){try{o.opener=null}catch{}return{opened:!0,verified:!0}}return{opened:!0,verified:!1}}catch{}try{let o=document.createElement("a");return o.href=t,o.target="_blank",o.rel="noopener noreferrer",o.style.display="none",document.body.appendChild(o),o.click(),o.remove(),{opened:!0,verified:!1}}catch{return{opened:!1,verified:!1}}}snapshotKnownTabIds(){let t=new Set;if(!this.listKnownTabs)return t;try{let n=this.listKnownTabs();for(let o of n){let r=Number(o?.logicalTabId);!Number.isFinite(r)||r<=0||t.add(r)}}catch{return t}return t}async reconcileOpenedTab(t,n){if(!this.listKnownTabs)return;let o=Fo(t),r=Date.now()+2e3;for(;Date.now()<r;){try{let a=this.listKnownTabs();for(let i of a){let s=Number(i?.logicalTabId);if(!Number.isFinite(s)||s<=0||n.has(s))continue;let c=String(i?.url||"").trim();if(!c)return s;let d=Fo(c);if(!o||!d||d===o)return s}}catch{}await new Promise(a=>setTimeout(a,120))}}async openElementInNewTab(t){let n=Td(t);if(!n)return{success:!1,error:"click_element with open_in_new_tab requires element_id.",allowFallback:!0};let{doc:o}=Va(document,t.iframe_id),r=xo(o,n);if(!r)return{success:!1,error:`click_element: element_id ${String(n)} not found.`,allowFallback:!0};let a=Gh(r),i=a?.href||a?.getAttribute("href")||"",s=il(i,window.location.href);return s?await this.openUrlInNewTab(s,{policyBlocked:!1}):{success:!1,error:"click_element open_in_new_tab only works when target resolves to a valid link URL.",allowFallback:!0}}async waitForElement(t){let n=String(t.selector||"").trim(),o=Math.max(0,Math.min(Number(t.timeout??5e3),3e4));if(!n)return{success:!1,error:"wait_for_element: missing selector",allowFallback:!0};let r=Date.now(),a=document;for(;Date.now()-r<o;){let i=null;try{i=a.querySelector(n)}catch{i=null}if(i||(i=Qx(a,n)),i)return{success:!0};await new Promise(s=>setTimeout(s,200))}return{success:!1,error:`wait_for_element: not found (${n})`,allowFallback:!0}}async describeImages(t){let n=Um(t);if(!n.length)return{success:!1,error:"describe_images: element_ids is empty",allowFallback:!1};let o=[],r=[];for(let a of n){let i=xo(document,a);if(!i){r.push(`element_id ${a} not found`);continue}try{let s=await Jx(i);if(!s?.data||!s?.mimeType){r.push(`element_id ${a}: unsupported image`);continue}o.push({element_id:a,...s})}catch(s){r.push(`element_id ${a}: ${s?.message||String(s)}`)}}return o.length?{success:!0,output:{images:o,errors:r.length?r:void 0}}:{success:!1,error:r[0]||"describe_images failed",output:{images:[],errors:r}}}ensureUploadProvider(){this.uploadProviderInstalled||(this.uploadProviderInstalled=!0,this.setUploadBytesProvider(async({token:t,byteLength:n})=>{this.pruneUploadStore();let o=this.uploadStore.get(t);if(!o)throw new Error("upload bytes token not found");if(o.bytes.byteLength!==n)throw new Error("upload bytes size mismatch");return o.bytes}))}pruneUploadStore(){let t=Date.now()-6e5;for(let[n,o]of this.uploadStore.entries())o.createdAt<t&&this.uploadStore.delete(n)}async buildUploadPayload(t){let n=String(t.file_url||"").trim();if(n)try{let o=await lh(0,n,document?.referrer||null),r=o.bytes,a=r.byteLength,i=o.mimeType||t.mime_type||"application/octet-stream",s=t.file_name||o.fileName,c=1024*1024;if(a<=c)return{kind:"upload_file",inlineB64:Yh(r),byteLength:a,mimeType:i,fileName:s};this.ensureUploadProvider();let d=crypto.randomUUID();return this.uploadStore.set(d,{bytes:r,createdAt:Date.now()}),{kind:"upload_file",token:d,byteLength:a,mimeType:i,fileName:s,durable:!1}}catch{return}}};P(ll,"NAV_PREFLIGHT_TIMEOUT_MS",1500);var cl=ll;function Vx(e){return e==="open_url_new_tab"?z.open_new_tab:String(e||"").trim()}function Gx(e){return e.length?e.join(", "):"(none)"}function $h(e){return e==="host_only"?"host_only":"registrable_domain"}function Wh(e){return e==="allow"||e==="block"||e==="open_new_tab_notice"?e:"open_new_tab_notice"}function Vh(e){return e==="open_new_tab"||e==="same_tab"?e:"same_tab"}function is(e,t,n,o){let r=Number(e);return Number.isFinite(r)?Math.max(n,Math.min(o,Math.floor(r))):t}function il(e,t){let n=String(e||"").trim();if(!n)return null;try{return new URL(n,t).toString()}catch{return null}}function Gh(e){if(e instanceof HTMLAnchorElement&&e.href)return e;let t=e.closest?.("a[href]");return t instanceof HTMLAnchorElement&&t.href?t:null}function sl(e,t="CAPABILITY_UNAVAILABLE"){return{success:!1,error:e,allowFallback:!0,errorDetails:{code:t,message:e,retryable:!1}}}function Kx(e){return{frameworks:(e.frameworks||[]).filter(n=>n in Au).map(n=>Au[n]),listenersRaw:e.listenersRaw??"",role:e.role??null,pattern:e.pattern,value:e.value??null}}function Xx(e,t){if(t!==z.click_element)return"standard";let n=Jr(e||"");if(!n)return"standard";let o=new Set(n.entries.map(c=>nr[c.id]).filter(c=>typeof c=="string")),r=o.has("click")||o.has("mousedown")||o.has("mouseup")||o.has("pointerdown")||o.has("pointerup")||o.has("touchend");if((o.has("mouseenter")||o.has("mouseover")||o.has("pointerenter"))&&r)return"hover-activate";let i=o.has("touchstart"),s=o.has("touchend");return i&&s?"touch-sequence":"standard"}function Yh(e){let t=new Uint8Array(e),n="",o=32768;for(let r=0;r<t.length;r+=o)n+=String.fromCharCode(...t.subarray(r,r+o));return btoa(n)}function Kh(e){let t=Number(e);if(!Number.isFinite(t))return null;let n=Math.trunc(t);return n>0?n:null}function Qh(e){let t=[];for(let n of bc){let o=e?.[n];if(o==null)continue;if(Array.isArray(o)){for(let a of o){let i=Kh(a);i!=null&&t.push(i)}continue}let r=Kh(o);r!=null&&t.push(r)}return Array.from(new Set(t))}function Yx(e){return Qh(e).length>0}function Td(e){let t=Qh(e);return t.length?t[0]:null}function Qx(e,t){let n=t.toLowerCase(),o=["button","a","input","textarea","select","label","[role]","div","span"],r=e.querySelectorAll(o.join(","));for(let a of Array.from(r))if((a.textContent||"").trim().toLowerCase().includes(n)||(a.getAttribute("aria-label")||"").toLowerCase().includes(n))return a;return null}async function Jx(e){if(e instanceof HTMLCanvasElement){let r=e.toDataURL(),a=Jh(r);if(!a)throw new Error("canvas toDataURL failed");return a}if(e instanceof SVGElement){let r=new XMLSerializer().serializeToString(e);return{data:btoa(unescape(encodeURIComponent(r))),mimeType:"image/svg+xml",displayName:"svg"}}if(e instanceof HTMLImageElement){let r=e.currentSrc||e.src;return await Xh(r,e.alt||e.getAttribute("aria-label")||void 0)}let n=window.getComputedStyle(e).backgroundImage||"",o=/url\\((['\"]?)(.*?)\\1\\)/.exec(n);if(o?.[2])return await Xh(o[2],e.getAttribute("aria-label")||void 0);throw new Error("unsupported element")}function Jh(e){let t=/^data:([^;]+);base64,(.*)$/.exec(e);return t?{mimeType:t[1],data:t[2]}:null}async function Xh(e,t){if(!e)throw new Error("missing src");if(e.startsWith("data:")){let s=Jh(e);if(!s)throw new Error("invalid data url");return{...s,displayName:t}}let n=await fetch(e,{mode:"cors"});if(!n.ok)throw new Error(`fetch failed (${n.status})`);let o=await n.blob(),r=await o.arrayBuffer(),a=Yh(r),i=o.type||"image/png";return{data:a,mimeType:i,displayName:t}}function Zh(e,t){e.onmessage=async n=>{let o=n.data;if(!o||o.t!=="req")return;let{id:r,method:a,params:i}=o;try{let s=t[a];if(!s)throw new Error(`No handler for ${a}`);let c=await s(i);e.postMessage({t:"res",id:r,ok:!0,result:c})}catch(s){e.postMessage({t:"res",id:r,ok:!1,error:{message:s?.message||String(s)}})}}}function eg(){let e=window;return e.SpeechRecognition||e.webkitSpeechRecognition}function _d(e){return String(e||"").replace(/\s+/g," ").trim()}function Zx(e){let t=e.results;if(!t||typeof t.length!="number")return{finalTranscript:"",interimTranscript:""};let n=[],o=[];for(let r=0;r<t.length;r+=1){let a=t[r];if(!a||typeof a.length!="number")continue;let i=_d(String(a[0]?.transcript||""));i&&(a.isFinal?n.push(i):o.push(i))}return{finalTranscript:_d(n.join(" ")),interimTranscript:_d(o.join(" "))}}function tg(e){let t=typeof e?.error=="string"?String(e.error||"").trim().toLowerCase():"",n=typeof e?.message=="string"?String(e.message||"").trim():"";return t==="not-allowed"||t==="service-not-allowed"?{code:"permission_denied",message:"Microphone access was blocked. Allow microphone access and try again.",recoverable:!1}:t==="audio-capture"?{code:"audio_capture",message:"No working microphone was found for voice dictation.",recoverable:!0}:t==="network"?{code:"network",message:"Network issues interrupted browser dictation.",recoverable:!0}:t==="no-speech"?{code:"no_speech",message:"No speech was detected.",recoverable:!0}:t==="aborted"?{code:"aborted",message:"Voice dictation was interrupted.",recoverable:!0}:{code:"unknown",message:n||"Voice dictation stopped unexpectedly.",recoverable:!0}}function ng(e={}){let t=null,n=!1,o=!1;function r(){t&&(t.onstart=null,t.onresult=null,t.onerror=null,t.onend=null,t.onspeechstart=null,t.onspeechend=null,t=null)}function a(i){let s=eg();if(!s)return null;let c=new s;return c.continuous=!0,c.interimResults=!0,c.maxAlternatives=1,c.lang=String(i||navigator.language||"en-US").trim()||"en-US",c.onstart=()=>{e.onStart?.()},c.onresult=d=>{e.onResult?.(Zx(d))},c.onspeechstart=()=>{e.onSpeechStart?.()},c.onspeechend=()=>{e.onSpeechEnd?.()},c.onerror=d=>{e.onError?.(tg(d))},c.onend=()=>{let d=o;o=!1,r(),e.onEnd?.({requested:d})},c}return{isSupported(){return!!eg()},start(i){if(n||t)return;let s=a(i?.language);if(!s){e.onError?.({code:"unsupported",message:"Voice dictation is not available in this browser.",recoverable:!1});return}t=s,o=!1;try{t.start()}catch(c){r(),e.onError?.(tg(c)),e.onEnd?.({requested:!1})}},stop(){if(t){o=!0;try{t.stop()}catch{r(),e.onEnd?.({requested:!0})}}},dispose(){if(n=!0,o=!0,!t)return;let i=t;r();try{i.abort?.()}catch{}}}}var eT="Rover",tT="https://www.rtrvr.ai/rover/mascot.mp4",nT="https://www.rtrvr.ai/rover/mascot.webm",ei=1200,oT=1200,rT=1200,ls=25,aT=4,og=12,iT=800,sT=2600,cT=800,lT=5e3,rg=5e3,ag=6e4,uT=3,dT=160,fT=460,mT=680,Ja=360,Za=520,ul=720,la=16,mg=8,pg=16,pT=16,hT=16,gT=[.52,.72,1],bT=[.56,.72,.88],kT=280,yT=360;function hg(e){try{return`${e}-${crypto.randomUUID()}`}catch{return`${e}-${Date.now()}-${Math.floor(Math.random()*1e5)}`}}function Id(e){try{return new Date(e).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}catch{return""}}function vT(e){return e.status?e.status:e.kind==="tool_start"||e.kind==="plan"||e.kind==="thought"?"pending":e.kind==="tool_result"?"success":e.kind==="error"?"error":"info"}function wT(e){let t=String(e.title||"").trim().toLowerCase();return t.startsWith("running ")?`tool:${t.replace(/^running\s+/,"").trim()}`:t.endsWith(" completed")?`tool:${t.replace(/\s+completed$/,"").trim()}`:t==="run started"||t==="run resumed"||t==="run completed"?"run":e.kind==="status"?`status:${t||"status"}`:e.id||hg("trace")}function Mt(e){return String(e||"").trim()}function xT(e){return String(e||"").trim().replace(/[^a-zA-Z0-9-]/g,"").slice(0,48)||void 0}function gg(e){let t=Number(e);return Number.isFinite(t)?Math.max(cT,Math.min(lT,Math.trunc(t))):sT}function ig(e){if(!e||typeof e!="object")return;let t={};typeof e.enabled=="boolean"&&(t.enabled=e.enabled);let n=xT(e.language);return n&&(t.language=n),e.autoStopMs!==void 0&&(t.autoStopMs=gg(e.autoStopMs)),Object.keys(t).length?t:void 0}function ss(){return{code:"no_speech",message:"No speech was detected.",recoverable:!0}}function sg(e){return String(e||"").replace(/\s+/g," ").trim()}function TT(e,t,n){return[String(e||"").trim(),sg(t),sg(n)].filter(Boolean).join(" ")}function Sr(e,t,n){return Math.max(t,Math.min(n,e))}function _T(){return`rover:panel-layout:${String(window.location.hostname||"default").trim().replace(/[^a-zA-Z0-9:_-]/g,"").slice(0,96)||"default"}`}function IT(e){try{let t=localStorage.getItem(e);if(!t)return{};let n=JSON.parse(t);return!n||typeof n!="object"?{}:n}catch{return{}}}function cg(e,t){try{localStorage.setItem(e,JSON.stringify(t))}catch{}}function lg(){let e=document.documentElement,t=window.visualViewport,n=Math.max(320,Math.round(t?.width??window.innerWidth??e.clientWidth??0)),o=Math.max(320,Math.round(t?.height??window.innerHeight??e.clientHeight??0)),r=n>=o?"landscape":"portrait",a=n<=640?"phone":n<=1023?"tablet":"desktop",i=a==="desktop"?"desktop":`${a}-${r}`,s=t?Math.max(0,Math.round((window.innerHeight||o)-(t.height+t.offsetTop))):0;return{width:n,height:o,layout:a,orientation:r,storageKey:i,keyboardInset:s}}function cs(e,t){let n=Math.max(Ja,Math.min(ul,t.width-la)),o=Math.max(Za,t.height-la);return{width:Sr(Math.round(e.width),Ja,n),height:Sr(Math.round(e.height),Za,o)}}function Qa(e){return cs({width:fT,height:mT},e)}function ug(e,t){if(!e||typeof e!="object")return;let n=Number(e.width),o=Number(e.height);if(!(!Number.isFinite(n)||!Number.isFinite(o)))return cs({width:n,height:o},t)}function dg(e){let t=Number(e);if(Number.isInteger(t)&&!(t<0||t>2))return t}function fg(e){let t=e.layout==="tablet"?bT:gT,n=e.layout==="tablet"?yT:kT,o=e.layout==="tablet"?pg:mg,r=e.layout==="tablet"?hT:pT,a=Math.max(n,Math.round(e.height-o-r));return t.map((i,s)=>s===t.length-1?a:Sr(Math.round((e.height-o)*i),Math.min(n,a),a))}function ET(e,t){let n=0,o=Number.POSITIVE_INFINITY;for(let r=0;r<t.length;r+=1){let a=Math.abs(t[r]-e);a<o&&(n=r,o=a)}return n}function ST(e){let t=String(e||"").trim();return t?t.slice(0,64):eT}function RT(e){let t=String(e||"").trim();return t?t[0].toUpperCase():"R"}function AT(e){return String(e||"").replace(/[^a-zA-Z0-9]/g,"").slice(0,3).toUpperCase()||"RVR"}function bg(e){let t=Mt(e),n=/^(Analyze|Route|Execute|Verify|Complete):\s*(.*)$/i.exec(t);if(!n)return{plainTitle:t};let o=n[1].toLowerCase(),r=Mt(n[2]||t);return{stage:o,plainTitle:r||t}}function CT(e){let t=(e.title||"").toLowerCase();if(t==="run started"||t==="run resumed"||t==="run completed"||t==="started new task"||t==="execution completed")return"detail";if(e.kind==="status"){let n=bg(e.title||"");if(n.stage==="analyze"||n.stage==="route"||n.stage==="complete")return"detail"}return"primary"}function Ed(e,t){let n=/\[([^\]]+)\]\((https?:\/\/[^\s)]+)\)|\*\*(.+?)\*\*/g,o=0,r;for(;(r=n.exec(t))!==null;){if(r.index>o&&e.appendChild(document.createTextNode(t.slice(o,r.index))),r[1]&&r[2]){let a=document.createElement("a");a.className="rvLink",a.href=r[2],a.target="_blank",a.rel="noopener noreferrer",a.textContent=r[1],e.appendChild(a)}else if(r[3]){let a=document.createElement("strong");a.textContent=r[3],e.appendChild(a)}o=r.index+r[0].length}o<t.length&&e.appendChild(document.createTextNode(t.slice(o)))}function Rr(e){let t=document.createDocumentFragment(),n=e.split(`
11
+ `),o=null;for(let r of n){let a=r.trim();if(!a){o&&(t.appendChild(o),o=null);continue}if(a==="---"){o&&(t.appendChild(o),o=null);let c=document.createElement("hr");c.className="rvSep",t.appendChild(c);continue}if(a.startsWith("- ")){o||(o=document.createElement("ul"),o.className="rvList");let c=document.createElement("li");Ed(c,a.slice(2)),o.appendChild(c);continue}if(o&&(t.appendChild(o),o=null),/^Step \d+/i.test(a)){let c=document.createElement("div");c.className="rvStepHeader",c.textContent=a,t.appendChild(c);continue}if(a.startsWith("[error] ")){let c=document.createElement("div");c.className="rvError",c.textContent=a.slice(8),t.appendChild(c);continue}if(a.startsWith("[next] ")){let c=document.createElement("div");c.className="rvNext",c.textContent=a.slice(7),t.appendChild(c);continue}let i=a.match(/^\*\*(.+?):\*\*\s*(.*)$/);if(i){let c=document.createElement("div");c.className="rvKv";let d=document.createElement("span");d.className="rvKvLabel",d.textContent=i[1];let f=document.createElement("span");f.className="rvKvValue",Ed(f,i[2]),c.appendChild(d),c.appendChild(f),t.appendChild(c);continue}let s=document.createElement("div");s.className="rvLine",Ed(s,a),t.appendChild(s)}return o&&t.appendChild(o),t}function fl(e,t){let n=document.createElement("div");if(n.className="expandableWrap",e.length<=t)return n.appendChild(Rr(e)),n;let o=e.split(`
12
12
  `),r=0,a=0;for(let d=0;d<o.length;d++)if(r+=o[d].length+1,r>=t){a=d+1;break}a===0&&(a=1);let i=o.slice(0,a).join(`
13
13
  `),s=o.slice(a).join(`
14
- `),c=document.createElement("div");if(c.className="expandPreview",c.appendChild(Ir(i)),n.appendChild(c),s.trim()){let d=document.createElement("div");d.className="expandRest",d.appendChild(Ir(s)),d.style.display="none",n.appendChild(d);let f=document.createElement("button");f.type="button",f.className="expandToggle",f.textContent="See more",f.addEventListener("click",u=>{u.stopPropagation();let b=d.style.display==="none";d.style.display=b?"block":"none",f.textContent=b?"See less":"See more"}),n.appendChild(f)}return n}function dl(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function ll(e){if(e==null)return"null";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return String(e);if(Array.isArray(e))return`[${e.length} item${e.length===1?"":"s"}]`;if(dl(e)){let t=Object.keys(e);return t.length?`{ ${t.slice(0,4).join(", ")}${t.length>4?", ...":""} }`:"{}"}try{return String(e)}catch{return"value"}}function kT(e){try{let t=new WeakSet;return JSON.stringify(e,(n,o)=>!o||typeof o!="object"?o:t.has(o)?"[Circular]":(t.add(o),o),2)||"null"}catch{return ll(e)}}function dg(e){let t=document.createElement("button");return t.type="button",t.className="rvStructuredMore",t.textContent=`Show ${Math.min(ss,e.total-e.shown)} more (${e.total-e.shown} left)`,t.addEventListener("click",n=>{n.stopPropagation(),e.onLoadMore()}),t}function yT(e){let t=document.createElement("div");t.className="rvRawToggleWrap";let n=document.createElement("button");n.type="button",n.className="rvRawToggle",n.textContent="View raw JSON";let o=document.createElement("pre");return o.className="rvRawJson",o.textContent=kT(e),o.style.display="none",n.addEventListener("click",r=>{r.stopPropagation();let a=o.style.display==="none";o.style.display=a?"block":"none",n.textContent=a?"Hide raw JSON":"View raw JSON"}),t.appendChild(n),t.appendChild(o),t}function vT(e){let t=document.createElement("div");if(t.className="rvStructuredPrimitive",e===null)return t.textContent="null",t.classList.add("isNull"),t;if(typeof e=="string"){let n=Mt(e);return n?(n.length>Ja?t.appendChild(ul(n,Ja)):t.appendChild(Ir(n)),t):(t.textContent='""',t)}return t.textContent=String(e),t}function wT(e){let t=e.slice(0,25);if(!t.length)return;let n=[];for(let o of t){if(!dl(o))return;for(let r of Object.keys(o))n.includes(r)||n.push(r);if(n.length>8)return}for(let o of t){let r=o;for(let a of n){let i=r[a];if(i!=null&&!(typeof i=="string"||typeof i=="number"||typeof i=="boolean"))return}}return n.length?n:void 0}function xT(e,t,n){let o=document.createElement("div");if(o.className="rvStructuredArray",!e.length){let d=document.createElement("div");return d.className="rvStructuredEmpty",d.textContent="No items",o.appendChild(d),o}let r=wT(e),a=Math.min(ss,e.length),i=document.createElement("div");i.className=r?"rvStructuredTable":"rvStructuredList",o.appendChild(i);let s=document.createElement("div");s.className="rvStructuredControls",o.appendChild(s);let c=()=>{if(i.innerHTML="",r){let d=document.createElement("table");d.className="rvTable";let f=document.createElement("thead"),u=document.createElement("tr"),b=document.createElement("th");b.textContent="#",u.appendChild(b);for(let g of r){let y=document.createElement("th");y.textContent=g,u.appendChild(y)}f.appendChild(u),d.appendChild(f);let p=document.createElement("tbody");for(let g=0;g<a;g+=1){let y=document.createElement("tr"),E=document.createElement("td");E.textContent=String(g+1),y.appendChild(E);let R=e[g]||{};for(let O of r){let M=document.createElement("td"),H=R[O];H==null?M.textContent="\u2014":M.textContent=ll(H),y.appendChild(M)}p.appendChild(y)}d.appendChild(p),i.appendChild(d)}else for(let d=0;d<a;d+=1){let f=e[d],u=document.createElement("div");u.className="rvStructuredItem";let b=document.createElement("div");b.className="rvStructuredItemLabel",b.textContent=`#${d+1}`,u.appendChild(b);let p=document.createElement("div");p.className="rvStructuredItemBody",p.appendChild(n(f,t+1)),u.appendChild(p),i.appendChild(u)}s.innerHTML="",a<e.length&&s.appendChild(dg({total:e.length,shown:a,onLoadMore:()=>{a=Math.min(e.length,a+ss),c()}}))};return c(),o}function TT(e,t,n){let o=document.createElement("div");o.className="rvStructuredObject";let r=Object.entries(e);if(!r.length){let d=document.createElement("div");return d.className="rvStructuredEmpty",d.textContent="No fields",o.appendChild(d),o}let a=Math.min(ss,r.length),i=document.createElement("div");i.className="rvStructuredObjectRows",o.appendChild(i);let s=document.createElement("div");s.className="rvStructuredControls",o.appendChild(s);let c=()=>{i.innerHTML="";for(let d=0;d<a;d+=1){let[f,u]=r[d],b=document.createElement("div");b.className="rvStructuredRow";let p=document.createElement("div");p.className="rvStructuredKey",p.textContent=f;let g=document.createElement("div");g.className="rvStructuredValue",g.appendChild(n(u,t+1)),b.appendChild(p),b.appendChild(g),i.appendChild(b)}s.innerHTML="",a<r.length&&s.appendChild(dg({total:r.length,shown:a,onLoadMore:()=>{a=Math.min(r.length,a+ss),c()}}))};return c(),o}function Ed(e,t=0){if(t>=Vx){let o=document.createElement("div");return o.className="rvStructuredCapped",o.textContent=ll(e),o}if(e==null||typeof e=="string"||typeof e=="number"||typeof e=="boolean")return vT(e);if(Array.isArray(e))return xT(e,t,Ed);if(dl(e))return TT(e,t,Ed);let n=document.createElement("div");return n.className="rvStructuredPrimitive",n.textContent=ll(e),n}function fg(e){if(e.type==="text"){let i=Mt(e.text);return i?ul(i,Ja):void 0}let t=document.createElement("section");t.className="rvStructuredCard";let n=document.createElement("div");n.className="rvStructuredHeader";let o=document.createElement("span");o.className="rvStructuredLabel",o.textContent=Mt(e.label||(e.type==="tool_output"?e.toolName?`${e.toolName} output`:"Tool output":"JSON output")),n.appendChild(o);let r=document.createElement("span");r.className="rvStructuredType",Array.isArray(e.data)?r.textContent=`array \xB7 ${e.data.length}`:dl(e.data)?r.textContent=`object \xB7 ${Object.keys(e.data).length}`:r.textContent=typeof e.data,n.appendChild(r),t.appendChild(n);let a=document.createElement("div");return a.className="rvStructuredBody",a.appendChild(Ed(e.data)),t.appendChild(a),t.appendChild(yT(e.data)),t}function _T(e,t){let n=document.createDocumentFragment(),o=Array.isArray(t)?t:[],r=!1;for(let s of o){let c=fg(s);c&&(r=!0,n.appendChild(c))}if(!r){let s=Mt(e);return s&&(s.length>Ja?n.appendChild(ul(s,Ja)):n.appendChild(Ir(s))),n}let a=Mt(e),i=o.some(s=>s.type==="text"&&Mt(s.text)===a);if(a&&!i){let s=document.createElement("div");s.className="rvLine",s.appendChild(Ir(a)),n.insertBefore(s,n.firstChild)}return n}function mg(e){let t=pT(e.agent?.name),n=hT(t),o=gT(t),r=e.visitorName,a=e.panel?.resizable!==!1,i=dT(),s=document.createElement("div");s.id="rover-widget-root",(document.body||document.documentElement).appendChild(s);let c=s.attachShadow({mode:"closed"}),d=document.createElement("style");d.textContent=`
14
+ `),c=document.createElement("div");if(c.className="expandPreview",c.appendChild(Rr(i)),n.appendChild(c),s.trim()){let d=document.createElement("div");d.className="expandRest",d.appendChild(Rr(s)),d.style.display="none",n.appendChild(d);let f=document.createElement("button");f.type="button",f.className="expandToggle",f.textContent="See more",f.addEventListener("click",u=>{u.stopPropagation();let b=d.style.display==="none";d.style.display=b?"block":"none",f.textContent=b?"See less":"See more"}),n.appendChild(f)}return n}function ml(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function dl(e){if(e==null)return"null";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return String(e);if(Array.isArray(e))return`[${e.length} item${e.length===1?"":"s"}]`;if(ml(e)){let t=Object.keys(e);return t.length?`{ ${t.slice(0,4).join(", ")}${t.length>4?", ...":""} }`:"{}"}try{return String(e)}catch{return"value"}}function MT(e){try{let t=new WeakSet;return JSON.stringify(e,(n,o)=>!o||typeof o!="object"?o:t.has(o)?"[Circular]":(t.add(o),o),2)||"null"}catch{return dl(e)}}function kg(e){let t=document.createElement("button");return t.type="button",t.className="rvStructuredMore",t.textContent=`Show ${Math.min(ls,e.total-e.shown)} more (${e.total-e.shown} left)`,t.addEventListener("click",n=>{n.stopPropagation(),e.onLoadMore()}),t}function NT(e){let t=document.createElement("div");t.className="rvRawToggleWrap";let n=document.createElement("button");n.type="button",n.className="rvRawToggle",n.textContent="View raw JSON";let o=document.createElement("pre");return o.className="rvRawJson",o.textContent=MT(e),o.style.display="none",n.addEventListener("click",r=>{r.stopPropagation();let a=o.style.display==="none";o.style.display=a?"block":"none",n.textContent=a?"Hide raw JSON":"View raw JSON"}),t.appendChild(n),t.appendChild(o),t}function LT(e){let t=document.createElement("div");if(t.className="rvStructuredPrimitive",e===null)return t.textContent="null",t.classList.add("isNull"),t;if(typeof e=="string"){let n=Mt(e);return n?(n.length>ei?t.appendChild(fl(n,ei)):t.appendChild(Rr(n)),t):(t.textContent='""',t)}return t.textContent=String(e),t}function DT(e){let t=e.slice(0,25);if(!t.length)return;let n=[];for(let o of t){if(!ml(o))return;for(let r of Object.keys(o))n.includes(r)||n.push(r);if(n.length>8)return}for(let o of t){let r=o;for(let a of n){let i=r[a];if(i!=null&&!(typeof i=="string"||typeof i=="number"||typeof i=="boolean"))return}}return n.length?n:void 0}function OT(e,t,n){let o=document.createElement("div");if(o.className="rvStructuredArray",!e.length){let d=document.createElement("div");return d.className="rvStructuredEmpty",d.textContent="No items",o.appendChild(d),o}let r=DT(e),a=Math.min(ls,e.length),i=document.createElement("div");i.className=r?"rvStructuredTable":"rvStructuredList",o.appendChild(i);let s=document.createElement("div");s.className="rvStructuredControls",o.appendChild(s);let c=()=>{if(i.innerHTML="",r){let d=document.createElement("table");d.className="rvTable";let f=document.createElement("thead"),u=document.createElement("tr"),b=document.createElement("th");b.textContent="#",u.appendChild(b);for(let g of r){let y=document.createElement("th");y.textContent=g,u.appendChild(y)}f.appendChild(u),d.appendChild(f);let p=document.createElement("tbody");for(let g=0;g<a;g+=1){let y=document.createElement("tr"),I=document.createElement("td");I.textContent=String(g+1),y.appendChild(I);let R=e[g]||{};for(let O of r){let M=document.createElement("td"),H=R[O];H==null?M.textContent="\u2014":M.textContent=dl(H),y.appendChild(M)}p.appendChild(y)}d.appendChild(p),i.appendChild(d)}else for(let d=0;d<a;d+=1){let f=e[d],u=document.createElement("div");u.className="rvStructuredItem";let b=document.createElement("div");b.className="rvStructuredItemLabel",b.textContent=`#${d+1}`,u.appendChild(b);let p=document.createElement("div");p.className="rvStructuredItemBody",p.appendChild(n(f,t+1)),u.appendChild(p),i.appendChild(u)}s.innerHTML="",a<e.length&&s.appendChild(kg({total:e.length,shown:a,onLoadMore:()=>{a=Math.min(e.length,a+ls),c()}}))};return c(),o}function PT(e,t,n){let o=document.createElement("div");o.className="rvStructuredObject";let r=Object.entries(e);if(!r.length){let d=document.createElement("div");return d.className="rvStructuredEmpty",d.textContent="No fields",o.appendChild(d),o}let a=Math.min(ls,r.length),i=document.createElement("div");i.className="rvStructuredObjectRows",o.appendChild(i);let s=document.createElement("div");s.className="rvStructuredControls",o.appendChild(s);let c=()=>{i.innerHTML="";for(let d=0;d<a;d+=1){let[f,u]=r[d],b=document.createElement("div");b.className="rvStructuredRow";let p=document.createElement("div");p.className="rvStructuredKey",p.textContent=f;let g=document.createElement("div");g.className="rvStructuredValue",g.appendChild(n(u,t+1)),b.appendChild(p),b.appendChild(g),i.appendChild(b)}s.innerHTML="",a<r.length&&s.appendChild(kg({total:r.length,shown:a,onLoadMore:()=>{a=Math.min(r.length,a+ls),c()}}))};return c(),o}function Sd(e,t=0){if(t>=aT){let o=document.createElement("div");return o.className="rvStructuredCapped",o.textContent=dl(e),o}if(e==null||typeof e=="string"||typeof e=="number"||typeof e=="boolean")return LT(e);if(Array.isArray(e))return OT(e,t,Sd);if(ml(e))return PT(e,t,Sd);let n=document.createElement("div");return n.className="rvStructuredPrimitive",n.textContent=dl(e),n}function yg(e){if(e.type==="text"){let i=Mt(e.text);return i?fl(i,ei):void 0}let t=document.createElement("section");t.className="rvStructuredCard";let n=document.createElement("div");n.className="rvStructuredHeader";let o=document.createElement("span");o.className="rvStructuredLabel",o.textContent=Mt(e.label||(e.type==="tool_output"?e.toolName?`${e.toolName} output`:"Tool output":"JSON output")),n.appendChild(o);let r=document.createElement("span");r.className="rvStructuredType",Array.isArray(e.data)?r.textContent=`array \xB7 ${e.data.length}`:ml(e.data)?r.textContent=`object \xB7 ${Object.keys(e.data).length}`:r.textContent=typeof e.data,n.appendChild(r),t.appendChild(n);let a=document.createElement("div");return a.className="rvStructuredBody",a.appendChild(Sd(e.data)),t.appendChild(a),t.appendChild(NT(e.data)),t}function BT(e,t){let n=document.createDocumentFragment(),o=Array.isArray(t)?t:[],r=!1;for(let s of o){let c=yg(s);c&&(r=!0,n.appendChild(c))}if(!r){let s=Mt(e);return s&&(s.length>ei?n.appendChild(fl(s,ei)):n.appendChild(Rr(s))),n}let a=Mt(e),i=o.some(s=>s.type==="text"&&Mt(s.text)===a);if(a&&!i){let s=document.createElement("div");s.className="rvLine",s.appendChild(Rr(a)),n.insertBefore(s,n.firstChild)}return n}function vg(e){let t=ST(e.agent?.name),n=RT(t),o=AT(t),r=e.visitorName,a=e.panel?.resizable!==!1,i=_T(),s=document.createElement("div");s.id="rover-widget-root",(document.body||document.documentElement).appendChild(s);let c=s.attachShadow({mode:"closed"}),d=document.createElement("style");d.textContent=`
15
15
  @font-face {
16
16
  font-family: 'Manrope';
17
17
  font-style: normal;
@@ -2085,15 +2085,17 @@ Author: ${s.textContent} `),a.textContent&&(t+=`Comment: ${a.textContent}
2085
2085
  border-color: var(--rv-border-strong);
2086
2086
  color: var(--rv-text);
2087
2087
  }
2088
- `;let u=document.createElement("div");u.className="rover",u.dataset.mood="idle";let b=document.createElement("button");b.className="launcher",b.setAttribute("aria-label",`Open ${t} assistant`);let p=e.mascot?.disabled===!0,g=null;if(!p){g=document.createElement("video"),g.autoplay=!0,g.muted=!0,g.loop=!0,g.playsInline=!0,g.preload="metadata";let w=document.createElement("source");w.src=e.mascot?.mp4Url||jx,w.type="video/mp4";let B=document.createElement("source");B.src=e.mascot?.webmUrl||qx,B.type="video/webm",g.appendChild(w),g.appendChild(B),b.appendChild(g)}let y=document.createElement("span");y.className="launcherFallback",y.textContent=o;let E=document.createElement("div");E.className="launcherShine",b.appendChild(y),b.appendChild(E);let R=document.createElement("div");R.className="greetingBubble";let O=document.createElement("span");O.className="greetingText";let M=document.createElement("button");M.type="button",M.className="greetingClose",M.textContent="\xD7",M.setAttribute("aria-label","Dismiss");let H=document.createElement("div");H.className="greetingDots";for(let w=0;w<3;w++){let B=document.createElement("span");B.className="greetingDot",H.appendChild(B)}R.appendChild(H),R.appendChild(O),R.appendChild(M);let N=document.createElement("div");N.className="panel";let Y=document.createElement("div");Y.className="header";let ae=document.createElement("div");ae.className="avatar";let re=null;!p&&g&&(re=g.cloneNode(!0),ae.appendChild(re));let le=document.createElement("span");le.className="avatarFallback",le.textContent=n,ae.appendChild(le);let Me=document.createElement("div");Me.className="meta";let ve=document.createElement("div");ve.className="title",ve.textContent=t;let we=document.createElement("div");we.className="status";let Ne=document.createElement("span");Ne.className="statusDot";let ft=document.createElement("span");ft.textContent="ready";let Ae=document.createElement("span");Ae.className="modeLabel controller",Ae.textContent="active",we.appendChild(Ne),we.appendChild(ft),we.appendChild(Ae),Me.appendChild(ve),Me.appendChild(we);let lt=document.createElement("div");lt.className="headerActions";let Xe=document.createElement("button");Xe.type="button",Xe.className="sizeBtn",Xe.setAttribute("aria-label","Resize Rover panel"),Xe.innerHTML='<svg viewBox="0 0 24 24"><path d="M8 4H4v4"></path><path d="M4 4l6 6"></path><path d="M16 20h4v-4"></path><path d="M20 20l-6-6"></path><path d="M20 8V4h-4"></path><path d="M20 4l-6 6"></path><path d="M8 20H4v-4"></path><path d="M4 20l6-6"></path></svg>';let Ge=document.createElement("button");Ge.type="button",Ge.className="overflowBtn",Ge.setAttribute("aria-label","More options"),Ge.innerHTML="&#x22EF;";let zt=document.createElement("button");zt.type="button",zt.className="closeBtn",zt.setAttribute("aria-label","Close Rover panel"),zt.textContent="\xD7";let St=e.muted??!0;try{let w=localStorage.getItem("rover:muted");w!==null&&(St=w!=="false")}catch{}function Rn(){g&&(g.muted=St),re&&(re.muted=St)}Rn();let Ee=document.createElement("button");Ee.type="button",Ee.className="cancelPill",Ee.setAttribute("aria-label","Cancel task");let Gt=document.createElement("span");Gt.className="cancelIcon",Ee.appendChild(Gt),Ee.appendChild(document.createTextNode(" Cancel"));let ut=document.createElement("div");ut.className="executionBar";let jt=document.createElement("button");jt.type="button",jt.className="conversationListBtn",jt.setAttribute("aria-label","Conversations"),jt.innerHTML='<svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2"><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/></svg>',a||Xe.classList.add("hidden"),lt.appendChild(Xe),lt.appendChild(jt),lt.appendChild(Ge),lt.appendChild(Ee),lt.appendChild(zt);let Rt=document.createElement("div");Rt.className="overflowMenu";let eo=document.createElement("button");eo.type="button",eo.className="menuItem",eo.textContent="New task";let An=document.createElement("button");An.type="button",An.className="menuItem danger",An.textContent="End task";let Yo=document.createElement("div");Yo.className="menuDivider";let Yt=document.createElement("button");Yt.type="button",Yt.className="menuItem",Yt.textContent=St?"Unmute sounds":"Mute sounds",Yt.addEventListener("click",()=>{Ca(),St=!St;try{localStorage.setItem("rover:muted",String(St))}catch{}Rn(),Yt.textContent=St?"Unmute sounds":"Mute sounds"});let Qt=document.createElement("button");Qt.type="button",Qt.className="menuItem",Qt.textContent="Take control",Qt.style.display="none",Rt.appendChild(eo),Rt.appendChild(An),Rt.appendChild(Yo),Rt.appendChild(Yt),Rt.appendChild(Qt),e.showTaskControls===!1&&(eo.style.display="none",An.style.display="none"),Y.appendChild(ae),Y.appendChild(Me),Y.appendChild(lt),Y.appendChild(Rt),Y.appendChild(ut);let to=document.createElement("div");to.style.cssText="position:relative;flex:1;min-height:0;display:flex;flex-direction:column;";let Ue=document.createElement("div");Ue.className="feed";let Jt=document.createElement("div");Jt.className="traceToggleBar";let no=document.createElement("span");no.className="traceToggleLabel",no.textContent="Execution Log";let vn=document.createElement("span");vn.className="traceToggleCount",vn.textContent="0 steps";let Zt=document.createElement("button");Zt.type="button",Zt.className="traceToggleBtn",Zt.textContent="Show all",Jt.appendChild(no),Jt.appendChild(vn),Jt.appendChild(Zt),Ue.appendChild(Jt);let tt=document.createElement("div");tt.className="typingIndicator";for(let w=0;w<3;w++){let B=document.createElement("span");B.className="typingDot",tt.appendChild(B)}Ue.appendChild(tt);let Kt=document.createElement("button");Kt.type="button",Kt.className="scrollBtn",Kt.setAttribute("aria-label","Scroll to bottom"),Kt.innerHTML='<svg viewBox="0 0 24 24"><polyline points="6 9 12 15 18 9"></polyline></svg>',to.appendChild(Ue),to.appendChild(Kt);let en=document.createElement("div");en.className="taskSuggestion",en.innerHTML=`
2088
+ `;let u=document.createElement("div");u.className="rover",u.dataset.mood="idle";let b=document.createElement("button");b.className="launcher",b.setAttribute("aria-label",`Open ${t} assistant`);let p=e.mascot?.disabled===!0,g=null;if(!p){g=document.createElement("video"),g.autoplay=!0,g.muted=!0,g.loop=!0,g.playsInline=!0,g.preload="metadata";let w=document.createElement("source");w.src=e.mascot?.mp4Url||tT,w.type="video/mp4";let B=document.createElement("source");B.src=e.mascot?.webmUrl||nT,B.type="video/webm",g.appendChild(w),g.appendChild(B),b.appendChild(g)}let y=document.createElement("span");y.className="launcherFallback",y.textContent=o;let I=document.createElement("div");I.className="launcherShine",b.appendChild(y),b.appendChild(I);let R=document.createElement("div");R.className="greetingBubble";let O=document.createElement("span");O.className="greetingText";let M=document.createElement("button");M.type="button",M.className="greetingClose",M.textContent="\xD7",M.setAttribute("aria-label","Dismiss");let H=document.createElement("div");H.className="greetingDots";for(let w=0;w<3;w++){let B=document.createElement("span");B.className="greetingDot",H.appendChild(B)}R.appendChild(H),R.appendChild(O),R.appendChild(M);let N=document.createElement("div");N.className="panel";let Y=document.createElement("div");Y.className="header";let ae=document.createElement("div");ae.className="avatar";let re=null;!p&&g&&(re=g.cloneNode(!0),ae.appendChild(re));let le=document.createElement("span");le.className="avatarFallback",le.textContent=n,ae.appendChild(le);let Me=document.createElement("div");Me.className="meta";let ve=document.createElement("div");ve.className="title",ve.textContent=t;let we=document.createElement("div");we.className="status";let Ne=document.createElement("span");Ne.className="statusDot";let ft=document.createElement("span");ft.textContent="ready";let Ae=document.createElement("span");Ae.className="modeLabel controller",Ae.textContent="active",we.appendChild(Ne),we.appendChild(ft),we.appendChild(Ae),Me.appendChild(ve),Me.appendChild(we);let lt=document.createElement("div");lt.className="headerActions";let Xe=document.createElement("button");Xe.type="button",Xe.className="sizeBtn",Xe.setAttribute("aria-label","Resize Rover panel"),Xe.innerHTML='<svg viewBox="0 0 24 24"><path d="M8 4H4v4"></path><path d="M4 4l6 6"></path><path d="M16 20h4v-4"></path><path d="M20 20l-6-6"></path><path d="M20 8V4h-4"></path><path d="M20 4l-6 6"></path><path d="M8 20H4v-4"></path><path d="M4 20l6-6"></path></svg>';let Ge=document.createElement("button");Ge.type="button",Ge.className="overflowBtn",Ge.setAttribute("aria-label","More options"),Ge.innerHTML="&#x22EF;";let zt=document.createElement("button");zt.type="button",zt.className="closeBtn",zt.setAttribute("aria-label","Close Rover panel"),zt.textContent="\xD7";let St=e.muted??!0;try{let w=localStorage.getItem("rover:muted");w!==null&&(St=w!=="false")}catch{}function An(){g&&(g.muted=St),re&&(re.muted=St)}An();let Ie=document.createElement("button");Ie.type="button",Ie.className="cancelPill",Ie.setAttribute("aria-label","Cancel task");let Gt=document.createElement("span");Gt.className="cancelIcon",Ie.appendChild(Gt),Ie.appendChild(document.createTextNode(" Cancel"));let ut=document.createElement("div");ut.className="executionBar";let jt=document.createElement("button");jt.type="button",jt.className="conversationListBtn",jt.setAttribute("aria-label","Conversations"),jt.innerHTML='<svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2"><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/></svg>',a||Xe.classList.add("hidden"),lt.appendChild(Xe),lt.appendChild(jt),lt.appendChild(Ge),lt.appendChild(Ie),lt.appendChild(zt);let Rt=document.createElement("div");Rt.className="overflowMenu";let no=document.createElement("button");no.type="button",no.className="menuItem",no.textContent="New task";let Cn=document.createElement("button");Cn.type="button",Cn.className="menuItem danger",Cn.textContent="End task";let Zo=document.createElement("div");Zo.className="menuDivider";let Yt=document.createElement("button");Yt.type="button",Yt.className="menuItem",Yt.textContent=St?"Unmute sounds":"Mute sounds",Yt.addEventListener("click",()=>{Na(),St=!St;try{localStorage.setItem("rover:muted",String(St))}catch{}An(),Yt.textContent=St?"Unmute sounds":"Mute sounds"});let Qt=document.createElement("button");Qt.type="button",Qt.className="menuItem",Qt.textContent="Take control",Qt.style.display="none",Rt.appendChild(no),Rt.appendChild(Cn),Rt.appendChild(Zo),Rt.appendChild(Yt),Rt.appendChild(Qt),e.showTaskControls===!1&&(no.style.display="none",Cn.style.display="none"),Y.appendChild(ae),Y.appendChild(Me),Y.appendChild(lt),Y.appendChild(Rt),Y.appendChild(ut);let oo=document.createElement("div");oo.style.cssText="position:relative;flex:1;min-height:0;display:flex;flex-direction:column;";let Ue=document.createElement("div");Ue.className="feed";let Jt=document.createElement("div");Jt.className="traceToggleBar";let ro=document.createElement("span");ro.className="traceToggleLabel",ro.textContent="Execution Log";let vn=document.createElement("span");vn.className="traceToggleCount",vn.textContent="0 steps";let Zt=document.createElement("button");Zt.type="button",Zt.className="traceToggleBtn",Zt.textContent="Show all",Jt.appendChild(ro),Jt.appendChild(vn),Jt.appendChild(Zt),Ue.appendChild(Jt);let tt=document.createElement("div");tt.className="typingIndicator";for(let w=0;w<3;w++){let B=document.createElement("span");B.className="typingDot",tt.appendChild(B)}Ue.appendChild(tt);let Kt=document.createElement("button");Kt.type="button",Kt.className="scrollBtn",Kt.setAttribute("aria-label","Scroll to bottom"),Kt.innerHTML='<svg viewBox="0 0 24 24"><polyline points="6 9 12 15 18 9"></polyline></svg>',oo.appendChild(Ue),oo.appendChild(Kt);let en=document.createElement("div");en.className="taskSuggestion",en.innerHTML=`
2089
2089
  <div class="taskSuggestionText"></div>
2090
2090
  <div class="taskSuggestionActions">
2091
2091
  <button type="button" class="taskSuggestionBtn primary">Start new</button>
2092
2092
  <button type="button" class="taskSuggestionBtn secondary">Continue</button>
2093
2093
  </div>
2094
- `;let Cn=document.createElement("div");Cn.className="shortcutsEmptyState";let Mn=document.createElement("div");Mn.className="shortcutsHeading",Mn.textContent=r?`Hey ${r}! What can I help with?`:`What can ${t} help you with?`;let fo=document.createElement("div");fo.className="shortcutsGrid",Cn.appendChild(Mn),Cn.appendChild(fo),Ue.appendChild(Cn);let jn=document.createElement("div");jn.className="shortcutsBar";let tn=document.createElement("div");tn.className="questionPrompt";let oo=document.createElement("div");oo.className="questionPromptTitle",oo.textContent="Need a bit more info";let un=document.createElement("form");un.className="questionPromptForm";let dn=document.createElement("div");dn.className="questionPromptList",un.appendChild(dn);let pe=document.createElement("div");pe.className="questionPromptActions";let Nn=document.createElement("button");Nn.type="button",Nn.className="questionPromptCancel",Nn.textContent="Cancel",pe.appendChild(Nn);let ge=document.createElement("button");ge.type="submit",ge.className="questionPromptSubmit",ge.textContent="Continue",pe.appendChild(ge),un.appendChild(pe),tn.appendChild(oo),tn.appendChild(un);let kt=document.createElement("form");kt.className="composer";let fn=document.createElement("div");fn.className="composerRow";let ht=document.createElement("textarea");ht.rows=1,ht.placeholder=`Ask ${t} to act on this website...`,fn.appendChild(ht);let $r=document.createElement("div");$r.className="composerActions";let wn=document.createElement("button");wn.type="button",wn.className="voiceBtn",wn.setAttribute("aria-label","Start voice dictation"),wn.innerHTML='<svg viewBox="0 0 24 24"><path d="M12 3a3 3 0 0 0-3 3v5a3 3 0 1 0 6 0V6a3 3 0 0 0-3-3Z"></path><path d="M19 11a7 7 0 0 1-14 0"></path><path d="M12 18v3"></path><path d="M8 21h8"></path></svg>',$r.appendChild(wn);let Qo=document.createElement("button");Qo.type="submit",Qo.className="sendBtn",Qo.innerHTML='<svg viewBox="0 0 24 24"><line x1="22" y1="2" x2="11" y2="13"></line><polygon points="22 2 15 22 11 13 2 9 22 2"></polygon></svg>',$r.appendChild(Qo),fn.appendChild($r),kt.appendChild(fn);let mo=document.createElement("div");mo.className="composerStatus",mo.setAttribute("aria-live","polite"),kt.appendChild(mo);let Jo=document.createElement("div");Jo.className="panelGrabber",Jo.setAttribute("aria-hidden","true");let qn=document.createElement("span");qn.className="panelGrabberHandle",Jo.appendChild(qn);let Wn=document.createElement("div");Wn.className="resizeHandle",Wn.setAttribute("aria-hidden","true");let mn=document.createElement("div");mn.className="roverConversationPill",mn.setAttribute("role","button"),mn.setAttribute("tabindex","0");let mr=document.createElement("span");mr.className="roverConversationPillLabel",mr.textContent="Current task";let ro=document.createElement("span");ro.className="roverConversationPillArrow",ro.textContent="\u25BE",mn.appendChild(mr),mn.appendChild(ro),mn.addEventListener("click",()=>{T.classList.toggle("open")});let pr=document.createElement("div");pr.className="roverTabBar";let $n=document.createElement("div");$n.className="pausedTaskBanner";let m="",T=document.createElement("div");T.className="conversationDrawer";let _=document.createElement("div");_.className="conversationDrawerHeader";let I=document.createElement("span");I.className="conversationDrawerTitle",I.textContent="Conversations";let v=document.createElement("button");v.type="button",v.className="conversationDrawerClose",v.textContent="\xD7",_.appendChild(I),_.appendChild(v);let k=document.createElement("div");k.className="conversationList";let x=document.createElement("button");x.type="button",x.className="conversationNewBtn",x.textContent="New conversation",T.appendChild(_),T.appendChild(k),T.appendChild(x),N.appendChild(Jo),N.appendChild(Y),N.appendChild(mn),N.appendChild($n),N.appendChild(to),N.appendChild(en),N.appendChild(jn),N.appendChild(tn),N.appendChild(kt),N.appendChild(Wn),N.appendChild(T),u.appendChild(b),u.appendChild(R),u.appendChild(N),c.appendChild(f),c.appendChild(u);let S=ht,j=en.querySelector(".taskSuggestionText"),F=en.querySelector(".taskSuggestionBtn.primary"),q=en.querySelector(".taskSuggestionBtn.secondary"),$=new Set,G=new Map,oe=[],fe="controller",De=!1,ue=!1,me=!1,ye=e.shortcuts?.slice(0,Yh)||[],He=null,mt=!1,xe=null,Pe=!1,Be=!1,$e=0,ot=!1,Je=null,ie=null,ne=!1,de=null,We=null,yt={},ct=Zh(e.voice),Fe="idle",nn="",Vr="",hr="",gr="",br=!1,h=null,A=null,D=null,U=null,W=null,X=0,te=!1,be=!1,Ce=0,Te=null,Ze=!1,rt=!1,Dt="",At=a?fT(i):{},Ye=ng(),on=Ye.storageKey,ze=a&&og(At.desktop,Ye)||Xa(Ye),et=a?rg(At[Ye.storageKey]?.preset)??1:1,rn=null,vt=null;function ku(w){a&&(ze=is(w,Ye),At={...At,desktop:ze},tg(i,At))}function $k(w){return a?rg(At[w]?.preset)??1:1}function mm(w,B){a&&(At={...At,[w]:{preset:B}},tg(i,At))}function pm(w){return is({width:cl,height:w.height-sa},w)}function hm(w,B){return Math.abs(w.width-B.width)<=6&&Math.abs(w.height-B.height)<=6}function Vk(w){return w===0?"compact":w===2?"large":"medium"}function gm(){if(u.dataset.layout=Ye.layout,u.dataset.orientation=Ye.orientation,N.dataset.layout=Ye.layout,N.dataset.orientation=Ye.orientation,N.dataset.resizable=a?"true":"false",!a){Xe.classList.add("hidden");return}if(Xe.classList.remove("hidden"),Ye.layout==="desktop"){let w=pm(Ye),B=hm(ze,w);Xe.setAttribute("aria-label",B?"Reset Rover panel size":"Expand Rover panel"),Xe.title=B?"Reset panel size":"Expand panel"}else{let w=Vk(et);Xe.setAttribute("aria-label",`Change Rover panel size. Current ${w}.`),Xe.title=`Panel size: ${w}`}}function kr(){let w=ng(),B=w.storageKey!==on;if(Ye=w,on=w.storageKey,w.layout==="desktop")a?B?ze=og(At.desktop,w)||Xa(w):ze=is(ze,w):ze=Xa(w),N.style.left="",N.style.right="20px",N.style.bottom="90px",N.style.width=`${ze.width}px`,N.style.height=`${ze.height}px`,N.style.minWidth=`${Ya}px`,N.style.minHeight=`${Qa}px`,N.style.maxWidth=`${Math.max(Ya,Math.min(cl,w.width-sa))}px`,N.style.maxHeight=`${Math.max(Qa,w.height-sa)}px`,rn=null;else{let J=ag(w),Z=(w.layout==="tablet"?sg:ig)+w.keyboardInset,Ie=$k(w.storageKey);et=a?B?Ie:Er(et,0,2):1;let ke=Er(Math.round(rn??J[et]),Math.min(...J),Math.max(...J));if(w.layout==="tablet"){let nt=Math.max(360,Math.min(520,w.width-24));N.style.left="",N.style.right="calc(16px + env(safe-area-inset-right))",N.style.width=`${Math.round(nt)}px`,N.style.minWidth="320px"}else N.style.left="calc(8px + env(safe-area-inset-left))",N.style.right="calc(8px + env(safe-area-inset-right))",N.style.width="auto",N.style.minWidth="0px";N.style.bottom=`calc(${Z}px + env(safe-area-inset-bottom))`,N.style.height=`${ke}px`,N.style.minHeight="0px",N.style.maxWidth=`${Math.max(320,w.width-16)}px`,N.style.maxHeight=`${Math.max(...J)}px`}gm()}function Gk(){ze=Xa(Ye),ku(ze),kr()}function Kk(){if(a){if(Ye.layout==="desktop"){let w=pm(Ye);ze=hm(ze,w)?Xa(Ye):w,ku(ze),kr();return}et=(et+1)%3,rn=null,mm(Ye.storageKey,et),kr()}}function yr(){vt?.kind==="sheet"&&(rn=null),kr()}function Ra(w,B){e.onVoiceTelemetry?.(w,B)}function bm(w){S.value=w,S.style.height="auto",S.style.height=`${Math.min(96,Math.max(44,S.scrollHeight))}px`}function ic(w="",B="info"){let J=Mt(w);mo.textContent=J,mo.classList.toggle("visible",!!J),mo.classList.toggle("error",B==="error"&&!!J)}function vr(){A&&(clearTimeout(A),A=null)}function Gr(){D&&(clearTimeout(D),D=null)}function sc(){U&&(clearTimeout(U),U=null)}function Oi(){W&&(clearTimeout(W),W=null)}function Pi(){Vr="",hr="",gr=""}function Bi(){vr(),Gr(),sc(),Oi(),X=0,te=!1,be=!1,Ce=0,Te=null,Ze=!1,rt=!1}function km(){return uT(Vr,hr,gr)}function Xk(){bm(km())}function yu(){return lg(ct?.autoStopMs)}function cc(){return X?Math.max(0,Date.now()-X):0}function Ui(w){return{hadSpeech:te,restartCount:Ce,durationMs:cc(),autoStopMs:yu(),...w||{}}}function Aa(w){Ze||(Ra("voice_error",Ui({code:w.code,recoverable:w.recoverable})),Ze=!0),w.code==="permission_denied"&&Ra("voice_permission_denied",Ui({code:w.code}))}function ym(){if(ct?.enabled!==!0){Dt="";return}let w=po.isSupported(),B=`${w?"browser":"unsupported"}|${ct.language||""}|${yu()}`;Dt!==B&&(Dt=B,Ra("voice_provider_selected",{provider:w?"browser":"unsupported",supported:w}))}function pn(){let w=ct?.enabled===!0,B=po.isSupported();if(wn.classList.toggle("visible",w&&B),wn.classList.toggle("active",Fe==="listening"),wn.disabled=S.disabled,wn.setAttribute("aria-pressed",Fe==="listening"?"true":"false"),wn.setAttribute("aria-label",Fe==="listening"?"Stop voice dictation":"Start voice dictation"),Fe==="error"&&nn){ic(nn,"error");return}if(Fe==="listening"){ic(te?"Listening. Pause briefly when you're done.":"Listening. Start speaking when you're ready.");return}if(w&&!B){ic("Voice dictation is not available in this browser.");return}ic("")}function wr(w,B){if(Fe!=="listening"){B?.resetDraftBase&&(Pi(),Bi());return}vr(),Gr(),sc(),Oi(),h=w,po.stop(),B?.resetDraftBase&&Pi()}function vm(w){if(Fe!=="listening"||te||h||Ce>=Qx)return!1;let B=cc();return B>=Qh||B>=Jh?!1:w?w.code==="no_speech"||w.code==="aborted"||w.code==="unknown":!0}function vu(){if(Fe!=="listening"||te||!X)return;Gr();let w=Qh-cc();if(w<=0){let B=Te&&Te.code==="no_speech"?Te:as();h="no_speech",Fe="error",nn=B.message,Aa(B),pn(),po.stop();return}D=setTimeout(()=>{if(Fe!=="listening"||te)return;let B=as();Te=B,h="no_speech",Fe="error",nn=B.message,Aa(B),pn(),po.stop()},w)}function wu(){if(Fe!=="listening"||!X)return;sc();let w=Jh-cc();if(w<=0){if(te)wr("silence");else{let B=as();Te=B,h="no_speech",Fe="error",nn=B.message,Aa(B),pn(),po.stop()}return}U=setTimeout(()=>{if(Fe!=="listening")return;if(te){wr("silence");return}let B=as();Te=B,h="no_speech",Fe="error",nn=B.message,Aa(B),pn(),po.stop()},w)}function wm(){Fe!=="listening"||!te||be||(vr(),A=setTimeout(()=>{Fe==="listening"&&wr("silence")},yu()))}function Yk(){vm(Te)&&(Oi(),Ce+=1,Te=null,vu(),wu(),W=setTimeout(()=>{W=null,!(Fe!=="listening"||te||h)&&po.start({language:ct?.language})},Jx))}function Qk(w){Te=w,!(h&&(w.code==="aborted"||w.code==="no_speech"||w.code==="unknown"))&&(w.code==="aborted"||w.code==="no_speech"||w.code==="unknown"||(vr(),Gr(),Oi(),Fe="error",nn=w.message,h="error",pn(),Aa(w)))}function xm(){if(S.disabled)return;let w=Mt(S.value);w&&(La({visible:!1}),e.onSend(w),bm(""),nn="",Fe="idle",Pi(),Bi(),br=!1,h=null,pn())}function Jk(){if(!S.disabled&&ct?.enabled){if(!po.isSupported()){Fe="error",nn="Voice dictation is not available in this browser.",pn();return}ym(),nn="",Fe="listening",br=!1,h=null,Vr=S.value,hr="",gr="",Bi(),X=Date.now(),rt=!0,vu(),wu(),pn(),po.start({language:ct.language})}}function Tm(w){let B=Zh(w),J=JSON.stringify(ct||null),V=JSON.stringify(B||null);if(J===V){pn();return}ct=B,nn="",br=!1,Fe==="listening"?wr("config"):(Pi(),Bi(),Fe="idle"),ym(),pn()}let po=Xh({onStart:()=>{Fe="listening",nn="",Te=null,vu(),wu(),rt&&(Ra("voice_started",Ui({provider:"browser"})),rt=!1),pn()},onSpeechStart:()=>{Fe==="listening"&&(te=!0,be=!0,Te=null,Gr(),vr(),pn())},onSpeechEnd:()=>{Fe==="listening"&&(be=!1,te&&wm(),pn())},onResult:({finalTranscript:w,interimTranscript:B})=>{(w||B)&&(te=!0,be=B.length>0,Te=null,Gr(),vr()),hr=w,gr=B,Xk(),te&&!be&&wm(),pn()},onEnd:({requested:w})=>{if(Oi(),!w&&vm(Te)){Yk();return}let B=Mt(km()),J=Mt(Vr).length>0,V=Te,Z=h||(w?"manual":"silence");if(vr(),Gr(),sc(),!te&&!w&&Fe!=="error"){let ke=V&&V.code==="no_speech"?V:as();Fe="error",nn=ke.message,h="no_speech",Z="no_speech",Aa(ke)}else!w&&!h&&te?Z="silence":h&&(Z=h);Fe!=="error"&&(Fe="idle",nn=""),B&&Ra("voice_transcript_ready",Ui({chars:B.length,hadExistingDraft:J})),Ra("voice_stopped",Ui({reason:Z,stopReason:Z,requested:w,errorCode:V?.code}));let Ie=br;br=!1,h=null,Pi(),Bi(),pn(),Ie&&xm()},onError:Qk});function Zk(){Pe=!Pe,Rt.classList.toggle("visible",Pe)}function Ca(){Pe=!1,Rt.classList.remove("visible")}let _m="";function Em(w){let B=w.filter(V=>V&&V.enabled!==!1).slice(0,Yh),J=B.map(V=>`${V.id||V.label}|${V.label}|${V.description||""}|${V.icon||""}`).join(";;");if(J!==_m){_m=J,ye=B,fo.innerHTML="";for(let V of ye){let Z=document.createElement("button");if(Z.type="button",Z.className="shortcutCard",V.icon){let ke=document.createElement("span");ke.className="shortcutCardIcon",ke.textContent=V.icon,Z.appendChild(ke)}let Ie=document.createElement("span");if(Ie.className="shortcutCardLabel",Ie.textContent=V.label,Z.appendChild(Ie),V.description){let ke=document.createElement("span");ke.className="shortcutCardDesc",ke.textContent=V.description,Z.appendChild(ke)}Z.addEventListener("click",()=>e.onShortcutClick?.(V)),fo.appendChild(Z)}jn.innerHTML="";for(let V of ye){let Z=document.createElement("button");if(Z.type="button",Z.className="shortcutChip",V.icon){let ke=document.createElement("span");ke.className="shortcutChipIcon",ke.textContent=V.icon,Z.appendChild(ke)}let Ie=document.createTextNode(V.label);Z.appendChild(Ie),Z.addEventListener("click",()=>e.onShortcutClick?.(V)),jn.appendChild(Z)}Ma()}}function Ma(){let w=ye.length>0,B=!!de?.questions?.length,J=w&&!me&&!ue,V=w&&me&&!ue&&!B;Cn.classList.toggle("visible",J),jn.classList.toggle("visible",V)}function ey(w){let B=Mt(w);if(B){if(O.textContent=B,R.classList.contains("visible")){R.classList.add("textVisible");return}ot||N.classList.contains("open")||(ot=!0,R.classList.remove("dismissing","textVisible"),R.classList.add("visible"),ie&&(clearTimeout(ie),ie=null),ie=setTimeout(()=>{ie=null,R.classList.add("textVisible")},Gx))}}function lc(){if(ie&&(clearTimeout(ie),ie=null),!R.classList.contains("visible"))return;R.classList.add("dismissing");let w=()=>{R.classList.remove("visible","dismissing"),R.removeEventListener("animationend",w)};R.addEventListener("animationend",w),Je&&(clearTimeout(Je),Je=null)}function ty(w){r=w||void 0,r?Mn.textContent=`Hey ${r}! What can I help with?`:Mn.textContent=`What can ${t} help you with?`}function ny(w){if(!w||!Array.isArray(w.questions))return[];let B=[],J=new Set;for(let V=0;V<w.questions.length;V+=1){let Z=w.questions[V];if(!Z||typeof Z!="object")continue;let Ie=String(Z.key||Z.id||"").trim()||`clarification_${V+1}`,ke=String(Z.query||Z.question||"").trim();if(!ke)continue;let nt=typeof Z.required=="boolean",Ct=typeof Z.optional=="boolean",pt=nt?!!Z.required:Ct?!Z.optional:!0;J.has(Ie)||(J.add(Ie),B.push({key:Ie,query:ke,...typeof Z.id=="string"&&Z.id.trim()?{id:Z.id.trim()}:{},...typeof Z.question=="string"&&Z.question.trim()?{question:Z.question.trim()}:{},...Array.isArray(Z.choices)?{choices:Z.choices}:{},required:pt}))}return B.slice(0,6)}function oy(w){return w.map(B=>{let J=Array.isArray(B.choices)?B.choices.map(Z=>Mt(String(Z||""))).filter(Boolean).join("|"):"",V=B.required===!1?"optional":"required";return`${B.key}::${Mt(B.query)}::${J}::${V}`}).join("||")}function ry(w){let B=Mt(w.query||w.question||"");if(!B)return`Answer for ${w.key}`;let J=B.replace(/\s+/g," ").replace(/[?.!:\s]+$/,"").slice(0,72);return J?`Answer: ${J}`:`Answer for ${w.key}`}function xu(w){for(let B of Array.from(un.querySelectorAll(".questionPromptInput"))){let J=B;if(J.dataset.key===w)return J}return null}function Im(w){let B=ny(w),J=document.activeElement,V=J instanceof HTMLInputElement&&J.classList.contains("questionPromptInput")&&tn.contains(J)?J:null,Z=V?.dataset.key,Ie=V?.selectionStart??null,ke=V?.selectionEnd??null;if(!B.length){de=null,We=null,yt={},dn.innerHTML="",tn.classList.remove("visible"),Ma();return}let nt=oy(B),Ct=nt!==We||!de;if(de={questions:B},Ct){let pt=yt;yt={},dn.innerHTML="";for(let wt of de.questions){let Xt=document.createElement("label");Xt.className="questionPromptItem";let Ln=document.createElement("span");Ln.className="questionPromptLabel",Ln.textContent=wt.required===!1?`${wt.query} (optional)`:wt.query,Xt.appendChild(Ln);let Dn=document.createElement("input");Dn.type="text",Dn.className="questionPromptInput",Dn.dataset.key=wt.key,Dn.placeholder=ry(wt),Dn.required=wt.required!==!1;let go=String(pt[wt.key]||"");yt[wt.key]=go,Dn.value=go,Dn.addEventListener("input",()=>{yt[wt.key]=Dn.value,Dn.classList.remove("invalid")}),Xt.appendChild(Dn),dn.appendChild(Xt)}We=nt}if(tn.classList.add("visible"),Sm(),Ma(),Z){let pt=xu(Z);if(pt){if(pt.focus(),Ie!==null||ke!==null){let wt=Ie??pt.value.length,Xt=ke??wt;try{pt.setSelectionRange(wt,Xt)}catch{}}return}}if(Ct){let wt=de.questions.find(Dn=>!Mt(yt[Dn.key]||""))?.key||de.questions[0]?.key;if(!wt)return;let Xt=xu(wt),Ln=!J||J===document.body||!N.contains(J);Xt&&Ln&&Xt.focus()}}function uc(){ue&&ne?(tt.classList.add("visible"),Ue.appendChild(tt),Tu()):tt.classList.remove("visible")}function ho(w,B=0){u.dataset.mood=w,xe!=null&&(window.clearTimeout(xe),xe=null),B>0&&w!=="idle"&&(xe=window.setTimeout(()=>{u.dataset.mood="idle",uc(),xe=null},B))}function ay(){return Ue.scrollHeight-Ue.scrollTop-Ue.clientHeight<60}function Tu(){Be?Kt.classList.add("visible"):(requestAnimationFrame(()=>{Ue.scrollTo({top:Ue.scrollHeight,behavior:"smooth"}),$e=Date.now()}),Kt.classList.remove("visible"))}Ue.addEventListener("scroll",()=>{Date.now()-$e<200||(ay()?(Be=!1,Kt.classList.remove("visible")):(Be=!0,Kt.classList.add("visible")))},{passive:!0}),Kt.addEventListener("click",()=>{Be=!1,$e=Date.now(),Ue.scrollTo({top:Ue.scrollHeight,behavior:"smooth"}),Kt.classList.remove("visible")});function Sm(){let w=fe==="observer"&&!De;S.disabled=w,wn.disabled=w,Nn.disabled=w,ge.disabled=w;for(let B of Array.from(un.querySelectorAll(".questionPromptInput")))B.disabled=w;w&&Fe==="listening"&&wr("disabled"),pn()}function _u(w){if(mt=w,u.dataset.showDetails=w?"true":"false",Zt.textContent=mt?"Collapse":`Show all (${oe.length})`,mt)for(let B of oe){B.style.display="";let J=B.dataset.status,V=J==="success"||J==="error"||J==="info";B.classList.toggle("compact",!1)}else for(let B=0;B<oe.length;B++){let J=oe[B],V=B>=oe.length-2;J.style.display=V?"":"none";let Z=J.dataset.status,Ie=Z==="success"||Z==="error"||Z==="info";J.classList.toggle("compact",Ie)}}function dc(){kr(),u.style.display="",N.classList.remove("closing"),N.classList.add("open"),lc(),ho("idle"),e.onOpen?.(),S.disabled||S.focus()}function Na(){if(Ca(),!N.classList.contains("open")){e.onClose?.();return}N.classList.remove("open"),N.classList.add("closing"),ho("idle");let w=()=>{N.classList.remove("closing"),N.removeEventListener("animationend",w)};N.addEventListener("animationend",w),e.onClose?.()}function iy(){kr(),u.style.display=""}function sy(){Na(),u.style.display="none"}function cy(w,B,J){let V=Mt(B),Z=J?.blocks;if(!V&&(!Z||Z.length===0))return;let Ie=document.createElement("div");Ie.className=`entry message ${w}`;let ke=document.createElement("div");ke.className="bubble",w==="assistant"?ke.appendChild(_T(V,Z)):ke.textContent=V;let nt=document.createElement("div");nt.className="stamp",nt.textContent=Td(Date.now()),Ie.appendChild(ke),Ie.appendChild(nt),Ue.appendChild(Ie),w==="assistant"&&ue&&ne&&(ne=!1,uc()),me=!0,Ma(),w==="user"?ho("typing",1200):w==="assistant"?ho("success",1400):ho("running",900),Tu()}function ly(){for(let w of Array.from(Ue.querySelectorAll(".entry.message")))w.remove();me=!1,Im(void 0),Ma()}function Rm(w){let B=G.get(w);if(B)return B;let J=document.createElement("div");J.className="entry trace pending";let V=document.createElement("div");V.className="traceTop";let Z=document.createElement("div");Z.className="traceMeta";let Ie=document.createElement("span");Ie.className="traceStage",Ie.textContent="step";let ke=document.createElement("div");ke.className="traceTitle";let nt=document.createElement("div");nt.className="traceTs",Z.appendChild(Ie),Z.appendChild(ke),V.appendChild(Z),V.appendChild(nt);let Ct=document.createElement("div");return Ct.className="traceDetail",J.appendChild(V),J.appendChild(Ct),G.set(w,J),oe.push(J),Ue.appendChild(J),J}function uy(w,B){let J=Number(B.ts)||Date.now(),V=sT(B),Z=w.querySelector(".traceTop"),ke=Z.querySelector(".traceMeta").querySelector(".traceStage"),nt=Z.querySelector(".traceTitle"),Ct=Z.querySelector(".traceTs"),pt=w.querySelector(".traceDetail"),wt=ug(B.title||"");nt.textContent=wt.plainTitle||"Step",ke.textContent=wt.stage||B.kind||"step",ke.style.display=wt.stage||B.kind==="status"||B.kind==="plan"||B.kind==="thought"?"":"none",Ct.textContent=Td(J),pt.innerHTML="";let Xt=Array.isArray(B.detailBlocks)?B.detailBlocks:[],Ln=Mt(B.detail||"");if(Xt.length>0){for(let go of Xt){let Nm=fg(go);Nm&&pt.appendChild(Nm)}if(Ln){let go=document.createElement("div");go.className="rvLine",go.appendChild(Ir(Ln)),pt.insertBefore(go,pt.firstChild)}pt.style.display=""}else if(Ln){let go=B.kind==="thought"?Wx:B.kind==="tool_start"||B.kind==="tool_result"?$x:Ja;Ln.length>go?pt.appendChild(ul(Ln,go)):pt.appendChild(Ir(Ln)),pt.style.display=""}else pt.style.display="none";w.classList.remove("pending","success","error","info"),w.classList.add(V),w.dataset.status=V,w.dataset.kind=B.kind,w.dataset.visibility=bT(B);let Dn=V==="success"||V==="error"||V==="info";w.classList.toggle("compact",!mt&&Dn),V==="error"?ho("error",2200):V==="success"?ho("success",1200):V==="pending"&&ho("running",800)}function dy(w){let B=Mt(w.title||"");if(!B||B.toLowerCase()==="assistant update")return;let J=w.id||cg("timeline");if(w.id&&$.has(J))return;$.add(J);let V=cT(w),Z=V==="run"||V.startsWith("tool:")||w.kind==="tool_result"||w.kind==="status"&&G.has(V),Ie=Rm(Z?V:`${V}:${J}`);uy(Ie,{...w,title:B}),w.kind==="thought"&&ue&&ne&&(ne=!1,uc()),B.toLowerCase()==="run completed"&&_u(!1);let ke=oe.length;if(vn.textContent=`${ke} step${ke!==1?"s":""}`,Jt.classList.toggle("visible",ke>0),!mt){Zt.textContent=`Show all (${ke})`;for(let nt=0;nt<oe.length;nt++){let Ct=oe[nt],pt=nt>=oe.length-2;Ct.style.display=pt?"":"none"}}Tu()}function fy(){$.clear(),G.clear(),oe.length=0;for(let w of Array.from(Ue.querySelectorAll(".entry.trace")))w.remove();Jt.classList.remove("visible"),vn.textContent="0 steps"}function La(w){let B=!!w?.visible;en.classList.toggle("visible",B),j.textContent=w?.text||"Looks like a new request. Start a new task?",F.textContent=w?.primaryLabel||"Start new",q.textContent=w?.secondaryLabel||"Continue"}function my(w){let B=String(w||"ready");ft.textContent=B;let J=B.toLowerCase();J.includes("error")||J.includes("failed")?ho("error",1800):J==="ready"||J.includes("complete")?ho("idle"):ho("running",1e3)}function py(w){ue=w,w?ne=!0:ne=!1,uc(),Ee.classList.toggle("visible",w),jt.style.display=w?"none":"",Ge.style.display=w?"none":"",ut.classList.toggle("active",w),Ma()}function Am(w,B){fe=w,De=w==="observer"?B?.canComposeInObserver===!0:!0,Sm(),Ae.classList.remove("controller","observer"),Ae.classList.add(w),w==="controller"?(Ae.textContent="active",Qt.style.display="none",S.placeholder=`Ask ${t} to act on this website...`):(Ae.textContent="observer",B?.canTakeControl!==!1?Qt.style.display="":Qt.style.display="none",B?.note?S.placeholder=B.note:De?S.placeholder="Send to take control and run here.":B?.activeLogicalTabId&&B?.localLogicalTabId&&B.activeLogicalTabId!==B.localLogicalTabId?S.placeholder=`Observing: ${t} is acting in tab #${B.activeLogicalTabId}`:S.placeholder="Observer mode. Take control to run actions here.")}function hy(){xe!=null&&(window.clearTimeout(xe),xe=null),vr(),po.dispose(),ie&&(window.clearTimeout(ie),ie=null),Je&&(window.clearTimeout(Je),Je=null),fc(),window.removeEventListener("resize",yr),window.removeEventListener("orientationchange",yr),window.visualViewport?.removeEventListener("resize",yr),window.visualViewport?.removeEventListener("scroll",yr),document.removeEventListener("keydown",Cm),d.remove(),s.remove()}b.addEventListener("click",()=>{N.classList.contains("open")?Na():dc()}),M.addEventListener("click",w=>{w.stopPropagation(),lc()}),R.addEventListener("click",()=>{lc(),dc()}),zt.addEventListener("click",()=>Na()),Xe.addEventListener("click",()=>{Kk()}),Ge.addEventListener("click",w=>{w.stopPropagation(),Zk()}),u.addEventListener("click",w=>{Pe&&!Rt.contains(w.target)&&w.target!==Ge&&Ca()}),eo.addEventListener("click",()=>{Ca(),ue&&e.onCancelRun?(He="new_task",La({visible:!0,text:"A task is in progress. Cancel it and start new?",primaryLabel:"Cancel & start new",secondaryLabel:"Keep running"})):e.onNewTask?.()}),An.addEventListener("click",()=>{Ca(),ue&&e.onCancelRun?(He="end_task",La({visible:!0,text:"A task is in progress. Cancel and end it?",primaryLabel:"Cancel & end",secondaryLabel:"Keep running"})):e.onEndTask?.()}),Qt.addEventListener("click",()=>{Ca(),e.onRequestControl?.()}),Ee.addEventListener("click",()=>{e.onCancelRun?.()}),Zt.addEventListener("click",()=>{_u(!mt)}),F.addEventListener("click",()=>{if(He){let w=He;He=null,La({visible:!1}),e.onCancelRun?.(),w==="new_task"?e.onNewTask?.():w==="end_task"&&e.onEndTask?.();return}e.onTaskSuggestionPrimary?.()}),q.addEventListener("click",()=>{if(He){He=null,La({visible:!1});return}e.onTaskSuggestionSecondary?.()}),S.addEventListener("input",()=>{Fe==="listening"&&wr("typed"),S.style.height="auto",S.style.height=`${Math.min(96,Math.max(44,S.scrollHeight))}px`}),wn.addEventListener("click",()=>{if(!S.disabled){if(Fe==="listening"){wr("manual");return}Jk()}}),un.addEventListener("submit",w=>{if(w.preventDefault(),S.disabled||!de?.questions?.length)return;let B={},J=[],V=null;for(let ke of de.questions){let nt=xu(ke.key);if(!nt)continue;let Ct=Mt(nt.value),pt=ke.required!==!1;if(!Ct&&pt){nt.classList.add("invalid"),V||(V=nt);continue}if(!Ct){nt.classList.remove("invalid"),delete yt[ke.key],J.push(`${ke.key}: (no answer provided)`);continue}nt.classList.remove("invalid"),yt[ke.key]=Ct,B[ke.key]=Ct,J.push(`${ke.key}: ${Ct}`)}if(V){V.focus();return}let Z=de.questions.map(ke=>ke.key),Ie=J.length?J.join(`
2094
+ `;let Mn=document.createElement("div");Mn.className="shortcutsEmptyState";let Nn=document.createElement("div");Nn.className="shortcutsHeading",Nn.textContent=r?`Hey ${r}! What can I help with?`:`What can ${t} help you with?`;let po=document.createElement("div");po.className="shortcutsGrid",Mn.appendChild(Nn),Mn.appendChild(po),Ue.appendChild(Mn);let $n=document.createElement("div");$n.className="shortcutsBar";let tn=document.createElement("div");tn.className="questionPrompt";let ao=document.createElement("div");ao.className="questionPromptTitle",ao.textContent="Need a bit more info";let un=document.createElement("form");un.className="questionPromptForm";let dn=document.createElement("div");dn.className="questionPromptList",un.appendChild(dn);let he=document.createElement("div");he.className="questionPromptActions";let Ln=document.createElement("button");Ln.type="button",Ln.className="questionPromptCancel",Ln.textContent="Cancel",he.appendChild(Ln);let ge=document.createElement("button");ge.type="submit",ge.className="questionPromptSubmit",ge.textContent="Continue",he.appendChild(ge),un.appendChild(he),tn.appendChild(ao),tn.appendChild(un);let kt=document.createElement("form");kt.className="composer";let fn=document.createElement("div");fn.className="composerRow";let ht=document.createElement("textarea");ht.rows=1,ht.placeholder=`Ask ${t} to act on this website...`,fn.appendChild(ht);let Gr=document.createElement("div");Gr.className="composerActions";let wn=document.createElement("button");wn.type="button",wn.className="voiceBtn",wn.setAttribute("aria-label","Start voice dictation"),wn.innerHTML='<svg viewBox="0 0 24 24"><path d="M12 3a3 3 0 0 0-3 3v5a3 3 0 1 0 6 0V6a3 3 0 0 0-3-3Z"></path><path d="M19 11a7 7 0 0 1-14 0"></path><path d="M12 18v3"></path><path d="M8 21h8"></path></svg>',Gr.appendChild(wn);let er=document.createElement("button");er.type="submit",er.className="sendBtn",er.innerHTML='<svg viewBox="0 0 24 24"><line x1="22" y1="2" x2="11" y2="13"></line><polygon points="22 2 15 22 11 13 2 9 22 2"></polygon></svg>',Gr.appendChild(er),fn.appendChild(Gr),kt.appendChild(fn);let ho=document.createElement("div");ho.className="composerStatus",ho.setAttribute("aria-live","polite"),kt.appendChild(ho);let tr=document.createElement("div");tr.className="panelGrabber",tr.setAttribute("aria-hidden","true");let Wn=document.createElement("span");Wn.className="panelGrabberHandle",tr.appendChild(Wn);let Vn=document.createElement("div");Vn.className="resizeHandle",Vn.setAttribute("aria-hidden","true");let mn=document.createElement("div");mn.className="roverConversationPill",mn.setAttribute("role","button"),mn.setAttribute("tabindex","0");let hr=document.createElement("span");hr.className="roverConversationPillLabel",hr.textContent="Current task";let io=document.createElement("span");io.className="roverConversationPillArrow",io.textContent="\u25BE",mn.appendChild(hr),mn.appendChild(io),mn.addEventListener("click",()=>{T.classList.toggle("open")});let gr=document.createElement("div");gr.className="roverTabBar";let Gn=document.createElement("div");Gn.className="pausedTaskBanner";let m="",T=document.createElement("div");T.className="conversationDrawer";let _=document.createElement("div");_.className="conversationDrawerHeader";let E=document.createElement("span");E.className="conversationDrawerTitle",E.textContent="Conversations";let v=document.createElement("button");v.type="button",v.className="conversationDrawerClose",v.textContent="\xD7",_.appendChild(E),_.appendChild(v);let k=document.createElement("div");k.className="conversationList";let x=document.createElement("button");x.type="button",x.className="conversationNewBtn",x.textContent="New conversation",T.appendChild(_),T.appendChild(k),T.appendChild(x),N.appendChild(tr),N.appendChild(Y),N.appendChild(mn),N.appendChild(Gn),N.appendChild(oo),N.appendChild(en),N.appendChild($n),N.appendChild(tn),N.appendChild(kt),N.appendChild(Vn),N.appendChild(T),u.appendChild(b),u.appendChild(R),u.appendChild(N),c.appendChild(f),c.appendChild(u);let S=ht,j=en.querySelector(".taskSuggestionText"),F=en.querySelector(".taskSuggestionBtn.primary"),q=en.querySelector(".taskSuggestionBtn.secondary"),W=new Set,G=new Map,oe=[],fe="controller",De=!1,ue=!1,me=!1,ye=e.shortcuts?.slice(0,og)||[],He=null,mt=!1,xe=null,Pe=!1,Be=!1,We=0,ot=!1,Je=null,ie=null,ne=!1,de=null,$e=null,yt={},ct=ig(e.voice),Fe="idle",nn="",Kr="",br="",kr="",yr=!1,h=null,A=null,D=null,U=null,$=null,X=0,te=!1,be=!1,Ce=0,Te=null,Ze=!1,rt=!1,Dt="",At=a?IT(i):{},Ye=lg(),on=Ye.storageKey,ze=a&&ug(At.desktop,Ye)||Qa(Ye),et=a?dg(At[Ye.storageKey]?.preset)??1:1,rn=null,vt=null;function vu(w){a&&(ze=cs(w,Ye),At={...At,desktop:ze},cg(i,At))}function ry(w){return a?dg(At[w]?.preset)??1:1}function km(w,B){a&&(At={...At,[w]:{preset:B}},cg(i,At))}function ym(w){return cs({width:ul,height:w.height-la},w)}function vm(w,B){return Math.abs(w.width-B.width)<=6&&Math.abs(w.height-B.height)<=6}function ay(w){return w===0?"compact":w===2?"large":"medium"}function wm(){if(u.dataset.layout=Ye.layout,u.dataset.orientation=Ye.orientation,N.dataset.layout=Ye.layout,N.dataset.orientation=Ye.orientation,N.dataset.resizable=a?"true":"false",!a){Xe.classList.add("hidden");return}if(Xe.classList.remove("hidden"),Ye.layout==="desktop"){let w=ym(Ye),B=vm(ze,w);Xe.setAttribute("aria-label",B?"Reset Rover panel size":"Expand Rover panel"),Xe.title=B?"Reset panel size":"Expand panel"}else{let w=ay(et);Xe.setAttribute("aria-label",`Change Rover panel size. Current ${w}.`),Xe.title=`Panel size: ${w}`}}function vr(){let w=lg(),B=w.storageKey!==on;if(Ye=w,on=w.storageKey,w.layout==="desktop")a?B?ze=ug(At.desktop,w)||Qa(w):ze=cs(ze,w):ze=Qa(w),N.style.left="",N.style.right="20px",N.style.bottom="90px",N.style.width=`${ze.width}px`,N.style.height=`${ze.height}px`,N.style.minWidth=`${Ja}px`,N.style.minHeight=`${Za}px`,N.style.maxWidth=`${Math.max(Ja,Math.min(ul,w.width-la))}px`,N.style.maxHeight=`${Math.max(Za,w.height-la)}px`,rn=null;else{let J=fg(w),Z=(w.layout==="tablet"?pg:mg)+w.keyboardInset,Ee=ry(w.storageKey);et=a?B?Ee:Sr(et,0,2):1;let ke=Sr(Math.round(rn??J[et]),Math.min(...J),Math.max(...J));if(w.layout==="tablet"){let nt=Math.max(360,Math.min(520,w.width-24));N.style.left="",N.style.right="calc(16px + env(safe-area-inset-right))",N.style.width=`${Math.round(nt)}px`,N.style.minWidth="320px"}else N.style.left="calc(8px + env(safe-area-inset-left))",N.style.right="calc(8px + env(safe-area-inset-right))",N.style.width="auto",N.style.minWidth="0px";N.style.bottom=`calc(${Z}px + env(safe-area-inset-bottom))`,N.style.height=`${ke}px`,N.style.minHeight="0px",N.style.maxWidth=`${Math.max(320,w.width-16)}px`,N.style.maxHeight=`${Math.max(...J)}px`}wm()}function iy(){ze=Qa(Ye),vu(ze),vr()}function sy(){if(a){if(Ye.layout==="desktop"){let w=ym(Ye);ze=vm(ze,w)?Qa(Ye):w,vu(ze),vr();return}et=(et+1)%3,rn=null,km(Ye.storageKey,et),vr()}}function wr(){vt?.kind==="sheet"&&(rn=null),vr()}function Ca(w,B){e.onVoiceTelemetry?.(w,B)}function xm(w){S.value=w,S.style.height="auto",S.style.height=`${Math.min(96,Math.max(44,S.scrollHeight))}px`}function cc(w="",B="info"){let J=Mt(w);ho.textContent=J,ho.classList.toggle("visible",!!J),ho.classList.toggle("error",B==="error"&&!!J)}function xr(){A&&(clearTimeout(A),A=null)}function Xr(){D&&(clearTimeout(D),D=null)}function lc(){U&&(clearTimeout(U),U=null)}function Bi(){$&&(clearTimeout($),$=null)}function Ui(){Kr="",br="",kr=""}function Hi(){xr(),Xr(),lc(),Bi(),X=0,te=!1,be=!1,Ce=0,Te=null,Ze=!1,rt=!1}function Tm(){return TT(Kr,br,kr)}function cy(){xm(Tm())}function wu(){return gg(ct?.autoStopMs)}function uc(){return X?Math.max(0,Date.now()-X):0}function Fi(w){return{hadSpeech:te,restartCount:Ce,durationMs:uc(),autoStopMs:wu(),...w||{}}}function Ma(w){Ze||(Ca("voice_error",Fi({code:w.code,recoverable:w.recoverable})),Ze=!0),w.code==="permission_denied"&&Ca("voice_permission_denied",Fi({code:w.code}))}function _m(){if(ct?.enabled!==!0){Dt="";return}let w=go.isSupported(),B=`${w?"browser":"unsupported"}|${ct.language||""}|${wu()}`;Dt!==B&&(Dt=B,Ca("voice_provider_selected",{provider:w?"browser":"unsupported",supported:w}))}function pn(){let w=ct?.enabled===!0,B=go.isSupported();if(wn.classList.toggle("visible",w&&B),wn.classList.toggle("active",Fe==="listening"),wn.disabled=S.disabled,wn.setAttribute("aria-pressed",Fe==="listening"?"true":"false"),wn.setAttribute("aria-label",Fe==="listening"?"Stop voice dictation":"Start voice dictation"),Fe==="error"&&nn){cc(nn,"error");return}if(Fe==="listening"){cc(te?"Listening. Pause briefly when you're done.":"Listening. Start speaking when you're ready.");return}if(w&&!B){cc("Voice dictation is not available in this browser.");return}cc("")}function Tr(w,B){if(Fe!=="listening"){B?.resetDraftBase&&(Ui(),Hi());return}xr(),Xr(),lc(),Bi(),h=w,go.stop(),B?.resetDraftBase&&Ui()}function Im(w){if(Fe!=="listening"||te||h||Ce>=uT)return!1;let B=uc();return B>=rg||B>=ag?!1:w?w.code==="no_speech"||w.code==="aborted"||w.code==="unknown":!0}function xu(){if(Fe!=="listening"||te||!X)return;Xr();let w=rg-uc();if(w<=0){let B=Te&&Te.code==="no_speech"?Te:ss();h="no_speech",Fe="error",nn=B.message,Ma(B),pn(),go.stop();return}D=setTimeout(()=>{if(Fe!=="listening"||te)return;let B=ss();Te=B,h="no_speech",Fe="error",nn=B.message,Ma(B),pn(),go.stop()},w)}function Tu(){if(Fe!=="listening"||!X)return;lc();let w=ag-uc();if(w<=0){if(te)Tr("silence");else{let B=ss();Te=B,h="no_speech",Fe="error",nn=B.message,Ma(B),pn(),go.stop()}return}U=setTimeout(()=>{if(Fe!=="listening")return;if(te){Tr("silence");return}let B=ss();Te=B,h="no_speech",Fe="error",nn=B.message,Ma(B),pn(),go.stop()},w)}function Em(){Fe!=="listening"||!te||be||(xr(),A=setTimeout(()=>{Fe==="listening"&&Tr("silence")},wu()))}function ly(){Im(Te)&&(Bi(),Ce+=1,Te=null,xu(),Tu(),$=setTimeout(()=>{$=null,!(Fe!=="listening"||te||h)&&go.start({language:ct?.language})},dT))}function uy(w){Te=w,!(h&&(w.code==="aborted"||w.code==="no_speech"||w.code==="unknown"))&&(w.code==="aborted"||w.code==="no_speech"||w.code==="unknown"||(xr(),Xr(),Bi(),Fe="error",nn=w.message,h="error",pn(),Ma(w)))}function Sm(){if(S.disabled)return;let w=Mt(S.value);w&&(Oa({visible:!1}),e.onSend(w),xm(""),nn="",Fe="idle",Ui(),Hi(),yr=!1,h=null,pn())}function dy(){if(!S.disabled&&ct?.enabled){if(!go.isSupported()){Fe="error",nn="Voice dictation is not available in this browser.",pn();return}_m(),nn="",Fe="listening",yr=!1,h=null,Kr=S.value,br="",kr="",Hi(),X=Date.now(),rt=!0,xu(),Tu(),pn(),go.start({language:ct.language})}}function Rm(w){let B=ig(w),J=JSON.stringify(ct||null),V=JSON.stringify(B||null);if(J===V){pn();return}ct=B,nn="",yr=!1,Fe==="listening"?Tr("config"):(Ui(),Hi(),Fe="idle"),_m(),pn()}let go=ng({onStart:()=>{Fe="listening",nn="",Te=null,xu(),Tu(),rt&&(Ca("voice_started",Fi({provider:"browser"})),rt=!1),pn()},onSpeechStart:()=>{Fe==="listening"&&(te=!0,be=!0,Te=null,Xr(),xr(),pn())},onSpeechEnd:()=>{Fe==="listening"&&(be=!1,te&&Em(),pn())},onResult:({finalTranscript:w,interimTranscript:B})=>{(w||B)&&(te=!0,be=B.length>0,Te=null,Xr(),xr()),br=w,kr=B,cy(),te&&!be&&Em(),pn()},onEnd:({requested:w})=>{if(Bi(),!w&&Im(Te)){ly();return}let B=Mt(Tm()),J=Mt(Kr).length>0,V=Te,Z=h||(w?"manual":"silence");if(xr(),Xr(),lc(),!te&&!w&&Fe!=="error"){let ke=V&&V.code==="no_speech"?V:ss();Fe="error",nn=ke.message,h="no_speech",Z="no_speech",Ma(ke)}else!w&&!h&&te?Z="silence":h&&(Z=h);Fe!=="error"&&(Fe="idle",nn=""),B&&Ca("voice_transcript_ready",Fi({chars:B.length,hadExistingDraft:J})),Ca("voice_stopped",Fi({reason:Z,stopReason:Z,requested:w,errorCode:V?.code}));let Ee=yr;yr=!1,h=null,Ui(),Hi(),pn(),Ee&&Sm()},onError:uy});function fy(){Pe=!Pe,Rt.classList.toggle("visible",Pe)}function Na(){Pe=!1,Rt.classList.remove("visible")}let Am="";function Cm(w){let B=w.filter(V=>V&&V.enabled!==!1).slice(0,og),J=B.map(V=>`${V.id||V.label}|${V.label}|${V.description||""}|${V.icon||""}`).join(";;");if(J!==Am){Am=J,ye=B,po.innerHTML="";for(let V of ye){let Z=document.createElement("button");if(Z.type="button",Z.className="shortcutCard",V.icon){let ke=document.createElement("span");ke.className="shortcutCardIcon",ke.textContent=V.icon,Z.appendChild(ke)}let Ee=document.createElement("span");if(Ee.className="shortcutCardLabel",Ee.textContent=V.label,Z.appendChild(Ee),V.description){let ke=document.createElement("span");ke.className="shortcutCardDesc",ke.textContent=V.description,Z.appendChild(ke)}Z.addEventListener("click",()=>e.onShortcutClick?.(V)),po.appendChild(Z)}$n.innerHTML="";for(let V of ye){let Z=document.createElement("button");if(Z.type="button",Z.className="shortcutChip",V.icon){let ke=document.createElement("span");ke.className="shortcutChipIcon",ke.textContent=V.icon,Z.appendChild(ke)}let Ee=document.createTextNode(V.label);Z.appendChild(Ee),Z.addEventListener("click",()=>e.onShortcutClick?.(V)),$n.appendChild(Z)}La()}}function La(){let w=ye.length>0,B=!!de?.questions?.length,J=w&&!me&&!ue,V=w&&me&&!ue&&!B;Mn.classList.toggle("visible",J),$n.classList.toggle("visible",V)}function my(w){let B=Mt(w);if(B){if(O.textContent=B,R.classList.contains("visible")){R.classList.add("textVisible");return}ot||N.classList.contains("open")||(ot=!0,R.classList.remove("dismissing","textVisible"),R.classList.add("visible"),ie&&(clearTimeout(ie),ie=null),ie=setTimeout(()=>{ie=null,R.classList.add("textVisible")},iT))}}function dc(){if(ie&&(clearTimeout(ie),ie=null),!R.classList.contains("visible"))return;R.classList.add("dismissing");let w=()=>{R.classList.remove("visible","dismissing"),R.removeEventListener("animationend",w)};R.addEventListener("animationend",w),Je&&(clearTimeout(Je),Je=null)}function py(w){r=w||void 0,r?Nn.textContent=`Hey ${r}! What can I help with?`:Nn.textContent=`What can ${t} help you with?`}function hy(w){if(!w||!Array.isArray(w.questions))return[];let B=[],J=new Set;for(let V=0;V<w.questions.length;V+=1){let Z=w.questions[V];if(!Z||typeof Z!="object")continue;let Ee=String(Z.key||Z.id||"").trim()||`clarification_${V+1}`,ke=String(Z.query||Z.question||"").trim();if(!ke)continue;let nt=typeof Z.required=="boolean",Ct=typeof Z.optional=="boolean",pt=nt?!!Z.required:Ct?!Z.optional:!0;J.has(Ee)||(J.add(Ee),B.push({key:Ee,query:ke,...typeof Z.id=="string"&&Z.id.trim()?{id:Z.id.trim()}:{},...typeof Z.question=="string"&&Z.question.trim()?{question:Z.question.trim()}:{},...Array.isArray(Z.choices)?{choices:Z.choices}:{},required:pt}))}return B.slice(0,6)}function gy(w){return w.map(B=>{let J=Array.isArray(B.choices)?B.choices.map(Z=>Mt(String(Z||""))).filter(Boolean).join("|"):"",V=B.required===!1?"optional":"required";return`${B.key}::${Mt(B.query)}::${J}::${V}`}).join("||")}function by(w){let B=Mt(w.query||w.question||"");if(!B)return`Answer for ${w.key}`;let J=B.replace(/\s+/g," ").replace(/[?.!:\s]+$/,"").slice(0,72);return J?`Answer: ${J}`:`Answer for ${w.key}`}function _u(w){for(let B of Array.from(un.querySelectorAll(".questionPromptInput"))){let J=B;if(J.dataset.key===w)return J}return null}function Mm(w){let B=hy(w),J=document.activeElement,V=J instanceof HTMLInputElement&&J.classList.contains("questionPromptInput")&&tn.contains(J)?J:null,Z=V?.dataset.key,Ee=V?.selectionStart??null,ke=V?.selectionEnd??null;if(!B.length){de=null,$e=null,yt={},dn.innerHTML="",tn.classList.remove("visible"),La();return}let nt=gy(B),Ct=nt!==$e||!de;if(de={questions:B},Ct){let pt=yt;yt={},dn.innerHTML="";for(let wt of de.questions){let Xt=document.createElement("label");Xt.className="questionPromptItem";let Dn=document.createElement("span");Dn.className="questionPromptLabel",Dn.textContent=wt.required===!1?`${wt.query} (optional)`:wt.query,Xt.appendChild(Dn);let On=document.createElement("input");On.type="text",On.className="questionPromptInput",On.dataset.key=wt.key,On.placeholder=by(wt),On.required=wt.required!==!1;let ko=String(pt[wt.key]||"");yt[wt.key]=ko,On.value=ko,On.addEventListener("input",()=>{yt[wt.key]=On.value,On.classList.remove("invalid")}),Xt.appendChild(On),dn.appendChild(Xt)}$e=nt}if(tn.classList.add("visible"),Nm(),La(),Z){let pt=_u(Z);if(pt){if(pt.focus(),Ee!==null||ke!==null){let wt=Ee??pt.value.length,Xt=ke??wt;try{pt.setSelectionRange(wt,Xt)}catch{}}return}}if(Ct){let wt=de.questions.find(On=>!Mt(yt[On.key]||""))?.key||de.questions[0]?.key;if(!wt)return;let Xt=_u(wt),Dn=!J||J===document.body||!N.contains(J);Xt&&Dn&&Xt.focus()}}function fc(){ue&&ne?(tt.classList.add("visible"),Ue.appendChild(tt),Iu()):tt.classList.remove("visible")}function bo(w,B=0){u.dataset.mood=w,xe!=null&&(window.clearTimeout(xe),xe=null),B>0&&w!=="idle"&&(xe=window.setTimeout(()=>{u.dataset.mood="idle",fc(),xe=null},B))}function ky(){return Ue.scrollHeight-Ue.scrollTop-Ue.clientHeight<60}function Iu(){Be?Kt.classList.add("visible"):(requestAnimationFrame(()=>{Ue.scrollTo({top:Ue.scrollHeight,behavior:"smooth"}),We=Date.now()}),Kt.classList.remove("visible"))}Ue.addEventListener("scroll",()=>{Date.now()-We<200||(ky()?(Be=!1,Kt.classList.remove("visible")):(Be=!0,Kt.classList.add("visible")))},{passive:!0}),Kt.addEventListener("click",()=>{Be=!1,We=Date.now(),Ue.scrollTo({top:Ue.scrollHeight,behavior:"smooth"}),Kt.classList.remove("visible")});function Nm(){let w=fe==="observer"&&!De;S.disabled=w,wn.disabled=w,Ln.disabled=w,ge.disabled=w;for(let B of Array.from(un.querySelectorAll(".questionPromptInput")))B.disabled=w;w&&Fe==="listening"&&Tr("disabled"),pn()}function Eu(w){if(mt=w,u.dataset.showDetails=w?"true":"false",Zt.textContent=mt?"Collapse":`Show all (${oe.length})`,mt)for(let B of oe){B.style.display="";let J=B.dataset.status,V=J==="success"||J==="error"||J==="info";B.classList.toggle("compact",!1)}else for(let B=0;B<oe.length;B++){let J=oe[B],V=B>=oe.length-2;J.style.display=V?"":"none";let Z=J.dataset.status,Ee=Z==="success"||Z==="error"||Z==="info";J.classList.toggle("compact",Ee)}}function mc(){vr(),u.style.display="",N.classList.remove("closing"),N.classList.add("open"),dc(),bo("idle"),e.onOpen?.(),S.disabled||S.focus()}function Da(){if(Na(),!N.classList.contains("open")){e.onClose?.();return}N.classList.remove("open"),N.classList.add("closing"),bo("idle");let w=()=>{N.classList.remove("closing"),N.removeEventListener("animationend",w)};N.addEventListener("animationend",w),e.onClose?.()}function yy(){vr(),u.style.display=""}function vy(){Da(),u.style.display="none"}function wy(w,B,J){let V=Mt(B),Z=J?.blocks;if(!V&&(!Z||Z.length===0))return;let Ee=document.createElement("div");Ee.className=`entry message ${w}`;let ke=document.createElement("div");ke.className="bubble",w==="assistant"?ke.appendChild(BT(V,Z)):ke.textContent=V;let nt=document.createElement("div");nt.className="stamp",nt.textContent=Id(Date.now()),Ee.appendChild(ke),Ee.appendChild(nt),Ue.appendChild(Ee),w==="assistant"&&ue&&ne&&(ne=!1,fc()),me=!0,La(),w==="user"?bo("typing",1200):w==="assistant"?bo("success",1400):bo("running",900),Iu()}function xy(){for(let w of Array.from(Ue.querySelectorAll(".entry.message")))w.remove();me=!1,Mm(void 0),La()}function Lm(w){let B=G.get(w);if(B)return B;let J=document.createElement("div");J.className="entry trace pending";let V=document.createElement("div");V.className="traceTop";let Z=document.createElement("div");Z.className="traceMeta";let Ee=document.createElement("span");Ee.className="traceStage",Ee.textContent="step";let ke=document.createElement("div");ke.className="traceTitle";let nt=document.createElement("div");nt.className="traceTs",Z.appendChild(Ee),Z.appendChild(ke),V.appendChild(Z),V.appendChild(nt);let Ct=document.createElement("div");return Ct.className="traceDetail",J.appendChild(V),J.appendChild(Ct),G.set(w,J),oe.push(J),Ue.appendChild(J),J}function Ty(w,B){let J=Number(B.ts)||Date.now(),V=vT(B),Z=w.querySelector(".traceTop"),ke=Z.querySelector(".traceMeta").querySelector(".traceStage"),nt=Z.querySelector(".traceTitle"),Ct=Z.querySelector(".traceTs"),pt=w.querySelector(".traceDetail"),wt=bg(B.title||"");nt.textContent=wt.plainTitle||"Step",ke.textContent=wt.stage||B.kind||"step",ke.style.display=wt.stage||B.kind==="status"||B.kind==="plan"||B.kind==="thought"?"":"none",Ct.textContent=Id(J),pt.innerHTML="";let Xt=Array.isArray(B.detailBlocks)?B.detailBlocks:[],Dn=Mt(B.detail||"");if(Xt.length>0){for(let ko of Xt){let Bm=yg(ko);Bm&&pt.appendChild(Bm)}if(Dn){let ko=document.createElement("div");ko.className="rvLine",ko.appendChild(Rr(Dn)),pt.insertBefore(ko,pt.firstChild)}pt.style.display=""}else if(Dn){let ko=B.kind==="thought"?oT:B.kind==="tool_start"||B.kind==="tool_result"?rT:ei;Dn.length>ko?pt.appendChild(fl(Dn,ko)):pt.appendChild(Rr(Dn)),pt.style.display=""}else pt.style.display="none";w.classList.remove("pending","success","error","info"),w.classList.add(V),w.dataset.status=V,w.dataset.kind=B.kind,w.dataset.visibility=CT(B);let On=V==="success"||V==="error"||V==="info";w.classList.toggle("compact",!mt&&On),V==="error"?bo("error",2200):V==="success"?bo("success",1200):V==="pending"&&bo("running",800)}function _y(w){let B=Mt(w.title||"");if(!B||B.toLowerCase()==="assistant update")return;let J=w.id||hg("timeline");if(w.id&&W.has(J))return;W.add(J);let V=wT(w),Z=V==="run"||V.startsWith("tool:")||w.kind==="tool_result"||w.kind==="status"&&G.has(V),Ee=Lm(Z?V:`${V}:${J}`);Ty(Ee,{...w,title:B}),w.kind==="thought"&&ue&&ne&&(ne=!1,fc()),B.toLowerCase()==="run completed"&&Eu(!1);let ke=oe.length;if(vn.textContent=`${ke} step${ke!==1?"s":""}`,Jt.classList.toggle("visible",ke>0),!mt){Zt.textContent=`Show all (${ke})`;for(let nt=0;nt<oe.length;nt++){let Ct=oe[nt],pt=nt>=oe.length-2;Ct.style.display=pt?"":"none"}}Iu()}function Iy(){W.clear(),G.clear(),oe.length=0;for(let w of Array.from(Ue.querySelectorAll(".entry.trace")))w.remove();Jt.classList.remove("visible"),vn.textContent="0 steps"}function Oa(w){let B=!!w?.visible;en.classList.toggle("visible",B),j.textContent=w?.text||"Looks like a new request. Start a new task?",F.textContent=w?.primaryLabel||"Start new",q.textContent=w?.secondaryLabel||"Continue"}function Ey(w){let B=String(w||"ready");ft.textContent=B;let J=B.toLowerCase();J.includes("error")||J.includes("failed")?bo("error",1800):J==="ready"||J.includes("complete")?bo("idle"):bo("running",1e3)}function Sy(w){ue=w,w?ne=!0:ne=!1,fc(),Ie.classList.toggle("visible",w),jt.style.display=w?"none":"",Ge.style.display=w?"none":"",ut.classList.toggle("active",w),La()}function Dm(w,B){fe=w,De=w==="observer"?B?.canComposeInObserver===!0:!0,Nm(),Ae.classList.remove("controller","observer"),Ae.classList.add(w),w==="controller"?(Ae.textContent="active",Qt.style.display="none",S.placeholder=`Ask ${t} to act on this website...`):(Ae.textContent="observer",B?.canTakeControl!==!1?Qt.style.display="":Qt.style.display="none",B?.note?S.placeholder=B.note:De?S.placeholder="Send to take control and run here.":B?.activeLogicalTabId&&B?.localLogicalTabId&&B.activeLogicalTabId!==B.localLogicalTabId?S.placeholder=`Observing: ${t} is acting in tab #${B.activeLogicalTabId}`:S.placeholder="Observer mode. Take control to run actions here.")}function Ry(){xe!=null&&(window.clearTimeout(xe),xe=null),xr(),go.dispose(),ie&&(window.clearTimeout(ie),ie=null),Je&&(window.clearTimeout(Je),Je=null),pc(),window.removeEventListener("resize",wr),window.removeEventListener("orientationchange",wr),window.visualViewport?.removeEventListener("resize",wr),window.visualViewport?.removeEventListener("scroll",wr),document.removeEventListener("keydown",Om),d.remove(),s.remove()}b.addEventListener("click",()=>{N.classList.contains("open")?Da():mc()}),M.addEventListener("click",w=>{w.stopPropagation(),dc()}),R.addEventListener("click",()=>{dc(),mc()}),zt.addEventListener("click",()=>Da()),Xe.addEventListener("click",()=>{sy()}),Ge.addEventListener("click",w=>{w.stopPropagation(),fy()}),u.addEventListener("click",w=>{Pe&&!Rt.contains(w.target)&&w.target!==Ge&&Na()}),no.addEventListener("click",()=>{Na(),ue&&e.onCancelRun?(He="new_task",Oa({visible:!0,text:"A task is in progress. Cancel it and start new?",primaryLabel:"Cancel & start new",secondaryLabel:"Keep running"})):e.onNewTask?.()}),Cn.addEventListener("click",()=>{Na(),ue&&e.onCancelRun?(He="end_task",Oa({visible:!0,text:"A task is in progress. Cancel and end it?",primaryLabel:"Cancel & end",secondaryLabel:"Keep running"})):e.onEndTask?.()}),Qt.addEventListener("click",()=>{Na(),e.onRequestControl?.()}),Ie.addEventListener("click",()=>{e.onCancelRun?.()}),Zt.addEventListener("click",()=>{Eu(!mt)}),F.addEventListener("click",()=>{if(He){let w=He;He=null,Oa({visible:!1}),e.onCancelRun?.(),w==="new_task"?e.onNewTask?.():w==="end_task"&&e.onEndTask?.();return}e.onTaskSuggestionPrimary?.()}),q.addEventListener("click",()=>{if(He){He=null,Oa({visible:!1});return}e.onTaskSuggestionSecondary?.()}),S.addEventListener("input",()=>{Fe==="listening"&&Tr("typed"),S.style.height="auto",S.style.height=`${Math.min(96,Math.max(44,S.scrollHeight))}px`}),wn.addEventListener("click",()=>{if(!S.disabled){if(Fe==="listening"){Tr("manual");return}dy()}}),un.addEventListener("submit",w=>{if(w.preventDefault(),S.disabled||!de?.questions?.length)return;let B={},J=[],V=null;for(let ke of de.questions){let nt=_u(ke.key);if(!nt)continue;let Ct=Mt(nt.value),pt=ke.required!==!1;if(!Ct&&pt){nt.classList.add("invalid"),V||(V=nt);continue}if(!Ct){nt.classList.remove("invalid"),delete yt[ke.key],J.push(`${ke.key}: (no answer provided)`);continue}nt.classList.remove("invalid"),yt[ke.key]=Ct,B[ke.key]=Ct,J.push(`${ke.key}: ${Ct}`)}if(V){V.focus();return}let Z=de.questions.map(ke=>ke.key),Ee=J.length?J.join(`
2095
2095
  `):Z.map(ke=>`${ke}: (no answer provided)`).join(`
2096
- `);e.onSend(Ie,{askUserAnswers:{answersByKey:B,rawText:Ie,keys:Z}})}),Nn.addEventListener("click",()=>{if(!S.disabled){if(e.onCancelQuestionFlow){e.onCancelQuestionFlow();return}e.onCancelRun?.()}}),S.addEventListener("keydown",w=>{w.key==="Enter"&&!w.shiftKey&&!w.isComposing&&(w.preventDefault(),kt.requestSubmit())}),kt.addEventListener("submit",w=>{if(w.preventDefault(),!S.disabled){if(Fe==="listening"){br=!0,wr("submit");return}xm()}}),c.addEventListener("keydown",w=>{let B=w;B.key==="Escape"&&N.classList.contains("open")&&(B.stopPropagation(),Na())});let Cm=w=>{w.code==="Period"&&w.shiftKey&&(w.metaKey||w.ctrlKey)&&(w.preventDefault(),w.stopPropagation(),N.classList.contains("open")?Na():dc())};document.addEventListener("keydown",Cm);let Eu=w=>{if(!vt||!a)return;if(vt.kind==="desktop"){let J=vt.startX-w.clientX,V=w.clientY-vt.startY,Z=Er(Math.round(vt.startW+J),Ya,vt.maxW),Ie=Er(Math.round(vt.startH+V),Qa,vt.maxH);ze={width:Z,height:Ie},N.style.width=`${Z}px`,N.style.height=`${Ie}px`,gm();return}let B=Er(Math.round(vt.startHeight+(vt.startY-w.clientY)),Math.min(...vt.presets),Math.max(...vt.presets));rn=B,N.style.height=`${B}px`};function fc(){if(vt?.kind==="desktop")ku(ze);else if(vt?.kind==="sheet"){let w=rn??vt.startHeight;et=mT(w,vt.presets),mm(Ye.storageKey,et),rn=null}vt=null,window.removeEventListener("pointermove",Eu),window.removeEventListener("pointerup",fc),kr()}if(Wn.addEventListener("pointerdown",w=>{!a||Ye.layout!=="desktop"||(w.preventDefault(),vt={kind:"desktop",startX:w.clientX,startY:w.clientY,startW:N.getBoundingClientRect().width,startH:N.getBoundingClientRect().height,maxW:Math.max(Ya,Math.min(cl,Ye.width-sa)),maxH:Math.max(Qa,Ye.height-sa)},window.addEventListener("pointermove",Eu),window.addEventListener("pointerup",fc))}),Wn.addEventListener("dblclick",w=>{!a||Ye.layout!=="desktop"||(w.preventDefault(),Gk())}),Jo.addEventListener("pointerdown",w=>{if(!a||Ye.layout==="desktop")return;w.preventDefault();let B=ag(Ye);rn=B[et],vt={kind:"sheet",startY:w.clientY,startHeight:rn,presets:B},window.addEventListener("pointermove",Eu),window.addEventListener("pointerup",fc)}),window.addEventListener("resize",yr),window.addEventListener("orientationchange",yr),window.visualViewport?.addEventListener("resize",yr),window.visualViewport?.addEventListener("scroll",yr),g){let w=()=>{g.style.display="none",y.style.display="grid"};g.addEventListener("error",w,{once:!0}),y.style.display="none"}if(re){let w=()=>{re.style.display="none",le.style.display="grid"};re.addEventListener("error",w,{once:!0}),le.style.display="none"}kr(),Am("controller"),Tm(ct),_u(!1),ye.length>0&&Em(ye);let fS="",mS=new Map;function gy(w){}let Iu=!1;function by(){Iu=!0,T.classList.add("open")}function mc(){Iu=!1,T.classList.remove("open")}jt.addEventListener("click",w=>{w.stopPropagation(),Iu?mc():by()}),v.addEventListener("click",()=>mc()),x.addEventListener("click",()=>{mc(),e.onNewTask?.()});let Mm="";function ky(w){let B=w.map(V=>`${V.id}|${V.summary}|${V.status}|${V.updatedAt}|${V.isActive}`).join(";;");if(B===Mm)return;Mm=B;let J=w.find(V=>V.isActive);if(J){let V=J.summary.length>40?J.summary.slice(0,40)+"...":J.summary;mr.textContent=V||"Current task"}else mr.textContent="Current task";mn.style.display=w.length>1?"flex":"none",k.innerHTML="";for(let V of w){let Z=document.createElement("div");Z.className=`conversationItem ${V.status}${V.isActive?" active":""}`,Z.dataset.id=V.id;let Ie=document.createElement("span");Ie.className="conversationDot";let ke=document.createElement("div");ke.className="conversationContent";let nt=document.createElement("div");nt.className="conversationSummary",nt.textContent=V.summary.length>60?V.summary.slice(0,60)+"...":V.summary;let Ct=document.createElement("div");Ct.className="conversationMeta";let pt=V.status==="running"?"Running":V.status==="paused"?"Paused":V.status==="completed"?"Done":V.status;Ct.textContent=`${pt} \xB7 ${Td(V.updatedAt)}`,ke.appendChild(nt),ke.appendChild(Ct);let wt=document.createElement("div");wt.className="conversationActions";let Xt=document.createElement("button");Xt.type="button",Xt.className="conversationDeleteBtn",Xt.textContent="\xD7",Xt.addEventListener("click",Ln=>{Ln.stopPropagation(),e.onDeleteConversation?.(V.id)}),wt.appendChild(Xt),Z.appendChild(Ie),Z.appendChild(ke),Z.appendChild(wt),Z.addEventListener("click",()=>{mc(),e.onSwitchConversation?.(V.id)}),k.appendChild(Z)}}function yy(w){k.querySelectorAll(".conversationItem").forEach(J=>{J.dataset.id===w?J.classList.add("active"):J.classList.remove("active")})}function vy(w){m=w.taskId;let B=w.rootUserInput.length>50?w.rootUserInput.slice(0,50)+"...":w.rootUserInput;$n.innerHTML="";let J=document.createElement("span");J.className="pausedTaskText",J.textContent=`Paused: "${B}"`;let V=document.createElement("div");V.className="pausedTaskActions";let Z=document.createElement("button");Z.type="button",Z.className="pausedTaskResumeBtn",Z.textContent="Resume",Z.addEventListener("click",()=>e.onResumeTask?.(m));let Ie=document.createElement("button");Ie.type="button",Ie.className="pausedTaskCancelBtn",Ie.textContent="Cancel",Ie.addEventListener("click",()=>e.onCancelPausedTask?.(m)),V.appendChild(Z),V.appendChild(Ie),$n.appendChild(J),$n.appendChild(V),$n.classList.add("visible")}function wy(){m="",$n.classList.remove("visible")}function xy(){return Ue.scrollTop}function Ty(w){requestAnimationFrame(()=>{Ue.scrollTop=w})}return{addMessage:cy,setQuestionPrompt:Im,clearMessages:ly,addTimelineEvent:dy,clearTimeline:fy,setTaskSuggestion:La,setStatus:my,setRunning:py,setExecutionMode:Am,setShortcuts:Em,showGreeting:ey,dismissGreeting:lc,setVisitorName:ty,setVoiceConfig:Tm,open:dc,close:Na,show:iy,hide:sy,destroy:hy,setTabs:gy,setConversations:ky,setActiveConversationId:yy,getScrollPosition:xy,setScrollPosition:Ty,showPausedTaskBanner:vy,hidePausedTaskBanner:wy}}var gg=3,ET="rover:shared:",IT="rover:channel:",Id=2*6e4,pg=9e4,Sd=45e3,Rd=2e4,ST=45e3;function ce(){return Date.now()}function Ho(e){try{return`${e}-${crypto.randomUUID()}`}catch{return`${e}-${Date.now()}-${Math.floor(Math.random()*1e5)}`}}function fl(e){let t=String(e||"").trim();if(!t)return"";try{return new URL(t,window.location.href).toString()}catch{return t}}function bg(e){if(!e||typeof e!="object")return;let t=typeof e.taskId=="string"?e.taskId.trim():"";if(!t)return;let n=e.status==="completed"||e.status==="cancelled"||e.status==="failed"||e.status==="ended"||e.status==="running"?e.status:"running";return{taskId:t,status:n,startedAt:Number(e.startedAt)||ce(),lastUserAt:Number(e.lastUserAt)||void 0,lastAssistantAt:Number(e.lastAssistantAt)||void 0,boundaryReason:typeof e.boundaryReason=="string"?e.boundaryReason:void 0,endedAt:Number(e.endedAt)||void 0}}function kg(e){return e==="completed"?"completed":e==="cancelled"||e==="ended"?"cancelled":e==="failed"?"failed":"running"}function pl(e){if(!Array.isArray(e))return[];let t=[];for(let n of e.slice(-4)){let o=n?.role==="user"?"user":n?.role==="model"?"model":void 0;if(!o)continue;let r=String(n?.message||"").replace(/\s+/g," ").trim();if(!r)continue;let a=t[t.length-1];a&&a.role===o&&a.message===r||t.push({role:o,message:r})}return t}function cs(e,t){if(!e)return;let n=typeof e=="string"?e:e?.text,o=String(n||"").trim();if(!o)return;let r=typeof e?.runId=="string"&&e.runId.trim()?e.runId.trim():typeof t?.runId=="string"&&t.runId.trim()?t.runId.trim():void 0,a=typeof e?.taskId=="string"&&e.taskId.trim()?e.taskId.trim():typeof t?.taskId=="string"&&t.taskId.trim()?t.taskId.trim():void 0;return{text:o,ts:Number(e?.ts)||ce(),runId:r,taskId:a,stage:typeof e?.stage=="string"&&e.stage.trim()?e.stage.trim():void 0}}function yg(e){return Array.isArray(e)?e.slice(-Tt.uiMessages).map(t=>({id:String(t?.id||Ho("msg")),role:t?.role==="user"||t?.role==="assistant"||t?.role==="system"?t.role:"system",text:String(t?.text||""),blocks:ti(t?.blocks),ts:Number(t?.ts)||ce(),sourceRuntimeId:typeof t?.sourceRuntimeId=="string"?t.sourceRuntimeId:void 0})).filter(t=>!!t.text||!!t.blocks?.length):[]}function vg(e){return Array.isArray(e)?e.slice(-Tt.timelineEvents).map(t=>({id:String(t?.id||Ho("timeline")),kind:String(t?.kind||"status"),title:String(t?.title||"Step"),detail:typeof t?.detail=="string"?t.detail:void 0,detailBlocks:ti(t?.detailBlocks),status:t?.status==="pending"||t?.status==="success"||t?.status==="error"||t?.status==="info"?t.status:void 0,ts:Number(t?.ts)||ce(),sourceRuntimeId:typeof t?.sourceRuntimeId=="string"?t.sourceRuntimeId:void 0})).filter(t=>!!t.title):[]}var RT=new Set(["idle","running","awaiting_user","paused","blocked","completed","failed","cancelled"]);function AT(e){if(!e||typeof e!="object")return;let t=typeof e.taskId=="string"?e.taskId.trim():"";if(!t)return;let n=RT.has(e.state)?e.state:"running";return{taskId:t,state:n,startedAt:Number(e.startedAt)||ce(),endedAt:Number(e.endedAt)||void 0,activeRun:e.activeRun&&typeof e.activeRun=="object"&&e.activeRun.runId?{runId:String(e.activeRun.runId),text:String(e.activeRun.text||""),runtimeId:String(e.activeRun.runtimeId||""),startedAt:Number(e.activeRun.startedAt)||ce(),updatedAt:Number(e.activeRun.updatedAt)||ce()}:void 0,workerContext:hl(e.workerContext),uiMessages:Array.isArray(e.uiMessages)?e.uiMessages.slice(-Tt.uiMessages).map(o=>({id:String(o?.id||Ho("msg")),role:o?.role==="user"||o?.role==="assistant"||o?.role==="system"?o.role:"system",text:String(o?.text||""),blocks:ti(o?.blocks),ts:Number(o?.ts)||ce(),sourceRuntimeId:typeof o?.sourceRuntimeId=="string"?o.sourceRuntimeId:void 0})).filter(o=>!!o.text||!!o.blocks?.length):[],timeline:Array.isArray(e.timeline)?e.timeline.slice(-Tt.timelineEvents).map(o=>({id:String(o?.id||Ho("timeline")),kind:String(o?.kind||"status"),title:String(o?.title||"Step"),detail:typeof o?.detail=="string"?o.detail:void 0,detailBlocks:ti(o?.detailBlocks),status:o?.status==="pending"||o?.status==="success"||o?.status==="error"||o?.status==="info"?o.status:void 0,ts:Number(o?.ts)||ce(),sourceRuntimeId:typeof o?.sourceRuntimeId=="string"?o.sourceRuntimeId:void 0})).filter(o=>!!o.title):[],rootUserInput:typeof e.rootUserInput=="string"?e.rootUserInput:void 0,summary:typeof e.summary=="string"?e.summary:void 0,seedChatLog:pl(e.seedChatLog),transientStatus:cs(e.transientStatus,{runId:e.activeRun?.runId,taskId:t})}}function CT(e){if(!e||typeof e!="object")return;let t={},n=0;for(let o of Object.keys(e)){if(n>=20)break;let r=AT(e[o]);r&&(t[r.taskId]=r,n++)}return Object.keys(t).length>0?t:void 0}function wg(e){if(e==null||typeof e=="string"||typeof e=="number"||typeof e=="boolean")return e;try{return structuredClone(e)}catch{try{return JSON.parse(JSON.stringify(e))}catch{return}}}function ti(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(!n||typeof n!="object")continue;let o=n.type;if(o==="text"){let r=String(n.text||"");if(!r)continue;t.push({type:"text",text:r});continue}if(o==="tool_output"||o==="json"){let r=wg(n.data);t.push({type:o,data:r,label:typeof n.label=="string"?n.label:void 0,toolName:typeof n.toolName=="string"?n.toolName:void 0})}}return t.length?t:void 0}function hg(e,t){if(!Array.isArray(e))return[];let n=e.length<=t?e:[e[0],...e.slice(-(t-1))],o=[];for(let r of n){let a=wg(r);a!==void 0&&o.push(a)}return o}function hl(e){if(!e||typeof e!="object")return;let t=Array.isArray(e.pendingAskUser?.questions)?e.pendingAskUser.questions.map((d,f)=>{let u=String(d?.key||d?.id||"").trim()||`clarification_${f+1}`,b=String(d?.query||d?.question||"").trim();if(b)return{key:u,query:b,id:typeof d?.id=="string"?d.id:void 0,question:typeof d?.question=="string"?d.question:void 0,choices:Array.isArray(d?.choices)?d.choices:void 0}}).filter(d=>!!d).slice(0,6):[],n=e.pendingAskUser?.stepRef,o=n&&Number.isFinite(Number(n.stepIndex))&&Number(n.stepIndex)>=0&&Number.isFinite(Number(n.functionIndex))&&Number(n.functionIndex)>=0?{stepIndex:Number(n.stepIndex),functionIndex:Number(n.functionIndex),...typeof n.accTreeId=="string"&&n.accTreeId.trim()?{accTreeId:n.accTreeId.trim()}:{}}:void 0,r=d=>d.slice(-Tt.uiMessages).map(f=>({role:typeof f?.role=="string"?f.role:"assistant",content:typeof f?.content=="string"?f.content:""})).filter(f=>!!f.content),a=Array.isArray(e.history)?r(e.history):[],i=hg(e.plannerHistory,Tt.plannerHistory),s=hg(e.agentPrevSteps,Tt.prevSteps),c=typeof e.rootUserInput=="string"?e.rootUserInput.trim():"";return{trajectoryId:typeof e.trajectoryId=="string"?e.trajectoryId:void 0,taskBoundaryId:typeof e.taskBoundaryId=="string"&&e.taskBoundaryId.trim()?e.taskBoundaryId.trim():void 0,rootUserInput:c||void 0,seedChatLog:pl(e.seedChatLog),history:a,plannerHistory:i,agentPrevSteps:s,pendingAskUser:t.length?{questions:t,source:e.pendingAskUser?.source==="planner"?"planner":"act",askedAt:Number(e.pendingAskUser?.askedAt)||ce(),boundaryId:typeof e.pendingAskUser?.boundaryId=="string"&&e.pendingAskUser.boundaryId.trim()?e.pendingAskUser.boundaryId.trim():void 0,...o?{stepRef:o}:{}}:void 0,updatedAt:Number(e.updatedAt)||ce()}}function Ad(e,t){return{version:gg,siteId:e,sessionId:t,seq:1,updatedAt:ce(),lease:void 0,tabs:[],nextLogicalTabId:1,activeLogicalTabId:void 0,uiMessages:[],timeline:[],uiStatus:void 0,transientStatus:void 0,activeRun:void 0,taskEpoch:1,task:void 0,workerContext:void 0,workflowLock:void 0,tasks:void 0,activeTaskId:void 0}}function Za(e,t,n){let o=Ad(t,n);if(!e||typeof e!="object")return o;let r={...o,version:gg,siteId:t,sessionId:n,seq:Math.max(1,Number(e.seq)||1),updatedAt:Number(e.updatedAt)||ce(),tabs:Array.isArray(e.tabs)?e.tabs.map(s=>({logicalTabId:Math.max(1,Number(s?.logicalTabId)||0),runtimeId:typeof s?.runtimeId=="string"?s.runtimeId:void 0,url:String(s?.url||""),title:typeof s?.title=="string"?s.title:void 0,openedAt:Number(s?.openedAt)||ce(),updatedAt:Number(s?.updatedAt)||ce(),external:!!s?.external,openerRuntimeId:typeof s?.openerRuntimeId=="string"?s.openerRuntimeId:void 0,detachedAt:Number(s?.detachedAt)||void 0,detachedReason:s?.detachedReason==="navigation_handoff"||s?.detachedReason==="tab_close"||s?.detachedReason==="opened_pending_attach"||s?.detachedReason==="unknown"?s.detachedReason:void 0,handoffId:typeof s?.handoffId=="string"?s.handoffId:void 0,handoffRunId:typeof s?.handoffRunId=="string"?s.handoffRunId:void 0,handoffTargetUrl:typeof s?.handoffTargetUrl=="string"?s.handoffTargetUrl:void 0,handoffCreatedAt:Number(s?.handoffCreatedAt)||void 0})).filter(s=>!!s.logicalTabId):[],nextLogicalTabId:Math.max(1,Number(e.nextLogicalTabId)||1),activeLogicalTabId:Number(e.activeLogicalTabId)||void 0,uiMessages:yg(e.uiMessages),timeline:vg(e.timeline),taskEpoch:Math.max(1,Number(e.taskEpoch)||1),task:bg(e.task),workerContext:hl(e.workerContext),uiStatus:typeof e.uiStatus=="string"?e.uiStatus:void 0,transientStatus:cs(e.transientStatus??e.uiStatus,{runId:e.activeRun?.runId,taskId:e.task?.taskId}),activeRun:e.activeRun&&typeof e.activeRun=="object"?{runId:String(e.activeRun.runId||""),text:String(e.activeRun.text||""),runtimeId:String(e.activeRun.runtimeId||""),startedAt:Number(e.activeRun.startedAt)||ce(),updatedAt:Number(e.activeRun.updatedAt)||ce()}:void 0,lease:e.lease&&typeof e.lease=="object"&&e.lease.holderRuntimeId?{holderRuntimeId:String(e.lease.holderRuntimeId),expiresAt:Number(e.lease.expiresAt)||0,updatedAt:Number(e.lease.updatedAt)||ce()}:void 0,workflowLock:e.workflowLock&&typeof e.workflowLock=="object"&&e.workflowLock.runtimeId&&e.workflowLock.runId?{runtimeId:String(e.workflowLock.runtimeId),runId:String(e.workflowLock.runId),lockedAt:Number(e.workflowLock.lockedAt)||ce(),expiresAt:Number(e.workflowLock.expiresAt)||0}:void 0,tasks:e.tasks&&typeof e.tasks=="object"?CT(e.tasks):void 0,activeTaskId:typeof e.activeTaskId=="string"?e.activeTaskId:void 0},a=r.tabs.length,i=new Set;return r.tabs=r.tabs.filter(s=>i.has(s.logicalTabId)?!1:(i.add(s.logicalTabId),!0)),r.nextLogicalTabId<=(r.tabs.at(-1)?.logicalTabId??0)&&(r.nextLogicalTabId=r.tabs.reduce((s,c)=>Math.max(s,c.logicalTabId),0)+1),a>0&&r.tabs.length<a&&console.warn(`[rover] sanitizeSharedState: dropped ${a-r.tabs.length} invalid/duplicate tab entries`),Bn(r),r}function MT(e){let t=String(e.task?.taskId||e.activeTaskId||"").trim();if(!t)return;let n=Number(e.task?.startedAt)||ce();e.tasks||(e.tasks={});let o=e.tasks[t];if(o)return e.activeTaskId=t,o;let r={taskId:t,state:kg(e.task?.status),startedAt:n,endedAt:e.task?.endedAt,activeRun:e.activeRun,workerContext:e.workerContext,uiMessages:[...e.uiMessages],timeline:[...e.timeline],rootUserInput:e.workerContext?.rootUserInput,summary:void 0,seedChatLog:pl(e.workerContext?.seedChatLog),transientStatus:cs(e.transientStatus??e.uiStatus,{runId:e.activeRun?.runId,taskId:t})};return e.tasks[t]=r,e.activeTaskId=t,r}function Bn(e){let t=MT(e);if(!t)return;t.state=kg(e.task?.status),t.startedAt=Number(e.task?.startedAt)||t.startedAt||ce(),t.endedAt=Number(e.task?.endedAt)||void 0,t.activeRun=e.activeRun,t.workerContext=hl(e.workerContext),t.uiMessages=yg(e.uiMessages),t.timeline=vg(e.timeline),t.rootUserInput=e.workerContext?.rootUserInput||t.rootUserInput;let n=[...t.uiMessages].reverse().find(o=>o.role==="assistant");t.summary=n?.text||t.summary,t.seedChatLog=pl(e.workerContext?.seedChatLog),t.transientStatus=cs(e.transientStatus??e.uiStatus,{runId:e.activeRun?.runId,taskId:t.taskId})}var ei=class ei{constructor(t){P(this,"siteId");P(this,"sessionId");P(this,"runtimeId");P(this,"leaseMs");P(this,"workflowLockMs");P(this,"heartbeatMs");P(this,"maxMessages");P(this,"maxTimeline");P(this,"onRoleChange");P(this,"onStateChange");P(this,"onSwitchRequested");P(this,"onTaskTabsExhausted");P(this,"key");P(this,"channelName");P(this,"state");P(this,"taskTabMapping",new Map);P(this,"channel",null);P(this,"heartbeatTimer",null);P(this,"storageHandler",null);P(this,"localLogicalTabId");P(this,"closing",!1);P(this,"started",!1);P(this,"heartbeatCount",0);P(this,"lastNotifiedStateHash","");P(this,"pendingRpcRequests",new Map);P(this,"rpcRequestHandler");P(this,"lastNotifiedRole");P(this,"roleChangeTimer",null);P(this,"probeTimers",[]);P(this,"onSessionTokenReceived");P(this,"onProjectionReceived");P(this,"lastFullHeartbeatAt",0);this.siteId=t.siteId,this.sessionId=t.sessionId,this.runtimeId=t.runtimeId,this.leaseMs=Math.max(4e3,Number(t.leaseMs)||12e3),this.workflowLockMs=Math.max(3e4,Number(t.workflowLockMs)||18e4),this.heartbeatMs=Math.max(800,Number(t.heartbeatMs)||2e3),this.maxMessages=Math.max(20,Number(t.maxMessages)||Tt.uiMessages),this.maxTimeline=Math.max(20,Number(t.maxTimeline)||Tt.timelineEvents),this.onRoleChange=t.onRoleChange,this.onStateChange=t.onStateChange,this.onSwitchRequested=t.onSwitchRequested,this.onTaskTabsExhausted=t.onTaskTabsExhausted,this.key=`${ET}${this.siteId}:${this.sessionId}`,this.channelName=`${IT}${this.siteId}:${this.sessionId}`,this.state=this.loadState(),this.normalizeDraftTabs(this.state)}tabFreshnessTs(t){return Math.max(Number(t.updatedAt)||0,Number(t.openedAt)||0,Number(t.detachedAt)||0)}isBetterTabCandidate(t,n){if(!n)return!0;let o=this.tabFreshnessTs(t),r=this.tabFreshnessTs(n);return o!==r?o>r:!!t.runtimeId!=!!n.runtimeId?!!t.runtimeId:t.logicalTabId<n.logicalTabId}isRuntimeTabFresh(t,n){return t.runtimeId?t.runtimeId===this.runtimeId?!0:n-this.tabFreshnessTs(t)<=ST:!1}isTabVisibleInScope(t,n,o){return t.runtimeId?this.isRuntimeTabFresh(t,n):t.external?n-this.tabFreshnessTs(t)<=Id:t.detachedReason==="opened_pending_attach"?n-this.tabFreshnessTs(t)<=Rd:o==="context"?!1:t.detachedReason==="navigation_handoff"?n-this.tabFreshnessTs(t)<=Sd:n-this.tabFreshnessTs(t)<=pg}normalizeDraftTabs(t){let n=new Map;for(let p of t.tabs){if(!Number.isFinite(Number(p.logicalTabId))||Number(p.logicalTabId)<=0)continue;let g=n.get(p.logicalTabId);this.isBetterTabCandidate(p,g)&&n.set(p.logicalTabId,p)}let o=[],r=new Set;for(let p of t.tabs){if(r.has(p.logicalTabId))continue;let g=n.get(p.logicalTabId);g&&g===p&&(o.push(g),r.add(g.logicalTabId))}for(let[p,g]of n.entries())r.has(p)||(o.push(g),r.add(p));let a=new Map;for(let p of o){if(!p.runtimeId)continue;let g=a.get(p.runtimeId);this.isBetterTabCandidate(p,g)&&a.set(p.runtimeId,p)}if(t.tabs=o.filter(p=>!p.runtimeId||a.get(p.runtimeId)===p).sort((p,g)=>p.logicalTabId-g.logicalTabId),!t.tabs.length){t.activeLogicalTabId=void 0,t.nextLogicalTabId=1;return}let i=ce(),s=t.activeLogicalTabId?t.tabs.find(p=>p.logicalTabId===t.activeLogicalTabId):void 0,c=t.tabs.find(p=>p.runtimeId===this.runtimeId),f=[...t.tabs.filter(p=>this.isRuntimeTabFresh(p,i))].sort((p,g)=>this.tabFreshnessTs(g)-this.tabFreshnessTs(p))[0],u=s?.logicalTabId;s?(!s.runtimeId||!this.isRuntimeTabFresh(s,i))&&(u=c?.logicalTabId||f?.logicalTabId||s.logicalTabId):u=c?.logicalTabId||f?.logicalTabId||t.tabs[0]?.logicalTabId,t.activeLogicalTabId=u;let b=t.tabs.reduce((p,g)=>Math.max(p,g.logicalTabId),0);t.nextLogicalTabId=Math.max(Number(t.nextLogicalTabId)||1,b+1)}setTaskTabMapping(t){this.taskTabMapping=t}pruneDetachedTabs(t,n){let o=!!n?.dropRuntimeDetached,r=!!n?.dropAllDetachedExternal,a=!!n?.keepOnlyActiveLiveTab,i=!!n?.keepRecentExternalPlaceholders,s=ce(),c=new Map;if(this.onTaskTabsExhausted&&this.taskTabMapping.size>0)for(let d of t.tabs){let f=this.taskTabMapping.get(d.logicalTabId);if(f){let u=c.get(f);u||(u=new Set,c.set(f,u)),u.add(d.logicalTabId)}}if(t.tabs=t.tabs.filter(d=>{if(d.runtimeId)return this.isRuntimeTabFresh(d,s);if(o&&!d.external&&d.openerRuntimeId===this.runtimeId)return!1;if(d.external)return r?!1:s-this.tabFreshnessTs(d)<=Id;let f=s-this.tabFreshnessTs(d);return d.detachedReason==="navigation_handoff"?f<=Sd:d.detachedReason==="opened_pending_attach"?f<=Rd:f<=pg}),a){this.normalizeDraftTabs(t);let d=t.tabs.filter(g=>this.isRuntimeTabFresh(g,s)),f=d.find(g=>g.logicalTabId===t.activeLogicalTabId),u=d.find(g=>g.runtimeId===this.runtimeId),b=[...d].sort((g,y)=>this.tabFreshnessTs(y)-this.tabFreshnessTs(g))[0],p=f?.logicalTabId||u?.logicalTabId||b?.logicalTabId;t.tabs=t.tabs.filter(g=>g.runtimeId?!!p&&g.logicalTabId===p:g.external?i&&s-this.tabFreshnessTs(g)<=Id:!1),t.activeLogicalTabId=p||t.tabs.find(g=>g.runtimeId)?.logicalTabId||t.tabs[0]?.logicalTabId}if(this.normalizeDraftTabs(t),this.onTaskTabsExhausted&&c.size>0){let d=new Set(t.tabs.map(f=>f.logicalTabId));for(let[f,u]of c){let b=!1;for(let p of u)if(d.has(p)){b=!0;break}b||this.onTaskTabsExhausted(f)}}}resetDraftToSingleCurrentTab(t,n,o){let r=ce(),a=fl(n),i=t.tabs.find(c=>c.runtimeId===this.runtimeId),s=Number(i?.openedAt)||r;t.tabs=[{logicalTabId:1,runtimeId:this.runtimeId,url:a||i?.url||"",title:o||i?.title,openedAt:s,updatedAt:r,external:!1,detachedAt:void 0,detachedReason:void 0}],t.activeLogicalTabId=1,t.nextLogicalTabId=2,t.lease={holderRuntimeId:this.runtimeId,expiresAt:r+this.leaseMs,updatedAt:r}}start(t){this.started||(this.started=!0,this.mutate("local",n=>{this.pruneDetachedTabs(n,{dropRuntimeDetached:!0})}),this.registerCurrentTab(window.location.href,document.title||void 0,t),this.claimLease(!1),typeof BroadcastChannel<"u"&&(this.channel=new BroadcastChannel(this.channelName),this.channel.onmessage=n=>{let o=n.data;if(!(!o||typeof o!="object")){if(o.type==="state"&&o.state){let r=Za(o.state,this.siteId,this.sessionId);this.applyIncomingState(r)}o.type==="switch_request"&&o.targetRuntimeId===this.runtimeId&&this.onSwitchRequested?.(Number(o.logicalTabId)||0),o.type==="rpc_request"&&o.targetRuntimeId===this.runtimeId&&this.handleInboundRpcRequest(o),o.type==="rpc_response"&&o.targetRuntimeId===this.runtimeId&&this.handleInboundRpcResponse(o),o.type==="tab_navigated"&&o.runtimeId&&o.runtimeId!==this.runtimeId&&this.handleRemoteNavigation(o),o.type==="tab_closing"&&o.runtimeId&&o.runtimeId!==this.runtimeId&&this.handleRemoteTabClosing(o),o.type==="session_token"&&o.runtimeId!==this.runtimeId&&this.onSessionTokenReceived?.(o.token,o.expiresAt),o.type==="projection"&&o.runtimeId!==this.runtimeId&&this.onProjectionReceived?.(o.projection)}}),this.storageHandler=n=>{if(!(n.key!==this.key||!n.newValue))try{let o=Za(JSON.parse(n.newValue),this.siteId,this.sessionId);this.applyIncomingState(o)}catch{}},window.addEventListener("storage",this.storageHandler),this.heartbeatTimer=window.setInterval(()=>{this.heartbeat()},this.heartbeatMs),typeof this.heartbeatTimer?.unref=="function"&&this.heartbeatTimer.unref(),this.notifyRoleChange(),this.onStateChange?.(this.state,"local"))}stop(){this.heartbeatCount=0,this.heartbeatTimer!=null&&(window.clearInterval(this.heartbeatTimer),this.heartbeatTimer=null),this.roleChangeTimer!=null&&(window.clearTimeout(this.roleChangeTimer),this.roleChangeTimer=null),this.storageHandler&&(window.removeEventListener("storage",this.storageHandler),this.storageHandler=null),this.channel&&(this.channel.close(),this.channel=null);for(let[,t]of this.pendingRpcRequests)window.clearTimeout(t.timer),t.reject(new Error("SessionCoordinator stopped"));this.pendingRpcRequests.clear();for(let t of this.probeTimers)clearTimeout(t);this.probeTimers=[],this.started&&(this.started=!1,this.mutate("local",t=>{t.tabs=t.tabs.filter(n=>n.runtimeId!==this.runtimeId),t.lease?.holderRuntimeId===this.runtimeId&&(t.lease=void 0),t.activeLogicalTabId&&!t.tabs.some(n=>n.logicalTabId===t.activeLogicalTabId)&&(t.activeLogicalTabId=void 0)}))}isController(){let t=this.state.lease;return!t||t.expiresAt<=ce()?!1:t.holderRuntimeId===this.runtimeId}getRole(){return this.isController()?"controller":"observer"}getLocalLogicalTabId(){return this.localLogicalTabId}getActiveLogicalTabId(){return this.state.activeLogicalTabId}getCurrentHolderRuntimeId(){return this.state.lease?.holderRuntimeId}getState(){return this.state}getTaskEpoch(){return this.state.taskEpoch}getTask(){return this.state.task}getWorkerContext(){return this.state.workerContext}syncTask(t,n){this.mutate("local",o=>{n&&Number.isFinite(n)&&n>o.taskEpoch&&(o.taskEpoch=Math.max(1,Math.trunc(n))),t&&(o.task=bg(t)||o.task,Bn(o))})}hydrateExternalState(t){let n=Za(t,this.siteId,this.sessionId);this.pruneDetachedTabs(n,{dropRuntimeDetached:!0});let o=this.state.seq,r=this.state.updatedAt;this.applyIncomingState(n);let a=this.state.seq!==o||this.state.updatedAt!==r;if(!a&&this.state.tabs.some(s=>s.runtimeId?!1:s.external?!0:s.openerRuntimeId===this.runtimeId)){let s=this.state.tabs.length;this.mutate("local",c=>{this.pruneDetachedTabs(c,{dropRuntimeDetached:!0})}),a=this.state.tabs.length!==s}return a?(this.persistState(),this.localLogicalTabId||this.registerCurrentTab(window.location.href,document.title||void 0),!0):!1}listTabs(t){let n=t?.scope==="all"?"all":"context",o=ce();return this.state.tabs.filter(r=>this.isTabVisibleInScope(r,o,n))}pruneTabs(t){this.mutate("local",n=>{this.pruneDetachedTabs(n,t)})}resetTabsToCurrent(t,n){return this.mutate("local",o=>{this.resetDraftToSingleCurrentTab(o,t,n)}),this.notifyRoleChange(),this.localLogicalTabId||1}startNewTask(t){let n=Number(t.startedAt)||ce(),o={taskId:String(t.taskId||Ho("task")),status:t.status==="completed"||t.status==="cancelled"||t.status==="failed"||t.status==="ended"?t.status:"running",startedAt:n,lastUserAt:Number(t.lastUserAt)||n,lastAssistantAt:Number(t.lastAssistantAt)||void 0,boundaryReason:t.boundaryReason,endedAt:void 0};return this.mutate("local",r=>{r.taskEpoch=Math.max(1,Number(r.taskEpoch)||1)+1,r.task=o,r.uiMessages=[],r.timeline=[],r.uiStatus=void 0,r.transientStatus=void 0,r.activeRun=void 0,r.workerContext=void 0,this.resetDraftToSingleCurrentTab(r,window.location.href,document.title||void 0),Bn(r)}),o}endTask(t){let n;return this.mutate("local",o=>{o.task&&(o.task={...o.task,status:"ended",boundaryReason:t||o.task.boundaryReason,endedAt:ce()},o.activeRun=void 0,o.transientStatus=void 0,o.uiStatus=void 0,Bn(o),n=o.task)}),n}markTaskActivity(t,n=ce()){t!=="system"&&this.mutate("local",o=>{if(!o.task){o.task={taskId:Ho("task"),status:"running",startedAt:n,boundaryReason:"implicit",lastUserAt:t==="user"?n:void 0,lastAssistantAt:t==="assistant"?n:void 0};return}o.task.status==="running"&&(t==="user"&&(o.task.lastUserAt=n),t==="assistant"&&(o.task.lastAssistantAt=n),Bn(o))})}setWorkerContext(t){this.mutate("local",n=>{if(!t){n.workerContext=void 0,Bn(n);return}n.workerContext=hl(t),Bn(n)})}setStatus(t){this.mutate("local",n=>{let o=cs(t,{runId:n.activeRun?.runId,taskId:n.task?.taskId});n.uiStatus=o?.text,n.transientStatus=o,Bn(n)})}appendMessage(t){let n={id:t.id||Ho("msg"),role:t.role,text:String(t.text||""),blocks:ti(t.blocks),ts:Number(t.ts)||ce(),sourceRuntimeId:this.runtimeId};return this.mutate("local",o=>{o.uiMessages.push(n),o.uiMessages.length>this.maxMessages&&(o.uiMessages=o.uiMessages.slice(-this.maxMessages)),o.task||(o.task={taskId:Ho("task"),status:"running",startedAt:n.ts,boundaryReason:"implicit"}),n.role==="user"?o.task.lastUserAt=n.ts:n.role==="assistant"&&(o.task.lastAssistantAt=n.ts),Bn(o)}),n}appendTimeline(t){let n={id:t.id||Ho("timeline"),kind:String(t.kind||"status"),title:String(t.title||"Step"),detail:t.detail?String(t.detail):void 0,detailBlocks:ti(t.detailBlocks),status:t.status,ts:Number(t.ts)||ce(),sourceRuntimeId:this.runtimeId};return this.mutate("local",o=>{o.timeline.push(n),o.timeline.length>this.maxTimeline&&(o.timeline=o.timeline.slice(-this.maxTimeline)),Bn(o)}),n}clearTimeline(){this.mutate("local",t=>{t.timeline=[],Bn(t)})}setActiveRun(t){this.mutate("local",n=>{if(!t){n.activeRun=void 0,n.transientStatus=void 0,n.uiStatus=void 0,Bn(n);return}if(n.task&&n.task.status!=="running"){n.activeRun=void 0,Bn(n);return}n.activeRun={runId:t.runId,text:t.text,runtimeId:this.runtimeId,startedAt:n.activeRun?.runId===t.runId?n.activeRun.startedAt:ce(),updatedAt:ce()},Bn(n)})}requestControl(){return this.claimLease(!0)}registerCurrentTab(t,n,o){let r=fl(t),a=typeof o?.handoffId=="string"?o.handoffId.trim():"",i=Number(o?.sourceLogicalTabId),s;return this.mutate("local",c=>{let d=ce(),u=!!(c.lease&&c.lease.expiresAt>d)?c.lease?.holderRuntimeId:void 0,b=c.workflowLock&&c.workflowLock.runtimeId&&c.workflowLock.runtimeId!==this.runtimeId&&c.workflowLock.expiresAt>d?c.workflowLock:void 0,p=b?c.tabs.find(R=>R.runtimeId===b.runtimeId&&R.updatedAt>d-2*this.heartbeatMs):void 0,g=!p&&(!u||u===this.runtimeId),y=c.tabs.find(R=>R.runtimeId===this.runtimeId);if(y)y.url=r||y.url,y.title=n||y.title,y.updatedAt=d,y.detachedAt=void 0,y.detachedReason=void 0,y.handoffId=void 0,y.handoffRunId=void 0,y.handoffTargetUrl=void 0,y.handoffCreatedAt=void 0,s=y.logicalTabId;else{let R;if(a&&(R=c.tabs.find(O=>{if(O.runtimeId||String(O.handoffId||"").trim()!==a||Number.isFinite(i)&&i>0&&O.logicalTabId!==i)return!1;let M=d-Number(O.handoffCreatedAt||O.updatedAt||O.openedAt||0);return M>=0&&M<=3e4})),R||(R=c.tabs.find(O=>!O.runtimeId&&!O.external&&O.url===r&&d-O.openedAt<18e4)),R)R.runtimeId=this.runtimeId,R.url=r||R.url,R.title=n||R.title,R.updatedAt=d,R.detachedAt=void 0,R.detachedReason=void 0,R.handoffId=void 0,R.handoffRunId=void 0,R.handoffTargetUrl=void 0,R.handoffCreatedAt=void 0,s=R.logicalTabId;else{let O=c.nextLogicalTabId++;c.tabs.push({logicalTabId:O,runtimeId:this.runtimeId,url:r,title:n,openedAt:d,updatedAt:d,external:!1,detachedAt:void 0,detachedReason:void 0}),s=O}}s&&(c.tabs=c.tabs.filter(R=>{if(R.logicalTabId===s||R.runtimeId||R.external)return!0;if(a&&String(R.handoffId||"").trim()===a)return!1;let O=d-this.tabFreshnessTs(R);return!(!String(R.url||"").trim()&&O>Rd||r&&R.url===r&&O<=Sd)}));let E=c.activeLogicalTabId?c.tabs.find(R=>R.logicalTabId===c.activeLogicalTabId):void 0;p?c.activeLogicalTabId=p.logicalTabId:(!E||!E.runtimeId||E.logicalTabId===s||g)&&(c.activeLogicalTabId=s)}),this.notifyRoleChange(),this.localLogicalTabId||s||1}registerOpenedTab(t){let n=fl(t.url),o=0;return this.mutate("local",r=>{let a=ce(),i=r.tabs.find(s=>!s.runtimeId&&!!s.external==!!t.external&&s.url===n);if(i){i.title=t.title||i.title,i.updatedAt=a,i.openerRuntimeId=t.openerRuntimeId||i.openerRuntimeId,i.detachedAt=i.detachedAt||a,i.detachedReason="opened_pending_attach",o=i.logicalTabId;return}o=r.nextLogicalTabId++,r.tabs.push({logicalTabId:o,runtimeId:void 0,url:n,title:t.title,openedAt:a,updatedAt:a,external:!!t.external,openerRuntimeId:t.openerRuntimeId,detachedAt:a,detachedReason:"opened_pending_attach"})}),t.external&&this.probeRoverAvailability(o),{logicalTabId:o}}probeRoverAvailability(t){let o=setTimeout(()=>{let r=this.state.tabs.find(a=>a.logicalTabId===t);r&&!r.runtimeId&&this.mutate("local",a=>{let i=a.tabs.find(s=>s.logicalTabId===t);i&&(i.roverAvailability="not_available")})},5e3);typeof o?.unref=="function"&&o.unref(),this.probeTimers.push(o)}switchToLogicalTab(t){let n={ok:!1,reason:"Unknown tab"};return this.mutate("local",o=>{let r=o.tabs.find(a=>a.logicalTabId===t);if(!r){n={ok:!1,reason:`Tab ${t} not found`};return}if(o.activeLogicalTabId=t,r.runtimeId&&r.runtimeId!==this.runtimeId){o.lease={holderRuntimeId:r.runtimeId,expiresAt:ce()+this.leaseMs,updatedAt:ce()},this.channel&&this.channel.postMessage({type:"switch_request",logicalTabId:t,targetRuntimeId:r.runtimeId,sourceRuntimeId:this.runtimeId}),n={ok:!0,delegated:!0};return}if(!r.runtimeId){n={ok:!1,reason:`Tab ${t} is not attached to an active Rover runtime yet`};return}o.lease={holderRuntimeId:this.runtimeId,expiresAt:ce()+this.leaseMs,updatedAt:ce()},n={ok:!0,delegated:!1}}),this.notifyRoleChange(),n}sendCrossTabRpc(t,n,o,r=15e3){return new Promise((a,i)=>{if(!this.channel){i(new Error("BroadcastChannel not available"));return}let s=Ho("rpc"),c=window.setTimeout(()=>{this.pendingRpcRequests.delete(s),i(new Error(`Cross-tab RPC timed out after ${r}ms (method=${n}, target=${t})`))},r);typeof c?.unref=="function"&&c.unref(),this.pendingRpcRequests.set(s,{resolve:a,reject:i,timer:c}),this.channel.postMessage({type:"rpc_request",requestId:s,sourceRuntimeId:this.runtimeId,targetRuntimeId:t,method:n,params:o,timeoutMs:r,createdAt:ce()})})}setRpcRequestHandler(t){this.rpcRequestHandler=t}broadcastNavigation(t,n){this.channel&&this.channel.postMessage({type:"tab_navigated",runtimeId:this.runtimeId,logicalTabId:this.localLogicalTabId,url:t,title:n})}broadcastClosing(t){this.closing=!0,this.mutate("local",n=>{let o=ce(),r=n.tabs.find(a=>a.runtimeId===this.runtimeId);r&&(r.runtimeId=void 0,r.updatedAt=o,r.detachedAt=o,r.detachedReason=t?"navigation_handoff":"tab_close",r.handoffId=typeof t?.handoffId=="string"?t.handoffId:void 0,r.handoffRunId=typeof t?.runId=="string"?t.runId:void 0,r.handoffTargetUrl=typeof t?.targetUrl=="string"?t.targetUrl:void 0,r.handoffCreatedAt=Number(t?.ts)||o),n.lease?.holderRuntimeId===this.runtimeId&&(n.lease=void 0)}),this.channel&&this.channel.postMessage({type:"tab_closing",runtimeId:this.runtimeId,logicalTabId:this.localLogicalTabId,handoff:t})}isTabAlive(t){let n=this.state.tabs.find(o=>o.logicalTabId===t);return n?n.updatedAt>ce()-2*this.heartbeatMs:!1}broadcastSessionToken(t,n){this.channel&&this.channel.postMessage({type:"session_token",runtimeId:this.runtimeId,token:t,expiresAt:n})}broadcastProjection(t){this.channel&&this.channel.postMessage({type:"projection",runtimeId:this.runtimeId,projection:t})}acquireWorkflowLock(t,n){let o=!1;return this.mutate("local",r=>{let a=r.workflowLock;if(!n?.force&&a&&a.runtimeId!==this.runtimeId&&a.expiresAt>ce()){let i=r.tabs.find(c=>c.runtimeId===a.runtimeId);if(i&&i.updatedAt>ce()-2*this.heartbeatMs){o=!1;return}}r.workflowLock={runtimeId:this.runtimeId,runId:t,lockedAt:ce(),expiresAt:ce()+this.workflowLockMs},o=!0}),o}releaseWorkflowLock(t){this.mutate("local",n=>{n.workflowLock&&n.workflowLock.runId===t&&(n.workflowLock=void 0)})}isWorkflowLocked(){let t=this.state.workflowLock;return!t||t.runtimeId===this.runtimeId?!1:t.expiresAt>ce()}getWorkflowLockInfo(){let t=this.state.workflowLock;return!t||t.expiresAt<=ce()?{locked:!1}:{locked:!0,holderRuntimeId:t.runtimeId,runId:t.runId}}async handleInboundRpcRequest(t){let{requestId:n,sourceRuntimeId:o,method:r,params:a}=t;if(!this.rpcRequestHandler){this.channel?.postMessage({type:"rpc_response",requestId:n,sourceRuntimeId:this.runtimeId,targetRuntimeId:o,ok:!1,error:{message:"No RPC handler registered",code:"NO_HANDLER"}});return}try{let i=await this.rpcRequestHandler({method:r,params:a});this.channel?.postMessage({type:"rpc_response",requestId:n,sourceRuntimeId:this.runtimeId,targetRuntimeId:o,ok:!0,result:i})}catch(i){this.channel?.postMessage({type:"rpc_response",requestId:n,sourceRuntimeId:this.runtimeId,targetRuntimeId:o,ok:!1,error:{message:i?.message||String(i)}})}}handleInboundRpcResponse(t){let{requestId:n,ok:o,result:r,error:a}=t,i=this.pendingRpcRequests.get(n);i&&(this.pendingRpcRequests.delete(n),window.clearTimeout(i.timer),o?i.resolve(r):i.reject(new Error(a?.message||"Cross-tab RPC failed")))}handleRemoteNavigation(t){let{runtimeId:n,url:o,title:r}=t;this.mutate("local",a=>{let i=a.tabs.find(s=>s.runtimeId===n);i&&(i.url=o||i.url,i.title=r||i.title,i.updatedAt=ce())})}handleRemoteTabClosing(t){let{runtimeId:n}=t,o=t?.handoff,r=typeof o?.handoffId=="string"&&o.handoffId.trim()?o.handoffId.trim():void 0,a=typeof o?.runId=="string"&&o.runId.trim()?o.runId.trim():void 0,i=typeof o?.targetUrl=="string"&&o.targetUrl.trim()?o.targetUrl.trim():void 0,s=Number(o?.ts)||ce();this.mutate("local",c=>{let d=ce(),f=c.tabs.find(u=>u.runtimeId===n);f&&(f.runtimeId=void 0,f.updatedAt=d,f.detachedAt=d,f.detachedReason=r?"navigation_handoff":"tab_close",f.handoffId=r,f.handoffRunId=a,f.handoffTargetUrl=i,f.handoffCreatedAt=s),c.lease?.holderRuntimeId===n&&(c.lease=void 0),c.workflowLock?.runtimeId===n&&(c.workflowLock=void 0),c.activeRun?.runtimeId===n&&(c.activeRun=void 0),c.activeLogicalTabId&&!c.tabs.some(u=>u.logicalTabId===c.activeLogicalTabId)&&(c.activeLogicalTabId=this.localLogicalTabId||c.tabs[0]?.logicalTabId)}),this.notifyRoleChange()}heartbeat(){if(this.closing)return;this.heartbeatCount++;let t=fl(window.location.href),n=document.title||void 0,o=ce(),r=this.state.lease,a=r&&r.holderRuntimeId===this.runtimeId&&r.expiresAt>o,i=o-this.lastFullHeartbeatAt<5e3,s=this.state.tabs.find(d=>d.runtimeId===this.runtimeId);if(a&&i&&s){s.url=t||s.url,s.title=n||s.title,s.updatedAt=o,s.detachedAt=void 0,s.detachedReason=void 0,this.state.updatedAt=o;return}this.lastFullHeartbeatAt=o;let c=this.heartbeatCount%ei.LS_HEARTBEAT_DIVISOR!==0;this.mutate("local",d=>{let f=d.tabs.find(Y=>Y.runtimeId===this.runtimeId);if(f)f.url=t||f.url,f.title=n||f.title,f.updatedAt=ce(),f.detachedAt=void 0,f.detachedReason=void 0;else{let Y=ce(),ae=d.nextLogicalTabId++;d.tabs.push({logicalTabId:ae,runtimeId:this.runtimeId,url:t,title:n,openedAt:Y,updatedAt:Y,external:!1,detachedAt:void 0,detachedReason:void 0})}let u=d.lease,b=!u||u.expiresAt<=ce(),p=u&&u.holderRuntimeId!==this.runtimeId&&u.expiresAt>ce()?u.holderRuntimeId:void 0,g=p?d.tabs.find(Y=>Y.runtimeId===p):void 0,y=!!(g&&g.updatedAt>ce()-2*this.heartbeatMs),E=d.workflowLock?.runtimeId,R=E?d.tabs.find(Y=>Y.runtimeId===E):void 0,O=!!(R&&R.runtimeId&&R.runtimeId!==this.runtimeId&&R.updatedAt>ce()-2*this.heartbeatMs);if(d.workflowLock&&d.workflowLock.runtimeId!==this.runtimeId&&(d.workflowLock.expiresAt<=ce()||!O)&&(d.workflowLock=void 0),d.workflowLock&&d.workflowLock.runtimeId!==this.runtimeId&&O&&R&&(d.activeLogicalTabId=R.logicalTabId),d.activeRun?.runtimeId&&d.activeRun.runtimeId!==this.runtimeId){let Y=d.tabs.find(re=>re.runtimeId===d.activeRun?.runtimeId);Y&&Y.updatedAt>ce()-2*this.heartbeatMs||(d.activeRun=void 0)}let M=!!(d.activeRun?.runtimeId&&d.activeRun.runtimeId!==this.runtimeId),H=!!(d.workflowLock&&d.workflowLock.runtimeId!==this.runtimeId&&d.workflowLock.expiresAt>ce()),N=!!(p&&!y&&!M&&!H);(b||u?.holderRuntimeId===this.runtimeId||N)&&(d.lease={holderRuntimeId:this.runtimeId,expiresAt:ce()+this.leaseMs,updatedAt:ce()},!d.activeLogicalTabId&&this.localLogicalTabId&&(d.activeLogicalTabId=this.localLogicalTabId)),d.workflowLock?.runtimeId===this.runtimeId&&(d.workflowLock.expiresAt=ce()+this.workflowLockMs),this.pruneDetachedTabs(d)},{skipPersist:c}),this.notifyRoleChange()}reloadFromStorage(){let t=this.loadState();return this.normalizeDraftTabs(t),(t.seq>this.state.seq||t.seq===this.state.seq&&t.updatedAt>this.state.updatedAt)&&(this.state=t,this.syncLocalLogicalTabId(),this.onStateChange?.(this.state,"remote")),this.closing=!1,this.state}claimLease(t){let n=!1;return this.mutate("local",o=>{let r=o.lease,a=!r||r.expiresAt<=ce();(t||a||r?.holderRuntimeId===this.runtimeId)&&(o.lease={holderRuntimeId:this.runtimeId,expiresAt:ce()+this.leaseMs,updatedAt:ce()},!o.activeLogicalTabId&&this.localLogicalTabId&&(o.activeLogicalTabId=this.localLogicalTabId),n=!0)}),this.notifyRoleChange(),n}notifyRoleChange(){this.getRole()!==this.lastNotifiedRole&&(this.roleChangeTimer!=null&&window.clearTimeout(this.roleChangeTimer),this.roleChangeTimer=window.setTimeout(()=>{this.roleChangeTimer=null;let n=this.getRole();n!==this.lastNotifiedRole&&(this.lastNotifiedRole=n,this.onRoleChange?.(n,{localLogicalTabId:this.localLogicalTabId,activeLogicalTabId:this.state.activeLogicalTabId,holderRuntimeId:this.state.lease?.holderRuntimeId}))},ei.ROLE_CHANGE_DEBOUNCE_MS),typeof this.roleChangeTimer?.unref=="function"&&this.roleChangeTimer.unref())}syncLocalLogicalTabId(){let t=this.state.tabs.find(n=>n.runtimeId===this.runtimeId);this.localLogicalTabId=t?.logicalTabId}mutate(t,n,o){if(t==="local")try{let i=window.localStorage.getItem(this.key);if(i){let s=Za(JSON.parse(i),this.siteId,this.sessionId);(s.seq>this.state.seq||s.seq===this.state.seq&&s.updatedAt>this.state.updatedAt)&&(this.state=s)}}catch{}let r=Za(this.state,this.siteId,this.sessionId);n(r),this.normalizeDraftTabs(r),r.seq=Math.max(1,Number(r.seq)||1)+(t==="local"?1:0),r.updatedAt=ce(),this.state=r,this.syncLocalLogicalTabId(),t==="local"&&(o?.skipPersist||this.persistState(),this.channel&&this.channel.postMessage({type:"state",sourceRuntimeId:this.runtimeId,state:this.state}));let a=this.computeStateHash(this.state);a!==this.lastNotifiedStateHash&&(this.lastNotifiedStateHash=a,this.onStateChange?.(this.state,t))}computeStateHash(t){let n=t.tabs;return`${n.length}:${n.map(o=>`${o.logicalTabId}|${o.runtimeId||""}|${o.url}|${o.title||""}|${!!o.detachedAt}`).join(";")}:${t.activeLogicalTabId??""}:${t.lease?.holderRuntimeId??""}:${t.activeRun?.runId??""}:${t.activeRun?.runtimeId??""}:${t.workflowLock?.runtimeId??""}:${t.taskEpoch??""}:${t.uiMessages?.length??0}:${t.timeline?.length??0}:${t.transientStatus?.text??t.uiStatus??""}`}applyIncomingState(t){t&&(t.seq<this.state.seq||t.seq===this.state.seq&&t.updatedAt<=this.state.updatedAt||(this.pruneDetachedTabs(t),this.normalizeDraftTabs(t),this.state=t,this.syncLocalLogicalTabId(),this.onStateChange?.(this.state,"remote"),this.notifyRoleChange()))}loadState(){try{let t=window.localStorage.getItem(this.key);if(!t)return Ad(this.siteId,this.sessionId);let n=JSON.parse(t);return Za(n,this.siteId,this.sessionId)}catch(t){return console.warn("[rover] Failed to load shared state from localStorage:",t),Ad(this.siteId,this.sessionId)}}persistState(){try{window.localStorage.setItem(this.key,JSON.stringify(this.state))}catch{}}};P(ei,"LS_HEARTBEAT_DIVISOR",5),P(ei,"ROLE_CHANGE_DEBOUNCE_MS",200);var ml=ei;var xg="rover",gl="rover_shortcut";function Tg(e,t){return String(e||"").trim().replace(/^[?#&]+/,"").slice(0,64)||t}function Eg(e){return e instanceof URL?new URL(e.toString()):new URL(String(e||""),"https://rover.local")}function _g(e,t){let n=e.getAll(t);for(let o=n.length-1;o>=0;o-=1){let r=String(n[o]||"").trim();if(r)return r}return""}function ca(e){let t=Tg(e?.promptParam,xg),n=Tg(e?.shortcutParam,gl);return n===t&&(n=n===gl?`${gl}_id`:gl,n===t&&(t=xg)),{enabled:e?.enabled===!0,promptParam:t,shortcutParam:n,consume:e?.consume!==!1}}function Ig(e,t){let n=ca(t),o=Eg(e),r=_g(o.searchParams,n.shortcutParam);if(r)return{kind:"shortcut",paramName:n.shortcutParam,value:r,signature:`shortcut:${n.shortcutParam}:${r}`};let a=_g(o.searchParams,n.promptParam);return a?{kind:"prompt",paramName:n.promptParam,value:a,signature:`prompt:${n.promptParam}:${a}`}:null}function Cd(e,t){let n=ca(t),o=Eg(e);o.searchParams.delete(n.promptParam),o.searchParams.delete(n.shortcutParam);let r=o.searchParams.toString();return`${o.pathname}${r?`?${r}`:""}${o.hash}`}var Md="rover_launch",Rg="rover_attach";function Ag(e){return e instanceof URL?new URL(e.toString()):new URL(String(e||""),"https://rover.local")}function Sg(e,t){let n=e.getAll(t);for(let o=n.length-1;o>=0;o-=1){let r=String(n[o]||"").trim();if(r)return r}return""}function Cg(e){let t=Ag(e),n=Sg(t.searchParams,Md),o=Sg(t.searchParams,Rg);return!n||!o?null:{requestId:n,attachToken:o,signature:`${Md}:${n}:${o}`}}function Mg(e){let t=Ag(e);t.searchParams.delete(Md),t.searchParams.delete(Rg);let n=t.searchParams.toString();return`${t.pathname}${n?`?${n}`:""}${t.hash}`}var Nd="rover_receipt",Ld="rover_anchor";function Ng(e){return e instanceof URL?new URL(e.toString()):new URL(String(e||""),"https://rover.local")}function Dd(e,t){let n=e.getAll(t);for(let o=n.length-1;o>=0;o-=1){let r=String(n[o]||"").trim();if(r)return r}return""}function Lg(e){return new URLSearchParams(String(e.hash||"").replace(/^#\??/,""))}function Od(e){let t=Ng(e),n=Lg(t),o=Dd(n,Nd);if(!o)return null;let r=Dd(n,Ld)||void 0;return{receipt:o,anchor:r,signature:`${Nd}:${o}`}}function Dg(e){let t=Ng(e),n=Lg(t),o=Dd(n,Ld);n.delete(Nd),n.delete(Ld);let r=n.toString(),a=t.searchParams.toString(),i=o?`#${o}${r?`&${r}`:""}`:r?`#${r}`:"";return`${t.pathname}${a?`?${a}`:""}${i}`}var Bg="https://agent.rtrvr.ai",Og="rvrsess_";function ni(e,t){let n=Number(e);return Number.isFinite(n)?n:t}function NT(e,t=8e3){let n=String(e??"");return n.length<=t?n:`${n.slice(0,t)}\u2026`}function LT(e){let t=String(e||"").trim();if(!t)return"";try{let n=new URL(t);return n.hash="",`${n.origin}${n.pathname}${n.search}`}catch{return t}}function Bd(e){return e==null?"null":typeof e=="number"?Number.isFinite(e)?String(e):JSON.stringify(String(e)):typeof e=="boolean"?e?"true":"false":typeof e=="string"?JSON.stringify(e):Array.isArray(e)?`[${e.map(t=>Bd(t)).join(",")}]`:typeof e=="object"?`{${Object.entries(e).filter(([n])=>n!=="updatedAt"&&n!=="ts"&&n!=="timestamp").sort(([n],[o])=>n.localeCompare(o)).map(([n,o])=>`${JSON.stringify(n)}:${Bd(o)}`).join(",")}}`:JSON.stringify(String(e))}function DT(e){let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return`sd:${(t>>>0).toString(16)}`}function Pg(e){let t=Array.isArray(e.sharedState?.tabs)?e.sharedState.tabs:[],n=e.runtimeState?.workerState||{},o=e.runtimeState?.taskTabScope||{},r=e.sharedState?.activeRun||{},a=e.runtimeState?.pendingRun||{},i=Array.isArray(n.plannerHistory)?n.plannerHistory:[],s=Array.isArray(n.agentPrevSteps)?n.agentPrevSteps:[],c=i.length?i[i.length-1]:void 0,d=s.length?s[s.length-1]:void 0,f=i.map(p=>String(p?.id||p?.toolCall?.name||p?.toolName||p?.name||"")),u=s.map(p=>String(p?.id||p?.toolCall?.name||p?.toolName||p?.name||"")),b={sessionId:String(e.sessionId||""),shared:{taskEpoch:Number(e.sharedState?.taskEpoch||0),taskId:String(e.sharedState?.task?.taskId||""),taskStatus:String(e.sharedState?.task?.status||""),activeRunId:String(r.runId||""),activeRunStatus:String(r.status||""),tabs:t.map(p=>({logicalTabId:Number(p?.logicalTabId)||0,scope:String(p?.scope||""),status:String(p?.status||""),url:LT(p?.url),external:!!p?.external}))},runtime:{taskEpoch:Number(e.runtimeState?.taskEpoch||0),activeTaskId:String(e.runtimeState?.activeTask?.taskId||""),activeTaskStatus:String(e.runtimeState?.activeTask?.status||""),pendingRunId:String(a.id||""),pendingRunStatus:String(a.status||""),pendingResumeRequired:a.resumeRequired===!0,worker:{taskBoundaryId:String(n.taskBoundaryId||""),trajectoryId:String(n.trajectoryId||""),pendingAskBoundaryId:String(n.pendingAskUser?.boundaryId||""),plannerHistoryCount:i.length,agentPrevStepsCount:s.length,lastPlannerStepId:String(c?.id||""),lastAgentStepId:String(d?.id||""),plannerStepMarkers:f,agentStepMarkers:u},continuity:{boundaryId:String(o.boundaryId||""),seedTabId:Number(o.seedTabId||0),touchedTabIds:Array.isArray(o.touchedTabIds)?o.touchedTabIds.map(p=>Number(p)||0).filter(p=>p>0):[]}}};return DT(Bd(b))}function OT(e){let t=Bg,n=String(e||t).trim().replace(/\/+$/,"");if(!n)return t;if(n.endsWith("/extensionRouter/v2/rover"))return n.slice(0,-25);if(n.endsWith("/v2/rover"))return n.slice(0,-9);let o=n.match(/\/v\d+\/rover$/);return o?.[0]?n.slice(0,-o[0].length):n.endsWith("/extensionRouter")?n.slice(0,-16):n}function Pd(e){let t=new Set,n=[];for(let o of e){let r=String(o||"").trim().replace(/\/+$/,"");!r||t.has(r)||(t.add(r),n.push(r))}return n}function PT(e){let t=OT(e),n=String(e||"").trim().replace(/\/+$/,"");return n.endsWith("/v2/rover")||n.endsWith("/extensionRouter/v2/rover")?Pd([n.replace("/extensionRouter/v2/rover","/v2/rover"),`${t}/v2/rover`]):Pd(!n&&t==="https://agent.rtrvr.ai"?[`${t}/v2/rover`,"https://extensionrouter.rtrvr.ai/v2/rover"]:[`${t}/v2/rover`])}function la(e,t){let n=new Error(e);return n.details=t,n}function BT(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`}var bl=class{constructor(t){P(this,"endpoint");P(this,"endpointCandidates");P(this,"endpointIndex",0);P(this,"getToken");P(this,"siteId");P(this,"visitorId");P(this,"ttlHours");P(this,"flushIntervalMs");P(this,"pullIntervalMs");P(this,"minFlushIntervalMs");P(this,"maxSnapshotBytes");P(this,"shouldSync");P(this,"shouldWrite");P(this,"buildCheckpoint");P(this,"onCheckpoint");P(this,"onStateChange");P(this,"onError");P(this,"idlePullIntervalMs");P(this,"started",!1);P(this,"idleMode",!1);P(this,"dirty",!1);P(this,"flushTimer",null);P(this,"pullTimer",null);P(this,"lastFlushAt",0);P(this,"lastPullAt",0);P(this,"lastUploadedRevision","");P(this,"lastAppliedRemoteUpdatedAt",0);P(this,"lastAppliedRemoteDigest","");P(this,"pushInFlight",!1);P(this,"pullInFlight",!1);P(this,"state","active");P(this,"visibilityListener",null);let n=String(t.authToken||"").trim(),o=t.getSessionToken,r=o?String(o()||"").trim():n;if(!r||!r.startsWith(Og))throw la("Rover cloud checkpoint requires a session token (rvrsess_...).");this.endpointCandidates=PT(t.apiBase),this.endpoint=this.endpointCandidates[0]||`${Bg}/v2/rover`,this.getToken=()=>{let a=o?String(o()||"").trim():n;if(!a||!a.startsWith(Og))throw la("Rover cloud checkpoint requires an active session token.");return a},this.siteId=t.siteId,this.visitorId=t.visitorId,this.ttlHours=Math.max(1,Math.min(168,Math.floor(ni(t.ttlHours,1)))),this.flushIntervalMs=Math.max(2e3,Math.floor(ni(t.flushIntervalMs,3e4))),this.pullIntervalMs=Math.max(2e3,Math.floor(ni(t.pullIntervalMs,3e4))),this.idlePullIntervalMs=12e4,this.minFlushIntervalMs=Math.max(1e3,Math.floor(ni(t.minFlushIntervalMs,2500))),this.maxSnapshotBytes=Math.max(64e3,Math.min(1048576,Math.floor(ni(t.maxSnapshotBytes,262144)))),this.shouldSync=t.shouldSync||(()=>!0),this.shouldWrite=t.shouldWrite||(()=>!0),this.buildCheckpoint=t.buildCheckpoint,this.onCheckpoint=t.onCheckpoint,this.onStateChange=t.onStateChange,this.onError=t.onError}start(){this.started||(this.started=!0,this.setState("active"),typeof document<"u"&&!this.visibilityListener&&(this.visibilityListener=()=>{if(this.started){if(document.hidden){this.enterIdleMode();return}this.enterActiveMode(),this.shouldSync()&&(this.pull(!0),this.dirty&&this.flush(!0))}},document.addEventListener("visibilitychange",this.visibilityListener)),this.flushTimer=window.setInterval(()=>{this.shouldSync()&&this.flush(!1)},this.flushIntervalMs),this.pullTimer=window.setInterval(()=>{this.shouldSync()&&this.pull(!1)},this.pullIntervalMs),this.pull(!0))}stop(){this.started&&(this.started=!1,this.idleMode=!1,this.flushTimer!=null&&(window.clearInterval(this.flushTimer),this.flushTimer=null),this.pullTimer!=null&&(window.clearInterval(this.pullTimer),this.pullTimer=null),this.visibilityListener&&typeof document<"u"&&(document.removeEventListener("visibilitychange",this.visibilityListener),this.visibilityListener=null),this.flush(!0))}markDirty(){this.dirty=!0}syncNow(t){let n=t?.push!==!1,o=t?.pull!==!1;n&&this.flush(!0),o&&this.pull(!0)}syncPullFirst(){(async()=>(await this.pull(!0),await this.flush(!0)))()}pullNow(t=!0){this.pull(!!t)}enterIdleMode(){this.idleMode||(this.idleMode=!0,this.flushTimer!=null&&(window.clearInterval(this.flushTimer),this.flushTimer=null),this.pullTimer!=null&&(window.clearInterval(this.pullTimer),this.pullTimer=null),this.started&&(this.pullTimer=window.setInterval(()=>{this.shouldSync()&&this.pull(!1)},this.idlePullIntervalMs)))}enterActiveMode(){this.idleMode&&(this.idleMode=!1,this.started&&(this.flushTimer==null&&(this.flushTimer=window.setInterval(()=>{this.shouldSync()&&this.flush(!1)},this.flushIntervalMs)),this.pullTimer==null&&(this.pullTimer=window.setInterval(()=>{this.shouldSync()&&this.pull(!1)},this.pullIntervalMs))))}getActiveEndpoint(){return this.endpointCandidates.length?this.endpointCandidates[this.endpointIndex]||this.endpoint:this.endpoint}rotateEndpoint(){this.endpointCandidates.length<=1||(this.endpointIndex=(this.endpointIndex+1)%this.endpointCandidates.length,this.endpoint=this.endpointCandidates[this.endpointIndex]||this.endpoint)}async requestJson(t,n){let o=Math.max(1,this.endpointCandidates.length||1),r;for(let a=0;a<o;a+=1){let i=(this.endpointIndex+a)%o,s=this.endpointCandidates[i]||this.endpoint;try{let c=await fetch(`${s}${t}`,n),d=await c.json().catch(()=>{});if(c.status===404||c.status===405){r=la(`Checkpoint endpoint unavailable at ${s}${t}`,{status:c.status,payload:d});continue}return this.endpointIndex=i,this.endpoint=s,{response:c,payload:d}}catch(c){r=c}}throw r instanceof Error?r:la(`Checkpoint request failed for ${t}`)}async flush(t){if(this.pushInFlight||this.idleMode||this.state==="paused_auth"||!t&&!this.shouldSync()||!this.dirty&&!t||!this.shouldWrite()||!t&&Date.now()-this.lastFlushAt<this.minFlushIntervalMs)return;let n=this.buildCheckpoint();if(!n)return;let o=Pg(n);if(n.digest=o,!t&&o===this.lastUploadedRevision){this.dirty=!1;return}this.pushInFlight=!0;try{let r=await this.callCheckpointApi("session_snapshot_upsert",{siteId:this.siteId,visitorId:this.visitorId,sessionId:n.sessionId,ttlHours:this.ttlHours,updatedAt:n.updatedAt,checkpoint:n});this.lastFlushAt=Date.now(),r?.saved&&(this.dirty=!1,this.lastUploadedRevision=o),r?.stale&&r?.checkpoint&&typeof r.checkpoint=="object"&&(this.applyRemoteCheckpoint(r.checkpoint,"push_stale"),this.dirty=!1),this.setState("active")}catch(r){this.handleCheckpointError(r,"session_snapshot_upsert")}finally{this.pushInFlight=!1}}async pull(t){if(!this.pullInFlight&&this.state!=="paused_auth"&&!(!t&&!this.shouldSync())&&!(!t&&Date.now()-this.lastPullAt<this.pullIntervalMs)){this.pullInFlight=!0;try{let n=await this.callCheckpointApi("session_projection_get",{siteId:this.siteId,visitorId:this.visitorId,sessionId:this.buildCheckpoint()?.sessionId});if(this.lastPullAt=Date.now(),!n?.found||!n?.checkpoint||typeof n.checkpoint!="object")return;this.applyRemoteCheckpoint(n.checkpoint,"pull"),this.setState("active")}catch(n){this.handleCheckpointError(n,"session_projection_get")}finally{this.pullInFlight=!1}}}applyRemoteCheckpoint(t,n){let o=Math.max(0,Math.floor(ni(t?.updatedAt,0))),r=String(t?.digest||"").trim()||Pg(t);o<=this.lastAppliedRemoteUpdatedAt&&(!r||r===this.lastAppliedRemoteDigest)||(this.lastAppliedRemoteUpdatedAt=o,r&&(this.lastAppliedRemoteDigest=r),this.onCheckpoint(t,n))}async callCheckpointApi(t,n){return this.callRoverV2(t,n)}async callRoverV2(t,n){let o=this.getToken();if(t==="session_snapshot_upsert"){let c=JSON.stringify({requestNonce:BT(),sessionToken:o,sessionId:n?.sessionId,visitorId:n?.visitorId,ttlHours:n?.ttlHours,updatedAt:n?.updatedAt,version:n?.checkpoint?.version||n?.version||1,checkpoint:n?.checkpoint});if(c.length>this.maxSnapshotBytes)throw la("Checkpoint snapshot exceeds maxSnapshotBytes limit.",{action:t,size:c.length,maxSnapshotBytes:this.maxSnapshotBytes,code:"SNAPSHOT_TOO_LARGE"});let d=c.length<6e4,{response:f,payload:u}=await this.requestJson("/snapshot",{method:"POST",headers:{"Content-Type":"text/plain"},keepalive:d,body:c});if(!f.ok||!u?.success)throw la(`Checkpoint HTTP ${f.status}`,{action:t,status:f.status,payload:u});return{saved:!!u?.data?.saved,stale:u?.data?.stale===!0,checkpoint:u?.data?.checkpoint,updatedAt:Number(u?.data?.updatedAt)||void 0}}let r=new URLSearchParams({sessionId:String(n?.sessionId||""),sessionToken:o,includeSnapshot:"true"}),{response:a,payload:i}=await this.requestJson(`/state?${r.toString()}`,{method:"GET"});if(!a.ok||!i?.success)throw la(`Checkpoint HTTP ${a.status}`,{action:t,status:a.status,payload:i});let s=i?.data?.projection?.snapshot??i?.data?.snapshot;return{found:!!s,checkpoint:s}}setState(t,n){this.state!==t&&(this.state=t,this.onStateChange?.(t,n||{}))}handleCheckpointError(t,n){let o=this.normalizeCheckpointError(t),r=this.isAuthFailure(o);r&&this.setState("paused_auth",{reason:"auth_failed",action:n,code:o.code,message:o.message}),this.onError?.(t,{action:n,state:this.state,code:o.code,message:o.message,status:o.status,paused:r})}normalizeCheckpointError(t){let n=t,o=n?.details,r=o?.payload||o?.response||o,a=r?.errorCode||r?.errorDetails?.code||r?.error?.code||r?.code,i=r?.error||r?.errorDetails?.message||r?.error?.message||n?.message||"Checkpoint request failed",s=Number(o?.status);return{code:typeof a=="string"?a:void 0,message:NT(i,1e3),status:Number.isFinite(s)?s:void 0}}isAuthFailure(t){let n=String(t.code||"").toUpperCase();return n==="INVALID_API_KEY"||n==="MISSING_API_KEY"||n==="UNAUTHENTICATED"||n==="PERMISSION_DENIED"?!0:t.status===401||t.status===403}};var UT="rover-runtime-state-db",kl="runtime-state",Ud=class{read(t){try{let n=window.sessionStorage.getItem(t);return n?JSON.parse(n):null}catch{return null}}write(t,n){try{window.sessionStorage.setItem(t,JSON.stringify(n))}catch{}}remove(t){try{window.sessionStorage.removeItem(t)}catch{}}},Hd=class{constructor(){P(this,"dbPromise",null)}openDb(){return this.dbPromise?this.dbPromise:(this.dbPromise=new Promise((t,n)=>{if(typeof indexedDB>"u"){n(new Error("indexedDB unavailable"));return}let o=indexedDB.open(UT,1);o.onupgradeneeded=()=>{let r=o.result;r.objectStoreNames.contains(kl)||r.createObjectStore(kl)},o.onsuccess=()=>{t(o.result)},o.onerror=()=>{n(o.error||new Error("indexedDB open failed"))}}).catch(t=>{throw this.dbPromise=null,t}),this.dbPromise)}async withStore(t,n){let o=await this.openDb();return new Promise((r,a)=>{let i=o.transaction(kl,t),s=i.objectStore(kl);n(s,r,a),i.onerror=()=>{a(i.error||new Error("indexedDB transaction failed"))}})}async read(t){try{return await this.withStore("readonly",(n,o,r)=>{let a=n.get(t);a.onsuccess=()=>{let i=a.result;o(i??null)},a.onerror=()=>{r(a.error||new Error("indexedDB read failed"))}})}catch{return null}}async write(t,n){await this.withStore("readwrite",(o,r,a)=>{let i=o.put(n,t);i.onsuccess=()=>r(),i.onerror=()=>{a(i.error||new Error("indexedDB write failed"))}}).catch(()=>{})}async remove(t){await this.withStore("readwrite",(n,o,r)=>{let a=n.delete(t);a.onsuccess=()=>o(),a.onerror=()=>{r(a.error||new Error("indexedDB delete failed"))}}).catch(()=>{})}};function Ug(){let e=new Ud,t=new Hd;return{readSync:n=>e.read(n),readSyncAny:n=>{for(let o of n){if(!o)continue;let r=e.read(o);if(r)return r}return null},readAsync:async n=>t.read(n),readAsyncAny:async n=>{for(let o of n){if(!o)continue;let r=await t.read(o);if(r)return r}return null},write:(n,o)=>{e.write(n,o),t.write(n,o)},remove:n=>{e.remove(n),t.remove(n)}}}function Hg(e){if(typeof e=="string"){let n=String(e||"").trim().slice(0,4e3);return n?{role:"model",message:n}:null}if(!e||typeof e!="object")return null;let t=String(e.message||"").trim().slice(0,4e3);return t?{role:"model",message:t}:null}function Fg(e){let t=e.normalizeTaskBoundaryId||(n=>String(n||"").trim()||void 0);return{taskId:String(e.taskId||"").trim()||void 0,runId:typeof e.msg?.runId=="string"?e.msg.runId:void 0,taskBoundaryId:typeof e.msg?.taskBoundaryId=="string"?t(e.msg.taskBoundaryId):t(e.currentTaskBoundaryId),text:typeof e.msg?.text=="string"?e.msg.text:void 0,startedAt:e.now||Date.now(),pageUrl:e.pageUrl}}function zg(e){let t=e.normalizeTaskBoundaryId||(s=>String(s||"").trim()||void 0),n=typeof e.msg?.runId=="string"&&e.msg.runId.trim()?e.msg.runId.trim():void 0,o=e.completionState.terminalState==="waiting_input"?"waiting_input":e.completionState.terminalState,r=String(e.msg?.summary||e.msg?.message||e.msg?.result?.summary||e.latestSummary||"").trim()||void 0,a=String(e.msg?.error||e.msg?.result?.error||"").trim()||void 0,i=o==="completed"?"success":o==="failed"?"failure":e.completionState.needsUserInput||o==="in_progress"?"partial":"abandoned";return{taskId:String(e.taskId||"").trim()||void 0,runId:n,taskBoundaryId:typeof e.msg?.taskBoundaryId=="string"?t(e.msg.taskBoundaryId):t(e.currentTaskBoundaryId),terminalState:o,continuationReason:e.completionState.continuationReason,taskComplete:e.completionState.taskComplete,needsUserInput:e.completionState.needsUserInput,summary:r,error:a,ok:e.msg?.ok!==!1,questions:e.completionState.questions,endedAt:e.now||Date.now(),outcome:i,pageUrl:e.pageUrl}}var HT="rover_xdr_",qg=300;function Wg(e){return rr(e)}function $g(e){let t=Pn(e);return!(!t||t==="localhost"||kd(t))}function Fd(e){return`${HT}${e.replace(/[^a-zA-Z0-9_-]/g,"_").slice(0,40)}`}function yl(e){let t=String(e||"").trim();if(!t)return"";try{let n=new URL(t,window.location.href);return n.hash="",n.toString()}catch{return t}}function jg(e){let t=String(e||"").trim();return!t||t==="/"?"/":t.replace(/\/\/+/g,"/").replace(/\/+$/,"")||"/"}function FT(e,t){let n=new Set;for(let[o]of e.entries())n.add(o);for(let o of n){let r=e.getAll(o);if(!r.length)continue;let a=t.getAll(o);if(!a.length)return!1;let i=new Map;for(let s of a)i.set(s,(i.get(s)||0)+1);for(let s of r){let c=i.get(s)||0;if(c<=0)return!1;i.set(s,c-1)}}return!0}function zd(e,t){let n=yl(e),o=yl(t);if(!n||!o)return!1;try{let r=new URL(n,window.location.href),a=new URL(o,window.location.href);return r.origin.toLowerCase()!==a.origin.toLowerCase()||jg(r.pathname)!==jg(a.pathname)?!1:FT(r.searchParams,a.searchParams)}catch{return n===o}}function Vg(e,t){try{let n=Fd(e),o=Wg(window.location.hostname),r=encodeURIComponent(JSON.stringify(t)),a=window.location.protocol==="https:",i=[`${n}=${r}`,"path=/",`max-age=${qg}`,"SameSite=Lax"];$g(o)&&i.push(`domain=.${o}`),a&&i.push("Secure"),document.cookie=i.join("; ")}catch{}}function jd(e,t){try{let n=Fd(e),o=document.cookie.split(";"),r=Math.max(1e3,Number(t?.maxAgeMs)||qg*1e3),a=yl(t?.currentUrl||window.location.href),i=Pn(t?.currentHost||window.location.hostname||""),s=String(t?.expectedHandoffId||"").trim(),c=t?.requireTargetMatch!==!1;for(let d of o){let[f,...u]=d.trim().split("=");if(f===n){let b=u.join("="),p=JSON.parse(decodeURIComponent(b));if(!p.timestamp||Date.now()-p.timestamp>=r)continue;let g=String(p.handoffId||p.handoff?.handoffId||"").trim();if(!g||s&&g!==s)continue;if(c){let y=yl(p.targetUrl||p.handoff?.targetUrl||"");if(!y||!a||!zd(y,a))continue}if(p.sourceHost){let y=Pn(p.sourceHost||"");if(y&&i&&y===i&&!s)continue}if(p.sessionId&&typeof p.sessionId=="string")return p}}}catch{}return null}function ls(e){try{let t=Fd(e),n=Wg(window.location.hostname),o=window.location.protocol==="https:",r=[`${t}=`,"path=/","max-age=0","SameSite=Lax"];$g(n)&&r.push(`domain=.${n}`),o&&r.push("Secure"),document.cookie=r.join("; ")}catch{}}function Se(e){return String(e||"").trim()||void 0}function zT(e){let t=Se(e.incomingBoundaryId),n=Se(e.currentBoundaryId);return!t||t===n?!1:n?e.taskEpochAdvanced===!0&&e.hasPendingRun!==!0:e.allowBootstrapAdoption!==!1}function Gg(e){let t=Se(e.incomingBoundaryId),n=Se(e.currentBoundaryId);return t&&n&&t===n?{accept:!0,reason:"match"}:t?zT(e)?{accept:!0,adoptedBoundaryId:t,reason:n?"epoch_adopt":"bootstrap_adopt"}:{accept:!1,reason:"mismatch"}:!n&&e.allowBootstrapAdoption!==!1?{accept:!0,reason:"bootstrap_adopt"}:{accept:!1,reason:"missing_incoming"}}function jT(){return[{kind:"create_task"},{kind:"rotate_boundary"},{kind:"assign_worker"}]}function qd(){return[{kind:"release_worker"},{kind:"clear_run"}]}function vl(){return[{kind:"release_worker"},{kind:"clear_run"}]}function ua(){return[{kind:"archive_task"},{kind:"clear_run"},{kind:"clear_worker_state"}]}var qT={idle:{START:{to:"running",sideEffects:()=>jT()}},running:{AGENT_PROGRESS:{to:"running",sideEffects:()=>[{kind:"update_timestamps",ts:Date.now()}]},NAVIGATION_STARTED:{to:"running",sideEffects:e=>[{kind:"record_navigation",targetUrl:e.targetUrl,isCrossHost:e.isCrossHost},{kind:"update_timestamps",ts:Date.now()}]},NAVIGATION_COMPLETED:{to:"running",sideEffects:()=>[{kind:"clear_navigation"},{kind:"update_timestamps",ts:Date.now()}]},ASK_USER:{to:"awaiting_user",sideEffects:e=>[{kind:"set_pending_questions",questions:e.questions||[]}]},PAUSE:{to:"paused",sideEffects:()=>[{kind:"snapshot_worker_state"},{kind:"release_worker"}]},BLOCK:{to:"blocked",sideEffects:e=>[{kind:"record_block_reason",reason:e.reason},{kind:"notify_agent_blocked"}]},COMPLETE:{to:"completed",sideEffects:()=>qd()},FAIL:{to:"failed",sideEffects:e=>[...qd(),{kind:"emit_error",error:e.error}]},CANCEL:{to:"cancelled",sideEffects:()=>vl()},RESET:{to:"idle",sideEffects:()=>ua()}},awaiting_user:{USER_RESPONDED:{to:"running",sideEffects:()=>[{kind:"clear_questions"}]},PAUSE:{to:"paused",sideEffects:()=>[{kind:"snapshot_worker_state"},{kind:"release_worker"}]},CANCEL:{to:"cancelled",sideEffects:()=>vl()},RESET:{to:"idle",sideEffects:()=>ua()}},paused:{RESUME:{to:"running",sideEffects:()=>[{kind:"restore_snapshot"},{kind:"assign_worker"}]},CANCEL:{to:"cancelled",sideEffects:()=>vl()},RESET:{to:"idle",sideEffects:()=>ua()}},blocked:{UNBLOCK:{to:"running",sideEffects:()=>[{kind:"resume_from_block"}]},CANCEL:{to:"cancelled",sideEffects:()=>vl()},FAIL:{to:"failed",sideEffects:e=>[...qd(),{kind:"emit_error",error:e.error}]},RESET:{to:"idle",sideEffects:()=>ua()}},completed:{RESET:{to:"idle",sideEffects:()=>ua()}},failed:{RESET:{to:"idle",sideEffects:()=>ua()}},cancelled:{RESET:{to:"idle",sideEffects:()=>ua()}}};function WT(e,t,n){let r=qT[e]?.[t.type];if(!r)return{next:e,rejected:!0,rejectedReason:`Invalid transition: ${e} + ${t.type}`,sideEffects:[]};let a=r.to;return e==="paused"&&t.type==="RESUME"&&n?.prePauseState==="awaiting_user"&&(a="awaiting_user"),{next:a,rejected:!1,sideEffects:r.sideEffects(t,n)}}function us(e){return e==="completed"||e==="failed"||e==="cancelled"}function Kg(e){switch(e){case"idle":return"running";case"running":return"running";case"awaiting_user":return"running";case"paused":return"running";case"blocked":return"running";case"completed":return"completed";case"failed":return"failed";case"cancelled":return"cancelled";default:return"running"}}function ds(e,t){if(!e)return"idle";switch(e){case"running":{let n=String(t||"").trim().toLowerCase();return n.includes("waiting_for_input")||n.includes("awaiting_user")?"awaiting_user":"running"}case"completed":return"completed";case"cancelled":return"cancelled";case"failed":return"failed";case"ended":return"cancelled";default:return"idle"}}function Xg(e,t){let n=WT(e.state,t,e);if(n.rejected)return{record:e,result:n};let o=Date.now(),r={...e,state:n.next};if(n.next==="paused"&&!r.pausedAt&&(r.pausedAt=o,r.prePauseState=e.state==="awaiting_user"?"awaiting_user":"running"),n.next==="blocked"){r.blockedAt=o;let a=t;r.blockReason=a.reason}return n.next==="running"&&e.state==="paused"&&(r.pausedAt=void 0,r.prePauseState=void 0),n.next==="running"&&e.state==="blocked"&&(r.blockedAt=void 0,r.blockReason=void 0),n.next==="running"&&e.state==="awaiting_user"&&(r.pausedAt=void 0,r.prePauseState=void 0),us(n.next)&&(r.endedAt=o),t.type==="COMPLETE"&&t.summary&&(r.summary=t.summary),t.type==="RESET"&&(r.pausedAt=void 0,r.prePauseState=void 0,r.blockedAt=void 0,r.blockReason=void 0,r.endedAt=void 0),{record:r,result:n}}function Wd(e){let t=Date.now(),n=e?.taskId||$T(),o=e?.boundaryId||VT();return{taskId:n,state:"idle",boundaryId:o,startedAt:t,uiMessages:[],timeline:[],seedChatLog:[],tabIds:[],...e}}function $T(){return`task_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`}function VT(){return`bnd_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`}function wl(e){return e==="running"}function Yg(e){return e.resumeRequired?e.hasLiveRemoteController?"defer_remote_owner":e.policy==="never"?"cancel_resume":e.policy==="confirm"?"prompt_resume":"auto_resume":"noop"}function Qg(e){let t=String(e.serverRunId||"").trim();if(!t||e.ignoredRunIds?.has(t))return!1;let n=String(e.localPendingRunId||"").trim();return!n||n!==t}function Jg(e){let t=String(e.serverRunId||"").trim();if(!t||!e.ignoredRunIds?.has(t))return!1;let n=String(e.runStatus||"").trim().toLowerCase();return!(n==="completed"||n==="cancelled"||n==="failed"||n==="ended")}function Zg(e){return!(e.taskStatus!=="running"||!e.activeRunId||!e.activeRunText||e.hasPendingRun||e.ignoredRunIds?.has(e.activeRunId))}function $d(e){return!!(e.localTaskStatus!=="running"||e.remoteTaskStatus&&e.remoteTaskStatus!=="running"||e.mode==="observer"&&!e.hasRemoteActiveRun)}function eb(e){let{type:t,messageRunId:n,messageTaskBoundaryId:o,currentTaskBoundaryId:r,pendingRunId:a,sharedActiveRunId:i,authoritativeActiveRunId:s,taskStatus:c,ignoredRunIds:d}=e,f=Se(r),u=Se(o),b=t==="run_state_transition"||t==="run_completed";if((t==="run_started"||t==="run_resumed"||b)&&f&&(!u||u!==f)&&!(b&&!!n&&!!a&&n===a&&c==="running"))return!0;if(!n&&t!=="run_started"&&t!=="run_resumed")return!1;if(n&&d?.has(n))return!0;let g=s||i;return t==="run_started"||t==="run_resumed"?!n||g&&g===n?!1:a?a!==n&&(!g||g!==n):!0:n?t==="run_completed"||t==="run_state_transition"?c!=="running"?!0:a?a!==n&&(!g||g!==n):!(g&&g===n):a?a!==n:!0:!1}function GT(e){return Math.max(1,Number(e)||1)}function KT(e){if(!e)return"idle";if(e.status!=="running")return"terminal";let t=String(e.boundaryReason||"").trim().toLowerCase();return t.includes("waiting_for_input")||t.includes("awaiting_user")?"awaiting_user":"running"}function Vd(e){return e==="completed"||e==="cancelled"||e==="failed"||e==="ended"}function tb(e,t,n){let o=Number(t.at)||Date.now(),r=String(t.reason||"kernel").trim()||"kernel",a=GT(e.taskEpoch),i=e.task||n.createTask(r,o,t.taskId);if(t.type==="new_task")return{task:n.createTask(r,o,t.taskId),taskEpoch:a+1,lifecycle:"running",rotateBoundary:!0,clearPendingRun:!0,clearWorkerState:!0};if(t.type==="terminal"){let d=t.terminal;return{task:{...i,status:d,boundaryReason:r,endedAt:o},taskEpoch:a,lifecycle:"terminal",rotateBoundary:!1,clearPendingRun:!0,clearWorkerState:!0}}let c={...i,status:"running",boundaryReason:r,endedAt:void 0};return!c.lastUserAt&&!c.lastAssistantAt&&(c.lastAssistantAt=o),{task:c,taskEpoch:a,lifecycle:t.type==="awaiting_user"?"awaiting_user":KT(c),rotateBoundary:!1,clearPendingRun:!1,clearWorkerState:!1}}function XT(e,t){let n=Number(e);return Number.isFinite(n)?n:t}function Sr(e){let t="https://agent.rtrvr.ai",n=String(e||t).trim().replace(/\/+$/,"");if(!n)return t;if(n.endsWith("/extensionRouter/v2/rover"))return n.slice(0,-25);let o=n.match(/\/v\d+\/rover$/);return o?.[0]?n.slice(0,-o[0].length):n.endsWith("/extensionRouter")?n.slice(0,-16):n.endsWith("/v2/rover")?n.slice(0,-9):n}function ms(e){let t=new Set,n=[];for(let o of e){let r=ps(o);!r||t.has(r)||(t.add(r),n.push(r))}return n}function YT(e){let t=Sr(e),n=`${t}/v2/rover`,o=ps(String(e||"").trim()),r=o.replace("/extensionRouter/v2/rover","/v2/rover");return o.endsWith("/v2/rover")||o.endsWith("/extensionRouter/v2/rover")?ms([r,n]):ms(!o&&t==="https://agent.rtrvr.ai"?[n,"https://extensionrouter.rtrvr.ai/v2/rover"]:[n])}function nb(e){return YT(e)}function QT(e){return nb(e)[0]||`${Sr(e)}/v2/rover`}function fa(e){return nb(e)}function Tl(e){return QT(e)}function ps(e){return String(e||"").replace(/\/+$/,"")}function xl(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`}function da(e){return!!e&&typeof e=="object"&&typeof e.sessionId=="string"&&Number.isFinite(Number(e.epoch))}function _l(e){let t=Number(e);return Number.isFinite(t)?t:void 0}function JT(e){if(!e||typeof e!="object")return;let t=String(e?.error||"").trim().toLowerCase(),n=e?.data&&typeof e.data=="object"?e.data:{},o=n?.conflict&&typeof n.conflict=="object"?n.conflict:{},r=String(o?.type||t||"").trim().toLowerCase(),a=r==="stale_seq"||r==="stale_epoch"||r==="active_run_exists"?r:void 0;if(!a)return;let i=_l(n?.currentSeq??o?.currentSeq),s=_l(n?.currentEpoch??n?.sessionEpoch??o?.currentEpoch),c=typeof o?.retryable=="boolean"?o.retryable:a==="stale_seq"||a==="stale_epoch";return{type:a,currentSeq:i,currentEpoch:s,retryable:c,decisionHint:typeof n?.decisionHint=="string"?n.decisionHint:void 0,decisionReason:typeof n?.decisionReason=="string"?n.decisionReason:void 0,runId:typeof n?.runId=="string"?n.runId:void 0,sessionId:typeof n?.sessionId=="string"?n.sessionId:void 0,clientEventId:typeof n?.clientEventId=="string"?n.clientEventId:void 0}}function fs(e){return String(e?.error||e?.data?.code||e?.code||"").trim().toUpperCase()}async function oi(e){try{return await e.json()}catch{let t=await e.text().catch(()=>"");return t?{error:t}:void 0}}function Gd(e,t,n){let o=String(t||"").trim(),r=o.startsWith("http://")||o.startsWith("https://")?new URL(o):new URL(`${Sr(e)}/v1/tasks/${encodeURIComponent(o)}`);return n&&!r.searchParams.get("access")&&r.searchParams.set("access",n),r.toString()}var Fo=class Fo{constructor(t){P(this,"options");P(this,"base");P(this,"baseCandidates");P(this,"baseIndex",0);P(this,"sessionToken");P(this,"sessionTokenExpiresAt",0);P(this,"sessionId");P(this,"epoch",1);P(this,"eventSource",null);P(this,"pollTimer",null);P(this,"reconnectTimer",null);P(this,"sseReconnectAttempts",0);P(this,"started",!1);P(this,"lastSeq",0);P(this,"lastRunId","");P(this,"lastSnapshotDigest","");P(this,"activeRunId");P(this,"visibilityListener",null);P(this,"pollIntervalMs",2e3);P(this,"commandInFlight",!1);P(this,"commandQueue",Promise.resolve());this.options=t,this.baseCandidates=fa(t.apiBase),this.base=this.baseCandidates[0]||Tl(t.apiBase),this.sessionId=t.getSessionId()}getSessionToken(){return this.sessionToken}getSessionTokenExpiresAt(){return this.sessionTokenExpiresAt}getEpoch(){return Math.max(1,this.epoch)}getLastSeq(){return Math.max(0,this.lastSeq)}getActiveRunId(){return this.activeRunId}setApiBase(t){this.baseCandidates=fa(t),this.baseIndex=0,this.base=this.baseCandidates[0]||Tl(t)}stop(){this.started=!1,this.pauseBackgroundTransport(),this.visibilityListener&&typeof document<"u"&&(document.removeEventListener("visibilitychange",this.visibilityListener),this.visibilityListener=null),this.sseReconnectAttempts=0,this.lastSeq=0,this.lastRunId="",this.lastSnapshotDigest="",this.activeRunId=void 0}async start(){if(this.started=!0,typeof document<"u"&&!this.visibilityListener&&(this.visibilityListener=()=>{this.handleVisibilityChange()},document.addEventListener("visibilitychange",this.visibilityListener)),await this.ensureSession(!1),!this.shouldKeepTransportActive()){this.pauseBackgroundTransport();return}this.startProjectionStream()}reportError(t){this.options.onError?.(t)}withCommandLock(t){let n=async()=>{this.commandInFlight=!0;try{return await t()}finally{this.commandInFlight=!1}},o=this.commandQueue.then(n,n);return this.commandQueue=o.then(()=>{},()=>{}),o}isDocumentHidden(){return typeof document<"u"&&document.visibilityState==="hidden"}hasOwnershipTransportAllowance(){if(typeof this.options.shouldKeepTransportActive=="function")try{return!!this.options.shouldKeepTransportActive()}catch{return!1}return!!this.activeRunId}shouldKeepTransportActive(){return!this.isDocumentHidden()||this.hasOwnershipTransportAllowance()}pauseBackgroundTransport(){this.eventSource&&(this.eventSource.close(),this.eventSource=null),this.pollTimer!=null&&(window.clearTimeout(this.pollTimer),this.pollTimer=null),this.pollIntervalMs=2e3,this.reconnectTimer!=null&&(window.clearTimeout(this.reconnectTimer),this.reconnectTimer=null)}handleVisibilityChange(){if(this.started){if(!this.shouldKeepTransportActive()){this.pauseBackgroundTransport();return}this.ensureSession(!1).catch(t=>this.reportError(t)).finally(()=>{this.startProjectionStream(),this.eventSource||this.startProjectionPolling(),this.fetchProjection().catch(t=>this.reportError(t))})}}getActiveBase(){return this.baseCandidates.length?ps(this.baseCandidates[this.baseIndex]||this.base):ps(this.base)}rotateBaseCandidate(){this.baseCandidates.length<=1||(this.baseIndex=(this.baseIndex+1)%this.baseCandidates.length,this.base=this.baseCandidates[this.baseIndex]||this.base)}async requestJson(t,n){this.baseCandidates.length||(this.baseCandidates=fa(this.base),this.base=this.baseCandidates[0]||this.base,this.baseIndex=0);let o,r=Math.max(1,this.baseCandidates.length);for(let a=0;a<r;a+=1){let i=(this.baseIndex+a)%r,s=ps(this.baseCandidates[i]||this.base);try{let c=await fetch(`${s}${t}`,n),d=await oi(c);if(c.status===404||c.status===405){o=new Error(`Rover endpoint not found at ${s}${t}`);continue}return this.baseIndex=i,this.base=s,{response:c,json:d}}catch(c){o=c}}throw o instanceof Error?o:new Error(`Rover request failed for ${t}`)}applySessionData(t){t.sessionId&&(this.sessionId=t.sessionId),t.sessionToken&&(this.sessionToken=t.sessionToken,this.sessionTokenExpiresAt=XT(t.sessionTokenExpiresAt,Date.now()+8*6e4)),Number.isFinite(Number(t.epoch))&&(this.epoch=Math.max(1,Number(t.epoch))),t.projection&&da(t.projection)&&this.applyProjection(t.projection),this.options.onSession?.(t)}applyProjection(t){let n=this.epoch,o=this.lastRunId,r=this.lastSeq,a=this.lastSnapshotDigest;this.sessionId=t.sessionId||this.sessionId,this.epoch=Math.max(1,Number(t.epoch||this.epoch));let i=String(t.activeRunId||"");this.activeRunId=i||void 0,i!==this.lastRunId&&(this.lastRunId=i,this.lastSeq=0);let s=Array.isArray(t.events)?t.events:[];if(s.length){let f=Number(s[s.length-1]?.seq||0);Number.isFinite(f)&&f>this.lastSeq&&(this.lastSeq=f)}let c=String(t.snapshotMeta?.digest||"").trim()||(Number.isFinite(Number(t.snapshotMeta?.updatedAt))?`u:${Math.max(0,Number(t.snapshotMeta?.updatedAt||0))}`:Number.isFinite(Number(t.snapshotUpdatedAt))?`u:${Math.max(0,Number(t.snapshotUpdatedAt||0))}`:"");c&&(this.lastSnapshotDigest=c),this.isDocumentHidden()&&!this.shouldKeepTransportActive()&&this.pauseBackgroundTransport(),(this.epoch!==n||i!==o||this.lastSeq!==r||t.snapshot||c&&c!==a)&&this.options.onProjection?.(t)}shouldRefreshSessionToken(){return this.sessionToken?Date.now()+6e4>=this.sessionTokenExpiresAt:!0}async ensureSession(t=!1){if(this.sessionId=this.options.getSessionId()||this.sessionId,!t&&!this.shouldRefreshSessionToken())return null;let n=this.options.getBootstrapToken(),o={siteId:this.options.siteId,sessionId:this.sessionId,requestedSessionId:this.sessionId,host:this.options.getHost(),url:this.options.getPageUrl(),pageUrl:this.options.getPageUrl()},r=!t&&!!this.sessionToken,a={...o,...r?{sessionToken:this.sessionToken}:{},...n?{bootstrapToken:n}:{}};if(!a.sessionToken&&!a.bootstrapToken)return null;let i=async f=>this.requestJson("/session/open",{method:"POST",headers:{"Content-Type":"text/plain"},body:JSON.stringify(f)}),{response:s,json:c}=await i(a);if(s.status===401&&r&&n&&(fs(c)==="SESSION_TOKEN_EXPIRED"||fs(c)==="SESSION_TOKEN_INVALID"||fs(c)==="BOOTSTRAP_REQUIRED")&&(this.sessionToken=void 0,this.sessionTokenExpiresAt=0,{response:s,json:c}=await i({...o,bootstrapToken:n})),!s.ok||!c?.success||!c?.data){let f=fs(c),u=c?.data?.message||c?.error||`session/open failed (${s.status})`,b=new Error(String(u));throw b.code=f||void 0,b}let d=c.data;return this.applySessionData(d),d}syncCursorFromPayload(t){if(!t||typeof t!="object")return;let n=_l(t?.currentEpoch??t?.sessionEpoch);n!==void 0&&(this.epoch=Math.max(1,n));let o=_l(t?.currentSeq);o!==void 0&&o>=0&&(this.lastSeq=Math.max(this.lastSeq,o))}async postJson(t,n,o){await this.ensureSession(!1);let r={...n,requestNonce:xl(),sessionToken:this.sessionToken,sessionId:n.sessionId||this.sessionId},{response:a,json:i}=await this.requestJson(t,{method:"POST",headers:{"Content-Type":"text/plain"},body:JSON.stringify(r)}),s=Math.max(0,Number(o?.authRetryCount||0));if(a.status===401&&s<1){let c=fs(i);if(c==="SESSION_TOKEN_EXPIRED"||c==="SESSION_TOKEN_INVALID"||c==="BOOTSTRAP_REQUIRED")return this.sessionToken=void 0,this.sessionTokenExpiresAt=0,await this.ensureSession(!0),this.postJson(t,n,{authRetryCount:s+1})}if(a.status===409)return this.syncCursorFromPayload(i?.data),{ok:!1,data:i?.data||null,conflict:JT(i),raw:i};if(!a.ok||!i?.success){let c=i?.error||`request failed (${a.status})`,d=new Error(String(c));throw d.status=a.status,d.code=String(i?.error||i?.data?.code||"").trim()||void 0,d.details=i?.data||i,d}return this.syncCursorFromPayload(i?.data),{ok:!0,data:i?.data||null,raw:i}}async submitRunInput(t){return this.withCommandLock(async()=>{let n=String(t.clientEventId||"").trim()||(typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():void 0);for(let o=0;o<2;o+=1){let r=await this.postJson("/command",{type:"RUN_INPUT",commandId:n,expectedEpoch:this.epoch,expectedSeq:this.lastSeq,payload:{runId:t.runId,message:t.message,continueRun:!!t.continueRun,forceNewRun:!!t.forceNewRun,requestedMode:t.requestedMode,taskBoundaryId:this.options.getTaskBoundaryId?.()}});if(!r.ok){let d=(r.data||null)?.data||null;da(d?.projection)&&this.applyProjection(d.projection);let f=String(r.conflict?.type||"").trim(),u=r.conflict?.retryable!==!1&&(f==="stale_seq"||f==="stale_epoch");if(o===0&&u)continue;return d}let a=r.data||{},i=a?.data||null,s=String(a?.runId||i?.runId||"").trim();return s&&(this.activeRunId=s,this.lastRunId=s,Number(a?.seq||i?.seq||0)===0&&this.lastSeq>0&&(this.lastSeq=0)),Number.isFinite(Number(a?.epoch))&&(this.epoch=Math.max(1,Number(a?.epoch))),Number.isFinite(Number(a?.seq))&&(this.lastSeq=Math.max(0,Number(a?.seq||0))),i}return null})}async controlRun(t){return this.withCommandLock(async()=>{let n=String(t.clientEventId||"").trim()||(typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():void 0);for(let o=0;o<2;o++){let r=await this.postJson("/command",{type:"RUN_CONTROL",commandId:n,expectedEpoch:this.epoch,expectedSeq:this.lastSeq,payload:{action:t.action,runId:t.runId,reason:t.reason}});if(!r.ok){if(o===0&&r.conflict?.retryable!==!1)continue;return r.data?.data||null}let a=r.data||{},i=a?.data||null;return Number.isFinite(Number(a?.seq))&&(this.lastSeq=Math.max(0,Number(a.seq||0))),da(i?.projection)&&this.applyProjection(i.projection),i}return null})}async fetchExternalContext(t){return this.withCommandLock(async()=>{let n=String(t.runId||this.activeRunId||this.lastRunId||"").trim()||void 0,o=typeof t.tabId=="string"&&t.tabId.trim()?t.tabId.trim():Number.isFinite(Number(t.tabId))&&Number(t.tabId)>0?String(Math.trunc(Number(t.tabId))):void 0,r=t.intent==="act"||t.intent==="open_only"||t.intent==="read_context"?t.intent:"read_context",a=t.source==="google_search"?"google_search":"direct_url";for(let i=0;i<2;i+=1){let s=await this.postJson("/context/external",{runId:n,logicalTabId:o,url:t.url,intent:r,source:a,message:t.message,adversarialScore:Number.isFinite(Number(t.adversarialScore))?Number(t.adversarialScore):void 0,expectedEpoch:this.epoch,expectedSeq:this.lastSeq});if(!s.ok){let c=String(s.conflict?.type||"").trim(),d=s.conflict?.retryable!==!1&&(c==="stale_seq"||c==="stale_epoch");if(i===0&&d)continue;return s.data||null}return s.data||null}return null})}async sendTabEvent(t){return this.withCommandLock(async()=>{let n=xl(),o={runId:t.runId,currentUrl:t.currentUrl,targetUrl:t.targetUrl,logicalTabId:t.logicalTabId,message:t.message,adversarialScore:t.adversarialScore,currentHost:t.currentHost,targetHost:t.targetHost,isCrossHost:t.isCrossHost,navigationClass:t.navigationClass,clientEventId:n},r=await this.postJson("/command",{type:"TAB_EVENT",commandId:n,expectedEpoch:this.epoch,expectedSeq:this.lastSeq,payload:o});if(r.ok){let c=r.data||{},d=c?.data||null;return Number.isFinite(Number(c?.epoch))&&(this.epoch=Math.max(1,Number(c?.epoch||this.epoch))),Number.isFinite(Number(c?.seq))&&(this.lastSeq=Math.max(0,Number(c?.seq||0))),d?{...d,clientEventId:n,retryAttempted:!1,retryExhausted:!1}:null}let a=r.conflict;if(a?.retryable&&(a.type==="stale_seq"||a.type==="stale_epoch")){let c=await this.postJson("/command",{type:"TAB_EVENT",commandId:n,expectedEpoch:this.epoch,expectedSeq:this.lastSeq,payload:o});if(c.ok){let u=c.data||{},b=u?.data||null;return Number.isFinite(Number(u?.epoch))&&(this.epoch=Math.max(1,Number(u?.epoch||this.epoch))),Number.isFinite(Number(u?.seq))&&(this.lastSeq=Math.max(0,Number(u?.seq||0))),b?{...b,clientEventId:n,retryAttempted:!0,retryExhausted:!1}:{clientEventId:n,retryAttempted:!0,retryExhausted:!1}}let d=c.conflict||a,f=(c.data||r.data||null)?.data||null;return this.fetchProjection().catch(()=>{}),{...f||{},clientEventId:n,retryAttempted:!0,retryExhausted:!0,decisionReason:f?.decisionReason||d?.decisionReason||(d?.type==="stale_epoch"?"stale_epoch_retryable":"stale_seq_retryable"),conflict:d?{type:d.type,currentSeq:d.currentSeq,currentEpoch:d.currentEpoch,retryable:!!d.retryable}:void 0}}let s=(r.data||null)?.data||null;return a?.type&&this.fetchProjection().catch(()=>{}),{...s||{},clientEventId:n,retryAttempted:!1,retryExhausted:!!a,conflict:a?{type:a.type,currentSeq:a.currentSeq,currentEpoch:a.currentEpoch,retryable:!!a.retryable}:s?.conflict}})}async fetchProjection(){if(await this.ensureSession(!1),!this.sessionToken||!this.sessionId)return null;let t=new URLSearchParams({sessionId:this.sessionId,seqAfter:String(this.lastSeq),sessionToken:this.sessionToken}),{response:n,json:o}=await this.requestJson(`/state?${t.toString()}`,{method:"GET"}),r=o?.data&&typeof o.data=="object"&&da(o.data?.projection)?o.data.projection:o?.data;if(!n.ok||!o?.success||!da(r))return null;let a=r;return this.applyProjection(a),a}async saveSnapshot(t){return this.withCommandLock(async()=>!!(await this.postJson("/snapshot",{checkpoint:t.checkpoint,updatedAt:t.updatedAt,version:t.version,seq:t.seq,chatSummary:t.chatSummary,compactedPrevSteps:t.compactedPrevSteps,ttlHours:t.ttlHours,visitorId:t.visitorId}))?.ok)}async sendBatch(t){if(!t.length)return[];let o=t.slice(0,5);return(await this.postJson("/batch",{requests:o.map(a=>({path:a.path,body:a.body}))}))?.data?.results||[]}async attachLaunch(t){let n=String(t.requestId||"").trim(),o=String(t.attachToken||"").trim();if(!n||!o)return null;let r=await this.postJson(`/launches/${encodeURIComponent(n)}/attach`,{attachToken:o,roverAttach:o,host:this.options.getHost?.()});return r.ok&&r.data||null}async claimBrowserTaskReceipt(t){let n=String(t.receipt||"").trim();if(!n)return null;await this.ensureSession(!1);let o={receipt:n,requestNonce:xl(),sessionToken:this.sessionToken,sessionId:this.sessionId,host:this.options.getHost?.()};this.baseCandidates.length||(this.baseCandidates=fa(this.base),this.base=this.baseCandidates[0]||this.base,this.baseIndex=0);let r=ms(this.baseCandidates.map(i=>Sr(i))),a;for(let i of r)try{let s=await fetch(`${i}/v1/tasks/claim-browser`,{method:"POST",headers:{"Content-Type":"text/plain"},body:JSON.stringify(o)}),c=await oi(s);if(!s.ok||!c?.success){a=new Error(String(c?.error||`request failed (${s.status})`)),a.status=s.status,a.details=c?.data||c;continue}return c.data||null}catch(s){a=s}throw a instanceof Error?a:new Error("Browser receipt claim failed.")}async createSessionRootTask(t){let n=String(t.url||"").trim(),o=String(t.prompt||"").trim();if(!n||!o)return null;await this.ensureSession(!1);let r={url:n,prompt:o,runId:String(t.runId||"").trim()||void 0,requestNonce:xl(),sessionToken:this.sessionToken,sessionId:this.sessionId,host:this.options.getHost?.()};this.baseCandidates.length||(this.baseCandidates=fa(this.base),this.base=this.baseCandidates[0]||this.base,this.baseIndex=0);let a=ms(this.baseCandidates.map(s=>Sr(s))),i;for(let s of a)try{let c=await fetch(`${s}/v1/tasks/session-root`,{method:"POST",headers:{"Content-Type":"text/plain",Accept:"application/json"},body:JSON.stringify(r)}),d=await oi(c);if(!c.ok||!d?.success){i=new Error(String(d?.error||`request failed (${c.status})`)),i.status=c.status,i.details=d?.data||d;continue}return d.data||null}catch(c){i=c}throw i instanceof Error?i:new Error("Session root task creation failed.")}async createTaskHandoff(t){let n=String(t.parentTaskId||"").trim(),o=String(t.taskAccessToken||"").trim(),r=String(t.url||"").trim();if(!n||!o||!r)return null;await this.ensureSession(!1);let a=Gd(Sr(this.base),n,o).replace(/\/+$/,"").concat("/handoffs"),i=new Headers({"Content-Type":"application/json",Accept:"application/json"}),s=[];t.execution&&s.push(`execution=${t.execution}`),s.length&&i.set("Prefer",s.join(", "));let c={url:r,...String(t.prompt||"").trim()?{prompt:String(t.prompt).trim()}:{},...String(t.instruction||"").trim()?{instruction:String(t.instruction).trim()}:{},...String(t.shortcutId||"").trim()?{shortcutId:String(t.shortcutId).trim()}:{},...String(t.contextSummary||"").trim()?{contextSummary:String(t.contextSummary).trim()}:{},...String(t.expectedOutput||"").trim()?{expectedOutput:String(t.expectedOutput).trim()}:{},...String(t.originalGoal||"").trim()?{originalGoal:String(t.originalGoal).trim()}:{},...t.lastObservation&&typeof t.lastObservation=="object"?{lastObservation:t.lastObservation}:{},sessionToken:this.sessionToken,sessionId:this.sessionId,host:this.options.getHost?.()},d=await fetch(a,{method:"POST",headers:i,body:JSON.stringify(c)}),f=await oi(d);if(!d.ok||!f?.success){let u=String(f?.error||`request failed (${d.status})`),b=new Error(u);throw b.status=d.status,b.details=f?.data||f,b}return f.data||null}async getPublicTask(t,n={}){let o=new Headers({Accept:"application/json"});typeof n.waitSeconds=="number"&&n.waitSeconds>0&&o.set("Prefer",`wait=${Math.trunc(n.waitSeconds)}`);let r=Gd(Sr(this.base),t,n.accessToken),a=await fetch(r,{method:"GET",headers:o}),i=await oi(a);if(!a.ok||!i?.success){let s=String(i?.error||`request failed (${a.status})`),c=new Error(s);throw c.status=a.status,c.details=i?.data||i,c}return i.data||null}async continuePublicTask(t,n,o={}){let r=String(n||"").trim();if(!r)return null;let a=new Headers({Accept:"application/json","Content-Type":"application/json"}),i=Gd(Sr(this.base),t,o.accessToken),s=await fetch(i,{method:"POST",headers:a,body:JSON.stringify({input:r})}),c=await oi(s);if(!s.ok||!c?.success){let d=String(c?.error||`request failed (${s.status})`),f=new Error(d);throw f.status=s.status,f.details=c?.data||c,f}return c.data||null}async ingestLaunchEvents(t){let n=String(t.requestId||"").trim(),o=Array.isArray(t.events)?t.events.filter(Boolean):[];if(!n||!o.length)return!1;let r=await this.postJson("/events/ingest",{launchRequestId:n,runId:String(t.runId||"").trim()||void 0,events:o.map(a=>({type:a.type,ts:a.ts,data:a.data}))});return r.ok&&r.data?.accepted!==!1}scheduleProjectionPoll(t){this.pollTimer!=null&&(window.clearTimeout(this.pollTimer),this.pollTimer=null),this.pollTimer=window.setTimeout(async()=>{if(this.pollTimer=null,!this.started||!this.shouldKeepTransportActive())return;let n=this.epoch,o=this.lastSeq,r=this.lastSnapshotDigest;try{await this.fetchProjection()}catch(i){this.reportError(i)}this.epoch!==n||this.lastSeq!==o||this.lastSnapshotDigest!==r?this.pollIntervalMs=2e3:this.pollIntervalMs=Math.min(15e3,Math.round(this.pollIntervalMs*1.4)),this.started&&this.shouldKeepTransportActive()&&!this.eventSource&&this.scheduleProjectionPoll(this.pollIntervalMs)},t)}startProjectionPolling(){this.pollTimer==null&&(this.pollIntervalMs=2e3,this.scheduleProjectionPoll(this.pollIntervalMs))}scheduleSseReconnect(){if(!this.started||!this.shouldKeepTransportActive()||this.reconnectTimer!=null)return;if(this.sseReconnectAttempts>=Fo.SSE_MAX_RECONNECT_ATTEMPTS){this.sseReconnectAttempts=0;return}let t=Fo.SSE_BASE_DELAY_MS,n=Math.min(t*Math.pow(2,this.sseReconnectAttempts),Fo.SSE_MAX_DELAY_MS),o=Math.random()*Fo.SSE_MAX_JITTER_MS,r=Math.round(n+o);this.sseReconnectAttempts++,this.reconnectTimer=window.setTimeout(()=>{this.reconnectTimer=null,this.startProjectionStream()},r)}startProjectionStream(){if(!this.started)return;if(!this.shouldKeepTransportActive()){this.pauseBackgroundTransport();return}if(!this.sessionToken||!this.sessionId){this.startProjectionPolling();return}if(this.eventSource)return;if(typeof EventSource>"u"){this.startProjectionPolling();return}let t=new URLSearchParams({sessionId:this.sessionId,cursor:String(this.lastSeq),sessionToken:this.sessionToken}),n=`${this.getActiveBase()}/stream?${t.toString()}`,o=new EventSource(n,{withCredentials:!1});this.eventSource=o;let r=a=>{try{let i=JSON.parse(a||"{}"),s=i&&typeof i=="object"&&da(i.projection)?i.projection:i;da(s)&&this.applyProjection(s)}catch(i){this.reportError(i)}};o.addEventListener("projection",a=>{r(a.data||"{}")}),o.addEventListener("projection_delta",a=>{r(a.data||"{}")}),o.onerror=()=>{this.eventSource&&(this.eventSource.close(),this.eventSource=null),this.ensureSession(!0).catch(a=>this.reportError(a)).finally(()=>{if(this.rotateBaseCandidate(),!this.shouldKeepTransportActive()){this.pauseBackgroundTransport();return}this.pollTimer==null&&this.startProjectionPolling(),this.scheduleSseReconnect()})},o.onopen=()=>{if(!this.shouldKeepTransportActive()){this.pauseBackgroundTransport();return}this.sseReconnectAttempts=0,this.pollTimer!=null&&(window.clearTimeout(this.pollTimer),this.pollTimer=null,this.pollIntervalMs=2e3)}}};P(Fo,"SSE_BASE_DELAY_MS",2e3),P(Fo,"SSE_MAX_DELAY_MS",6e4),P(Fo,"SSE_MAX_JITTER_MS",3e3),P(Fo,"SSE_MAX_RECONNECT_ATTEMPTS",10);var El=Fo;function hs(e){return Array.isArray(e)?e.length:0}function Kd(e){return String(e||"").trim()||void 0}function ob(e){return String(e||"").trim()||void 0}function rb(e){if(!e)return 0;let t=0;String(e.pendingRun?.id||"").trim()&&(t+=4,e.pendingRun?.resumeRequired&&(t+=1),Kd(e.pendingRun?.taskBoundaryId)&&(t+=1)),e.activeTask?.status==="running"&&(t+=2);let o=e.workerState;return o&&(t+=1,String(o.rootUserInput||"").trim()&&(t+=1),t+=Math.min(3,hs(o.history)),t+=Math.min(3,hs(o.plannerHistory)),t+=Math.min(4,hs(o.agentPrevSteps)),hs(o.pendingAskUser?.questions)>0&&(t+=3)),hs(e.taskTabScope?.touchedTabIds)>0&&(t+=1),t}function Xd(e){let t=ob(e.localState.pendingRun?.id),n=ob(e.incomingState.pendingRun?.id),o=Kd(e.localState.pendingRun?.taskBoundaryId||e.localState.workerState?.taskBoundaryId),r=Kd(e.incomingState.pendingRun?.taskBoundaryId||e.incomingState.workerState?.taskBoundaryId);return{localRunId:t,incomingRunId:n,exactRunMatch:!!(t&&n&&t===n),localBoundaryId:o,incomingBoundaryId:r,exactBoundaryMatch:!!(o&&r&&o===r),localScore:rb(e.localState),incomingScore:rb(e.incomingState)}}function Yd(e){let t=Math.max(0,Number(e.clockSkewMs)||200);if(e.incomingUpdatedAt>e.localUpdatedAt+t)return!0;if(!e.crossDomainResumeActive)return!1;let n=Xd({localState:e.localState,incomingState:e.incomingState});if(n.incomingScore<=n.localScore)return!1;if(n.localBoundaryId&&n.incomingBoundaryId&&n.localBoundaryId!==n.incomingBoundaryId){let r=Math.max(1,Number(e.localState.taskEpoch)||1);if(Math.max(1,Number(e.incomingState.taskEpoch)||1)<r)return!1}return!!(n.exactRunMatch||n.exactBoundaryMatch||!!!(n.localRunId||n.localBoundaryId))}function zo(e){return String(e||"").trim()||void 0}function Qd(e){return e==="preserve_if_running"}function ab(e,t){let n=zo(t.boundaryId),o=zo(t.runId),r=zo(t.taskId),a=Array.from(e);if(n){let i=a.find(s=>zo(s.boundaryId)===n);if(i)return i}if(o){let i=a.find(s=>zo(s.pendingRun?.id)===o);if(i)return i}if(r){let i=a.find(s=>zo(s.taskId)===r);if(i)return i}}function ib(e){let t=zo(e.localPendingRunId);if(t)return t;let n=zo(e.sharedActiveRunId);if(!n)return;let o=zo(e.sharedTaskId),r=zo(e.activeTaskId);if(!(o&&r&&o!==r))return n}var Il=class{constructor(t){P(this,"maxWorkers");P(this,"maxQueue");P(this,"activeWorkers",new Map);P(this,"queue",[]);P(this,"onWorkerFreed");this.maxWorkers=Math.min(Math.max(1,Number(t?.maxWorkers)||1),2),this.maxQueue=Math.max(1,Number(t?.maxQueue)||3),this.onWorkerFreed=t?.onWorkerFreed}acquire(t,n){if(this.activeWorkers.has(t))return this.activeWorkers.get(t);if(this.removeFromQueue(t),this.activeWorkers.size<this.maxWorkers){let o=new Worker(n.workerUrl,n.workerOptions);return this.activeWorkers.set(t,o),o}return this.queue.length>=this.maxQueue&&this.queue.shift(),this.queue.push(t),null}release(t){let n=this.activeWorkers.get(t);if(n){try{n.terminate()}catch{}this.activeWorkers.delete(t)}this.removeFromQueue(t),this.dequeueNext()}getWorker(t){return this.activeWorkers.get(t)}getActiveCount(){return this.activeWorkers.size}isQueued(t){return this.queue.includes(t)}getQueuedTasks(){return[...this.queue]}getActiveTasks(){return Array.from(this.activeWorkers.keys())}shutdown(){for(let[,t]of this.activeWorkers)try{t.terminate()}catch{}this.activeWorkers.clear(),this.queue=[]}removeFromQueue(t){let n=this.queue.indexOf(t);n>=0&&this.queue.splice(n,1)}dequeueNext(){if(this.queue.length===0||this.activeWorkers.size>=this.maxWorkers)return;let t=this.queue.shift();t&&this.onWorkerFreed&&this.onWorkerFreed(t)}};var ZT=10,e_=8,t_=12,sb=40,cb=60,n_=5*6e4,o_=5,ri=class e{constructor(t){P(this,"tasks",new Map);P(this,"activeTaskId");P(this,"taskOrder",[]);P(this,"workerPool");P(this,"maxArchivedTasks");P(this,"tabToTask",new Map);this.workerPool=new Il({maxWorkers:t?.maxConcurrentWorkers,maxQueue:t?.maxQueuedTasks,onWorkerFreed:n=>this.onWorkerSlotFreed(n)}),this.maxArchivedTasks=Math.max(1,Number(t?.maxArchivedTasks)||ZT)}createTask(t,n){let o=Wd(n);return this.tasks.set(o.taskId,o),this.taskOrder.push(o.taskId),o}dispatch(t,n){let o=this.tasks.get(t);if(!o)return{accepted:!1,task:Wd({taskId:t}),sideEffects:[],rejectedReason:`Task ${t} not found`};let{record:r,result:a}=Xg(o,n);return a.rejected||this.tasks.set(t,r),{accepted:!a.rejected,task:a.rejected?o:r,sideEffects:a.sideEffects,rejectedReason:a.rejectedReason}}switchActiveTask(t){let n=this.tasks.get(t);if(!n)return;let o=this.getActiveTask();return this.activeTaskId=t,n}getActiveTask(){if(this.activeTaskId)return this.tasks.get(this.activeTaskId)}getActiveTaskId(){return this.activeTaskId}listTasks(){return this.taskOrder.map(t=>this.tasks.get(t)).filter(t=>!!t)}getTask(t){return this.tasks.get(t)}hasTask(t){return this.tasks.has(t)}getTaskCount(){return this.tasks.size}updateTask(t,n){let o=this.tasks.get(t);if(!o)return;let r=n(o);return this.tasks.set(t,r),r}updateScrollPosition(t,n){let o=this.tasks.get(t);o&&this.tasks.set(t,{...o,scrollPosition:n})}assignWorker(t,n){let o=this.workerPool.acquire(t,n);if(o){let r=this.tasks.get(t);r&&this.tasks.set(t,{...r,workerId:t})}return o}releaseWorker(t){this.workerPool.release(t);let n=this.tasks.get(t);n&&this.tasks.set(t,{...n,workerId:void 0})}getWorker(t){return this.workerPool.getWorker(t)}getQueuedTasks(){return this.workerPool.getQueuedTasks()}isTaskQueued(t){return this.workerPool.isQueued(t)}onWorkerSlotFreed(t){}mapTabToTask(t,n){this.tabToTask.set(t,n);let o=this.tasks.get(n);o&&!o.tabIds.includes(t)&&this.tasks.set(n,{...o,tabIds:[...o.tabIds,t]})}getTaskForTab(t){let n=this.tabToTask.get(t);if(n)return this.tasks.get(n)}getTaskByBoundaryId(t){for(let n of this.tasks.values())if(n.boundaryId===t)return n}archiveTask(t){let n=this.tasks.get(t);if(!n)return;let o={...n,uiMessages:n.uiMessages.slice(-e_),timeline:n.timeline.slice(-t_),transientStatus:void 0,workerState:void 0,pendingRun:void 0};this.tasks.set(t,o),this.workerPool.release(t)}pruneArchivedTasks(){let t=[];for(let n of this.taskOrder){let o=this.tasks.get(n);o&&us(o.state)&&t.push(n)}for(;t.length>this.maxArchivedTasks;){let n=t.shift();this.tasks.delete(n),this.taskOrder=this.taskOrder.filter(o=>o!==n);for(let[o,r]of this.tabToTask)r===n&&this.tabToTask.delete(o)}}deleteTask(t){if(!this.tasks.has(t))return!1;this.workerPool.release(t),this.tasks.delete(t),this.taskOrder=this.taskOrder.filter(n=>n!==t);for(let[n,o]of this.tabToTask)o===t&&this.tabToTask.delete(n);return this.activeTaskId===t&&(this.activeTaskId=this.taskOrder.length>0?this.taskOrder[this.taskOrder.length-1]:void 0),!0}toPersistedState(){let t={};for(let[n,o]of this.tasks)t[n]=o;return{tasks:t,activeTaskId:this.activeTaskId,taskOrder:[...this.taskOrder]}}static fromPersistedState(t,n){let o=new e(n);if(t.tasks&&typeof t.tasks=="object"){for(let[r,a]of Object.entries(t.tasks))if(a&&typeof a=="object"&&a.taskId&&(o.tasks.set(r,a),Array.isArray(a.tabIds)))for(let i of a.tabIds)o.tabToTask.set(i,r)}return o.taskOrder=Array.isArray(t.taskOrder)?t.taskOrder.filter(r=>o.tasks.has(r)):Array.from(o.tasks.keys()),o.activeTaskId=t.activeTaskId&&o.tasks.has(t.activeTaskId)?t.activeTaskId:o.taskOrder.length>0?o.taskOrder[o.taskOrder.length-1]:void 0,o}static fromV1State(t,n){let o=new e(n);if(t.activeTask){let r=ds(t.activeTask.status,t.activeTask.boundaryReason),a={taskId:t.activeTask.taskId,state:r,boundaryId:t.workerState?.taskBoundaryId||t.pendingRun?.taskBoundaryId||`bnd_migrated_${Date.now().toString(36)}`,startedAt:t.activeTask.startedAt,endedAt:t.activeTask.endedAt,lastUserAt:t.activeTask.lastUserAt,lastAssistantAt:t.activeTask.lastAssistantAt,uiMessages:Array.isArray(t.uiMessages)?[...t.uiMessages]:[],timeline:Array.isArray(t.timeline)?[...t.timeline]:[],workerState:t.workerState?{...t.workerState}:void 0,pendingRun:t.pendingRun?{...t.pendingRun}:void 0,tabScope:t.taskTabScope?{...t.taskTabScope}:void 0,rootUserInput:t.workerState?.rootUserInput,seedChatLog:t.workerState?.seedChatLog?[...t.workerState.seedChatLog]:[],transientStatus:t.transientStatus?{...t.transientStatus}:void 0,tabIds:t.taskTabScope?.touchedTabIds?[...t.taskTabScope.touchedTabIds]:[]};o.tasks.set(a.taskId,a),o.taskOrder.push(a.taskId),o.activeTaskId=a.taskId;for(let i of a.tabIds)o.tabToTask.set(i,a.taskId)}return o}enforceMemoryCaps(){for(let[,t]of this.tasks)us(t.state)||(t.uiMessages.length>sb&&(t.uiMessages=t.uiMessages.slice(-sb)),t.timeline.length>cb&&(t.timeline=t.timeline.slice(-cb)))}terminateInactiveWorkers(){let t=Date.now(),n=[];for(let[o,r]of this.tasks){if(r.state!=="paused")continue;t-(r.pausedAt||t)>n_&&this.workerPool.getWorker(o)&&(this.workerPool.release(o),n.push(o))}return n}canCreateNewTask(t){if(t>o_)return{allowed:!1,reason:`Too many Rover tabs open (${t}). Close some tabs to create new tasks.`};let n=this.workerPool.getActiveCount(),o=this.workerPool.getQueuedTasks().length;return n>=2&&o>=3?{allowed:!1,reason:"Maximum parallel tasks reached. Complete or cancel a task first."}:{allowed:!0}}shutdown(){this.workerPool.shutdown(),this.tasks.clear(),this.taskOrder=[],this.tabToTask.clear(),this.activeTaskId=void 0}};var r_=[/\/login/i,/\/signin/i,/\/auth/i,/\/oauth/i,/\/password/i,/\/reset/i,/\/verify/i,/\/confirm/i,/\/account/i,/\/security/i,/\/2fa/i,/\/mfa/i],a_=[/data:/i,/javascript:/i,/vbscript:/i,/blob:/i],i_=[/token/i,/secret/i,/password/i,/apikey/i,/api_key/i,/access_token/i,/refresh_token/i,/session/i,/cookie/i,/credential/i],s_=/^(\d{1,3}\.){3}\d{1,3}$/;function Jd(e,t){let n=0,o=[],r;try{r=new URL(e)}catch{return{score:1,blocked:!1,reasons:["invalid_url"]}}for(let f of a_)if(f.test(e)){n+=3,o.push("exfiltration_scheme");break}s_.test(r.hostname)&&(n+=2,o.push("ip_address_host")),r.hostname.split(".").length>4&&(n+=1,o.push("excessive_subdomains"));let i=r_.filter(f=>f.test(r.pathname)).length;i>=2?(n+=2,o.push("multiple_credential_paths")):i===1&&(n+=1,o.push("credential_path"));let c=Array.from(r.searchParams.keys()).filter(f=>i_.some(u=>u.test(f))).length;return c>0&&(n+=Math.min(2,c),o.push("sensitive_query_params")),e.length>2e3&&(n+=1,o.push("excessive_url_length")),(e.match(/%[0-9A-Fa-f]{2}/g)||[]).length>20&&(n+=1,o.push("excessive_encoding")),r.port&&r.port!=="80"&&r.port!=="443"&&(n+=1,o.push("non_standard_port")),{score:n,blocked:n>=3,reasons:o}}function lb(e,t){return Jd(e,t).blocked}var ii,Sl=null,gs=!1,io=32,ai=4,c_="#6b6bff";function l_(){return document.querySelector('link[rel="icon"], link[rel="shortcut icon"]')}function ub(){let e=document.createElement("link");return e.rel="icon",e.type="image/png",document.head.appendChild(e),e}function db(e=c_){if(gs)return!0;try{let t=l_();t&&(ii=t.href,Sl=t);let n=document.createElement("canvas");n.width=io,n.height=io;let o=n.getContext("2d");if(!o)return!1;let r=new Image;return r.crossOrigin="anonymous",r.onload=()=>{o.drawImage(r,0,0,io,io),o.beginPath(),o.arc(io-ai-1,io-ai-1,ai,0,Math.PI*2),o.fillStyle=e,o.fill(),o.strokeStyle="#1a1a2e",o.lineWidth=1,o.stroke();let a=n.toDataURL("image/png"),i=t||ub();i.href=a,gs=!0},r.onerror=()=>{o.fillStyle="#1a1a2e",o.fillRect(0,0,io,io),o.fillStyle="#fff",o.font="bold 20px sans-serif",o.textAlign="center",o.textBaseline="middle",o.fillText("R",io/2,io/2),o.beginPath(),o.arc(io-ai-1,io-ai-1,ai,0,Math.PI*2),o.fillStyle=e,o.fill();let a=n.toDataURL("image/png"),i=t||ub();i.href=a,gs=!0},ii?r.src=ii:r.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEAAAAALAAAAAABAAEAAAIBAAA=",!0}catch{return!1}}function fb(){if(gs){gs=!1;try{Sl&&ii&&(Sl.href=ii),ii=void 0,Sl=null}catch{}}}function mb(e){if(e.crossRegistrableDomain&&!e.serverAvailable)return{decision:e.fallbackDecision,decisionReason:"preflight_unavailable_fallback",failSafeBlocked:!1};let t=e.serverDecision==="stale_run"?e.fallbackDecision:e.serverDecision||e.fallbackDecision;return{decision:t,decisionReason:t,failSafeBlocked:!1}}function pb(e){let t=String(e.pendingRunText||"").trim();if(t)return t;let n=String(e.activeRunText||"").trim();if(n)return n;let o=String(e.rootWorkerInput||"").trim();if(o)return o;let r=String(e.lastUserInputText||"").trim();return r||String(e.fallback||"navigation request").trim()||"navigation request"}function bs(e,t="tab_not_accessible"){let n=Number(e?.logicalTabId)||void 0,o=e?.url||"",r=e?.title||(e?.external?"External Tab (Inaccessible)":"Detached Runtime Tab (Unavailable)"),a=String(t||"").trim(),i=a?` Reason: ${a}.`:"",s=e?.external?`This external tab is tracked in virtual mode only. Live DOM control and accessibility-tree access are unavailable here.${i}`:`This tab is a detached runtime placeholder and is not attached to an active Rover runtime. Switch to an attached tab or reopen the page.${i}`;return{url:o,title:r,contentType:"text/html",content:s,metadata:{inaccessible:!0,external:!!e?.external,accessMode:e?.external?"external_placeholder":"detached_runtime_placeholder",roverAvailability:e?.roverAvailability||"unknown",reason:t,logicalTabId:n}}}function ks(e,t,n="tab_not_accessible"){let o=Number(t?.logicalTabId)||0,r=t?.url||"",a=t?.external?`Tab ${o} is external to the active runtime and cannot be controlled directly.`:`Tab ${o} is not attached to an active Rover runtime.`,i=t?.external?"DOMAIN_SCOPE_BLOCKED":"TAB_NOT_ACCESSIBLE";return{success:!1,error:a,allowFallback:!0,output:{success:!1,error:{code:i,message:a,missing:[],next_action:t?.external?"Use open_new_tab for external context or continue on an in-scope tab.":"Switch to an active tab and retry.",retryable:!1},blocked_url:r||void 0,logical_tab_id:o||void 0,external:!!t?.external,policy_action:t?.external?e.externalNavigationPolicy||"open_new_tab_notice":void 0,reason:n},errorDetails:{code:i,message:a,retryable:!1,details:{logicalTabId:o,blockedUrl:r,external:!!t?.external,reason:n}}}}function u_(e){if(e.startNewTask||!e.hasAskUserAnswers||e.taskStatus!=="running")return!1;let t=Se(e.pendingAskUserBoundaryId),n=Se(e.currentTaskBoundaryId);return t&&n&&t!==n?!1:(Math.max(0,Number(e.pendingAskUserQuestionCount)||0)<=0,!0)}function hb(e){return!u_(e)}var d_=new Set(["a","an","and","are","as","at","be","by","for","from","how","i","in","is","it","of","on","or","that","the","this","to","was","what","when","where","who","why","with","you","your"]);function Zd(e){return String(e||"").replace(/\s+/g," ").trim().slice(0,2e3)}function f_(e){if(!Array.isArray(e)||e.length===0)return[];let t=[];for(let n of e){if(!n||n.role!=="user"&&n.role!=="assistant")continue;let o=Zd(n.text);if(!o)continue;if(n.role==="user"){t.push({user:o,ts:Number(n.ts)||0});continue}if(!t.length)continue;let r=t[t.length-1];r.assistant||(r.assistant=o,r.ts=Math.max(r.ts,Number(n.ts)||0))}return t}function gb(e){let t=String(e||"").toLowerCase().split(/[^a-z0-9]+/g).map(n=>n.trim()).filter(n=>n.length>=2&&!d_.has(n));return new Set(t)}function m_(e,t){let n=gb(e),o=gb(t);if(!n.size||!o.size)return 0;let r=0;for(let i of n)o.has(i)&&(r+=1);let a=n.size+o.size-r;return a<=0?0:r/a}function bb(e){if(e.mode!=="heuristic_same_window")return{reason:"mode_disabled",overlap:0};let t=e.previousTaskStatus;if(t!=="completed"&&t!=="ended"&&t!=="cancelled")return{reason:"status_ineligible",overlap:0};let n=f_(e.previousTaskMessages),o=Zd(e.previousTaskUserInput),r=Zd(e.previousTaskAssistantOutput),a=n.length?n:o&&r?[{user:o,assistant:r,ts:Number(e.previousTaskCompletedAt)||0}]:[];if(!a.some(p=>p.user))return{reason:"missing_previous_intent",overlap:0};if(!a.some(p=>p.assistant))return{reason:"missing_previous_output",overlap:0};let i=Math.max(0,Number(e.previousTaskCompletedAt)||0),s=Math.max(i,Number(e.now)||Date.now()),c=Math.max(1e3,Number(e.ttlMs)||0);if(!i||s-i>c)return{reason:"ttl_expired",overlap:0};let d=Math.max(0,Math.min(1,Number(e.minLexicalOverlap)||0)),f=a.map((p,g)=>{let y=m_(p.user,e.currentPrompt),E=a.length>1?g/(a.length-1)*.05:.05;return{...p,overlap:y,score:y+E,index:g}}).filter(p=>!!p.assistant);if(!f.length)return{reason:"missing_previous_output",overlap:0};let u=f.filter(p=>p.overlap>=d).sort((p,g)=>g.score!==p.score?g.score-p.score:g.index-p.index).slice(0,2).sort((p,g)=>p.index-g.index),b=f.reduce((p,g)=>Math.max(p,g.overlap),0);return u.length?{reason:"attached",overlap:b,chatLog:u.flatMap(p=>[{role:"user",message:p.user},{role:"model",message:p.assistant||""}])}:{reason:"low_lexical_overlap",overlap:b}}var Mf=2,ru="rover:runtime:",p_="rover:runtime-id:",Db="rover:visitor-id:",zl=Tt.uiMessages,jl=Tt.timelineEvents,Nf=Tt.uiMessages,h_=4,Lf=Tt.plannerHistory,Df=Tt.prevSteps,g_=8e3,b_=12,k_=15*6e4,y_=2,v_=12e4,w_=.18,x_=30,T_=3600*24*365,Ob=1,__=3e3,E_=4500,I_=12e3,S_=30,ql=240,kb=5*6e4,Wl=100,$l=12,R_=80,A_=200,C_=700,M_=8,N_=240,L_=48,D_=2600,O_=800,P_=5e3,B_="rover:handoff-bootstrap:",Pb=3e4,U_=12e4,H_=2500,F_=2*6e4,z_=45e3,j_=2e4,Ps=400,q_=15e3,W_=7,$_=80,V_=2500,G_=250,K_=1e4,X_=400,ef=40,tf=1e3,Y_=350,Q_=1e4,Bs=3e4,J_=20,Lr=null,at=null,qe=null,Q=null,C=null,Tn=null,ar=null,l=null,sr=null,it="",L=null,Et=null,Nl=null,Un=[],Ll=!1,fi=!1,Bb=0,uf=0,df=0,Vl=0,Ss=!1,cr=null,Z_=1500,eE=5e3,yb=1e4,vb=1200,Ub=new Set(["error","navigation_guardrail","checkpoint_error","tab_event_conflict_exhausted","voice_error","voice_permission_denied"]),tE=new Set(["ready","error","auth_required","navigation_guardrail","checkpoint_error","tab_event_conflict_exhausted","voice_error","voice_permission_denied"]),Ft,To,Ur=!1,ya=!1,Rs=null,As=null,Co=null,ff="",xi=!1,ci="",bt="controller",lo=!1,Ti=!1,xo=!0,Mo=!1,kn=!1,En=!1,Wo=!1,ma=[],nE=3,wb=1e4,Re="",It=null,gt=null,_n=0,Ar=null,Dl=!1,mf=!1,pf=!1,hf=!1,Or=[],mi=null,pi=null,ui="",Ts="",Cr=null,hi=null,Cs="",_s="",Mr=null,ga="",Us=null,Jn=null,gi=null;function Ol(e,t,n,o){e.addEventListener(t,n,o),Or.push({target:e,event:t,handler:n,options:o}),Or.length>100&&Or.length%50===0&&oE()}function oE(){for(let e=Or.length-1;e>=0;e--){let t=Or[e],n=t.target;if(n&&"isConnected"in n&&n.isConnected===!1){try{t.target.removeEventListener(t.event,t.handler,t.options)}catch{}Or.splice(e,1)}}}var Gl=null,Es=0,Pr=null,bi,Rl="",ln,Ms,Ns=!1,ki=null,wa,Ko,_i=0,rE=50,aE=100,iE=20,sE=3e5;function Hb(e,t){for(;e.size>t;){let n=e.keys().next();if(n.done)break;e.delete(n.value)}}function cE(e,t){let n=e.values();for(;e.size>t;){let o=n.next();if(o.done)break;e.delete(o.value)}}var $o=new Map,_o=new Set,he=null,cn,Vo=0,ir=1,Ks,Hs="",K=null,ba=null,Fs=new Set,Ls="",li="",Nr=null,zs=null,gf=!1,lE=new Set(["run_started","run_state_transition","run_completed","assistant","status","tool_start","tool_result","runtime_tabs_diagnostics","auth_required","navigation_guardrail","error"]),bf={read:"rover_external_read_context",act:"rover_external_act_context"},Pl=[],Bl=new Map,bn=new Map;function Ve(e,t){Qe(e,t);let n=Bl.get(e);if(n)for(let o of n)try{o(t)}catch{}}function Fb(e){return Hg(e)}async function uE(e){if(Fs.size===0)return[];let t=[];for(let n of Fs)try{let o=await n(e),r=Array.isArray(o)?o:o==null?[]:[o];for(let a of r){let i=Fb(a);i&&t.push(i)}}catch{}return Do(t)}function zb(e){return Fg({msg:e,taskId:String(l?.activeTask?.taskId||Ri()?.taskId||"").trim()||void 0,currentTaskBoundaryId:l?.pendingRun?.taskBoundaryId||Re,normalizeTaskBoundaryId:t=>Se(typeof t=="string"?t:void 0),pageUrl:typeof window<"u"?window.location.href:void 0,now:Date.now()})}function jb(e,t){let n=typeof e?.runId=="string"&&e.runId.trim()?e.runId.trim():String(l?.pendingRun?.id||"").trim()||void 0;return zg({msg:n?{...e,runId:n}:e,taskId:String(l?.activeTask?.taskId||Ri()?.taskId||"").trim()||void 0,currentTaskBoundaryId:l?.pendingRun?.taskBoundaryId||Re,normalizeTaskBoundaryId:o=>Se(typeof o=="string"?o:void 0),completionState:t,latestSummary:n?$o.get(n):void 0,pageUrl:typeof window<"u"?window.location.href:void 0,now:Date.now()})}function qb(e,t){Bl.has(e)||Bl.set(e,new Set);let n=Bl.get(e);return n.add(t),()=>{n.delete(t)}}function dE(e){return typeof e=="string"?{name:e}:e}function ur(e){try{return`${e}-${crypto.randomUUID()}`}catch{return`${e}-${Date.now()}-${Math.floor(Math.random()*1e5)}`}}function No(){return ur("task-boundary")}function dr(e){if(!e||typeof e!="object")return;let t=typeof e.handoffId=="string"?e.handoffId.trim():"",n=typeof e.targetUrl=="string"?e.targetUrl.trim():"";if(!t||!n)return;let o=Number(e.sourceLogicalTabId);return{handoffId:t,targetUrl:n,sourceLogicalTabId:Number.isFinite(o)&&o>0?o:void 0,runId:typeof e.runId=="string"&&e.runId.trim()?e.runId.trim():void 0,createdAt:Number(e.createdAt)||Date.now(),consumed:e.consumed===!0}}function Wb(e){if(e)return{handoffId:e.handoffId,targetUrl:e.targetUrl,sourceLogicalTabId:e.sourceLogicalTabId,runId:e.runId,ts:e.createdAt}}function nf(e){return{handoffId:e.handoffId,targetUrl:e.targetUrl,sourceLogicalTabId:e.sourceLogicalTabId,runId:e.runId,createdAt:Number(e.ts)||Date.now(),consumed:!1}}function xa(e){let t=typeof e?.pendingRun?.taskBoundaryId=="string"?e.pendingRun.taskBoundaryId:void 0;if(t)return Se(t);let n=typeof e?.workerState?.taskBoundaryId=="string"?e.workerState.taskBoundaryId:void 0;if(n)return Se(n)}function fE(e){let t=xa(e);return t||No()}function Hn(){return Se(Re)||xa(l)}function va(e){let t=Gg({source:e.source,incomingBoundaryId:e.incomingBoundaryId,currentBoundaryId:Hn(),taskEpochAdvanced:e.taskEpochAdvanced,hasPendingRun:!!l?.pendingRun,taskStatus:l?.activeTask?.status,allowBootstrapAdoption:e.allowBootstrapAdoption});return t.accept?(t.adoptedBoundaryId&&(Re=t.adoptedBoundaryId),!0):!1}function Of(e=12e4){let t=dr(l?.lastNavigationHandoff);if(!t||t.consumed===!0)return;let n=Date.now()-Number(t.createdAt||0);if(!(!Number.isFinite(n)||n<-5e3||n>e))return t}function $b(e){return e==="agent_navigation"||e==="cross_host_navigation"||e==="handoff"||e==="worker_interrupted"||e==="page_reload"}function mE(e){if(!l||!$b(e.resumeReason))return!1;let t=dr(l.lastNavigationHandoff);if(!t?.targetUrl)return!1;let n=Date.now()-Number(t.createdAt||0);return!Number.isFinite(n)||n<-5e3||n>12e4?!1:zd(t.targetUrl,window.location.href)}function pE(e){if(!Wo||!$b(e.resumeReason))return!1;let t=dr(l?.lastNavigationHandoff);if(!t)return!1;let n=Date.now()-Number(t.createdAt||0);return Number.isFinite(n)&&n>=-5e3&&n<=Pb}function Ei(e){let t=st(l?.pendingRun)?.taskBoundaryId;if(t){Re=t;return}let n=Vt(l?.workerState)?.taskBoundaryId;if(n){Re=n;return}(!Re||e?.rotateIfMissing)&&(Re=No())}function hE(e){let t=`${p_}${e}`;try{let n=window.sessionStorage.getItem(t);if(n&&n.trim())return n.trim();let o=ur("runtime");return window.sessionStorage.setItem(t,o),o}catch{return ur("runtime")}}function js(e){let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return(t>>>0).toString(16).padStart(8,"0")}function Al(e){return String(e||"").trim().replace(/[^a-zA-Z0-9._:-]/g,"").slice(0,180)}function Vb(e){try{let t=document.cookie.match(new RegExp(`(?:^|; )${e}=([^;]*)`));return t?decodeURIComponent(t[1]||""):void 0}catch{return}}function xb(e,t,n){try{let o=n?`; domain=${n}`:"";return document.cookie=`${e}=${encodeURIComponent(t)}; path=/; max-age=${T_}; samesite=lax${o}`,Vb(e)===t}catch{return!1}}function gE(e){let t=String(e||"").trim().toLowerCase();if(!t||t==="localhost"||/^\d{1,3}(\.\d{1,3}){3}$/.test(t))return[];let n=t.split(".").filter(Boolean);if(n.length<2)return[];let o=[];for(let r=n.length-2;r>=0;r-=1)o.push(`.${n.slice(r).join(".")}`);return o}function bE(e,t){let n=`rover_vid_${js(e)}`;for(let o of gE(window.location.hostname))if(xb(n,t,o))return;xb(n,t)}function Cl(e,t){let n=`${Db}${e}`;try{window.localStorage.setItem(n,t)}catch{}try{window.sessionStorage.setItem(n,t)}catch{}bE(e,t)}function Gb(e,t){l&&(l.visitor=t,Oe());try{localStorage.setItem(`rover:visitor:${e}`,JSON.stringify(t))}catch{}}function kE(e){if(l?.visitor?.name||l?.visitor?.email)return l.visitor;try{let t=localStorage.getItem(`rover:visitor:${e}`);return t?JSON.parse(t):void 0}catch{return}}function Kb(e){let t=Al(e.visitorId||"");if(t)return t;if(e.checkpointing?.autoVisitorId===!1)return;let n=`${Db}${e.siteId}`,o=`rover_vid_${js(e.siteId)}`,r=Al(Vb(o)||"");if(r)return Cl(e.siteId,r),r;try{let i=Al(window.localStorage.getItem(n)||"");if(i)return Cl(e.siteId,i),i}catch{}try{let i=Al(window.sessionStorage.getItem(n)||"");if(i)return Cl(e.siteId,i),i}catch{}let a=`v_${js(`${e.siteId}:${ur("visitor")}`)}_${Date.now().toString(36)}`;return Cl(e.siteId,a),a}function Tb(e,t){return`visitor-${js(`${e}:${t}`)}`}function Pf(e){!at||!qe||(at.registerTool(e.def,e.handler),qe.postMessage({type:"register_tool",tool:e.def}))}function yi(e){return`${ru}${e}`}function Ul(e,t){let n=String(t||"").trim();return n?`${ru}${e}:${js(n)}`:yi(e)}function kf(e){return`${ru}${e}:latest_key`}function yE(e){try{let t=String(sessionStorage.getItem(kf(e))||"").trim();return!t||!t.startsWith(ru)?void 0:t}catch{return}}function yf(e,t){if(e)try{if(!t){sessionStorage.removeItem(kf(e));return}sessionStorage.setItem(kf(e),t)}catch{}}function Bf(e){return`${B_}${e}`}function vE(e,t){try{sessionStorage.setItem(Bf(e),JSON.stringify(t))}catch{}}function wE(e){try{let t=Bf(e),n=sessionStorage.getItem(t);if(!n)return;sessionStorage.removeItem(t);let o=JSON.parse(n),r=Number(o?.ts)||0;return!o?.runId||!r||Date.now()-r>Pb?void 0:{runId:String(o.runId),text:typeof o.text=="string"?o.text:void 0,taskBoundaryId:typeof o.taskBoundaryId=="string"&&o.taskBoundaryId.trim()?o.taskBoundaryId.trim():void 0,resumeReason:o.resumeReason==="cross_host_navigation"||o.resumeReason==="agent_navigation"||o.resumeReason==="handoff"||o.resumeReason==="page_reload"?o.resumeReason:void 0,handoffId:typeof o.handoffId=="string"?o.handoffId:void 0,openIntent:o.openIntent==="preserve_if_running"?"preserve_if_running":void 0,ts:r}}catch{return}}function Xb(e){if(e)try{sessionStorage.removeItem(Bf(e))}catch{}}function _b(e){let t=typeof e?.runId=="string"&&e.runId.trim()?e.runId.trim():void 0,n=typeof e?.taskId=="string"&&e.taskId.trim()?e.taskId.trim():void 0;if(!t&&!n){bi=void 0;return}bi={runId:t,taskId:n,expiresAt:Date.now()+Math.max(1e3,Number(e?.ttlMs)||U_)}}function Ta(){bi=void 0}function Uf(e){let t=bi;if(!t)return!1;if(t.expiresAt<=Date.now())return bi=void 0,!1;let n=String(e?.activeTask?.status||"").trim();if(n&&n!=="running")return bi=void 0,!1;let o=String(t.runId||"").trim(),r=String(t.taskId||"").trim(),a=String(e?.pendingRun?.id||"").trim(),i=String(e?.activeTask?.taskId||"").trim();return!(o&&a&&o!==a&&(!r||!i||r!==i)||r&&i&&r!==i)}function Xs(e){e&&Uf(e)&&(e.uiHidden=!1,e.uiOpen=!0)}function Sn(e="session_start",t=Date.now(),n){return{taskId:n||ur("task"),status:"running",startedAt:t,lastUserAt:void 0,lastAssistantAt:void 0,boundaryReason:e,endedAt:void 0}}function vf(e,t){return{version:Mf,sessionId:e,runtimeId:t,uiOpen:!1,uiHidden:!1,uiStatus:void 0,transientStatus:void 0,uiMessages:[],timeline:[],executionMode:"controller",workerState:void 0,pendingRun:void 0,lastNavigationHandoff:void 0,taskEpoch:1,activeTask:Sn(),taskTabScope:void 0,lastRoutingDecision:void 0,updatedAt:Date.now(),tasks:{},activeTaskId:void 0,taskOrder:[]}}function yn(e,t=g_){return e.length<=t?e:`${e.slice(0,t)}\u2026`}function Hl(e){if(e!=null){if(typeof e=="string")return yn(e,1200);try{return yn(JSON.stringify(e),1200)}catch{try{return yn(String(e),1200)}catch{return}}}}function au(e){let t=e?.telemetry,n=Number(t?.sampleRate),o=Number.isFinite(n)?Math.min(1,Math.max(0,n)):1,r=Number(t?.flushIntervalMs),a=Number.isFinite(r)?Math.min(6e4,Math.max(2e3,Math.floor(r))):I_,i=Number(t?.maxBatchSize),s=Number.isFinite(i)?Math.min(80,Math.max(1,Math.floor(i))):S_;return{enabled:t?.enabled!==!1,sampleRate:o,flushIntervalMs:a,maxBatchSize:s,includePayloads:t?.includePayloads===!0}}function iu(e){return e==="same_tab"||e==="open_new_tab"?e:"same_tab"}function qs(e){return e==="host_only"?"host_only":"registrable_domain"}function Ys(e,t){return e==="observer"?"This tab is in observer mode because another tab currently holds Rover action control.":t?"Controller tab ready for actions.":"Actions are disabled by configuration (allowActions=false)."}function Hf(e){return e==="auto"||e==="confirm"||e==="never"?e:"confirm"}function Yb(e){return"host_session"}function Qb(e){return"task_touched_only"}function Ff(e){return"crash_only"}function Kl(e){let t=Number(e);return Number.isFinite(t)?Math.max(6e4,Math.min(30*6e4,Math.floor(t))):k_}function zf(e){return"read_only"}function Jb(e){return"heuristic_same_window"}function jf(e){let t=Number(e);return Number.isFinite(t)?Math.max(1e4,Math.min(10*6e4,Math.floor(t))):v_}function qf(e){let t=Number(e);return Number.isFinite(t)?Math.max(.05,Math.min(.9,t)):w_}function Zb(e){return"empty"}function ek(e){return"deterministic_cues"}function tk(e){let t=Number(e);return Number.isFinite(t)?Math.max(1,Math.min(4,Math.floor(t))):y_}function nk(e){return"auto"}function ok(e){return!1}function rk(e){return"pre_tool_block"}function xE(){return pb({pendingRunText:l?.pendingRun?.text,activeRunText:L?.getState()?.activeRun?.text,rootWorkerInput:l?.workerState?.rootUserInput,lastUserInputText:ln,fallback:"navigation request"})}function ak(e){return e!==!1}function $t(e,t,n){let o=Number(e);if(Number.isFinite(o))return Math.max(t,Math.min(n,Math.floor(o)))}function Wf(e){return"on_demand"}function $f(e){let t=Number(e);return Number.isFinite(t)?Math.max(5e3,Math.min(12e4,Math.floor(t))):ah.idleCloseMs}function Ii(e,t){let n=Number(e);return Number.isFinite(n)?Math.max(32768,Math.min(2097152,Math.floor(n))):t}function Vf(e){return!(!e||!au(e).enabled||!zn(e))}function Eb(e){if(e!=null){if(typeof e=="string")return yn(e,260);if(typeof e=="number"||typeof e=="boolean")return e;if(Array.isArray(e))return{type:"array",length:e.length};if(typeof e=="object"){let n={type:"object",keys:Object.keys(e).slice(0,20)},o=["code","message","stage","status","reason","taskId","runId","policyAction"];for(let r of o){let a=e?.[r];a!=null&&(typeof a=="string"?n[r]=yn(a,180):(typeof a=="number"||typeof a=="boolean")&&(n[r]=a))}return n}}}function TE(e,t){if(!t)return Eb(e);let n=Kf(e);if(n!=null)return typeof n=="string"?yn(n,1e3):typeof n=="number"||typeof n=="boolean"?n:Array.isArray(n)?{type:"array",length:n.length}:typeof n=="object"?n:Eb(e)}function Gf(){Nl&&(clearInterval(Nl),Nl=null),cr&&(clearTimeout(cr),cr=null),Ss=!1}function _E(e){return`${Tl(e.apiBase)}/telemetry/ingest`}function Xl(e){let t=e||C,n=String(t?.publicKey||"").trim();if(n.startsWith("pk_site_"))return n;let o=String(t?.authToken||"").trim();return o.startsWith("pk_site_")?o:""}function zn(e){if(cn&&Vo>Date.now()+2e3)return cn;try{let o=C?.siteId||e?.siteId||"";if(o){let r=sessionStorage.getItem(`rover:sess:${o}`);if(r){let{t:a,e:i}=JSON.parse(r);if(a&&typeof a=="string"&&a.startsWith("rvrsess_")&&Number(i)>Date.now()+2e3)return cn=a,Vo=Number(i),a}}}catch{}let t=e||C,n=String(t?.sessionToken||t?.authToken||"").trim();return n.startsWith("rvrsess_")?n:""}function Yl(e,t){let n=String(e||"").trim();cn=n||void 0,Vo=Number(t)>0?Number(t):0;try{let o=C?.siteId||"";n&&Vo>Date.now()?sessionStorage.setItem(`rover:sess:${o}`,JSON.stringify({t:n,e:Vo})):sessionStorage.removeItem(`rover:sess:${o}`)}catch{}}function EE(e){try{let t=String(e||"").replace(/-/g,"+").replace(/_/g,"/"),n=t+"=".repeat((4-(t.length%4||4))%4);if(typeof atob=="function"){let o=atob(n),r=Uint8Array.from(o,a=>a.charCodeAt(0));return new TextDecoder().decode(r)}}catch{}return""}function IE(e){let t=String(e||"").trim();if(!t.startsWith("rvrsess_"))return null;let n=t.slice(8),o=n.lastIndexOf(".");if(o<=0)return null;let r=EE(n.slice(0,o));if(!r)return null;try{let a=JSON.parse(r),i=String(a.agentKey||"").trim(),s=String(a.agentName||"").trim()||void 0,c=String(a.agentVendor||"").trim()||void 0,d=String(a.agentModel||"").trim()||void 0,f=String(a.agentTrust||"").trim(),u=String(a.agentSource||"").trim(),b=String(a.agentMemoryKey||"").trim()||void 0,p=String(a.launchSource||"").trim();return!i&&!s&&!c&&!d?null:{agentKey:i||b||c||s||"anonymous",agentName:s,agentVendor:c,agentModel:d,agentTrust:f==="verified"||f==="self_reported"||f==="heuristic"||f==="anonymous"?f:void 0,agentSource:u==="public_task_agent"||u==="handoff_agent"||u==="webmcp_agent"||u==="signature_agent"||u==="user_agent"||u==="owner_resolver"||u==="anonymous"?u:void 0,agentMemoryKey:b,launchSource:p==="public_task_api"||p==="delegated_handoff"||p==="webmcp"||p==="embedded_widget"?p:void 0}}catch{return null}}function SE(e){!e||!C||(C.externalNavigationPolicy=e.externalNavigationPolicy||C.externalNavigationPolicy,e.domainScopeMode&&(C.domainScopeMode=qs(e.domainScopeMode)),(e.crossHostPolicy==="open_new_tab"||e.crossHostPolicy==="same_tab")&&(C.navigation={...C.navigation||{},crossHostPolicy:iu(e.crossHostPolicy)}),C.tools||(C.tools={}),C.tools.web||(C.tools.web={}),C.tools.web.enableExternalWebContext=e.enableExternalWebContext??C.tools.web.enableExternalWebContext,C.tools.web.scrapeMode=e.externalScrapeMode??C.tools.web.scrapeMode,Array.isArray(e.externalAllowDomains)&&(C.tools.web.allowDomains=e.externalAllowDomains),Array.isArray(e.externalDenyDomains)&&(C.tools.web.denyDomains=e.externalDenyDomains))}function wf(e){if(!l||!e)return;ir=Math.max(1,Number(e.epoch||ir));let t=typeof e.activeRunId=="string"?e.activeRunId:"",n=String(e.runStatus||"").trim().toLowerCase();Jg({serverRunId:t,runStatus:n,ignoredRunIds:_o})&&Hr(t,"projection_ignored_active_run",{attemptImmediately:!0}),Br(t||void 0);let o=l.pendingRun,r=o?.id||"";!t&&r?(n==="completed"||n==="cancelled"||n==="failed"||n==="ended"||l.activeTask?.status!=="running")&&(jr(r),Lt(void 0),L?.setActiveRun(void 0)):t&&!Xo()&&Qs(bt)!=="observer"&&Qg({serverRunId:t,localPendingRunId:r,ignoredRunIds:_o})?Lt({id:t,text:o?.text||"",startedAt:o?.startedAt||Date.now(),attempts:o?.attempts||0,autoResume:!0,taskBoundaryId:o?.taskBoundaryId||Re,resumeRequired:o?.resumeRequired===!0,resumeReason:o?.resumeReason}):t&&_o.has(t)&&r===t&&(L?.releaseWorkflowLock(t),Lt(void 0),L?.setActiveRun(void 0));let a=String(e.snapshotMeta?.digest||"").trim()||(Number.isFinite(Number(e.snapshotMeta?.updatedAt))?`u:${Math.max(0,Number(e.snapshotMeta?.updatedAt||0))}`:Number.isFinite(Number(e.snapshotUpdatedAt))?`u:${Math.max(0,Number(e.snapshotUpdatedAt||0))}`:""),i=a?`${e.sessionId}:${a}`:"";if(e.snapshot&&typeof e.snapshot=="object"&&(!i||i!==Hs)){let c=e.snapshot?.runtimeState,d=e.snapshot?.sharedState;if(c&&typeof c=="object"){xi=!0;try{Ck({version:Ob,siteId:C?.siteId||l.sessionId,visitorId:Ft||"server_projection",sessionId:l.sessionId,updatedAt:Number(e.snapshot?.updatedAt)||Date.now(),runtimeState:c,sharedState:d})}finally{xi=!1}i&&(Hs=i)}}let s=String(l?.pendingRun?.id||"").trim();s&&_o.has(s)&&(L?.releaseWorkflowLock(s),Lt(void 0),L?.setActiveRun(void 0)),Ql()}async function fr(e){if(!(!l||!e.apiBase&&!e.publicKey&&!e.authToken&&!e.sessionToken||!Xl(e)&&!cn)){he?he.setApiBase(e.apiBase):he=new El({apiBase:e.apiBase,siteId:e.siteId,getSessionId:()=>l?.sessionId,getBootstrapToken:()=>Xl(C),getHost:()=>window.location.hostname,getPageUrl:()=>window.location.href,getTaskBoundaryId:()=>Re,shouldKeepTransportActive:()=>!_a(),onSession:n=>{if(Yl(n.sessionToken,n.sessionTokenExpiresAt),xo&&L?.broadcastSessionToken(n.sessionToken||"",n.sessionTokenExpiresAt||0),ir=Math.max(1,Number(n.epoch||ir)),l&&n.sessionId&&l.sessionId!==n.sessionId&&(l.sessionId=n.sessionId,Hs="",Oe()),SE(n.policy),n.siteConfig&&typeof n.siteConfig=="object"&&C){let o={shortcuts:zr(n.siteConfig.shortcuts),greeting:Mi(n.siteConfig.greeting),voice:Ci(n.siteConfig.voice),aiAccess:tc(n.siteConfig.aiAccess),limits:pu(n.siteConfig.limits),pageConfig:lr(n.siteConfig.pageConfig),version:n.siteConfig.version!=null?String(n.siteConfig.version):void 0};Co=o,Mk(C.siteId,o),tu(C)}n.projection&&wf(n.projection),qe&&qe.postMessage({type:"update_config",config:{...Sa(),pageConfig:$s(C),publicKey:void 0,sessionToken:cn,authToken:zn(C),sessionId:l?.sessionId,activeRunId:l?.pendingRun?.id,sessionEpoch:he?.getEpoch?.()??ir,sessionSeq:he?.getLastSeq?.()??0}}),at&&at.setNavigationPolicy({allowedDomains:C?.allowedDomains,domainScopeMode:C?.domainScopeMode,externalNavigationPolicy:C?.externalNavigationPolicy,crossHostPolicy:C?.navigation?.crossHostPolicy}),C&&(tm(C),su(C)),Ti=!0,Go(),Ql()},onProjection:n=>{wf(n),xo&&L?.broadcastProjection(n),Ql(),qe&&qe.postMessage({type:"update_config",config:{...Sa(),pageConfig:$s(C),sessionToken:cn,authToken:zn(C),sessionId:l?.sessionId,activeRunId:l?.pendingRun?.id,sessionEpoch:he?.getEpoch?.()??ir,sessionSeq:he?.getLastSeq?.()??0}})},onError:n=>{Qe("error",{message:n?.message||"server runtime sync failed",scope:"server_runtime"})}});try{await he.start()}catch(n){C?.apiMode!==!1&&Ve("error",{message:n?.message||"server runtime sync failed",scope:"server_runtime_start"})}}}async function ka(e=!1){if(Ll||fi)return;if(!C||!Vf(C)){Un=[];return}if(!e&&_a()||!Un.length)return;let t=au(C),n=zn(C);if(!n)return;let o=Un.splice(0,t.maxBatchSize);if(o.length){Ll=!0,Vl=Date.now();try{let r=await fetch(_E(C),{method:"POST",headers:{"Content-Type":"text/plain"},body:JSON.stringify({sessionToken:n,sessionId:l?.sessionId,runId:l?.pendingRun?.id,siteId:C.siteId,runtimeId:it,visitorId:Ft,flushReason:e?"manual":"interval",sdkVersion:"rover_sdk_v1",pageUrl:window.location.href,userAgent:navigator.userAgent,sampleRate:t.sampleRate,events:o})});if(!r.ok){r.status===401||r.status===403?fi=!0:Un=[...o,...Un].slice(-ql);return}let a=await r.json().catch(()=>{});if(a?.success===!1){let i=String(a?.errorCode||a?.errorDetails?.code||"").toUpperCase();(i==="INVALID_API_KEY"||i==="MISSING_API_KEY"||i==="UNAUTHENTICATED"||i==="PERMISSION_DENIED")&&(fi=!0);return}}catch{Un=[...o,...Un].slice(-ql)}finally{Ll=!1}}}function su(e){if(Gf(),fi=!1,!Vf(e)){Un=[];return}let t=au(e);Nl=setInterval(()=>{ka(!1)},t.flushIntervalMs)}function Qe(e,t){if(!Vf(C)||fi||_a()&&!tE.has(e))return;let n=au(C);if(n.sampleRate<1&&Math.random()>n.sampleRate)return;let o=Date.now();if(e==="status"){if(!String(t?.event||"").trim().startsWith("deep_link_")){if(o-uf<Z_)return;uf=o}}else if(e==="checkpoint_state"){if(o-df<eE)return;df=o}let r={name:e,ts:o,seq:++Bb,payload:TE(t,n.includePayloads)};if(Un.push(r),Un.length>ql&&(Un=Un.slice(-ql)),Ub.has(e)){let i=Date.now()-Vl;if(i>=vb){ka(!1);return}cr||(cr=setTimeout(()=>{cr=null,ka(!1)},vb-i));return}if(Un.length>=n.maxBatchSize){let i=Date.now()-Vl;i>=yb?ka(!1):Ss||(Ss=!0,setTimeout(()=>{Ss=!1,ka(!1)},yb-i))}}function RE(e,t){Qe(e,t)}function ik(e){if(e==="analyze"||e==="route"||e==="execute"||e==="verify"||e==="complete")return e}function AE(e){return e?e==="analyze"?"Analyze":e==="route"?"Route":e==="execute"?"Execute":e==="verify"?"Verify":e==="complete"?"Complete":"Status":"Status"}function CE(e,t,n){return[String(t||""),String(e||"").trim().toLowerCase(),String(n||"").trim().toLowerCase()].join("|")}function ME(e,t){if(!e)return!0;let n=e.trim();return!!(t&&n.toLowerCase()===t.trim().toLowerCase()||/^complexity score\b/i.test(n)||/\btool loop$/i.test(n)||/^calling \w[\w\s]*(workflow|sub-agent)$/i.test(n))}function NE(){return l?.pendingRun?.id}function Br(e){Ks=String(e||"").trim()||void 0}function Ib(){let e=l?.pendingRun?.id;if(!e)return;if(!he)return e;let t=he.getActiveRunId(),n=String(t||Ks||"").trim();if(n)return n===e?e:void 0}function jr(e){e&&(_o.add(e),cE(_o,aE))}function xf(e){e&&_o.delete(e)}function Tf(e){let t=Math.max(0,Math.floor(e)),n=Ps*2**t;return Math.max(120,Math.min(q_,n))}function LE(){if(!bn.size)return null;let e=Number.POSITIVE_INFINITY;for(let t of bn.values())e=Math.min(e,Number(t.nextAttemptAt)||Number.POSITIVE_INFINITY);return Number.isFinite(e)?Math.max(120,Math.floor(e-Date.now())):null}function _f(e=Ps){Ar&&(clearTimeout(Ar),Ar=null);let t=Math.max(80,Math.floor(e));Ar=setTimeout(()=>{Ar=null,Ql()},t)}function Hr(e,t="local_run_abandoned",n){let o=String(e||"").trim();if(!o)return;let r=Date.now(),a=bn.get(o),i=n?.attemptImmediately===!0?r:a?.nextAttemptAt&&a.nextAttemptAt>r?a.nextAttemptAt:r+Tf(a?.attempts||0);for(bn.set(o,{runId:o,reason:String(t||a?.reason||"local_run_abandoned").trim()||"local_run_abandoned",attempts:a?.attempts||0,nextAttemptAt:i,createdAt:a?.createdAt||r,lastError:a?.lastError});bn.size>$_;){let s=Array.from(bn.values()).sort((c,d)=>Number(c.createdAt)-Number(d.createdAt))[0];if(!s?.runId)break;bn.delete(s.runId)}_f(n?.attemptImmediately?50:Ps)}async function Ql(){if(Dl||!bn.size)return;if(!(!!he&&!!Ti&&!!zn(C))){_f(Ps);return}Dl=!0;try{let t=Date.now(),n=Array.from(bn.values()).sort((o,r)=>Number(o.nextAttemptAt)-Number(r.nextAttemptAt));for(let o of n){if(o.nextAttemptAt>t)break;if(!bn.has(o.runId))continue;if(Jf(o.runId)){bn.set(o.runId,{...o,nextAttemptAt:Date.now()+Tf(Math.max(1,o.attempts))});continue}let r=he;if(!r){bn.set(o.runId,{...o,nextAttemptAt:Date.now()+Ps});continue}try{if(await r.controlRun({action:"cancel",runId:o.runId,reason:o.reason})){bn.delete(o.runId);continue}throw new Error("cancel_control_no_response")}catch(a){let i=Math.max(0,Number(o.attempts||0))+1;if(i>=W_){bn.delete(o.runId),Ve("error",{message:`Failed to cancel stale run ${o.runId} after retries.`,scope:"run_cancel_repair",code:"RUN_CANCEL_REPAIR_FAILED",runId:o.runId});continue}bn.set(o.runId,{...o,attempts:i,lastError:String(a?.message||"cancel_control_failed"),nextAttemptAt:Date.now()+Tf(i)})}}}finally{Dl=!1;let t=LE();t!=null&&_f(t)}}function Rr(){return l?.activeTask?.status==="running"}function sk(){Et&&(Rr()||Ef()?Et.enterActiveMode():Et.enterIdleMode())}function DE(){return typeof document<"u"&&document.visibilityState==="hidden"}function Ef(){return!!l?.pendingRun?.id}function OE(){let e=L?.getState()?.activeRun;if(!e)return!1;if(e.runtimeId)return e.runtimeId===it;let t=String(l?.pendingRun?.id||"").trim();return!!(t&&e.runId===t)}function PE(){let e=L?.getWorkflowLockInfo();return!!(e?.locked&&e.holderRuntimeId===it)}function ck(){return L?PE()||OE()?!0:Ef()&&!Xo():Rr()||Ef()}function BE(){return Wf(C?.transport?.activation)!=="on_demand"?!0:!!(l?.uiOpen||ck()||lk()||uk())}function _a(){if(!xo)return!0;if(BE())Es=0;else{let t=$f(C?.transport?.idleCloseMs);return Es<=0&&(Es=Date.now()+t),!(Date.now()<Es)}return DE()?!ck()&&!l?.uiOpen:!1}function Lo(e=!1){if(typeof window>"u")return;let t=_a();if(!(!e&&Gl===t)){Gl=t;try{let n=window.rtrvrAISetObserverPaused;typeof n=="function"&&n(t)}catch{}}}function lk(){let e=L?.getState()?.activeRun;return!!(e&&e.runtimeId&&e.runtimeId!==it)}function uk(){let e=L;if(!e?.isWorkflowLocked())return!1;let t=e.getWorkflowLockInfo();if(!t.locked||!t.holderRuntimeId||t.holderRuntimeId===it)return!1;let n=e.listTabs({scope:"all"}).find(o=>o.runtimeId===t.holderRuntimeId);return n?Number(n.updatedAt)>Date.now()-5e3:!1}function Xo(){return uk()}function Qs(e){return Xo()?"observer":e==="observer"?"controller":e}function dk(){return zf(C?.task?.observerInput)==="read_only"?!Xo():!lk()}function fk(e){if(e==="observer")return Xo()?"Observing active run in another tab...":"Send to take control and run here."}function UE(){if(!L)return!1;let e=L.getState(),t=e?.activeRun,n=String(t?.runId||"").trim(),o=String(t?.text||"").trim();if(!L.requestControl())return!1;if(!n)return!0;if(!L.acquireWorkflowLock(n,{force:!0}))return!1;if(!l)return!0;let i=Eo(Vt(e?.workerContext),Hn());return i&&(l.workerState=i,Ei(),L.setWorkerContext(Zs(l.workerState)),lo&&qe&&(co(),qe.postMessage({type:"hydrate_state",state:l.workerState}),Ve("context_restored",{source:"controller_handoff",ts:Date.now()}))),e?.task&&(l.activeTask=gk(e.task,l.activeTask||Sn("handoff"))),l.uiHidden=!1,l.uiOpen=!0,(o||n)&&(Lt(st({id:n,text:o||l.pendingRun?.text||ln||"Continue task",startedAt:t?.startedAt||l.pendingRun?.startedAt||Date.now(),attempts:l.pendingRun?.id===n&&l.pendingRun.attempts||0,autoResume:!0,taskBoundaryId:l.pendingRun?.taskBoundaryId||l.workerState?.taskBoundaryId||Re,resumeRequired:!0,resumeReason:"handoff"})),L.setActiveRun({runId:n,text:o||l.pendingRun?.text||"Continue task"})),Oe(),Go({overridePolicyAction:"auto_resume"}),!0}function HE(e){let t=typeof e?.type=="string"?e.type:"";if(!lE.has(t))return!1;let n=typeof e?.runId=="string"&&e.runId?e.runId:void 0,o=typeof e?.taskBoundaryId=="string"&&e.taskBoundaryId?e.taskBoundaryId:void 0,r=String(he?.getActiveRunId()||Ks||"").trim()||void 0;return eb({type:t,messageRunId:n,messageTaskBoundaryId:o,currentTaskBoundaryId:Hn(),pendingRunId:NE(),sharedActiveRunId:L?.getState()?.activeRun?.runId,authoritativeActiveRunId:r,taskStatus:l?.activeTask?.status,ignoredRunIds:_o})}function So(e){if(!Array.isArray(e))return[];let t=[],n=new Set;for(let o=0;o<e.length;o+=1){let r=e[o];if(!r||typeof r!="object")continue;let a=String(r.key||r.id||"").trim()||`clarification_${o+1}`,i=String(r.query||r.question||"").trim();if(!i)continue;let s=typeof r.required=="boolean",c=typeof r.optional=="boolean",d=s?!!r.required:c?!r.optional:!0,f=`${a}::${i}`.toLowerCase();if(n.has(f))continue;n.add(f);let u={key:a,query:i,...typeof r.id=="string"&&r.id.trim()?{id:r.id.trim()}:{},...typeof r.question=="string"&&r.question.trim()?{question:r.question.trim()}:{},...Array.isArray(r.choices)?{choices:r.choices}:{}};d||(u.required=!1),t.push(u)}return t.slice(0,6)}function FE(e,t){let n=String(e||"").trim();if(n)return n;if(!t||typeof t!="object")return"";let o=t.answersByKey&&typeof t.answersByKey=="object"?t.answersByKey:{},r=So(l?.workerState?.pendingAskUser?.questions),i=(Array.isArray(t.keys)?t.keys:[]).map(d=>String(d||"").trim()).filter(Boolean);if(i.length===0)for(let d of r){let f=String(d.key||"").trim();f&&i.push(f)}if(i.length===0)for(let d of Object.keys(o)){let f=String(d||"").trim();f&&i.push(f)}let s=[],c=new Set;for(let d of i){let f=String(d||"").trim();if(!f||c.has(f))continue;c.add(f);let u=String(o[f]||"").trim();s.push(`${f}: ${u||"(no answer provided)"}`)}return s.length>0?s.join(`
2097
- `):String(t.rawText||"").trim()}function Jl(e){let t=String(K?.getActiveTask()?.rootUserInput||"").trim();if(t)return t;let n=String(l?.workerState?.rootUserInput||"").trim();if(n)return n;let o=l?.pendingRun,r=o&&o.id===e?String(o.text||"").trim():"";if(r)return r;let a=String(o?.text||"").trim();return a||String(ln||"").trim()||void 0}function zE(e){if(!e||typeof e!="object")return{taskComplete:!1,needsUserInput:!1,terminalState:"in_progress",contextResetRecommended:!1};let t=String(e.terminalState||"").trim().toLowerCase(),n=e.needsUserInput===!0,o=t==="waiting_input"||t==="in_progress"||t==="completed"||t==="failed"?t:n?"waiting_input":e.taskComplete===!0?"completed":e.ok===!1?"failed":"in_progress",r=o==="completed"||e.taskComplete===!0&&o!=="waiting_input",a=So(e.questions),i=String(e.continuationReason||"").trim().toLowerCase(),s=i==="loop_continue"||i==="same_tab_navigation_handoff"||i==="awaiting_user"?i:o==="waiting_input"?"awaiting_user":o==="in_progress"?"loop_continue":void 0;return{taskComplete:r,needsUserInput:o==="waiting_input"||n,terminalState:o,contextResetRecommended:e.contextResetRecommended===!0||o==="completed",continuationReason:s,...a.length?{questions:a}:{}}}function jE(e){return sr?sr.readSync(e):null}function Kf(e){if(e==null||typeof e=="string"||typeof e=="number"||typeof e=="boolean")return e;try{return structuredClone(e)}catch{try{return JSON.parse(JSON.stringify(e))}catch{return}}}function Fr(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(!n||typeof n!="object")continue;let o=n.type;if(o==="text"){let r=String(n.text||"");if(!r)continue;t.push({type:"text",text:r});continue}(o==="tool_output"||o==="json")&&t.push({type:o,data:Kf(n.data),label:typeof n.label=="string"?n.label:void 0,toolName:typeof n.toolName=="string"?n.toolName:void 0})}return t.length?t:void 0}function Sb(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.entries(e).filter(([,a])=>a!=null);if(t.length!==1)return!1;let[n,o]=t[0];return typeof o!="string"||!o.trim()?!1:new Set(["response","message","summary","text","content","result","description"]).has(n)}function qE(e,t){if(e==null)return!1;if(typeof e=="string"){let n=e.trim();return n?!t||n!==t.trim():!1}if(Array.isArray(e)){let n=e.filter(o=>o!=null);if(n.length===1){let o=n[0];if(typeof o=="string"||typeof o=="number"||typeof o=="boolean"||Sb(o))return!1}return!0}return!Sb(e)}function mk(e){if(!Array.isArray(e)||!e.length)return;let t=e.filter(o=>o.type==="text").map(o=>String(o.text||"").trim()).filter(Boolean);if(t.length)return t.join(`
2096
+ `);e.onSend(Ee,{askUserAnswers:{answersByKey:B,rawText:Ee,keys:Z}})}),Ln.addEventListener("click",()=>{if(!S.disabled){if(e.onCancelQuestionFlow){e.onCancelQuestionFlow();return}e.onCancelRun?.()}}),S.addEventListener("keydown",w=>{w.key==="Enter"&&!w.shiftKey&&!w.isComposing&&(w.preventDefault(),kt.requestSubmit())}),kt.addEventListener("submit",w=>{if(w.preventDefault(),!S.disabled){if(Fe==="listening"){yr=!0,Tr("submit");return}Sm()}}),c.addEventListener("keydown",w=>{let B=w;B.key==="Escape"&&N.classList.contains("open")&&(B.stopPropagation(),Da())});let Om=w=>{w.code==="Period"&&w.shiftKey&&(w.metaKey||w.ctrlKey)&&(w.preventDefault(),w.stopPropagation(),N.classList.contains("open")?Da():mc())};document.addEventListener("keydown",Om);let Su=w=>{if(!vt||!a)return;if(vt.kind==="desktop"){let J=vt.startX-w.clientX,V=w.clientY-vt.startY,Z=Sr(Math.round(vt.startW+J),Ja,vt.maxW),Ee=Sr(Math.round(vt.startH+V),Za,vt.maxH);ze={width:Z,height:Ee},N.style.width=`${Z}px`,N.style.height=`${Ee}px`,wm();return}let B=Sr(Math.round(vt.startHeight+(vt.startY-w.clientY)),Math.min(...vt.presets),Math.max(...vt.presets));rn=B,N.style.height=`${B}px`};function pc(){if(vt?.kind==="desktop")vu(ze);else if(vt?.kind==="sheet"){let w=rn??vt.startHeight;et=ET(w,vt.presets),km(Ye.storageKey,et),rn=null}vt=null,window.removeEventListener("pointermove",Su),window.removeEventListener("pointerup",pc),vr()}if(Vn.addEventListener("pointerdown",w=>{!a||Ye.layout!=="desktop"||(w.preventDefault(),vt={kind:"desktop",startX:w.clientX,startY:w.clientY,startW:N.getBoundingClientRect().width,startH:N.getBoundingClientRect().height,maxW:Math.max(Ja,Math.min(ul,Ye.width-la)),maxH:Math.max(Za,Ye.height-la)},window.addEventListener("pointermove",Su),window.addEventListener("pointerup",pc))}),Vn.addEventListener("dblclick",w=>{!a||Ye.layout!=="desktop"||(w.preventDefault(),iy())}),tr.addEventListener("pointerdown",w=>{if(!a||Ye.layout==="desktop")return;w.preventDefault();let B=fg(Ye);rn=B[et],vt={kind:"sheet",startY:w.clientY,startHeight:rn,presets:B},window.addEventListener("pointermove",Su),window.addEventListener("pointerup",pc)}),window.addEventListener("resize",wr),window.addEventListener("orientationchange",wr),window.visualViewport?.addEventListener("resize",wr),window.visualViewport?.addEventListener("scroll",wr),g){let w=()=>{g.style.display="none",y.style.display="grid"};g.addEventListener("error",w,{once:!0}),y.style.display="none"}if(re){let w=()=>{re.style.display="none",le.style.display="grid"};re.addEventListener("error",w,{once:!0}),le.style.display="none"}vr(),Dm("controller"),Rm(ct),Eu(!1),ye.length>0&&Cm(ye);let AS="",CS=new Map;function Ay(w){}let Ru=!1;function Cy(){Ru=!0,T.classList.add("open")}function hc(){Ru=!1,T.classList.remove("open")}jt.addEventListener("click",w=>{w.stopPropagation(),Ru?hc():Cy()}),v.addEventListener("click",()=>hc()),x.addEventListener("click",()=>{hc(),e.onNewTask?.()});let Pm="";function My(w){let B=w.map(V=>`${V.id}|${V.summary}|${V.status}|${V.updatedAt}|${V.isActive}`).join(";;");if(B===Pm)return;Pm=B;let J=w.find(V=>V.isActive);if(J){let V=J.summary.length>40?J.summary.slice(0,40)+"...":J.summary;hr.textContent=V||"Current task"}else hr.textContent="Current task";mn.style.display=w.length>1?"flex":"none",k.innerHTML="";for(let V of w){let Z=document.createElement("div");Z.className=`conversationItem ${V.status}${V.isActive?" active":""}`,Z.dataset.id=V.id;let Ee=document.createElement("span");Ee.className="conversationDot";let ke=document.createElement("div");ke.className="conversationContent";let nt=document.createElement("div");nt.className="conversationSummary",nt.textContent=V.summary.length>60?V.summary.slice(0,60)+"...":V.summary;let Ct=document.createElement("div");Ct.className="conversationMeta";let pt=V.status==="running"?"Running":V.status==="paused"?"Paused":V.status==="completed"?"Done":V.status;Ct.textContent=`${pt} \xB7 ${Id(V.updatedAt)}`,ke.appendChild(nt),ke.appendChild(Ct);let wt=document.createElement("div");wt.className="conversationActions";let Xt=document.createElement("button");Xt.type="button",Xt.className="conversationDeleteBtn",Xt.textContent="\xD7",Xt.addEventListener("click",Dn=>{Dn.stopPropagation(),e.onDeleteConversation?.(V.id)}),wt.appendChild(Xt),Z.appendChild(Ee),Z.appendChild(ke),Z.appendChild(wt),Z.addEventListener("click",()=>{hc(),e.onSwitchConversation?.(V.id)}),k.appendChild(Z)}}function Ny(w){k.querySelectorAll(".conversationItem").forEach(J=>{J.dataset.id===w?J.classList.add("active"):J.classList.remove("active")})}function Ly(w){m=w.taskId;let B=w.rootUserInput.length>50?w.rootUserInput.slice(0,50)+"...":w.rootUserInput;Gn.innerHTML="";let J=document.createElement("span");J.className="pausedTaskText",J.textContent=`Paused: "${B}"`;let V=document.createElement("div");V.className="pausedTaskActions";let Z=document.createElement("button");Z.type="button",Z.className="pausedTaskResumeBtn",Z.textContent="Resume",Z.addEventListener("click",()=>e.onResumeTask?.(m));let Ee=document.createElement("button");Ee.type="button",Ee.className="pausedTaskCancelBtn",Ee.textContent="Cancel",Ee.addEventListener("click",()=>e.onCancelPausedTask?.(m)),V.appendChild(Z),V.appendChild(Ee),Gn.appendChild(J),Gn.appendChild(V),Gn.classList.add("visible")}function Dy(){m="",Gn.classList.remove("visible")}function Oy(){return Ue.scrollTop}function Py(w){requestAnimationFrame(()=>{Ue.scrollTop=w})}return{addMessage:wy,setQuestionPrompt:Mm,clearMessages:xy,addTimelineEvent:_y,clearTimeline:Iy,setTaskSuggestion:Oa,setStatus:Ey,setRunning:Sy,setExecutionMode:Dm,setShortcuts:Cm,showGreeting:my,dismissGreeting:dc,setVisitorName:py,setVoiceConfig:Rm,open:mc,close:Da,show:yy,hide:vy,destroy:Ry,setTabs:Ay,setConversations:My,setActiveConversationId:Ny,getScrollPosition:Oy,setScrollPosition:Py,showPausedTaskBanner:Ly,hidePausedTaskBanner:Dy}}var Tg=3,UT="rover:shared:",HT="rover:channel:",Rd=2*6e4,wg=9e4,Ad=45e3,Cd=2e4,FT=45e3;function ce(){return Date.now()}function zo(e){try{return`${e}-${crypto.randomUUID()}`}catch{return`${e}-${Date.now()}-${Math.floor(Math.random()*1e5)}`}}function pl(e){let t=String(e||"").trim();if(!t)return"";try{return new URL(t,window.location.href).toString()}catch{return t}}function _g(e){if(!e||typeof e!="object")return;let t=typeof e.taskId=="string"?e.taskId.trim():"";if(!t)return;let n=e.status==="completed"||e.status==="cancelled"||e.status==="failed"||e.status==="ended"||e.status==="running"?e.status:"running";return{taskId:t,status:n,startedAt:Number(e.startedAt)||ce(),lastUserAt:Number(e.lastUserAt)||void 0,lastAssistantAt:Number(e.lastAssistantAt)||void 0,boundaryReason:typeof e.boundaryReason=="string"?e.boundaryReason:void 0,endedAt:Number(e.endedAt)||void 0}}function Ig(e){return e==="completed"?"completed":e==="cancelled"||e==="ended"?"cancelled":e==="failed"?"failed":"running"}function gl(e){if(!Array.isArray(e))return[];let t=[];for(let n of e.slice(-4)){let o=n?.role==="user"?"user":n?.role==="model"?"model":void 0;if(!o)continue;let r=String(n?.message||"").replace(/\s+/g," ").trim();if(!r)continue;let a=t[t.length-1];a&&a.role===o&&a.message===r||t.push({role:o,message:r})}return t}function us(e,t){if(!e)return;let n=typeof e=="string"?e:e?.text,o=String(n||"").trim();if(!o)return;let r=typeof e?.runId=="string"&&e.runId.trim()?e.runId.trim():typeof t?.runId=="string"&&t.runId.trim()?t.runId.trim():void 0,a=typeof e?.taskId=="string"&&e.taskId.trim()?e.taskId.trim():typeof t?.taskId=="string"&&t.taskId.trim()?t.taskId.trim():void 0;return{text:o,ts:Number(e?.ts)||ce(),runId:r,taskId:a,stage:typeof e?.stage=="string"&&e.stage.trim()?e.stage.trim():void 0}}function Eg(e){return Array.isArray(e)?e.slice(-Tt.uiMessages).map(t=>({id:String(t?.id||zo("msg")),role:t?.role==="user"||t?.role==="assistant"||t?.role==="system"?t.role:"system",text:String(t?.text||""),blocks:oi(t?.blocks),ts:Number(t?.ts)||ce(),sourceRuntimeId:typeof t?.sourceRuntimeId=="string"?t.sourceRuntimeId:void 0})).filter(t=>!!t.text||!!t.blocks?.length):[]}function Sg(e){return Array.isArray(e)?e.slice(-Tt.timelineEvents).map(t=>({id:String(t?.id||zo("timeline")),kind:String(t?.kind||"status"),title:String(t?.title||"Step"),detail:typeof t?.detail=="string"?t.detail:void 0,detailBlocks:oi(t?.detailBlocks),status:t?.status==="pending"||t?.status==="success"||t?.status==="error"||t?.status==="info"?t.status:void 0,ts:Number(t?.ts)||ce(),sourceRuntimeId:typeof t?.sourceRuntimeId=="string"?t.sourceRuntimeId:void 0})).filter(t=>!!t.title):[]}var zT=new Set(["idle","running","awaiting_user","paused","blocked","completed","failed","cancelled"]);function jT(e){if(!e||typeof e!="object")return;let t=typeof e.taskId=="string"?e.taskId.trim():"";if(!t)return;let n=zT.has(e.state)?e.state:"running";return{taskId:t,state:n,startedAt:Number(e.startedAt)||ce(),endedAt:Number(e.endedAt)||void 0,activeRun:e.activeRun&&typeof e.activeRun=="object"&&e.activeRun.runId?{runId:String(e.activeRun.runId),text:String(e.activeRun.text||""),runtimeId:String(e.activeRun.runtimeId||""),startedAt:Number(e.activeRun.startedAt)||ce(),updatedAt:Number(e.activeRun.updatedAt)||ce()}:void 0,workerContext:bl(e.workerContext),uiMessages:Array.isArray(e.uiMessages)?e.uiMessages.slice(-Tt.uiMessages).map(o=>({id:String(o?.id||zo("msg")),role:o?.role==="user"||o?.role==="assistant"||o?.role==="system"?o.role:"system",text:String(o?.text||""),blocks:oi(o?.blocks),ts:Number(o?.ts)||ce(),sourceRuntimeId:typeof o?.sourceRuntimeId=="string"?o.sourceRuntimeId:void 0})).filter(o=>!!o.text||!!o.blocks?.length):[],timeline:Array.isArray(e.timeline)?e.timeline.slice(-Tt.timelineEvents).map(o=>({id:String(o?.id||zo("timeline")),kind:String(o?.kind||"status"),title:String(o?.title||"Step"),detail:typeof o?.detail=="string"?o.detail:void 0,detailBlocks:oi(o?.detailBlocks),status:o?.status==="pending"||o?.status==="success"||o?.status==="error"||o?.status==="info"?o.status:void 0,ts:Number(o?.ts)||ce(),sourceRuntimeId:typeof o?.sourceRuntimeId=="string"?o.sourceRuntimeId:void 0})).filter(o=>!!o.title):[],rootUserInput:typeof e.rootUserInput=="string"?e.rootUserInput:void 0,summary:typeof e.summary=="string"?e.summary:void 0,seedChatLog:gl(e.seedChatLog),transientStatus:us(e.transientStatus,{runId:e.activeRun?.runId,taskId:t})}}function qT(e){if(!e||typeof e!="object")return;let t={},n=0;for(let o of Object.keys(e)){if(n>=20)break;let r=jT(e[o]);r&&(t[r.taskId]=r,n++)}return Object.keys(t).length>0?t:void 0}function Rg(e){if(e==null||typeof e=="string"||typeof e=="number"||typeof e=="boolean")return e;try{return structuredClone(e)}catch{try{return JSON.parse(JSON.stringify(e))}catch{return}}}function oi(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(!n||typeof n!="object")continue;let o=n.type;if(o==="text"){let r=String(n.text||"");if(!r)continue;t.push({type:"text",text:r});continue}if(o==="tool_output"||o==="json"){let r=Rg(n.data);t.push({type:o,data:r,label:typeof n.label=="string"?n.label:void 0,toolName:typeof n.toolName=="string"?n.toolName:void 0})}}return t.length?t:void 0}function xg(e,t){if(!Array.isArray(e))return[];let n=e.length<=t?e:[e[0],...e.slice(-(t-1))],o=[];for(let r of n){let a=Rg(r);a!==void 0&&o.push(a)}return o}function bl(e){if(!e||typeof e!="object")return;let t=Array.isArray(e.pendingAskUser?.questions)?e.pendingAskUser.questions.map((d,f)=>{let u=String(d?.key||d?.id||"").trim()||`clarification_${f+1}`,b=String(d?.query||d?.question||"").trim();if(b)return{key:u,query:b,id:typeof d?.id=="string"?d.id:void 0,question:typeof d?.question=="string"?d.question:void 0,choices:Array.isArray(d?.choices)?d.choices:void 0}}).filter(d=>!!d).slice(0,6):[],n=e.pendingAskUser?.stepRef,o=n&&Number.isFinite(Number(n.stepIndex))&&Number(n.stepIndex)>=0&&Number.isFinite(Number(n.functionIndex))&&Number(n.functionIndex)>=0?{stepIndex:Number(n.stepIndex),functionIndex:Number(n.functionIndex),...typeof n.accTreeId=="string"&&n.accTreeId.trim()?{accTreeId:n.accTreeId.trim()}:{}}:void 0,r=d=>d.slice(-Tt.uiMessages).map(f=>({role:typeof f?.role=="string"?f.role:"assistant",content:typeof f?.content=="string"?f.content:""})).filter(f=>!!f.content),a=Array.isArray(e.history)?r(e.history):[],i=xg(e.plannerHistory,Tt.plannerHistory),s=xg(e.agentPrevSteps,Tt.prevSteps),c=typeof e.rootUserInput=="string"?e.rootUserInput.trim():"";return{trajectoryId:typeof e.trajectoryId=="string"?e.trajectoryId:void 0,taskBoundaryId:typeof e.taskBoundaryId=="string"&&e.taskBoundaryId.trim()?e.taskBoundaryId.trim():void 0,rootUserInput:c||void 0,seedChatLog:gl(e.seedChatLog),history:a,plannerHistory:i,agentPrevSteps:s,pendingAskUser:t.length?{questions:t,source:e.pendingAskUser?.source==="planner"?"planner":"act",askedAt:Number(e.pendingAskUser?.askedAt)||ce(),boundaryId:typeof e.pendingAskUser?.boundaryId=="string"&&e.pendingAskUser.boundaryId.trim()?e.pendingAskUser.boundaryId.trim():void 0,...o?{stepRef:o}:{}}:void 0,updatedAt:Number(e.updatedAt)||ce()}}function Md(e,t){return{version:Tg,siteId:e,sessionId:t,seq:1,updatedAt:ce(),lease:void 0,tabs:[],nextLogicalTabId:1,activeLogicalTabId:void 0,uiMessages:[],timeline:[],uiStatus:void 0,transientStatus:void 0,activeRun:void 0,taskEpoch:1,task:void 0,workerContext:void 0,workflowLock:void 0,tasks:void 0,activeTaskId:void 0}}function ti(e,t,n){let o=Md(t,n);if(!e||typeof e!="object")return o;let r={...o,version:Tg,siteId:t,sessionId:n,seq:Math.max(1,Number(e.seq)||1),updatedAt:Number(e.updatedAt)||ce(),tabs:Array.isArray(e.tabs)?e.tabs.map(s=>({logicalTabId:Math.max(1,Number(s?.logicalTabId)||0),runtimeId:typeof s?.runtimeId=="string"?s.runtimeId:void 0,url:String(s?.url||""),title:typeof s?.title=="string"?s.title:void 0,openedAt:Number(s?.openedAt)||ce(),updatedAt:Number(s?.updatedAt)||ce(),external:!!s?.external,openerRuntimeId:typeof s?.openerRuntimeId=="string"?s.openerRuntimeId:void 0,detachedAt:Number(s?.detachedAt)||void 0,detachedReason:s?.detachedReason==="navigation_handoff"||s?.detachedReason==="tab_close"||s?.detachedReason==="opened_pending_attach"||s?.detachedReason==="unknown"?s.detachedReason:void 0,handoffId:typeof s?.handoffId=="string"?s.handoffId:void 0,handoffRunId:typeof s?.handoffRunId=="string"?s.handoffRunId:void 0,handoffTargetUrl:typeof s?.handoffTargetUrl=="string"?s.handoffTargetUrl:void 0,handoffCreatedAt:Number(s?.handoffCreatedAt)||void 0})).filter(s=>!!s.logicalTabId):[],nextLogicalTabId:Math.max(1,Number(e.nextLogicalTabId)||1),activeLogicalTabId:Number(e.activeLogicalTabId)||void 0,uiMessages:Eg(e.uiMessages),timeline:Sg(e.timeline),taskEpoch:Math.max(1,Number(e.taskEpoch)||1),task:_g(e.task),workerContext:bl(e.workerContext),uiStatus:typeof e.uiStatus=="string"?e.uiStatus:void 0,transientStatus:us(e.transientStatus??e.uiStatus,{runId:e.activeRun?.runId,taskId:e.task?.taskId}),activeRun:e.activeRun&&typeof e.activeRun=="object"?{runId:String(e.activeRun.runId||""),text:String(e.activeRun.text||""),runtimeId:String(e.activeRun.runtimeId||""),startedAt:Number(e.activeRun.startedAt)||ce(),updatedAt:Number(e.activeRun.updatedAt)||ce()}:void 0,lease:e.lease&&typeof e.lease=="object"&&e.lease.holderRuntimeId?{holderRuntimeId:String(e.lease.holderRuntimeId),expiresAt:Number(e.lease.expiresAt)||0,updatedAt:Number(e.lease.updatedAt)||ce()}:void 0,workflowLock:e.workflowLock&&typeof e.workflowLock=="object"&&e.workflowLock.runtimeId&&e.workflowLock.runId?{runtimeId:String(e.workflowLock.runtimeId),runId:String(e.workflowLock.runId),lockedAt:Number(e.workflowLock.lockedAt)||ce(),expiresAt:Number(e.workflowLock.expiresAt)||0}:void 0,tasks:e.tasks&&typeof e.tasks=="object"?qT(e.tasks):void 0,activeTaskId:typeof e.activeTaskId=="string"?e.activeTaskId:void 0},a=r.tabs.length,i=new Set;return r.tabs=r.tabs.filter(s=>i.has(s.logicalTabId)?!1:(i.add(s.logicalTabId),!0)),r.nextLogicalTabId<=(r.tabs.at(-1)?.logicalTabId??0)&&(r.nextLogicalTabId=r.tabs.reduce((s,c)=>Math.max(s,c.logicalTabId),0)+1),a>0&&r.tabs.length<a&&console.warn(`[rover] sanitizeSharedState: dropped ${a-r.tabs.length} invalid/duplicate tab entries`),Un(r),r}function $T(e){let t=String(e.task?.taskId||e.activeTaskId||"").trim();if(!t)return;let n=Number(e.task?.startedAt)||ce();e.tasks||(e.tasks={});let o=e.tasks[t];if(o)return e.activeTaskId=t,o;let r={taskId:t,state:Ig(e.task?.status),startedAt:n,endedAt:e.task?.endedAt,activeRun:e.activeRun,workerContext:e.workerContext,uiMessages:[...e.uiMessages],timeline:[...e.timeline],rootUserInput:e.workerContext?.rootUserInput,summary:void 0,seedChatLog:gl(e.workerContext?.seedChatLog),transientStatus:us(e.transientStatus??e.uiStatus,{runId:e.activeRun?.runId,taskId:t})};return e.tasks[t]=r,e.activeTaskId=t,r}function Un(e){let t=$T(e);if(!t)return;t.state=Ig(e.task?.status),t.startedAt=Number(e.task?.startedAt)||t.startedAt||ce(),t.endedAt=Number(e.task?.endedAt)||void 0,t.activeRun=e.activeRun,t.workerContext=bl(e.workerContext),t.uiMessages=Eg(e.uiMessages),t.timeline=Sg(e.timeline),t.rootUserInput=e.workerContext?.rootUserInput||t.rootUserInput;let n=[...t.uiMessages].reverse().find(o=>o.role==="assistant");t.summary=n?.text||t.summary,t.seedChatLog=gl(e.workerContext?.seedChatLog),t.transientStatus=us(e.transientStatus??e.uiStatus,{runId:e.activeRun?.runId,taskId:t.taskId})}var ni=class ni{constructor(t){P(this,"siteId");P(this,"sessionId");P(this,"runtimeId");P(this,"leaseMs");P(this,"workflowLockMs");P(this,"heartbeatMs");P(this,"maxMessages");P(this,"maxTimeline");P(this,"onRoleChange");P(this,"onStateChange");P(this,"onSwitchRequested");P(this,"onTaskTabsExhausted");P(this,"key");P(this,"channelName");P(this,"state");P(this,"taskTabMapping",new Map);P(this,"channel",null);P(this,"heartbeatTimer",null);P(this,"storageHandler",null);P(this,"localLogicalTabId");P(this,"closing",!1);P(this,"started",!1);P(this,"heartbeatCount",0);P(this,"lastNotifiedStateHash","");P(this,"pendingRpcRequests",new Map);P(this,"rpcRequestHandler");P(this,"lastNotifiedRole");P(this,"roleChangeTimer",null);P(this,"probeTimers",[]);P(this,"onSessionTokenReceived");P(this,"onProjectionReceived");P(this,"lastFullHeartbeatAt",0);this.siteId=t.siteId,this.sessionId=t.sessionId,this.runtimeId=t.runtimeId,this.leaseMs=Math.max(4e3,Number(t.leaseMs)||12e3),this.workflowLockMs=Math.max(3e4,Number(t.workflowLockMs)||18e4),this.heartbeatMs=Math.max(800,Number(t.heartbeatMs)||2e3),this.maxMessages=Math.max(20,Number(t.maxMessages)||Tt.uiMessages),this.maxTimeline=Math.max(20,Number(t.maxTimeline)||Tt.timelineEvents),this.onRoleChange=t.onRoleChange,this.onStateChange=t.onStateChange,this.onSwitchRequested=t.onSwitchRequested,this.onTaskTabsExhausted=t.onTaskTabsExhausted,this.key=`${UT}${this.siteId}:${this.sessionId}`,this.channelName=`${HT}${this.siteId}:${this.sessionId}`,this.state=this.loadState(),this.normalizeDraftTabs(this.state)}tabFreshnessTs(t){return Math.max(Number(t.updatedAt)||0,Number(t.openedAt)||0,Number(t.detachedAt)||0)}isBetterTabCandidate(t,n){if(!n)return!0;let o=this.tabFreshnessTs(t),r=this.tabFreshnessTs(n);return o!==r?o>r:!!t.runtimeId!=!!n.runtimeId?!!t.runtimeId:t.logicalTabId<n.logicalTabId}isRuntimeTabFresh(t,n){return t.runtimeId?t.runtimeId===this.runtimeId?!0:n-this.tabFreshnessTs(t)<=FT:!1}isTabVisibleInScope(t,n,o){return t.runtimeId?this.isRuntimeTabFresh(t,n):t.external?n-this.tabFreshnessTs(t)<=Rd:t.detachedReason==="opened_pending_attach"?n-this.tabFreshnessTs(t)<=Cd:o==="context"?!1:t.detachedReason==="navigation_handoff"?n-this.tabFreshnessTs(t)<=Ad:n-this.tabFreshnessTs(t)<=wg}normalizeDraftTabs(t){let n=new Map;for(let p of t.tabs){if(!Number.isFinite(Number(p.logicalTabId))||Number(p.logicalTabId)<=0)continue;let g=n.get(p.logicalTabId);this.isBetterTabCandidate(p,g)&&n.set(p.logicalTabId,p)}let o=[],r=new Set;for(let p of t.tabs){if(r.has(p.logicalTabId))continue;let g=n.get(p.logicalTabId);g&&g===p&&(o.push(g),r.add(g.logicalTabId))}for(let[p,g]of n.entries())r.has(p)||(o.push(g),r.add(p));let a=new Map;for(let p of o){if(!p.runtimeId)continue;let g=a.get(p.runtimeId);this.isBetterTabCandidate(p,g)&&a.set(p.runtimeId,p)}if(t.tabs=o.filter(p=>!p.runtimeId||a.get(p.runtimeId)===p).sort((p,g)=>p.logicalTabId-g.logicalTabId),!t.tabs.length){t.activeLogicalTabId=void 0,t.nextLogicalTabId=1;return}let i=ce(),s=t.activeLogicalTabId?t.tabs.find(p=>p.logicalTabId===t.activeLogicalTabId):void 0,c=t.tabs.find(p=>p.runtimeId===this.runtimeId),f=[...t.tabs.filter(p=>this.isRuntimeTabFresh(p,i))].sort((p,g)=>this.tabFreshnessTs(g)-this.tabFreshnessTs(p))[0],u=s?.logicalTabId;s?(!s.runtimeId||!this.isRuntimeTabFresh(s,i))&&(u=c?.logicalTabId||f?.logicalTabId||s.logicalTabId):u=c?.logicalTabId||f?.logicalTabId||t.tabs[0]?.logicalTabId,t.activeLogicalTabId=u;let b=t.tabs.reduce((p,g)=>Math.max(p,g.logicalTabId),0);t.nextLogicalTabId=Math.max(Number(t.nextLogicalTabId)||1,b+1)}setTaskTabMapping(t){this.taskTabMapping=t}pruneDetachedTabs(t,n){let o=!!n?.dropRuntimeDetached,r=!!n?.dropAllDetachedExternal,a=!!n?.keepOnlyActiveLiveTab,i=!!n?.keepRecentExternalPlaceholders,s=ce(),c=new Map;if(this.onTaskTabsExhausted&&this.taskTabMapping.size>0)for(let d of t.tabs){let f=this.taskTabMapping.get(d.logicalTabId);if(f){let u=c.get(f);u||(u=new Set,c.set(f,u)),u.add(d.logicalTabId)}}if(t.tabs=t.tabs.filter(d=>{if(d.runtimeId)return this.isRuntimeTabFresh(d,s);if(o&&!d.external&&d.openerRuntimeId===this.runtimeId)return!1;if(d.external)return r?!1:s-this.tabFreshnessTs(d)<=Rd;let f=s-this.tabFreshnessTs(d);return d.detachedReason==="navigation_handoff"?f<=Ad:d.detachedReason==="opened_pending_attach"?f<=Cd:f<=wg}),a){this.normalizeDraftTabs(t);let d=t.tabs.filter(g=>this.isRuntimeTabFresh(g,s)),f=d.find(g=>g.logicalTabId===t.activeLogicalTabId),u=d.find(g=>g.runtimeId===this.runtimeId),b=[...d].sort((g,y)=>this.tabFreshnessTs(y)-this.tabFreshnessTs(g))[0],p=f?.logicalTabId||u?.logicalTabId||b?.logicalTabId;t.tabs=t.tabs.filter(g=>g.runtimeId?!!p&&g.logicalTabId===p:g.external?i&&s-this.tabFreshnessTs(g)<=Rd:!1),t.activeLogicalTabId=p||t.tabs.find(g=>g.runtimeId)?.logicalTabId||t.tabs[0]?.logicalTabId}if(this.normalizeDraftTabs(t),this.onTaskTabsExhausted&&c.size>0){let d=new Set(t.tabs.map(f=>f.logicalTabId));for(let[f,u]of c){let b=!1;for(let p of u)if(d.has(p)){b=!0;break}b||this.onTaskTabsExhausted(f)}}}resetDraftToSingleCurrentTab(t,n,o){let r=ce(),a=pl(n),i=t.tabs.find(c=>c.runtimeId===this.runtimeId),s=Number(i?.openedAt)||r;t.tabs=[{logicalTabId:1,runtimeId:this.runtimeId,url:a||i?.url||"",title:o||i?.title,openedAt:s,updatedAt:r,external:!1,detachedAt:void 0,detachedReason:void 0}],t.activeLogicalTabId=1,t.nextLogicalTabId=2,t.lease={holderRuntimeId:this.runtimeId,expiresAt:r+this.leaseMs,updatedAt:r}}start(t){this.started||(this.started=!0,this.mutate("local",n=>{this.pruneDetachedTabs(n,{dropRuntimeDetached:!0})}),this.registerCurrentTab(window.location.href,document.title||void 0,t),this.claimLease(!1),typeof BroadcastChannel<"u"&&(this.channel=new BroadcastChannel(this.channelName),this.channel.onmessage=n=>{let o=n.data;if(!(!o||typeof o!="object")){if(o.type==="state"&&o.state){let r=ti(o.state,this.siteId,this.sessionId);this.applyIncomingState(r)}o.type==="switch_request"&&o.targetRuntimeId===this.runtimeId&&this.onSwitchRequested?.(Number(o.logicalTabId)||0),o.type==="rpc_request"&&o.targetRuntimeId===this.runtimeId&&this.handleInboundRpcRequest(o),o.type==="rpc_response"&&o.targetRuntimeId===this.runtimeId&&this.handleInboundRpcResponse(o),o.type==="tab_navigated"&&o.runtimeId&&o.runtimeId!==this.runtimeId&&this.handleRemoteNavigation(o),o.type==="tab_closing"&&o.runtimeId&&o.runtimeId!==this.runtimeId&&this.handleRemoteTabClosing(o),o.type==="session_token"&&o.runtimeId!==this.runtimeId&&this.onSessionTokenReceived?.(o.token,o.expiresAt),o.type==="projection"&&o.runtimeId!==this.runtimeId&&this.onProjectionReceived?.(o.projection)}}),this.storageHandler=n=>{if(!(n.key!==this.key||!n.newValue))try{let o=ti(JSON.parse(n.newValue),this.siteId,this.sessionId);this.applyIncomingState(o)}catch{}},window.addEventListener("storage",this.storageHandler),this.heartbeatTimer=window.setInterval(()=>{this.heartbeat()},this.heartbeatMs),typeof this.heartbeatTimer?.unref=="function"&&this.heartbeatTimer.unref(),this.notifyRoleChange(),this.onStateChange?.(this.state,"local"))}stop(){this.heartbeatCount=0,this.heartbeatTimer!=null&&(window.clearInterval(this.heartbeatTimer),this.heartbeatTimer=null),this.roleChangeTimer!=null&&(window.clearTimeout(this.roleChangeTimer),this.roleChangeTimer=null),this.storageHandler&&(window.removeEventListener("storage",this.storageHandler),this.storageHandler=null),this.channel&&(this.channel.close(),this.channel=null);for(let[,t]of this.pendingRpcRequests)window.clearTimeout(t.timer),t.reject(new Error("SessionCoordinator stopped"));this.pendingRpcRequests.clear();for(let t of this.probeTimers)clearTimeout(t);this.probeTimers=[],this.started&&(this.started=!1,this.mutate("local",t=>{t.tabs=t.tabs.filter(n=>n.runtimeId!==this.runtimeId),t.lease?.holderRuntimeId===this.runtimeId&&(t.lease=void 0),t.activeLogicalTabId&&!t.tabs.some(n=>n.logicalTabId===t.activeLogicalTabId)&&(t.activeLogicalTabId=void 0)}))}isController(){let t=this.state.lease;return!t||t.expiresAt<=ce()?!1:t.holderRuntimeId===this.runtimeId}getRole(){return this.isController()?"controller":"observer"}getLocalLogicalTabId(){return this.localLogicalTabId}getActiveLogicalTabId(){return this.state.activeLogicalTabId}getCurrentHolderRuntimeId(){return this.state.lease?.holderRuntimeId}getState(){return this.state}getTaskEpoch(){return this.state.taskEpoch}getTask(){return this.state.task}getWorkerContext(){return this.state.workerContext}syncTask(t,n){this.mutate("local",o=>{n&&Number.isFinite(n)&&n>o.taskEpoch&&(o.taskEpoch=Math.max(1,Math.trunc(n))),t&&(o.task=_g(t)||o.task,Un(o))})}hydrateExternalState(t){let n=ti(t,this.siteId,this.sessionId);this.pruneDetachedTabs(n,{dropRuntimeDetached:!0});let o=this.state.seq,r=this.state.updatedAt;this.applyIncomingState(n);let a=this.state.seq!==o||this.state.updatedAt!==r;if(!a&&this.state.tabs.some(s=>s.runtimeId?!1:s.external?!0:s.openerRuntimeId===this.runtimeId)){let s=this.state.tabs.length;this.mutate("local",c=>{this.pruneDetachedTabs(c,{dropRuntimeDetached:!0})}),a=this.state.tabs.length!==s}return a?(this.persistState(),this.localLogicalTabId||this.registerCurrentTab(window.location.href,document.title||void 0),!0):!1}listTabs(t){let n=t?.scope==="all"?"all":"context",o=ce();return this.state.tabs.filter(r=>this.isTabVisibleInScope(r,o,n))}pruneTabs(t){this.mutate("local",n=>{this.pruneDetachedTabs(n,t)})}resetTabsToCurrent(t,n){return this.mutate("local",o=>{this.resetDraftToSingleCurrentTab(o,t,n)}),this.notifyRoleChange(),this.localLogicalTabId||1}startNewTask(t){let n=Number(t.startedAt)||ce(),o={taskId:String(t.taskId||zo("task")),status:t.status==="completed"||t.status==="cancelled"||t.status==="failed"||t.status==="ended"?t.status:"running",startedAt:n,lastUserAt:Number(t.lastUserAt)||n,lastAssistantAt:Number(t.lastAssistantAt)||void 0,boundaryReason:t.boundaryReason,endedAt:void 0};return this.mutate("local",r=>{r.taskEpoch=Math.max(1,Number(r.taskEpoch)||1)+1,r.task=o,r.uiMessages=[],r.timeline=[],r.uiStatus=void 0,r.transientStatus=void 0,r.activeRun=void 0,r.workerContext=void 0,this.resetDraftToSingleCurrentTab(r,window.location.href,document.title||void 0),Un(r)}),o}endTask(t){let n;return this.mutate("local",o=>{o.task&&(o.task={...o.task,status:"ended",boundaryReason:t||o.task.boundaryReason,endedAt:ce()},o.activeRun=void 0,o.transientStatus=void 0,o.uiStatus=void 0,Un(o),n=o.task)}),n}markTaskActivity(t,n=ce()){t!=="system"&&this.mutate("local",o=>{if(!o.task){o.task={taskId:zo("task"),status:"running",startedAt:n,boundaryReason:"implicit",lastUserAt:t==="user"?n:void 0,lastAssistantAt:t==="assistant"?n:void 0};return}o.task.status==="running"&&(t==="user"&&(o.task.lastUserAt=n),t==="assistant"&&(o.task.lastAssistantAt=n),Un(o))})}setWorkerContext(t){this.mutate("local",n=>{if(!t){n.workerContext=void 0,Un(n);return}n.workerContext=bl(t),Un(n)})}setStatus(t){this.mutate("local",n=>{let o=us(t,{runId:n.activeRun?.runId,taskId:n.task?.taskId});n.uiStatus=o?.text,n.transientStatus=o,Un(n)})}appendMessage(t){let n={id:t.id||zo("msg"),role:t.role,text:String(t.text||""),blocks:oi(t.blocks),ts:Number(t.ts)||ce(),sourceRuntimeId:this.runtimeId};return this.mutate("local",o=>{o.uiMessages.push(n),o.uiMessages.length>this.maxMessages&&(o.uiMessages=o.uiMessages.slice(-this.maxMessages)),o.task||(o.task={taskId:zo("task"),status:"running",startedAt:n.ts,boundaryReason:"implicit"}),n.role==="user"?o.task.lastUserAt=n.ts:n.role==="assistant"&&(o.task.lastAssistantAt=n.ts),Un(o)}),n}appendTimeline(t){let n={id:t.id||zo("timeline"),kind:String(t.kind||"status"),title:String(t.title||"Step"),detail:t.detail?String(t.detail):void 0,detailBlocks:oi(t.detailBlocks),status:t.status,ts:Number(t.ts)||ce(),sourceRuntimeId:this.runtimeId};return this.mutate("local",o=>{o.timeline.push(n),o.timeline.length>this.maxTimeline&&(o.timeline=o.timeline.slice(-this.maxTimeline)),Un(o)}),n}clearTimeline(){this.mutate("local",t=>{t.timeline=[],Un(t)})}setActiveRun(t){this.mutate("local",n=>{if(!t){n.activeRun=void 0,n.transientStatus=void 0,n.uiStatus=void 0,Un(n);return}if(n.task&&n.task.status!=="running"){n.activeRun=void 0,Un(n);return}n.activeRun={runId:t.runId,text:t.text,runtimeId:this.runtimeId,startedAt:n.activeRun?.runId===t.runId?n.activeRun.startedAt:ce(),updatedAt:ce()},Un(n)})}requestControl(){return this.claimLease(!0)}registerCurrentTab(t,n,o){let r=pl(t),a=typeof o?.handoffId=="string"?o.handoffId.trim():"",i=Number(o?.sourceLogicalTabId),s;return this.mutate("local",c=>{let d=ce(),u=!!(c.lease&&c.lease.expiresAt>d)?c.lease?.holderRuntimeId:void 0,b=c.workflowLock&&c.workflowLock.runtimeId&&c.workflowLock.runtimeId!==this.runtimeId&&c.workflowLock.expiresAt>d?c.workflowLock:void 0,p=b?c.tabs.find(R=>R.runtimeId===b.runtimeId&&R.updatedAt>d-2*this.heartbeatMs):void 0,g=!p&&(!u||u===this.runtimeId),y=c.tabs.find(R=>R.runtimeId===this.runtimeId);if(y)y.url=r||y.url,y.title=n||y.title,y.updatedAt=d,y.detachedAt=void 0,y.detachedReason=void 0,y.handoffId=void 0,y.handoffRunId=void 0,y.handoffTargetUrl=void 0,y.handoffCreatedAt=void 0,s=y.logicalTabId;else{let R;if(a&&(R=c.tabs.find(O=>{if(O.runtimeId||String(O.handoffId||"").trim()!==a||Number.isFinite(i)&&i>0&&O.logicalTabId!==i)return!1;let M=d-Number(O.handoffCreatedAt||O.updatedAt||O.openedAt||0);return M>=0&&M<=3e4})),R||(R=c.tabs.find(O=>!O.runtimeId&&!O.external&&O.url===r&&d-O.openedAt<18e4)),R)R.runtimeId=this.runtimeId,R.url=r||R.url,R.title=n||R.title,R.updatedAt=d,R.detachedAt=void 0,R.detachedReason=void 0,R.handoffId=void 0,R.handoffRunId=void 0,R.handoffTargetUrl=void 0,R.handoffCreatedAt=void 0,s=R.logicalTabId;else{let O=c.nextLogicalTabId++;c.tabs.push({logicalTabId:O,runtimeId:this.runtimeId,url:r,title:n,openedAt:d,updatedAt:d,external:!1,detachedAt:void 0,detachedReason:void 0}),s=O}}s&&(c.tabs=c.tabs.filter(R=>{if(R.logicalTabId===s||R.runtimeId||R.external)return!0;if(a&&String(R.handoffId||"").trim()===a)return!1;let O=d-this.tabFreshnessTs(R);return!(!String(R.url||"").trim()&&O>Cd||r&&R.url===r&&O<=Ad)}));let I=c.activeLogicalTabId?c.tabs.find(R=>R.logicalTabId===c.activeLogicalTabId):void 0;p?c.activeLogicalTabId=p.logicalTabId:(!I||!I.runtimeId||I.logicalTabId===s||g)&&(c.activeLogicalTabId=s)}),this.notifyRoleChange(),this.localLogicalTabId||s||1}registerOpenedTab(t){let n=pl(t.url),o=0;return this.mutate("local",r=>{let a=ce(),i=r.tabs.find(s=>!s.runtimeId&&!!s.external==!!t.external&&s.url===n);if(i){i.title=t.title||i.title,i.updatedAt=a,i.openerRuntimeId=t.openerRuntimeId||i.openerRuntimeId,i.detachedAt=i.detachedAt||a,i.detachedReason="opened_pending_attach",o=i.logicalTabId;return}o=r.nextLogicalTabId++,r.tabs.push({logicalTabId:o,runtimeId:void 0,url:n,title:t.title,openedAt:a,updatedAt:a,external:!!t.external,openerRuntimeId:t.openerRuntimeId,detachedAt:a,detachedReason:"opened_pending_attach"})}),t.external&&this.probeRoverAvailability(o),{logicalTabId:o}}probeRoverAvailability(t){let o=setTimeout(()=>{let r=this.state.tabs.find(a=>a.logicalTabId===t);r&&!r.runtimeId&&this.mutate("local",a=>{let i=a.tabs.find(s=>s.logicalTabId===t);i&&(i.roverAvailability="not_available")})},5e3);typeof o?.unref=="function"&&o.unref(),this.probeTimers.push(o)}switchToLogicalTab(t){let n={ok:!1,reason:"Unknown tab"};return this.mutate("local",o=>{let r=o.tabs.find(a=>a.logicalTabId===t);if(!r){n={ok:!1,reason:`Tab ${t} not found`};return}if(o.activeLogicalTabId=t,r.runtimeId&&r.runtimeId!==this.runtimeId){o.lease={holderRuntimeId:r.runtimeId,expiresAt:ce()+this.leaseMs,updatedAt:ce()},this.channel&&this.channel.postMessage({type:"switch_request",logicalTabId:t,targetRuntimeId:r.runtimeId,sourceRuntimeId:this.runtimeId}),n={ok:!0,delegated:!0};return}if(!r.runtimeId){n={ok:!1,reason:`Tab ${t} is not attached to an active Rover runtime yet`};return}o.lease={holderRuntimeId:this.runtimeId,expiresAt:ce()+this.leaseMs,updatedAt:ce()},n={ok:!0,delegated:!1}}),this.notifyRoleChange(),n}sendCrossTabRpc(t,n,o,r=15e3){return new Promise((a,i)=>{if(!this.channel){i(new Error("BroadcastChannel not available"));return}let s=zo("rpc"),c=window.setTimeout(()=>{this.pendingRpcRequests.delete(s),i(new Error(`Cross-tab RPC timed out after ${r}ms (method=${n}, target=${t})`))},r);typeof c?.unref=="function"&&c.unref(),this.pendingRpcRequests.set(s,{resolve:a,reject:i,timer:c}),this.channel.postMessage({type:"rpc_request",requestId:s,sourceRuntimeId:this.runtimeId,targetRuntimeId:t,method:n,params:o,timeoutMs:r,createdAt:ce()})})}setRpcRequestHandler(t){this.rpcRequestHandler=t}broadcastNavigation(t,n){this.channel&&this.channel.postMessage({type:"tab_navigated",runtimeId:this.runtimeId,logicalTabId:this.localLogicalTabId,url:t,title:n})}broadcastClosing(t){this.closing=!0,this.mutate("local",n=>{let o=ce(),r=n.tabs.find(a=>a.runtimeId===this.runtimeId);r&&(r.runtimeId=void 0,r.updatedAt=o,r.detachedAt=o,r.detachedReason=t?"navigation_handoff":"tab_close",r.handoffId=typeof t?.handoffId=="string"?t.handoffId:void 0,r.handoffRunId=typeof t?.runId=="string"?t.runId:void 0,r.handoffTargetUrl=typeof t?.targetUrl=="string"?t.targetUrl:void 0,r.handoffCreatedAt=Number(t?.ts)||o),n.lease?.holderRuntimeId===this.runtimeId&&(n.lease=void 0)}),this.channel&&this.channel.postMessage({type:"tab_closing",runtimeId:this.runtimeId,logicalTabId:this.localLogicalTabId,handoff:t})}isTabAlive(t){let n=this.state.tabs.find(o=>o.logicalTabId===t);return n?n.updatedAt>ce()-2*this.heartbeatMs:!1}broadcastSessionToken(t,n){this.channel&&this.channel.postMessage({type:"session_token",runtimeId:this.runtimeId,token:t,expiresAt:n})}broadcastProjection(t){this.channel&&this.channel.postMessage({type:"projection",runtimeId:this.runtimeId,projection:t})}acquireWorkflowLock(t,n){let o=!1;return this.mutate("local",r=>{let a=r.workflowLock;if(!n?.force&&a&&a.runtimeId!==this.runtimeId&&a.expiresAt>ce()){let i=r.tabs.find(c=>c.runtimeId===a.runtimeId);if(i&&i.updatedAt>ce()-2*this.heartbeatMs){o=!1;return}}r.workflowLock={runtimeId:this.runtimeId,runId:t,lockedAt:ce(),expiresAt:ce()+this.workflowLockMs},o=!0}),o}releaseWorkflowLock(t){this.mutate("local",n=>{n.workflowLock&&n.workflowLock.runId===t&&(n.workflowLock=void 0)})}isWorkflowLocked(){let t=this.state.workflowLock;return!t||t.runtimeId===this.runtimeId?!1:t.expiresAt>ce()}getWorkflowLockInfo(){let t=this.state.workflowLock;return!t||t.expiresAt<=ce()?{locked:!1}:{locked:!0,holderRuntimeId:t.runtimeId,runId:t.runId}}async handleInboundRpcRequest(t){let{requestId:n,sourceRuntimeId:o,method:r,params:a}=t;if(!this.rpcRequestHandler){this.channel?.postMessage({type:"rpc_response",requestId:n,sourceRuntimeId:this.runtimeId,targetRuntimeId:o,ok:!1,error:{message:"No RPC handler registered",code:"NO_HANDLER"}});return}try{let i=await this.rpcRequestHandler({method:r,params:a});this.channel?.postMessage({type:"rpc_response",requestId:n,sourceRuntimeId:this.runtimeId,targetRuntimeId:o,ok:!0,result:i})}catch(i){this.channel?.postMessage({type:"rpc_response",requestId:n,sourceRuntimeId:this.runtimeId,targetRuntimeId:o,ok:!1,error:{message:i?.message||String(i)}})}}handleInboundRpcResponse(t){let{requestId:n,ok:o,result:r,error:a}=t,i=this.pendingRpcRequests.get(n);i&&(this.pendingRpcRequests.delete(n),window.clearTimeout(i.timer),o?i.resolve(r):i.reject(new Error(a?.message||"Cross-tab RPC failed")))}handleRemoteNavigation(t){let{runtimeId:n,url:o,title:r}=t;this.mutate("local",a=>{let i=a.tabs.find(s=>s.runtimeId===n);i&&(i.url=o||i.url,i.title=r||i.title,i.updatedAt=ce())})}handleRemoteTabClosing(t){let{runtimeId:n}=t,o=t?.handoff,r=typeof o?.handoffId=="string"&&o.handoffId.trim()?o.handoffId.trim():void 0,a=typeof o?.runId=="string"&&o.runId.trim()?o.runId.trim():void 0,i=typeof o?.targetUrl=="string"&&o.targetUrl.trim()?o.targetUrl.trim():void 0,s=Number(o?.ts)||ce();this.mutate("local",c=>{let d=ce(),f=c.tabs.find(u=>u.runtimeId===n);f&&(f.runtimeId=void 0,f.updatedAt=d,f.detachedAt=d,f.detachedReason=r?"navigation_handoff":"tab_close",f.handoffId=r,f.handoffRunId=a,f.handoffTargetUrl=i,f.handoffCreatedAt=s),c.lease?.holderRuntimeId===n&&(c.lease=void 0),c.workflowLock?.runtimeId===n&&(c.workflowLock=void 0),c.activeRun?.runtimeId===n&&(c.activeRun=void 0),c.activeLogicalTabId&&!c.tabs.some(u=>u.logicalTabId===c.activeLogicalTabId)&&(c.activeLogicalTabId=this.localLogicalTabId||c.tabs[0]?.logicalTabId)}),this.notifyRoleChange()}heartbeat(){if(this.closing)return;this.heartbeatCount++;let t=pl(window.location.href),n=document.title||void 0,o=ce(),r=this.state.lease,a=r&&r.holderRuntimeId===this.runtimeId&&r.expiresAt>o,i=o-this.lastFullHeartbeatAt<5e3,s=this.state.tabs.find(d=>d.runtimeId===this.runtimeId);if(a&&i&&s){s.url=t||s.url,s.title=n||s.title,s.updatedAt=o,s.detachedAt=void 0,s.detachedReason=void 0,this.state.updatedAt=o;return}this.lastFullHeartbeatAt=o;let c=this.heartbeatCount%ni.LS_HEARTBEAT_DIVISOR!==0;this.mutate("local",d=>{let f=d.tabs.find(Y=>Y.runtimeId===this.runtimeId);if(f)f.url=t||f.url,f.title=n||f.title,f.updatedAt=ce(),f.detachedAt=void 0,f.detachedReason=void 0;else{let Y=ce(),ae=d.nextLogicalTabId++;d.tabs.push({logicalTabId:ae,runtimeId:this.runtimeId,url:t,title:n,openedAt:Y,updatedAt:Y,external:!1,detachedAt:void 0,detachedReason:void 0})}let u=d.lease,b=!u||u.expiresAt<=ce(),p=u&&u.holderRuntimeId!==this.runtimeId&&u.expiresAt>ce()?u.holderRuntimeId:void 0,g=p?d.tabs.find(Y=>Y.runtimeId===p):void 0,y=!!(g&&g.updatedAt>ce()-2*this.heartbeatMs),I=d.workflowLock?.runtimeId,R=I?d.tabs.find(Y=>Y.runtimeId===I):void 0,O=!!(R&&R.runtimeId&&R.runtimeId!==this.runtimeId&&R.updatedAt>ce()-2*this.heartbeatMs);if(d.workflowLock&&d.workflowLock.runtimeId!==this.runtimeId&&(d.workflowLock.expiresAt<=ce()||!O)&&(d.workflowLock=void 0),d.workflowLock&&d.workflowLock.runtimeId!==this.runtimeId&&O&&R&&(d.activeLogicalTabId=R.logicalTabId),d.activeRun?.runtimeId&&d.activeRun.runtimeId!==this.runtimeId){let Y=d.tabs.find(re=>re.runtimeId===d.activeRun?.runtimeId);Y&&Y.updatedAt>ce()-2*this.heartbeatMs||(d.activeRun=void 0)}let M=!!(d.activeRun?.runtimeId&&d.activeRun.runtimeId!==this.runtimeId),H=!!(d.workflowLock&&d.workflowLock.runtimeId!==this.runtimeId&&d.workflowLock.expiresAt>ce()),N=!!(p&&!y&&!M&&!H);(b||u?.holderRuntimeId===this.runtimeId||N)&&(d.lease={holderRuntimeId:this.runtimeId,expiresAt:ce()+this.leaseMs,updatedAt:ce()},!d.activeLogicalTabId&&this.localLogicalTabId&&(d.activeLogicalTabId=this.localLogicalTabId)),d.workflowLock?.runtimeId===this.runtimeId&&(d.workflowLock.expiresAt=ce()+this.workflowLockMs),this.pruneDetachedTabs(d)},{skipPersist:c}),this.notifyRoleChange()}reloadFromStorage(){let t=this.loadState();return this.normalizeDraftTabs(t),(t.seq>this.state.seq||t.seq===this.state.seq&&t.updatedAt>this.state.updatedAt)&&(this.state=t,this.syncLocalLogicalTabId(),this.onStateChange?.(this.state,"remote")),this.closing=!1,this.state}claimLease(t){let n=!1;return this.mutate("local",o=>{let r=o.lease,a=!r||r.expiresAt<=ce();(t||a||r?.holderRuntimeId===this.runtimeId)&&(o.lease={holderRuntimeId:this.runtimeId,expiresAt:ce()+this.leaseMs,updatedAt:ce()},!o.activeLogicalTabId&&this.localLogicalTabId&&(o.activeLogicalTabId=this.localLogicalTabId),n=!0)}),this.notifyRoleChange(),n}notifyRoleChange(){this.getRole()!==this.lastNotifiedRole&&(this.roleChangeTimer!=null&&window.clearTimeout(this.roleChangeTimer),this.roleChangeTimer=window.setTimeout(()=>{this.roleChangeTimer=null;let n=this.getRole();n!==this.lastNotifiedRole&&(this.lastNotifiedRole=n,this.onRoleChange?.(n,{localLogicalTabId:this.localLogicalTabId,activeLogicalTabId:this.state.activeLogicalTabId,holderRuntimeId:this.state.lease?.holderRuntimeId}))},ni.ROLE_CHANGE_DEBOUNCE_MS),typeof this.roleChangeTimer?.unref=="function"&&this.roleChangeTimer.unref())}syncLocalLogicalTabId(){let t=this.state.tabs.find(n=>n.runtimeId===this.runtimeId);this.localLogicalTabId=t?.logicalTabId}mutate(t,n,o){if(t==="local")try{let i=window.localStorage.getItem(this.key);if(i){let s=ti(JSON.parse(i),this.siteId,this.sessionId);(s.seq>this.state.seq||s.seq===this.state.seq&&s.updatedAt>this.state.updatedAt)&&(this.state=s)}}catch{}let r=ti(this.state,this.siteId,this.sessionId);n(r),this.normalizeDraftTabs(r),r.seq=Math.max(1,Number(r.seq)||1)+(t==="local"?1:0),r.updatedAt=ce(),this.state=r,this.syncLocalLogicalTabId(),t==="local"&&(o?.skipPersist||this.persistState(),this.channel&&this.channel.postMessage({type:"state",sourceRuntimeId:this.runtimeId,state:this.state}));let a=this.computeStateHash(this.state);a!==this.lastNotifiedStateHash&&(this.lastNotifiedStateHash=a,this.onStateChange?.(this.state,t))}computeStateHash(t){let n=t.tabs;return`${n.length}:${n.map(o=>`${o.logicalTabId}|${o.runtimeId||""}|${o.url}|${o.title||""}|${!!o.detachedAt}`).join(";")}:${t.activeLogicalTabId??""}:${t.lease?.holderRuntimeId??""}:${t.activeRun?.runId??""}:${t.activeRun?.runtimeId??""}:${t.workflowLock?.runtimeId??""}:${t.taskEpoch??""}:${t.uiMessages?.length??0}:${t.timeline?.length??0}:${t.transientStatus?.text??t.uiStatus??""}`}applyIncomingState(t){t&&(t.seq<this.state.seq||t.seq===this.state.seq&&t.updatedAt<=this.state.updatedAt||(this.pruneDetachedTabs(t),this.normalizeDraftTabs(t),this.state=t,this.syncLocalLogicalTabId(),this.onStateChange?.(this.state,"remote"),this.notifyRoleChange()))}loadState(){try{let t=window.localStorage.getItem(this.key);if(!t)return Md(this.siteId,this.sessionId);let n=JSON.parse(t);return ti(n,this.siteId,this.sessionId)}catch(t){return console.warn("[rover] Failed to load shared state from localStorage:",t),Md(this.siteId,this.sessionId)}}persistState(){try{window.localStorage.setItem(this.key,JSON.stringify(this.state))}catch{}}};P(ni,"LS_HEARTBEAT_DIVISOR",5),P(ni,"ROLE_CHANGE_DEBOUNCE_MS",200);var hl=ni;var Ag="rover",kl="rover_shortcut";function Cg(e,t){return String(e||"").trim().replace(/^[?#&]+/,"").slice(0,64)||t}function Ng(e){return e instanceof URL?new URL(e.toString()):new URL(String(e||""),"https://rover.local")}function Mg(e,t){let n=e.getAll(t);for(let o=n.length-1;o>=0;o-=1){let r=String(n[o]||"").trim();if(r)return r}return""}function ua(e){let t=Cg(e?.promptParam,Ag),n=Cg(e?.shortcutParam,kl);return n===t&&(n=n===kl?`${kl}_id`:kl,n===t&&(t=Ag)),{enabled:e?.enabled===!0,promptParam:t,shortcutParam:n,consume:e?.consume!==!1}}function Lg(e,t){let n=ua(t),o=Ng(e),r=Mg(o.searchParams,n.shortcutParam);if(r)return{kind:"shortcut",paramName:n.shortcutParam,value:r,signature:`shortcut:${n.shortcutParam}:${r}`};let a=Mg(o.searchParams,n.promptParam);return a?{kind:"prompt",paramName:n.promptParam,value:a,signature:`prompt:${n.promptParam}:${a}`}:null}function Nd(e,t){let n=ua(t),o=Ng(e);o.searchParams.delete(n.promptParam),o.searchParams.delete(n.shortcutParam);let r=o.searchParams.toString();return`${o.pathname}${r?`?${r}`:""}${o.hash}`}var Ld="rover_launch",Og="rover_attach";function Pg(e){return e instanceof URL?new URL(e.toString()):new URL(String(e||""),"https://rover.local")}function Dg(e,t){let n=e.getAll(t);for(let o=n.length-1;o>=0;o-=1){let r=String(n[o]||"").trim();if(r)return r}return""}function Bg(e){let t=Pg(e),n=Dg(t.searchParams,Ld),o=Dg(t.searchParams,Og);return!n||!o?null:{requestId:n,attachToken:o,signature:`${Ld}:${n}:${o}`}}function Ug(e){let t=Pg(e);t.searchParams.delete(Ld),t.searchParams.delete(Og);let n=t.searchParams.toString();return`${t.pathname}${n?`?${n}`:""}${t.hash}`}var Dd="rover_receipt",Od="rover_anchor";function Hg(e){return e instanceof URL?new URL(e.toString()):new URL(String(e||""),"https://rover.local")}function Pd(e,t){let n=e.getAll(t);for(let o=n.length-1;o>=0;o-=1){let r=String(n[o]||"").trim();if(r)return r}return""}function Fg(e){return new URLSearchParams(String(e.hash||"").replace(/^#\??/,""))}function Bd(e){let t=Hg(e),n=Fg(t),o=Pd(n,Dd);if(!o)return null;let r=Pd(n,Od)||void 0;return{receipt:o,anchor:r,signature:`${Dd}:${o}`}}function zg(e){let t=Hg(e),n=Fg(t),o=Pd(n,Od);n.delete(Dd),n.delete(Od);let r=n.toString(),a=t.searchParams.toString(),i=o?`#${o}${r?`&${r}`:""}`:r?`#${r}`:"";return`${t.pathname}${a?`?${a}`:""}${i}`}var WT="https://rover.rtrvr.ai/embed.js";function Hn(e){return String(e||"").trim()}function Tn(e){return String(e||"").replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function jg(e){let t=Hn(e).toLowerCase();if(t){if(["1","true","yes","on"].includes(t))return!0;if(["0","false","no","off"].includes(t))return!1}}function VT(e){let t=Hn(e).split(",").map(n=>n.trim()).filter(Boolean);if(t.length)return Array.from(new Set(t))}function Ud(e){return{...e,scriptUrl:Hn(e.scriptUrl)||WT}}function qg(e){let t=Ud(e),n={siteId:t.siteId};return t.publicKey&&(n.publicKey=t.publicKey),t.sessionToken&&(n.sessionToken=t.sessionToken),t.sessionId&&(n.sessionId=t.sessionId),t.siteKeyId&&(n.siteKeyId=t.siteKeyId),t.apiBase&&(n.apiBase=t.apiBase),t.workerUrl&&(n.workerUrl=t.workerUrl),t.allowedDomains?.length&&(n.allowedDomains=t.allowedDomains),t.domainScopeMode&&(n.domainScopeMode=t.domainScopeMode),t.externalNavigationPolicy&&(n.externalNavigationPolicy=t.externalNavigationPolicy),t.sessionScope&&(n.sessionScope=t.sessionScope),typeof t.openOnInit=="boolean"&&(n.openOnInit=t.openOnInit),t.mode&&(n.mode=t.mode),typeof t.allowActions=="boolean"&&(n.allowActions=t.allowActions),n}function GT(){return["(function(){"," var r = window.rover = window.rover || function(){"," (r.q = r.q || []).push(arguments);"," };"," r.l = +new Date();","})();"].join(`
2097
+ `)}function KT(){return"(function(){var r=window.rover=window.rover||function(){(r.q=r.q||[]).push(arguments)};r.l=+new Date()})();"}function $g(e,t=!1){let n=Ud(e),o=t?JSON.stringify(qg(n)):JSON.stringify(qg(n),null,2),r=n.attachLaunch?t?JSON.stringify(n.attachLaunch):JSON.stringify(n.attachLaunch,null,2):"",a=JSON.stringify(n.scriptUrl);if(t)return[KT(),`rover('boot', ${o});`,n.attachLaunch?`rover('attachLaunch', ${r});`:"",`(function(){var s=document.createElement('script');s.src=${a};s.async=true;(document.head||document.documentElement).appendChild(s)})();`].filter(Boolean).join("");let i=[GT(),"",`rover('boot', ${o});`];return n.attachLaunch&&i.push(`rover('attachLaunch', ${r});`),i.push("","(function(){",' var s = document.createElement("script");',` s.src = ${a};`," s.async = true;"," (document.head || document.documentElement).appendChild(s);","})();"),i.join(`
2098
+ `)}function Wg(e){return $g(e,!1)}function Vg(e){return`javascript:${$g(e,!0)}`}function Gg(e){let t=Ud(e),n=[`src="${Tn(t.scriptUrl)}"`,`data-site-id="${Tn(t.siteId)}"`];return t.publicKey&&n.push(`data-public-key="${Tn(t.publicKey)}"`),t.sessionToken&&n.push(`data-session-token="${Tn(t.sessionToken)}"`),t.sessionId&&n.push(`data-session-id="${Tn(t.sessionId)}"`),t.siteKeyId&&n.push(`data-site-key-id="${Tn(t.siteKeyId)}"`),t.apiBase&&n.push(`data-api-base="${Tn(t.apiBase)}"`),t.workerUrl&&n.push(`data-worker-url="${Tn(t.workerUrl)}"`),t.allowedDomains?.length&&n.push(`data-allowed-domains="${Tn(t.allowedDomains.join(","))}"`),t.domainScopeMode&&n.push(`data-domain-scope-mode="${Tn(t.domainScopeMode)}"`),t.externalNavigationPolicy&&n.push(`data-external-navigation-policy="${Tn(t.externalNavigationPolicy)}"`),t.sessionScope&&n.push(`data-session-scope="${Tn(t.sessionScope)}"`),typeof t.openOnInit=="boolean"&&n.push(`data-open-on-init="${Tn(String(t.openOnInit))}"`),t.mode&&n.push(`data-mode="${Tn(t.mode)}"`),typeof t.allowActions=="boolean"&&n.push(`data-allow-actions="${Tn(String(t.allowActions))}"`),`<script ${n.join(" ")}><\/script>`}function Hd(e){let t=Hn(e.getAttribute("data-site-id")),n=Hn(e.getAttribute("data-public-key")),o=Hn(e.getAttribute("data-session-token"));if(!t||!n&&!o)return null;let r={siteId:t};n&&(r.publicKey=n),o&&(r.sessionToken=o);let a=Hn(e.getAttribute("data-session-id"));a&&(r.sessionId=a);let i=Hn(e.getAttribute("data-site-key-id"));i&&(r.siteKeyId=i);let s=Hn(e.getAttribute("data-api-base"));s&&(r.apiBase=s);let c=Hn(e.getAttribute("data-worker-url"));c&&(r.workerUrl=c);let d=VT(e.getAttribute("data-allowed-domains"));d&&(r.allowedDomains=d);let f=Hn(e.getAttribute("data-domain-scope-mode"));(f==="host_only"||f==="registrable_domain")&&(r.domainScopeMode=f);let u=Hn(e.getAttribute("data-external-navigation-policy"));(u==="open_new_tab_notice"||u==="block"||u==="allow")&&(r.externalNavigationPolicy=u);let b=Hn(e.getAttribute("data-session-scope"));(b==="shared_site"||b==="tab")&&(r.sessionScope=b);let p=jg(e.getAttribute("data-open-on-init"));typeof p=="boolean"&&(r.openOnInit=p);let g=Hn(e.getAttribute("data-mode"));(g==="safe"||g==="full")&&(r.mode=g);let y=jg(e.getAttribute("data-allow-actions"));return typeof y=="boolean"&&(r.allowActions=y),r}var Yg="https://agent.rtrvr.ai",Kg="rvrsess_";function ri(e,t){let n=Number(e);return Number.isFinite(n)?n:t}function XT(e,t=8e3){let n=String(e??"");return n.length<=t?n:`${n.slice(0,t)}\u2026`}function YT(e){let t=String(e||"").trim();if(!t)return"";try{let n=new URL(t);return n.hash="",`${n.origin}${n.pathname}${n.search}`}catch{return t}}function zd(e){return e==null?"null":typeof e=="number"?Number.isFinite(e)?String(e):JSON.stringify(String(e)):typeof e=="boolean"?e?"true":"false":typeof e=="string"?JSON.stringify(e):Array.isArray(e)?`[${e.map(t=>zd(t)).join(",")}]`:typeof e=="object"?`{${Object.entries(e).filter(([n])=>n!=="updatedAt"&&n!=="ts"&&n!=="timestamp").sort(([n],[o])=>n.localeCompare(o)).map(([n,o])=>`${JSON.stringify(n)}:${zd(o)}`).join(",")}}`:JSON.stringify(String(e))}function QT(e){let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return`sd:${(t>>>0).toString(16)}`}function Xg(e){let t=Array.isArray(e.sharedState?.tabs)?e.sharedState.tabs:[],n=e.runtimeState?.workerState||{},o=e.runtimeState?.taskTabScope||{},r=e.sharedState?.activeRun||{},a=e.runtimeState?.pendingRun||{},i=Array.isArray(n.plannerHistory)?n.plannerHistory:[],s=Array.isArray(n.agentPrevSteps)?n.agentPrevSteps:[],c=i.length?i[i.length-1]:void 0,d=s.length?s[s.length-1]:void 0,f=i.map(p=>String(p?.id||p?.toolCall?.name||p?.toolName||p?.name||"")),u=s.map(p=>String(p?.id||p?.toolCall?.name||p?.toolName||p?.name||"")),b={sessionId:String(e.sessionId||""),shared:{taskEpoch:Number(e.sharedState?.taskEpoch||0),taskId:String(e.sharedState?.task?.taskId||""),taskStatus:String(e.sharedState?.task?.status||""),activeRunId:String(r.runId||""),activeRunStatus:String(r.status||""),tabs:t.map(p=>({logicalTabId:Number(p?.logicalTabId)||0,scope:String(p?.scope||""),status:String(p?.status||""),url:YT(p?.url),external:!!p?.external}))},runtime:{taskEpoch:Number(e.runtimeState?.taskEpoch||0),activeTaskId:String(e.runtimeState?.activeTask?.taskId||""),activeTaskStatus:String(e.runtimeState?.activeTask?.status||""),pendingRunId:String(a.id||""),pendingRunStatus:String(a.status||""),pendingResumeRequired:a.resumeRequired===!0,worker:{taskBoundaryId:String(n.taskBoundaryId||""),trajectoryId:String(n.trajectoryId||""),pendingAskBoundaryId:String(n.pendingAskUser?.boundaryId||""),plannerHistoryCount:i.length,agentPrevStepsCount:s.length,lastPlannerStepId:String(c?.id||""),lastAgentStepId:String(d?.id||""),plannerStepMarkers:f,agentStepMarkers:u},continuity:{boundaryId:String(o.boundaryId||""),seedTabId:Number(o.seedTabId||0),touchedTabIds:Array.isArray(o.touchedTabIds)?o.touchedTabIds.map(p=>Number(p)||0).filter(p=>p>0):[]}}};return QT(zd(b))}function JT(e){let t=Yg,n=String(e||t).trim().replace(/\/+$/,"");if(!n)return t;if(n.endsWith("/extensionRouter/v2/rover"))return n.slice(0,-25);if(n.endsWith("/v2/rover"))return n.slice(0,-9);let o=n.match(/\/v\d+\/rover$/);return o?.[0]?n.slice(0,-o[0].length):n.endsWith("/extensionRouter")?n.slice(0,-16):n}function Fd(e){let t=new Set,n=[];for(let o of e){let r=String(o||"").trim().replace(/\/+$/,"");!r||t.has(r)||(t.add(r),n.push(r))}return n}function ZT(e){let t=JT(e),n=String(e||"").trim().replace(/\/+$/,"");return n.endsWith("/v2/rover")||n.endsWith("/extensionRouter/v2/rover")?Fd([n.replace("/extensionRouter/v2/rover","/v2/rover"),`${t}/v2/rover`]):Fd(!n&&t==="https://agent.rtrvr.ai"?[`${t}/v2/rover`,"https://extensionrouter.rtrvr.ai/v2/rover"]:[`${t}/v2/rover`])}function da(e,t){let n=new Error(e);return n.details=t,n}function e_(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`}var yl=class{constructor(t){P(this,"endpoint");P(this,"endpointCandidates");P(this,"endpointIndex",0);P(this,"getToken");P(this,"siteId");P(this,"visitorId");P(this,"ttlHours");P(this,"flushIntervalMs");P(this,"pullIntervalMs");P(this,"minFlushIntervalMs");P(this,"maxSnapshotBytes");P(this,"shouldSync");P(this,"shouldWrite");P(this,"buildCheckpoint");P(this,"onCheckpoint");P(this,"onStateChange");P(this,"onError");P(this,"idlePullIntervalMs");P(this,"started",!1);P(this,"idleMode",!1);P(this,"dirty",!1);P(this,"flushTimer",null);P(this,"pullTimer",null);P(this,"lastFlushAt",0);P(this,"lastPullAt",0);P(this,"lastUploadedRevision","");P(this,"lastAppliedRemoteUpdatedAt",0);P(this,"lastAppliedRemoteDigest","");P(this,"pushInFlight",!1);P(this,"pullInFlight",!1);P(this,"state","active");P(this,"visibilityListener",null);let n=String(t.authToken||"").trim(),o=t.getSessionToken,r=o?String(o()||"").trim():n;if(!r||!r.startsWith(Kg))throw da("Rover cloud checkpoint requires a session token (rvrsess_...).");this.endpointCandidates=ZT(t.apiBase),this.endpoint=this.endpointCandidates[0]||`${Yg}/v2/rover`,this.getToken=()=>{let a=o?String(o()||"").trim():n;if(!a||!a.startsWith(Kg))throw da("Rover cloud checkpoint requires an active session token.");return a},this.siteId=t.siteId,this.visitorId=t.visitorId,this.ttlHours=Math.max(1,Math.min(168,Math.floor(ri(t.ttlHours,1)))),this.flushIntervalMs=Math.max(2e3,Math.floor(ri(t.flushIntervalMs,3e4))),this.pullIntervalMs=Math.max(2e3,Math.floor(ri(t.pullIntervalMs,3e4))),this.idlePullIntervalMs=12e4,this.minFlushIntervalMs=Math.max(1e3,Math.floor(ri(t.minFlushIntervalMs,2500))),this.maxSnapshotBytes=Math.max(64e3,Math.min(1048576,Math.floor(ri(t.maxSnapshotBytes,262144)))),this.shouldSync=t.shouldSync||(()=>!0),this.shouldWrite=t.shouldWrite||(()=>!0),this.buildCheckpoint=t.buildCheckpoint,this.onCheckpoint=t.onCheckpoint,this.onStateChange=t.onStateChange,this.onError=t.onError}start(){this.started||(this.started=!0,this.setState("active"),typeof document<"u"&&!this.visibilityListener&&(this.visibilityListener=()=>{if(this.started){if(document.hidden){this.enterIdleMode();return}this.enterActiveMode(),this.shouldSync()&&(this.pull(!0),this.dirty&&this.flush(!0))}},document.addEventListener("visibilitychange",this.visibilityListener)),this.flushTimer=window.setInterval(()=>{this.shouldSync()&&this.flush(!1)},this.flushIntervalMs),this.pullTimer=window.setInterval(()=>{this.shouldSync()&&this.pull(!1)},this.pullIntervalMs),this.pull(!0))}stop(){this.started&&(this.started=!1,this.idleMode=!1,this.flushTimer!=null&&(window.clearInterval(this.flushTimer),this.flushTimer=null),this.pullTimer!=null&&(window.clearInterval(this.pullTimer),this.pullTimer=null),this.visibilityListener&&typeof document<"u"&&(document.removeEventListener("visibilitychange",this.visibilityListener),this.visibilityListener=null),this.flush(!0))}markDirty(){this.dirty=!0}syncNow(t){let n=t?.push!==!1,o=t?.pull!==!1;n&&this.flush(!0),o&&this.pull(!0)}syncPullFirst(){(async()=>(await this.pull(!0),await this.flush(!0)))()}pullNow(t=!0){this.pull(!!t)}enterIdleMode(){this.idleMode||(this.idleMode=!0,this.flushTimer!=null&&(window.clearInterval(this.flushTimer),this.flushTimer=null),this.pullTimer!=null&&(window.clearInterval(this.pullTimer),this.pullTimer=null),this.started&&(this.pullTimer=window.setInterval(()=>{this.shouldSync()&&this.pull(!1)},this.idlePullIntervalMs)))}enterActiveMode(){this.idleMode&&(this.idleMode=!1,this.started&&(this.flushTimer==null&&(this.flushTimer=window.setInterval(()=>{this.shouldSync()&&this.flush(!1)},this.flushIntervalMs)),this.pullTimer==null&&(this.pullTimer=window.setInterval(()=>{this.shouldSync()&&this.pull(!1)},this.pullIntervalMs))))}getActiveEndpoint(){return this.endpointCandidates.length?this.endpointCandidates[this.endpointIndex]||this.endpoint:this.endpoint}rotateEndpoint(){this.endpointCandidates.length<=1||(this.endpointIndex=(this.endpointIndex+1)%this.endpointCandidates.length,this.endpoint=this.endpointCandidates[this.endpointIndex]||this.endpoint)}async requestJson(t,n){let o=Math.max(1,this.endpointCandidates.length||1),r;for(let a=0;a<o;a+=1){let i=(this.endpointIndex+a)%o,s=this.endpointCandidates[i]||this.endpoint;try{let c=await fetch(`${s}${t}`,n),d=await c.json().catch(()=>{});if(c.status===404||c.status===405){r=da(`Checkpoint endpoint unavailable at ${s}${t}`,{status:c.status,payload:d});continue}return this.endpointIndex=i,this.endpoint=s,{response:c,payload:d}}catch(c){r=c}}throw r instanceof Error?r:da(`Checkpoint request failed for ${t}`)}async flush(t){if(this.pushInFlight||this.idleMode||this.state==="paused_auth"||!t&&!this.shouldSync()||!this.dirty&&!t||!this.shouldWrite()||!t&&Date.now()-this.lastFlushAt<this.minFlushIntervalMs)return;let n=this.buildCheckpoint();if(!n)return;let o=Xg(n);if(n.digest=o,!t&&o===this.lastUploadedRevision){this.dirty=!1;return}this.pushInFlight=!0;try{let r=await this.callCheckpointApi("session_snapshot_upsert",{siteId:this.siteId,visitorId:this.visitorId,sessionId:n.sessionId,ttlHours:this.ttlHours,updatedAt:n.updatedAt,checkpoint:n});this.lastFlushAt=Date.now(),r?.saved&&(this.dirty=!1,this.lastUploadedRevision=o),r?.stale&&r?.checkpoint&&typeof r.checkpoint=="object"&&(this.applyRemoteCheckpoint(r.checkpoint,"push_stale"),this.dirty=!1),this.setState("active")}catch(r){this.handleCheckpointError(r,"session_snapshot_upsert")}finally{this.pushInFlight=!1}}async pull(t){if(!this.pullInFlight&&this.state!=="paused_auth"&&!(!t&&!this.shouldSync())&&!(!t&&Date.now()-this.lastPullAt<this.pullIntervalMs)){this.pullInFlight=!0;try{let n=await this.callCheckpointApi("session_projection_get",{siteId:this.siteId,visitorId:this.visitorId,sessionId:this.buildCheckpoint()?.sessionId});if(this.lastPullAt=Date.now(),!n?.found||!n?.checkpoint||typeof n.checkpoint!="object")return;this.applyRemoteCheckpoint(n.checkpoint,"pull"),this.setState("active")}catch(n){this.handleCheckpointError(n,"session_projection_get")}finally{this.pullInFlight=!1}}}applyRemoteCheckpoint(t,n){let o=Math.max(0,Math.floor(ri(t?.updatedAt,0))),r=String(t?.digest||"").trim()||Xg(t);o<=this.lastAppliedRemoteUpdatedAt&&(!r||r===this.lastAppliedRemoteDigest)||(this.lastAppliedRemoteUpdatedAt=o,r&&(this.lastAppliedRemoteDigest=r),this.onCheckpoint(t,n))}async callCheckpointApi(t,n){return this.callRoverV2(t,n)}async callRoverV2(t,n){let o=this.getToken();if(t==="session_snapshot_upsert"){let c=JSON.stringify({requestNonce:e_(),sessionToken:o,sessionId:n?.sessionId,visitorId:n?.visitorId,ttlHours:n?.ttlHours,updatedAt:n?.updatedAt,version:n?.checkpoint?.version||n?.version||1,checkpoint:n?.checkpoint});if(c.length>this.maxSnapshotBytes)throw da("Checkpoint snapshot exceeds maxSnapshotBytes limit.",{action:t,size:c.length,maxSnapshotBytes:this.maxSnapshotBytes,code:"SNAPSHOT_TOO_LARGE"});let d=c.length<6e4,{response:f,payload:u}=await this.requestJson("/snapshot",{method:"POST",headers:{"Content-Type":"text/plain"},keepalive:d,body:c});if(!f.ok||!u?.success)throw da(`Checkpoint HTTP ${f.status}`,{action:t,status:f.status,payload:u});return{saved:!!u?.data?.saved,stale:u?.data?.stale===!0,checkpoint:u?.data?.checkpoint,updatedAt:Number(u?.data?.updatedAt)||void 0}}let r=new URLSearchParams({sessionId:String(n?.sessionId||""),sessionToken:o,includeSnapshot:"true"}),{response:a,payload:i}=await this.requestJson(`/state?${r.toString()}`,{method:"GET"});if(!a.ok||!i?.success)throw da(`Checkpoint HTTP ${a.status}`,{action:t,status:a.status,payload:i});let s=i?.data?.projection?.snapshot??i?.data?.snapshot;return{found:!!s,checkpoint:s}}setState(t,n){this.state!==t&&(this.state=t,this.onStateChange?.(t,n||{}))}handleCheckpointError(t,n){let o=this.normalizeCheckpointError(t),r=this.isAuthFailure(o);r&&this.setState("paused_auth",{reason:"auth_failed",action:n,code:o.code,message:o.message}),this.onError?.(t,{action:n,state:this.state,code:o.code,message:o.message,status:o.status,paused:r})}normalizeCheckpointError(t){let n=t,o=n?.details,r=o?.payload||o?.response||o,a=r?.errorCode||r?.errorDetails?.code||r?.error?.code||r?.code,i=r?.error||r?.errorDetails?.message||r?.error?.message||n?.message||"Checkpoint request failed",s=Number(o?.status);return{code:typeof a=="string"?a:void 0,message:XT(i,1e3),status:Number.isFinite(s)?s:void 0}}isAuthFailure(t){let n=String(t.code||"").toUpperCase();return n==="INVALID_API_KEY"||n==="MISSING_API_KEY"||n==="UNAUTHENTICATED"||n==="PERMISSION_DENIED"?!0:t.status===401||t.status===403}};var t_="rover-runtime-state-db",vl="runtime-state",jd=class{read(t){try{let n=window.sessionStorage.getItem(t);return n?JSON.parse(n):null}catch{return null}}write(t,n){try{window.sessionStorage.setItem(t,JSON.stringify(n))}catch{}}remove(t){try{window.sessionStorage.removeItem(t)}catch{}}},qd=class{constructor(){P(this,"dbPromise",null)}openDb(){return this.dbPromise?this.dbPromise:(this.dbPromise=new Promise((t,n)=>{if(typeof indexedDB>"u"){n(new Error("indexedDB unavailable"));return}let o=indexedDB.open(t_,1);o.onupgradeneeded=()=>{let r=o.result;r.objectStoreNames.contains(vl)||r.createObjectStore(vl)},o.onsuccess=()=>{t(o.result)},o.onerror=()=>{n(o.error||new Error("indexedDB open failed"))}}).catch(t=>{throw this.dbPromise=null,t}),this.dbPromise)}async withStore(t,n){let o=await this.openDb();return new Promise((r,a)=>{let i=o.transaction(vl,t),s=i.objectStore(vl);n(s,r,a),i.onerror=()=>{a(i.error||new Error("indexedDB transaction failed"))}})}async read(t){try{return await this.withStore("readonly",(n,o,r)=>{let a=n.get(t);a.onsuccess=()=>{let i=a.result;o(i??null)},a.onerror=()=>{r(a.error||new Error("indexedDB read failed"))}})}catch{return null}}async write(t,n){await this.withStore("readwrite",(o,r,a)=>{let i=o.put(n,t);i.onsuccess=()=>r(),i.onerror=()=>{a(i.error||new Error("indexedDB write failed"))}}).catch(()=>{})}async remove(t){await this.withStore("readwrite",(n,o,r)=>{let a=n.delete(t);a.onsuccess=()=>o(),a.onerror=()=>{r(a.error||new Error("indexedDB delete failed"))}}).catch(()=>{})}};function Qg(){let e=new jd,t=new qd;return{readSync:n=>e.read(n),readSyncAny:n=>{for(let o of n){if(!o)continue;let r=e.read(o);if(r)return r}return null},readAsync:async n=>t.read(n),readAsyncAny:async n=>{for(let o of n){if(!o)continue;let r=await t.read(o);if(r)return r}return null},write:(n,o)=>{e.write(n,o),t.write(n,o)},remove:n=>{e.remove(n),t.remove(n)}}}function Jg(e){if(typeof e=="string"){let n=String(e||"").trim().slice(0,4e3);return n?{role:"model",message:n}:null}if(!e||typeof e!="object")return null;let t=String(e.message||"").trim().slice(0,4e3);return t?{role:"model",message:t}:null}function Zg(e){let t=e.normalizeTaskBoundaryId||(n=>String(n||"").trim()||void 0);return{taskId:String(e.taskId||"").trim()||void 0,runId:typeof e.msg?.runId=="string"?e.msg.runId:void 0,taskBoundaryId:typeof e.msg?.taskBoundaryId=="string"?t(e.msg.taskBoundaryId):t(e.currentTaskBoundaryId),text:typeof e.msg?.text=="string"?e.msg.text:void 0,startedAt:e.now||Date.now(),pageUrl:e.pageUrl}}function eb(e){let t=e.normalizeTaskBoundaryId||(s=>String(s||"").trim()||void 0),n=typeof e.msg?.runId=="string"&&e.msg.runId.trim()?e.msg.runId.trim():void 0,o=e.completionState.terminalState==="waiting_input"?"waiting_input":e.completionState.terminalState,r=String(e.msg?.summary||e.msg?.message||e.msg?.result?.summary||e.latestSummary||"").trim()||void 0,a=String(e.msg?.error||e.msg?.result?.error||"").trim()||void 0,i=o==="completed"?"success":o==="failed"?"failure":e.completionState.needsUserInput||o==="in_progress"?"partial":"abandoned";return{taskId:String(e.taskId||"").trim()||void 0,runId:n,taskBoundaryId:typeof e.msg?.taskBoundaryId=="string"?t(e.msg.taskBoundaryId):t(e.currentTaskBoundaryId),terminalState:o,continuationReason:e.completionState.continuationReason,taskComplete:e.completionState.taskComplete,needsUserInput:e.completionState.needsUserInput,summary:r,error:a,ok:e.msg?.ok!==!1,questions:e.completionState.questions,endedAt:e.now||Date.now(),outcome:i,pageUrl:e.pageUrl}}var n_="rover_xdr_",nb=300;function ob(e){return sr(e)}function rb(e){let t=Bn(e);return!(!t||t==="localhost"||vd(t))}function $d(e){return`${n_}${e.replace(/[^a-zA-Z0-9_-]/g,"_").slice(0,40)}`}function wl(e){let t=String(e||"").trim();if(!t)return"";try{let n=new URL(t,window.location.href);return n.hash="",n.toString()}catch{return t}}function tb(e){let t=String(e||"").trim();return!t||t==="/"?"/":t.replace(/\/\/+/g,"/").replace(/\/+$/,"")||"/"}function o_(e,t){let n=new Set;for(let[o]of e.entries())n.add(o);for(let o of n){let r=e.getAll(o);if(!r.length)continue;let a=t.getAll(o);if(!a.length)return!1;let i=new Map;for(let s of a)i.set(s,(i.get(s)||0)+1);for(let s of r){let c=i.get(s)||0;if(c<=0)return!1;i.set(s,c-1)}}return!0}function Wd(e,t){let n=wl(e),o=wl(t);if(!n||!o)return!1;try{let r=new URL(n,window.location.href),a=new URL(o,window.location.href);return r.origin.toLowerCase()!==a.origin.toLowerCase()||tb(r.pathname)!==tb(a.pathname)?!1:o_(r.searchParams,a.searchParams)}catch{return n===o}}function ab(e,t){try{let n=$d(e),o=ob(window.location.hostname),r=encodeURIComponent(JSON.stringify(t)),a=window.location.protocol==="https:",i=[`${n}=${r}`,"path=/",`max-age=${nb}`,"SameSite=Lax"];rb(o)&&i.push(`domain=.${o}`),a&&i.push("Secure"),document.cookie=i.join("; ")}catch{}}function Vd(e,t){try{let n=$d(e),o=document.cookie.split(";"),r=Math.max(1e3,Number(t?.maxAgeMs)||nb*1e3),a=wl(t?.currentUrl||window.location.href),i=Bn(t?.currentHost||window.location.hostname||""),s=String(t?.expectedHandoffId||"").trim(),c=t?.requireTargetMatch!==!1;for(let d of o){let[f,...u]=d.trim().split("=");if(f===n){let b=u.join("="),p=JSON.parse(decodeURIComponent(b));if(!p.timestamp||Date.now()-p.timestamp>=r)continue;let g=String(p.handoffId||p.handoff?.handoffId||"").trim();if(!g||s&&g!==s)continue;if(c){let y=wl(p.targetUrl||p.handoff?.targetUrl||"");if(!y||!a||!Wd(y,a))continue}if(p.sourceHost){let y=Bn(p.sourceHost||"");if(y&&i&&y===i&&!s)continue}if(p.sessionId&&typeof p.sessionId=="string")return p}}}catch{}return null}function ds(e){try{let t=$d(e),n=ob(window.location.hostname),o=window.location.protocol==="https:",r=[`${t}=`,"path=/","max-age=0","SameSite=Lax"];rb(n)&&r.push(`domain=.${n}`),o&&r.push("Secure"),document.cookie=r.join("; ")}catch{}}function Se(e){return String(e||"").trim()||void 0}function r_(e){let t=Se(e.incomingBoundaryId),n=Se(e.currentBoundaryId);return!t||t===n?!1:n?e.taskEpochAdvanced===!0&&e.hasPendingRun!==!0:e.allowBootstrapAdoption!==!1}function ib(e){let t=Se(e.incomingBoundaryId),n=Se(e.currentBoundaryId);return t&&n&&t===n?{accept:!0,reason:"match"}:t?r_(e)?{accept:!0,adoptedBoundaryId:t,reason:n?"epoch_adopt":"bootstrap_adopt"}:{accept:!1,reason:"mismatch"}:!n&&e.allowBootstrapAdoption!==!1?{accept:!0,reason:"bootstrap_adopt"}:{accept:!1,reason:"missing_incoming"}}function a_(){return[{kind:"create_task"},{kind:"rotate_boundary"},{kind:"assign_worker"}]}function Gd(){return[{kind:"release_worker"},{kind:"clear_run"}]}function xl(){return[{kind:"release_worker"},{kind:"clear_run"}]}function fa(){return[{kind:"archive_task"},{kind:"clear_run"},{kind:"clear_worker_state"}]}var i_={idle:{START:{to:"running",sideEffects:()=>a_()}},running:{AGENT_PROGRESS:{to:"running",sideEffects:()=>[{kind:"update_timestamps",ts:Date.now()}]},NAVIGATION_STARTED:{to:"running",sideEffects:e=>[{kind:"record_navigation",targetUrl:e.targetUrl,isCrossHost:e.isCrossHost},{kind:"update_timestamps",ts:Date.now()}]},NAVIGATION_COMPLETED:{to:"running",sideEffects:()=>[{kind:"clear_navigation"},{kind:"update_timestamps",ts:Date.now()}]},ASK_USER:{to:"awaiting_user",sideEffects:e=>[{kind:"set_pending_questions",questions:e.questions||[]}]},PAUSE:{to:"paused",sideEffects:()=>[{kind:"snapshot_worker_state"},{kind:"release_worker"}]},BLOCK:{to:"blocked",sideEffects:e=>[{kind:"record_block_reason",reason:e.reason},{kind:"notify_agent_blocked"}]},COMPLETE:{to:"completed",sideEffects:()=>Gd()},FAIL:{to:"failed",sideEffects:e=>[...Gd(),{kind:"emit_error",error:e.error}]},CANCEL:{to:"cancelled",sideEffects:()=>xl()},RESET:{to:"idle",sideEffects:()=>fa()}},awaiting_user:{USER_RESPONDED:{to:"running",sideEffects:()=>[{kind:"clear_questions"}]},PAUSE:{to:"paused",sideEffects:()=>[{kind:"snapshot_worker_state"},{kind:"release_worker"}]},CANCEL:{to:"cancelled",sideEffects:()=>xl()},RESET:{to:"idle",sideEffects:()=>fa()}},paused:{RESUME:{to:"running",sideEffects:()=>[{kind:"restore_snapshot"},{kind:"assign_worker"}]},CANCEL:{to:"cancelled",sideEffects:()=>xl()},RESET:{to:"idle",sideEffects:()=>fa()}},blocked:{UNBLOCK:{to:"running",sideEffects:()=>[{kind:"resume_from_block"}]},CANCEL:{to:"cancelled",sideEffects:()=>xl()},FAIL:{to:"failed",sideEffects:e=>[...Gd(),{kind:"emit_error",error:e.error}]},RESET:{to:"idle",sideEffects:()=>fa()}},completed:{RESET:{to:"idle",sideEffects:()=>fa()}},failed:{RESET:{to:"idle",sideEffects:()=>fa()}},cancelled:{RESET:{to:"idle",sideEffects:()=>fa()}}};function s_(e,t,n){let r=i_[e]?.[t.type];if(!r)return{next:e,rejected:!0,rejectedReason:`Invalid transition: ${e} + ${t.type}`,sideEffects:[]};let a=r.to;return e==="paused"&&t.type==="RESUME"&&n?.prePauseState==="awaiting_user"&&(a="awaiting_user"),{next:a,rejected:!1,sideEffects:r.sideEffects(t,n)}}function fs(e){return e==="completed"||e==="failed"||e==="cancelled"}function sb(e){switch(e){case"idle":return"running";case"running":return"running";case"awaiting_user":return"running";case"paused":return"running";case"blocked":return"running";case"completed":return"completed";case"failed":return"failed";case"cancelled":return"cancelled";default:return"running"}}function ms(e,t){if(!e)return"idle";switch(e){case"running":{let n=String(t||"").trim().toLowerCase();return n.includes("waiting_for_input")||n.includes("awaiting_user")?"awaiting_user":"running"}case"completed":return"completed";case"cancelled":return"cancelled";case"failed":return"failed";case"ended":return"cancelled";default:return"idle"}}function cb(e,t){let n=s_(e.state,t,e);if(n.rejected)return{record:e,result:n};let o=Date.now(),r={...e,state:n.next};if(n.next==="paused"&&!r.pausedAt&&(r.pausedAt=o,r.prePauseState=e.state==="awaiting_user"?"awaiting_user":"running"),n.next==="blocked"){r.blockedAt=o;let a=t;r.blockReason=a.reason}return n.next==="running"&&e.state==="paused"&&(r.pausedAt=void 0,r.prePauseState=void 0),n.next==="running"&&e.state==="blocked"&&(r.blockedAt=void 0,r.blockReason=void 0),n.next==="running"&&e.state==="awaiting_user"&&(r.pausedAt=void 0,r.prePauseState=void 0),fs(n.next)&&(r.endedAt=o),t.type==="COMPLETE"&&t.summary&&(r.summary=t.summary),t.type==="RESET"&&(r.pausedAt=void 0,r.prePauseState=void 0,r.blockedAt=void 0,r.blockReason=void 0,r.endedAt=void 0),{record:r,result:n}}function Kd(e){let t=Date.now(),n=e?.taskId||c_(),o=e?.boundaryId||l_();return{taskId:n,state:"idle",boundaryId:o,startedAt:t,uiMessages:[],timeline:[],seedChatLog:[],tabIds:[],...e}}function c_(){return`task_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`}function l_(){return`bnd_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`}function Tl(e){return e==="running"}function lb(e){return e.resumeRequired?e.hasLiveRemoteController?"defer_remote_owner":e.policy==="never"?"cancel_resume":e.policy==="confirm"?"prompt_resume":"auto_resume":"noop"}function ub(e){let t=String(e.serverRunId||"").trim();if(!t||e.ignoredRunIds?.has(t))return!1;let n=String(e.localPendingRunId||"").trim();return!n||n!==t}function db(e){let t=String(e.serverRunId||"").trim();if(!t||!e.ignoredRunIds?.has(t))return!1;let n=String(e.runStatus||"").trim().toLowerCase();return!(n==="completed"||n==="cancelled"||n==="failed"||n==="ended")}function fb(e){return!(e.taskStatus!=="running"||!e.activeRunId||!e.activeRunText||e.hasPendingRun||e.ignoredRunIds?.has(e.activeRunId))}function Xd(e){return!!(e.localTaskStatus!=="running"||e.remoteTaskStatus&&e.remoteTaskStatus!=="running"||e.mode==="observer"&&!e.hasRemoteActiveRun)}function mb(e){let{type:t,messageRunId:n,messageTaskBoundaryId:o,currentTaskBoundaryId:r,pendingRunId:a,sharedActiveRunId:i,authoritativeActiveRunId:s,taskStatus:c,ignoredRunIds:d}=e,f=Se(r),u=Se(o),b=t==="run_state_transition"||t==="run_completed";if((t==="run_started"||t==="run_resumed"||b)&&f&&(!u||u!==f)&&!(b&&!!n&&!!a&&n===a&&c==="running"))return!0;if(!n&&t!=="run_started"&&t!=="run_resumed")return!1;if(n&&d?.has(n))return!0;let g=s||i;return t==="run_started"||t==="run_resumed"?!n||g&&g===n?!1:a?a!==n&&(!g||g!==n):!0:n?t==="run_completed"||t==="run_state_transition"?c!=="running"?!0:a?a!==n&&(!g||g!==n):!(g&&g===n):a?a!==n:!0:!1}function u_(e){return Math.max(1,Number(e)||1)}function d_(e){if(!e)return"idle";if(e.status!=="running")return"terminal";let t=String(e.boundaryReason||"").trim().toLowerCase();return t.includes("waiting_for_input")||t.includes("awaiting_user")?"awaiting_user":"running"}function Yd(e){return e==="completed"||e==="cancelled"||e==="failed"||e==="ended"}function pb(e,t,n){let o=Number(t.at)||Date.now(),r=String(t.reason||"kernel").trim()||"kernel",a=u_(e.taskEpoch),i=e.task||n.createTask(r,o,t.taskId);if(t.type==="new_task")return{task:n.createTask(r,o,t.taskId),taskEpoch:a+1,lifecycle:"running",rotateBoundary:!0,clearPendingRun:!0,clearWorkerState:!0};if(t.type==="terminal"){let d=t.terminal;return{task:{...i,status:d,boundaryReason:r,endedAt:o},taskEpoch:a,lifecycle:"terminal",rotateBoundary:!1,clearPendingRun:!0,clearWorkerState:!0}}let c={...i,status:"running",boundaryReason:r,endedAt:void 0};return!c.lastUserAt&&!c.lastAssistantAt&&(c.lastAssistantAt=o),{task:c,taskEpoch:a,lifecycle:t.type==="awaiting_user"?"awaiting_user":d_(c),rotateBoundary:!1,clearPendingRun:!1,clearWorkerState:!1}}function f_(e,t){let n=Number(e);return Number.isFinite(n)?n:t}function Ar(e){let t="https://agent.rtrvr.ai",n=String(e||t).trim().replace(/\/+$/,"");if(!n)return t;if(n.endsWith("/extensionRouter/v2/rover"))return n.slice(0,-25);let o=n.match(/\/v\d+\/rover$/);return o?.[0]?n.slice(0,-o[0].length):n.endsWith("/extensionRouter")?n.slice(0,-16):n.endsWith("/v2/rover")?n.slice(0,-9):n}function hs(e){let t=new Set,n=[];for(let o of e){let r=gs(o);!r||t.has(r)||(t.add(r),n.push(r))}return n}function m_(e){let t=Ar(e),n=`${t}/v2/rover`,o=gs(String(e||"").trim()),r=o.replace("/extensionRouter/v2/rover","/v2/rover");return o.endsWith("/v2/rover")||o.endsWith("/extensionRouter/v2/rover")?hs([r,n]):hs(!o&&t==="https://agent.rtrvr.ai"?[n,"https://extensionrouter.rtrvr.ai/v2/rover"]:[n])}function hb(e){return m_(e)}function p_(e){return hb(e)[0]||`${Ar(e)}/v2/rover`}function pa(e){return hb(e)}function Il(e){return p_(e)}function gs(e){return String(e||"").replace(/\/+$/,"")}function _l(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`}function ma(e){return!!e&&typeof e=="object"&&typeof e.sessionId=="string"&&Number.isFinite(Number(e.epoch))}function El(e){let t=Number(e);return Number.isFinite(t)?t:void 0}function h_(e){if(!e||typeof e!="object")return;let t=String(e?.error||"").trim().toLowerCase(),n=e?.data&&typeof e.data=="object"?e.data:{},o=n?.conflict&&typeof n.conflict=="object"?n.conflict:{},r=String(o?.type||t||"").trim().toLowerCase(),a=r==="stale_seq"||r==="stale_epoch"||r==="active_run_exists"?r:void 0;if(!a)return;let i=El(n?.currentSeq??o?.currentSeq),s=El(n?.currentEpoch??n?.sessionEpoch??o?.currentEpoch),c=typeof o?.retryable=="boolean"?o.retryable:a==="stale_seq"||a==="stale_epoch";return{type:a,currentSeq:i,currentEpoch:s,retryable:c,decisionHint:typeof n?.decisionHint=="string"?n.decisionHint:void 0,decisionReason:typeof n?.decisionReason=="string"?n.decisionReason:void 0,runId:typeof n?.runId=="string"?n.runId:void 0,sessionId:typeof n?.sessionId=="string"?n.sessionId:void 0,clientEventId:typeof n?.clientEventId=="string"?n.clientEventId:void 0}}function ps(e){return String(e?.error||e?.data?.code||e?.code||"").trim().toUpperCase()}async function ai(e){try{return await e.json()}catch{let t=await e.text().catch(()=>"");return t?{error:t}:void 0}}function Qd(e,t,n){let o=String(t||"").trim(),r=o.startsWith("http://")||o.startsWith("https://")?new URL(o):new URL(`${Ar(e)}/v1/tasks/${encodeURIComponent(o)}`);return n&&!r.searchParams.get("access")&&r.searchParams.set("access",n),r.toString()}var jo=class jo{constructor(t){P(this,"options");P(this,"base");P(this,"baseCandidates");P(this,"baseIndex",0);P(this,"sessionToken");P(this,"sessionTokenExpiresAt",0);P(this,"sessionId");P(this,"epoch",1);P(this,"eventSource",null);P(this,"pollTimer",null);P(this,"reconnectTimer",null);P(this,"sseReconnectAttempts",0);P(this,"started",!1);P(this,"lastSeq",0);P(this,"lastRunId","");P(this,"lastSnapshotDigest","");P(this,"activeRunId");P(this,"visibilityListener",null);P(this,"pollIntervalMs",2e3);P(this,"commandInFlight",!1);P(this,"commandQueue",Promise.resolve());this.options=t,this.baseCandidates=pa(t.apiBase),this.base=this.baseCandidates[0]||Il(t.apiBase),this.sessionId=t.getSessionId()}getSessionToken(){return this.sessionToken}getSessionTokenExpiresAt(){return this.sessionTokenExpiresAt}getEpoch(){return Math.max(1,this.epoch)}getLastSeq(){return Math.max(0,this.lastSeq)}getActiveRunId(){return this.activeRunId}setApiBase(t){this.baseCandidates=pa(t),this.baseIndex=0,this.base=this.baseCandidates[0]||Il(t)}stop(){this.started=!1,this.pauseBackgroundTransport(),this.visibilityListener&&typeof document<"u"&&(document.removeEventListener("visibilitychange",this.visibilityListener),this.visibilityListener=null),this.sseReconnectAttempts=0,this.lastSeq=0,this.lastRunId="",this.lastSnapshotDigest="",this.activeRunId=void 0}async start(){if(this.started=!0,typeof document<"u"&&!this.visibilityListener&&(this.visibilityListener=()=>{this.handleVisibilityChange()},document.addEventListener("visibilitychange",this.visibilityListener)),await this.ensureSession(!1),!this.shouldKeepTransportActive()){this.pauseBackgroundTransport();return}this.startProjectionStream()}reportError(t){this.options.onError?.(t)}withCommandLock(t){let n=async()=>{this.commandInFlight=!0;try{return await t()}finally{this.commandInFlight=!1}},o=this.commandQueue.then(n,n);return this.commandQueue=o.then(()=>{},()=>{}),o}isDocumentHidden(){return typeof document<"u"&&document.visibilityState==="hidden"}hasOwnershipTransportAllowance(){if(typeof this.options.shouldKeepTransportActive=="function")try{return!!this.options.shouldKeepTransportActive()}catch{return!1}return!!this.activeRunId}shouldKeepTransportActive(){return!this.isDocumentHidden()||this.hasOwnershipTransportAllowance()}pauseBackgroundTransport(){this.eventSource&&(this.eventSource.close(),this.eventSource=null),this.pollTimer!=null&&(window.clearTimeout(this.pollTimer),this.pollTimer=null),this.pollIntervalMs=2e3,this.reconnectTimer!=null&&(window.clearTimeout(this.reconnectTimer),this.reconnectTimer=null)}handleVisibilityChange(){if(this.started){if(!this.shouldKeepTransportActive()){this.pauseBackgroundTransport();return}this.ensureSession(!1).catch(t=>this.reportError(t)).finally(()=>{this.startProjectionStream(),this.eventSource||this.startProjectionPolling(),this.fetchProjection().catch(t=>this.reportError(t))})}}getActiveBase(){return this.baseCandidates.length?gs(this.baseCandidates[this.baseIndex]||this.base):gs(this.base)}rotateBaseCandidate(){this.baseCandidates.length<=1||(this.baseIndex=(this.baseIndex+1)%this.baseCandidates.length,this.base=this.baseCandidates[this.baseIndex]||this.base)}async requestJson(t,n){this.baseCandidates.length||(this.baseCandidates=pa(this.base),this.base=this.baseCandidates[0]||this.base,this.baseIndex=0);let o,r=Math.max(1,this.baseCandidates.length);for(let a=0;a<r;a+=1){let i=(this.baseIndex+a)%r,s=gs(this.baseCandidates[i]||this.base);try{let c=await fetch(`${s}${t}`,n),d=await ai(c);if(c.status===404||c.status===405){o=new Error(`Rover endpoint not found at ${s}${t}`);continue}return this.baseIndex=i,this.base=s,{response:c,json:d}}catch(c){o=c}}throw o instanceof Error?o:new Error(`Rover request failed for ${t}`)}applySessionData(t){t.sessionId&&(this.sessionId=t.sessionId),t.sessionToken&&(this.sessionToken=t.sessionToken,this.sessionTokenExpiresAt=f_(t.sessionTokenExpiresAt,Date.now()+8*6e4)),Number.isFinite(Number(t.epoch))&&(this.epoch=Math.max(1,Number(t.epoch))),t.projection&&ma(t.projection)&&this.applyProjection(t.projection),this.options.onSession?.(t)}applyProjection(t){let n=this.epoch,o=this.lastRunId,r=this.lastSeq,a=this.lastSnapshotDigest;this.sessionId=t.sessionId||this.sessionId,this.epoch=Math.max(1,Number(t.epoch||this.epoch));let i=String(t.activeRunId||"");this.activeRunId=i||void 0,i!==this.lastRunId&&(this.lastRunId=i,this.lastSeq=0);let s=Array.isArray(t.events)?t.events:[];if(s.length){let f=Number(s[s.length-1]?.seq||0);Number.isFinite(f)&&f>this.lastSeq&&(this.lastSeq=f)}let c=String(t.snapshotMeta?.digest||"").trim()||(Number.isFinite(Number(t.snapshotMeta?.updatedAt))?`u:${Math.max(0,Number(t.snapshotMeta?.updatedAt||0))}`:Number.isFinite(Number(t.snapshotUpdatedAt))?`u:${Math.max(0,Number(t.snapshotUpdatedAt||0))}`:"");c&&(this.lastSnapshotDigest=c),this.isDocumentHidden()&&!this.shouldKeepTransportActive()&&this.pauseBackgroundTransport(),(this.epoch!==n||i!==o||this.lastSeq!==r||t.snapshot||c&&c!==a)&&this.options.onProjection?.(t)}shouldRefreshSessionToken(){return this.sessionToken?Date.now()+6e4>=this.sessionTokenExpiresAt:!0}async ensureSession(t=!1){if(this.sessionId=this.options.getSessionId()||this.sessionId,!t&&!this.shouldRefreshSessionToken())return null;let n=this.options.getBootstrapToken(),o={siteId:this.options.siteId,sessionId:this.sessionId,requestedSessionId:this.sessionId,host:this.options.getHost(),url:this.options.getPageUrl(),pageUrl:this.options.getPageUrl()},r=!t&&!!this.sessionToken,a={...o,...r?{sessionToken:this.sessionToken}:{},...n?{bootstrapToken:n}:{}};if(!a.sessionToken&&!a.bootstrapToken)return null;let i=async f=>this.requestJson("/session/open",{method:"POST",headers:{"Content-Type":"text/plain"},body:JSON.stringify(f)}),{response:s,json:c}=await i(a);if(s.status===401&&r&&n&&(ps(c)==="SESSION_TOKEN_EXPIRED"||ps(c)==="SESSION_TOKEN_INVALID"||ps(c)==="BOOTSTRAP_REQUIRED")&&(this.sessionToken=void 0,this.sessionTokenExpiresAt=0,{response:s,json:c}=await i({...o,bootstrapToken:n})),!s.ok||!c?.success||!c?.data){let f=ps(c),u=c?.data?.message||c?.error||`session/open failed (${s.status})`,b=new Error(String(u));throw b.code=f||void 0,b}let d=c.data;return this.applySessionData(d),d}syncCursorFromPayload(t){if(!t||typeof t!="object")return;let n=El(t?.currentEpoch??t?.sessionEpoch);n!==void 0&&(this.epoch=Math.max(1,n));let o=El(t?.currentSeq);o!==void 0&&o>=0&&(this.lastSeq=Math.max(this.lastSeq,o))}async postJson(t,n,o){await this.ensureSession(!1);let r={...n,requestNonce:_l(),sessionToken:this.sessionToken,sessionId:n.sessionId||this.sessionId},{response:a,json:i}=await this.requestJson(t,{method:"POST",headers:{"Content-Type":"text/plain"},body:JSON.stringify(r)}),s=Math.max(0,Number(o?.authRetryCount||0));if(a.status===401&&s<1){let c=ps(i);if(c==="SESSION_TOKEN_EXPIRED"||c==="SESSION_TOKEN_INVALID"||c==="BOOTSTRAP_REQUIRED")return this.sessionToken=void 0,this.sessionTokenExpiresAt=0,await this.ensureSession(!0),this.postJson(t,n,{authRetryCount:s+1})}if(a.status===409)return this.syncCursorFromPayload(i?.data),{ok:!1,data:i?.data||null,conflict:h_(i),raw:i};if(!a.ok||!i?.success){let c=i?.error||`request failed (${a.status})`,d=new Error(String(c));throw d.status=a.status,d.code=String(i?.error||i?.data?.code||"").trim()||void 0,d.details=i?.data||i,d}return this.syncCursorFromPayload(i?.data),{ok:!0,data:i?.data||null,raw:i}}async submitRunInput(t){return this.withCommandLock(async()=>{let n=String(t.clientEventId||"").trim()||(typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():void 0);for(let o=0;o<2;o+=1){let r=await this.postJson("/command",{type:"RUN_INPUT",commandId:n,expectedEpoch:this.epoch,expectedSeq:this.lastSeq,payload:{runId:t.runId,message:t.message,continueRun:!!t.continueRun,forceNewRun:!!t.forceNewRun,requestedMode:t.requestedMode,taskBoundaryId:this.options.getTaskBoundaryId?.()}});if(!r.ok){let d=(r.data||null)?.data||null;ma(d?.projection)&&this.applyProjection(d.projection);let f=String(r.conflict?.type||"").trim(),u=r.conflict?.retryable!==!1&&(f==="stale_seq"||f==="stale_epoch");if(o===0&&u)continue;return d}let a=r.data||{},i=a?.data||null,s=String(a?.runId||i?.runId||"").trim();return s&&(this.activeRunId=s,this.lastRunId=s,Number(a?.seq||i?.seq||0)===0&&this.lastSeq>0&&(this.lastSeq=0)),Number.isFinite(Number(a?.epoch))&&(this.epoch=Math.max(1,Number(a?.epoch))),Number.isFinite(Number(a?.seq))&&(this.lastSeq=Math.max(0,Number(a?.seq||0))),i}return null})}async controlRun(t){return this.withCommandLock(async()=>{let n=String(t.clientEventId||"").trim()||(typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():void 0);for(let o=0;o<2;o++){let r=await this.postJson("/command",{type:"RUN_CONTROL",commandId:n,expectedEpoch:this.epoch,expectedSeq:this.lastSeq,payload:{action:t.action,runId:t.runId,reason:t.reason}});if(!r.ok){if(o===0&&r.conflict?.retryable!==!1)continue;return r.data?.data||null}let a=r.data||{},i=a?.data||null;return Number.isFinite(Number(a?.seq))&&(this.lastSeq=Math.max(0,Number(a.seq||0))),ma(i?.projection)&&this.applyProjection(i.projection),i}return null})}async fetchExternalContext(t){return this.withCommandLock(async()=>{let n=String(t.runId||this.activeRunId||this.lastRunId||"").trim()||void 0,o=typeof t.tabId=="string"&&t.tabId.trim()?t.tabId.trim():Number.isFinite(Number(t.tabId))&&Number(t.tabId)>0?String(Math.trunc(Number(t.tabId))):void 0,r=t.intent==="act"||t.intent==="open_only"||t.intent==="read_context"?t.intent:"read_context",a=t.source==="google_search"?"google_search":"direct_url";for(let i=0;i<2;i+=1){let s=await this.postJson("/context/external",{runId:n,logicalTabId:o,url:t.url,intent:r,source:a,message:t.message,adversarialScore:Number.isFinite(Number(t.adversarialScore))?Number(t.adversarialScore):void 0,expectedEpoch:this.epoch,expectedSeq:this.lastSeq});if(!s.ok){let c=String(s.conflict?.type||"").trim(),d=s.conflict?.retryable!==!1&&(c==="stale_seq"||c==="stale_epoch");if(i===0&&d)continue;return s.data||null}return s.data||null}return null})}async sendTabEvent(t){return this.withCommandLock(async()=>{let n=_l(),o={runId:t.runId,currentUrl:t.currentUrl,targetUrl:t.targetUrl,logicalTabId:t.logicalTabId,message:t.message,adversarialScore:t.adversarialScore,currentHost:t.currentHost,targetHost:t.targetHost,isCrossHost:t.isCrossHost,navigationClass:t.navigationClass,clientEventId:n},r=await this.postJson("/command",{type:"TAB_EVENT",commandId:n,expectedEpoch:this.epoch,expectedSeq:this.lastSeq,payload:o});if(r.ok){let c=r.data||{},d=c?.data||null;return Number.isFinite(Number(c?.epoch))&&(this.epoch=Math.max(1,Number(c?.epoch||this.epoch))),Number.isFinite(Number(c?.seq))&&(this.lastSeq=Math.max(0,Number(c?.seq||0))),d?{...d,clientEventId:n,retryAttempted:!1,retryExhausted:!1}:null}let a=r.conflict;if(a?.retryable&&(a.type==="stale_seq"||a.type==="stale_epoch")){let c=await this.postJson("/command",{type:"TAB_EVENT",commandId:n,expectedEpoch:this.epoch,expectedSeq:this.lastSeq,payload:o});if(c.ok){let u=c.data||{},b=u?.data||null;return Number.isFinite(Number(u?.epoch))&&(this.epoch=Math.max(1,Number(u?.epoch||this.epoch))),Number.isFinite(Number(u?.seq))&&(this.lastSeq=Math.max(0,Number(u?.seq||0))),b?{...b,clientEventId:n,retryAttempted:!0,retryExhausted:!1}:{clientEventId:n,retryAttempted:!0,retryExhausted:!1}}let d=c.conflict||a,f=(c.data||r.data||null)?.data||null;return this.fetchProjection().catch(()=>{}),{...f||{},clientEventId:n,retryAttempted:!0,retryExhausted:!0,decisionReason:f?.decisionReason||d?.decisionReason||(d?.type==="stale_epoch"?"stale_epoch_retryable":"stale_seq_retryable"),conflict:d?{type:d.type,currentSeq:d.currentSeq,currentEpoch:d.currentEpoch,retryable:!!d.retryable}:void 0}}let s=(r.data||null)?.data||null;return a?.type&&this.fetchProjection().catch(()=>{}),{...s||{},clientEventId:n,retryAttempted:!1,retryExhausted:!!a,conflict:a?{type:a.type,currentSeq:a.currentSeq,currentEpoch:a.currentEpoch,retryable:!!a.retryable}:s?.conflict}})}async fetchProjection(){if(await this.ensureSession(!1),!this.sessionToken||!this.sessionId)return null;let t=new URLSearchParams({sessionId:this.sessionId,seqAfter:String(this.lastSeq),sessionToken:this.sessionToken}),{response:n,json:o}=await this.requestJson(`/state?${t.toString()}`,{method:"GET"}),r=o?.data&&typeof o.data=="object"&&ma(o.data?.projection)?o.data.projection:o?.data;if(!n.ok||!o?.success||!ma(r))return null;let a=r;return this.applyProjection(a),a}async saveSnapshot(t){return this.withCommandLock(async()=>!!(await this.postJson("/snapshot",{checkpoint:t.checkpoint,updatedAt:t.updatedAt,version:t.version,seq:t.seq,chatSummary:t.chatSummary,compactedPrevSteps:t.compactedPrevSteps,ttlHours:t.ttlHours,visitorId:t.visitorId}))?.ok)}async sendBatch(t){if(!t.length)return[];let o=t.slice(0,5);return(await this.postJson("/batch",{requests:o.map(a=>({path:a.path,body:a.body}))}))?.data?.results||[]}async attachLaunch(t){let n=String(t.requestId||"").trim(),o=String(t.attachToken||"").trim();if(!n||!o)return null;let r=await this.postJson(`/launches/${encodeURIComponent(n)}/attach`,{attachToken:o,roverAttach:o,host:this.options.getHost?.()});return r.ok&&r.data||null}async claimBrowserTaskReceipt(t){let n=String(t.receipt||"").trim();if(!n)return null;await this.ensureSession(!1);let o={receipt:n,requestNonce:_l(),sessionToken:this.sessionToken,sessionId:this.sessionId,host:this.options.getHost?.()};this.baseCandidates.length||(this.baseCandidates=pa(this.base),this.base=this.baseCandidates[0]||this.base,this.baseIndex=0);let r=hs(this.baseCandidates.map(i=>Ar(i))),a;for(let i of r)try{let s=await fetch(`${i}/v1/tasks/claim-browser`,{method:"POST",headers:{"Content-Type":"text/plain"},body:JSON.stringify(o)}),c=await ai(s);if(!s.ok||!c?.success){a=new Error(String(c?.error||`request failed (${s.status})`)),a.status=s.status,a.details=c?.data||c;continue}return c.data||null}catch(s){a=s}throw a instanceof Error?a:new Error("Browser receipt claim failed.")}async createSessionRootTask(t){let n=String(t.url||"").trim(),o=String(t.prompt||"").trim();if(!n||!o)return null;await this.ensureSession(!1);let r={url:n,prompt:o,runId:String(t.runId||"").trim()||void 0,requestNonce:_l(),sessionToken:this.sessionToken,sessionId:this.sessionId,host:this.options.getHost?.()};this.baseCandidates.length||(this.baseCandidates=pa(this.base),this.base=this.baseCandidates[0]||this.base,this.baseIndex=0);let a=hs(this.baseCandidates.map(s=>Ar(s))),i;for(let s of a)try{let c=await fetch(`${s}/v1/tasks/session-root`,{method:"POST",headers:{"Content-Type":"text/plain",Accept:"application/json"},body:JSON.stringify(r)}),d=await ai(c);if(!c.ok||!d?.success){i=new Error(String(d?.error||`request failed (${c.status})`)),i.status=c.status,i.details=d?.data||d;continue}return d.data||null}catch(c){i=c}throw i instanceof Error?i:new Error("Session root task creation failed.")}async createTaskHandoff(t){let n=String(t.parentTaskId||"").trim(),o=String(t.taskAccessToken||"").trim(),r=String(t.url||"").trim();if(!n||!o||!r)return null;await this.ensureSession(!1);let a=Qd(Ar(this.base),n,o).replace(/\/+$/,"").concat("/handoffs"),i=new Headers({"Content-Type":"application/json",Accept:"application/json"}),s=[];t.execution&&s.push(`execution=${t.execution}`),s.length&&i.set("Prefer",s.join(", "));let c={url:r,...String(t.prompt||"").trim()?{prompt:String(t.prompt).trim()}:{},...String(t.instruction||"").trim()?{instruction:String(t.instruction).trim()}:{},...String(t.shortcutId||"").trim()?{shortcutId:String(t.shortcutId).trim()}:{},...String(t.contextSummary||"").trim()?{contextSummary:String(t.contextSummary).trim()}:{},...String(t.expectedOutput||"").trim()?{expectedOutput:String(t.expectedOutput).trim()}:{},...String(t.originalGoal||"").trim()?{originalGoal:String(t.originalGoal).trim()}:{},...t.lastObservation&&typeof t.lastObservation=="object"?{lastObservation:t.lastObservation}:{},sessionToken:this.sessionToken,sessionId:this.sessionId,host:this.options.getHost?.()},d=await fetch(a,{method:"POST",headers:i,body:JSON.stringify(c)}),f=await ai(d);if(!d.ok||!f?.success){let u=String(f?.error||`request failed (${d.status})`),b=new Error(u);throw b.status=d.status,b.details=f?.data||f,b}return f.data||null}async getPublicTask(t,n={}){let o=new Headers({Accept:"application/json"});typeof n.waitSeconds=="number"&&n.waitSeconds>0&&o.set("Prefer",`wait=${Math.trunc(n.waitSeconds)}`);let r=Qd(Ar(this.base),t,n.accessToken),a=await fetch(r,{method:"GET",headers:o}),i=await ai(a);if(!a.ok||!i?.success){let s=String(i?.error||`request failed (${a.status})`),c=new Error(s);throw c.status=a.status,c.details=i?.data||i,c}return i.data||null}async continuePublicTask(t,n,o={}){let r=String(n||"").trim();if(!r)return null;let a=new Headers({Accept:"application/json","Content-Type":"application/json"}),i=Qd(Ar(this.base),t,o.accessToken),s=await fetch(i,{method:"POST",headers:a,body:JSON.stringify({input:r})}),c=await ai(s);if(!s.ok||!c?.success){let d=String(c?.error||`request failed (${s.status})`),f=new Error(d);throw f.status=s.status,f.details=c?.data||c,f}return c.data||null}async ingestLaunchEvents(t){let n=String(t.requestId||"").trim(),o=Array.isArray(t.events)?t.events.filter(Boolean):[];if(!n||!o.length)return!1;let r=await this.postJson("/events/ingest",{launchRequestId:n,runId:String(t.runId||"").trim()||void 0,events:o.map(a=>({type:a.type,ts:a.ts,data:a.data}))});return r.ok&&r.data?.accepted!==!1}scheduleProjectionPoll(t){this.pollTimer!=null&&(window.clearTimeout(this.pollTimer),this.pollTimer=null),this.pollTimer=window.setTimeout(async()=>{if(this.pollTimer=null,!this.started||!this.shouldKeepTransportActive())return;let n=this.epoch,o=this.lastSeq,r=this.lastSnapshotDigest;try{await this.fetchProjection()}catch(i){this.reportError(i)}this.epoch!==n||this.lastSeq!==o||this.lastSnapshotDigest!==r?this.pollIntervalMs=2e3:this.pollIntervalMs=Math.min(15e3,Math.round(this.pollIntervalMs*1.4)),this.started&&this.shouldKeepTransportActive()&&!this.eventSource&&this.scheduleProjectionPoll(this.pollIntervalMs)},t)}startProjectionPolling(){this.pollTimer==null&&(this.pollIntervalMs=2e3,this.scheduleProjectionPoll(this.pollIntervalMs))}scheduleSseReconnect(){if(!this.started||!this.shouldKeepTransportActive()||this.reconnectTimer!=null)return;if(this.sseReconnectAttempts>=jo.SSE_MAX_RECONNECT_ATTEMPTS){this.sseReconnectAttempts=0;return}let t=jo.SSE_BASE_DELAY_MS,n=Math.min(t*Math.pow(2,this.sseReconnectAttempts),jo.SSE_MAX_DELAY_MS),o=Math.random()*jo.SSE_MAX_JITTER_MS,r=Math.round(n+o);this.sseReconnectAttempts++,this.reconnectTimer=window.setTimeout(()=>{this.reconnectTimer=null,this.startProjectionStream()},r)}startProjectionStream(){if(!this.started)return;if(!this.shouldKeepTransportActive()){this.pauseBackgroundTransport();return}if(!this.sessionToken||!this.sessionId){this.startProjectionPolling();return}if(this.eventSource)return;if(typeof EventSource>"u"){this.startProjectionPolling();return}let t=new URLSearchParams({sessionId:this.sessionId,cursor:String(this.lastSeq),sessionToken:this.sessionToken}),n=`${this.getActiveBase()}/stream?${t.toString()}`,o=new EventSource(n,{withCredentials:!1});this.eventSource=o;let r=a=>{try{let i=JSON.parse(a||"{}"),s=i&&typeof i=="object"&&ma(i.projection)?i.projection:i;ma(s)&&this.applyProjection(s)}catch(i){this.reportError(i)}};o.addEventListener("projection",a=>{r(a.data||"{}")}),o.addEventListener("projection_delta",a=>{r(a.data||"{}")}),o.onerror=()=>{this.eventSource&&(this.eventSource.close(),this.eventSource=null),this.ensureSession(!0).catch(a=>this.reportError(a)).finally(()=>{if(this.rotateBaseCandidate(),!this.shouldKeepTransportActive()){this.pauseBackgroundTransport();return}this.pollTimer==null&&this.startProjectionPolling(),this.scheduleSseReconnect()})},o.onopen=()=>{if(!this.shouldKeepTransportActive()){this.pauseBackgroundTransport();return}this.sseReconnectAttempts=0,this.pollTimer!=null&&(window.clearTimeout(this.pollTimer),this.pollTimer=null,this.pollIntervalMs=2e3)}}};P(jo,"SSE_BASE_DELAY_MS",2e3),P(jo,"SSE_MAX_DELAY_MS",6e4),P(jo,"SSE_MAX_JITTER_MS",3e3),P(jo,"SSE_MAX_RECONNECT_ATTEMPTS",10);var Sl=jo;function bs(e){return Array.isArray(e)?e.length:0}function Jd(e){return String(e||"").trim()||void 0}function gb(e){return String(e||"").trim()||void 0}function bb(e){if(!e)return 0;let t=0;String(e.pendingRun?.id||"").trim()&&(t+=4,e.pendingRun?.resumeRequired&&(t+=1),Jd(e.pendingRun?.taskBoundaryId)&&(t+=1)),e.activeTask?.status==="running"&&(t+=2);let o=e.workerState;return o&&(t+=1,String(o.rootUserInput||"").trim()&&(t+=1),t+=Math.min(3,bs(o.history)),t+=Math.min(3,bs(o.plannerHistory)),t+=Math.min(4,bs(o.agentPrevSteps)),bs(o.pendingAskUser?.questions)>0&&(t+=3)),bs(e.taskTabScope?.touchedTabIds)>0&&(t+=1),t}function Zd(e){let t=gb(e.localState.pendingRun?.id),n=gb(e.incomingState.pendingRun?.id),o=Jd(e.localState.pendingRun?.taskBoundaryId||e.localState.workerState?.taskBoundaryId),r=Jd(e.incomingState.pendingRun?.taskBoundaryId||e.incomingState.workerState?.taskBoundaryId);return{localRunId:t,incomingRunId:n,exactRunMatch:!!(t&&n&&t===n),localBoundaryId:o,incomingBoundaryId:r,exactBoundaryMatch:!!(o&&r&&o===r),localScore:bb(e.localState),incomingScore:bb(e.incomingState)}}function ef(e){let t=Math.max(0,Number(e.clockSkewMs)||200);if(e.incomingUpdatedAt>e.localUpdatedAt+t)return!0;if(!e.crossDomainResumeActive)return!1;let n=Zd({localState:e.localState,incomingState:e.incomingState});if(n.incomingScore<=n.localScore)return!1;if(n.localBoundaryId&&n.incomingBoundaryId&&n.localBoundaryId!==n.incomingBoundaryId){let r=Math.max(1,Number(e.localState.taskEpoch)||1);if(Math.max(1,Number(e.incomingState.taskEpoch)||1)<r)return!1}return!!(n.exactRunMatch||n.exactBoundaryMatch||!!!(n.localRunId||n.localBoundaryId))}function qo(e){return String(e||"").trim()||void 0}function tf(e){return e==="preserve_if_running"}function kb(e,t){let n=qo(t.boundaryId),o=qo(t.runId),r=qo(t.taskId),a=Array.from(e);if(n){let i=a.find(s=>qo(s.boundaryId)===n);if(i)return i}if(o){let i=a.find(s=>qo(s.pendingRun?.id)===o);if(i)return i}if(r){let i=a.find(s=>qo(s.taskId)===r);if(i)return i}}function yb(e){let t=qo(e.localPendingRunId);if(t)return t;let n=qo(e.sharedActiveRunId);if(!n)return;let o=qo(e.sharedTaskId),r=qo(e.activeTaskId);if(!(o&&r&&o!==r))return n}var Rl=class{constructor(t){P(this,"maxWorkers");P(this,"maxQueue");P(this,"activeWorkers",new Map);P(this,"queue",[]);P(this,"onWorkerFreed");this.maxWorkers=Math.min(Math.max(1,Number(t?.maxWorkers)||1),2),this.maxQueue=Math.max(1,Number(t?.maxQueue)||3),this.onWorkerFreed=t?.onWorkerFreed}acquire(t,n){if(this.activeWorkers.has(t))return this.activeWorkers.get(t);if(this.removeFromQueue(t),this.activeWorkers.size<this.maxWorkers){let o=new Worker(n.workerUrl,n.workerOptions);return this.activeWorkers.set(t,o),o}return this.queue.length>=this.maxQueue&&this.queue.shift(),this.queue.push(t),null}release(t){let n=this.activeWorkers.get(t);if(n){try{n.terminate()}catch{}this.activeWorkers.delete(t)}this.removeFromQueue(t),this.dequeueNext()}getWorker(t){return this.activeWorkers.get(t)}getActiveCount(){return this.activeWorkers.size}isQueued(t){return this.queue.includes(t)}getQueuedTasks(){return[...this.queue]}getActiveTasks(){return Array.from(this.activeWorkers.keys())}shutdown(){for(let[,t]of this.activeWorkers)try{t.terminate()}catch{}this.activeWorkers.clear(),this.queue=[]}removeFromQueue(t){let n=this.queue.indexOf(t);n>=0&&this.queue.splice(n,1)}dequeueNext(){if(this.queue.length===0||this.activeWorkers.size>=this.maxWorkers)return;let t=this.queue.shift();t&&this.onWorkerFreed&&this.onWorkerFreed(t)}};var g_=10,b_=8,k_=12,vb=40,wb=60,y_=5*6e4,v_=5,ii=class e{constructor(t){P(this,"tasks",new Map);P(this,"activeTaskId");P(this,"taskOrder",[]);P(this,"workerPool");P(this,"maxArchivedTasks");P(this,"tabToTask",new Map);this.workerPool=new Rl({maxWorkers:t?.maxConcurrentWorkers,maxQueue:t?.maxQueuedTasks,onWorkerFreed:n=>this.onWorkerSlotFreed(n)}),this.maxArchivedTasks=Math.max(1,Number(t?.maxArchivedTasks)||g_)}createTask(t,n){let o=Kd(n);return this.tasks.set(o.taskId,o),this.taskOrder.push(o.taskId),o}dispatch(t,n){let o=this.tasks.get(t);if(!o)return{accepted:!1,task:Kd({taskId:t}),sideEffects:[],rejectedReason:`Task ${t} not found`};let{record:r,result:a}=cb(o,n);return a.rejected||this.tasks.set(t,r),{accepted:!a.rejected,task:a.rejected?o:r,sideEffects:a.sideEffects,rejectedReason:a.rejectedReason}}switchActiveTask(t){let n=this.tasks.get(t);if(!n)return;let o=this.getActiveTask();return this.activeTaskId=t,n}getActiveTask(){if(this.activeTaskId)return this.tasks.get(this.activeTaskId)}getActiveTaskId(){return this.activeTaskId}listTasks(){return this.taskOrder.map(t=>this.tasks.get(t)).filter(t=>!!t)}getTask(t){return this.tasks.get(t)}hasTask(t){return this.tasks.has(t)}getTaskCount(){return this.tasks.size}updateTask(t,n){let o=this.tasks.get(t);if(!o)return;let r=n(o);return this.tasks.set(t,r),r}updateScrollPosition(t,n){let o=this.tasks.get(t);o&&this.tasks.set(t,{...o,scrollPosition:n})}assignWorker(t,n){let o=this.workerPool.acquire(t,n);if(o){let r=this.tasks.get(t);r&&this.tasks.set(t,{...r,workerId:t})}return o}releaseWorker(t){this.workerPool.release(t);let n=this.tasks.get(t);n&&this.tasks.set(t,{...n,workerId:void 0})}getWorker(t){return this.workerPool.getWorker(t)}getQueuedTasks(){return this.workerPool.getQueuedTasks()}isTaskQueued(t){return this.workerPool.isQueued(t)}onWorkerSlotFreed(t){}mapTabToTask(t,n){this.tabToTask.set(t,n);let o=this.tasks.get(n);o&&!o.tabIds.includes(t)&&this.tasks.set(n,{...o,tabIds:[...o.tabIds,t]})}getTaskForTab(t){let n=this.tabToTask.get(t);if(n)return this.tasks.get(n)}getTaskByBoundaryId(t){for(let n of this.tasks.values())if(n.boundaryId===t)return n}archiveTask(t){let n=this.tasks.get(t);if(!n)return;let o={...n,uiMessages:n.uiMessages.slice(-b_),timeline:n.timeline.slice(-k_),transientStatus:void 0,workerState:void 0,pendingRun:void 0};this.tasks.set(t,o),this.workerPool.release(t)}pruneArchivedTasks(){let t=[];for(let n of this.taskOrder){let o=this.tasks.get(n);o&&fs(o.state)&&t.push(n)}for(;t.length>this.maxArchivedTasks;){let n=t.shift();this.tasks.delete(n),this.taskOrder=this.taskOrder.filter(o=>o!==n);for(let[o,r]of this.tabToTask)r===n&&this.tabToTask.delete(o)}}deleteTask(t){if(!this.tasks.has(t))return!1;this.workerPool.release(t),this.tasks.delete(t),this.taskOrder=this.taskOrder.filter(n=>n!==t);for(let[n,o]of this.tabToTask)o===t&&this.tabToTask.delete(n);return this.activeTaskId===t&&(this.activeTaskId=this.taskOrder.length>0?this.taskOrder[this.taskOrder.length-1]:void 0),!0}toPersistedState(){let t={};for(let[n,o]of this.tasks)t[n]=o;return{tasks:t,activeTaskId:this.activeTaskId,taskOrder:[...this.taskOrder]}}static fromPersistedState(t,n){let o=new e(n);if(t.tasks&&typeof t.tasks=="object"){for(let[r,a]of Object.entries(t.tasks))if(a&&typeof a=="object"&&a.taskId&&(o.tasks.set(r,a),Array.isArray(a.tabIds)))for(let i of a.tabIds)o.tabToTask.set(i,r)}return o.taskOrder=Array.isArray(t.taskOrder)?t.taskOrder.filter(r=>o.tasks.has(r)):Array.from(o.tasks.keys()),o.activeTaskId=t.activeTaskId&&o.tasks.has(t.activeTaskId)?t.activeTaskId:o.taskOrder.length>0?o.taskOrder[o.taskOrder.length-1]:void 0,o}static fromV1State(t,n){let o=new e(n);if(t.activeTask){let r=ms(t.activeTask.status,t.activeTask.boundaryReason),a={taskId:t.activeTask.taskId,state:r,boundaryId:t.workerState?.taskBoundaryId||t.pendingRun?.taskBoundaryId||`bnd_migrated_${Date.now().toString(36)}`,startedAt:t.activeTask.startedAt,endedAt:t.activeTask.endedAt,lastUserAt:t.activeTask.lastUserAt,lastAssistantAt:t.activeTask.lastAssistantAt,uiMessages:Array.isArray(t.uiMessages)?[...t.uiMessages]:[],timeline:Array.isArray(t.timeline)?[...t.timeline]:[],workerState:t.workerState?{...t.workerState}:void 0,pendingRun:t.pendingRun?{...t.pendingRun}:void 0,tabScope:t.taskTabScope?{...t.taskTabScope}:void 0,rootUserInput:t.workerState?.rootUserInput,seedChatLog:t.workerState?.seedChatLog?[...t.workerState.seedChatLog]:[],transientStatus:t.transientStatus?{...t.transientStatus}:void 0,tabIds:t.taskTabScope?.touchedTabIds?[...t.taskTabScope.touchedTabIds]:[]};o.tasks.set(a.taskId,a),o.taskOrder.push(a.taskId),o.activeTaskId=a.taskId;for(let i of a.tabIds)o.tabToTask.set(i,a.taskId)}return o}enforceMemoryCaps(){for(let[,t]of this.tasks)fs(t.state)||(t.uiMessages.length>vb&&(t.uiMessages=t.uiMessages.slice(-vb)),t.timeline.length>wb&&(t.timeline=t.timeline.slice(-wb)))}terminateInactiveWorkers(){let t=Date.now(),n=[];for(let[o,r]of this.tasks){if(r.state!=="paused")continue;t-(r.pausedAt||t)>y_&&this.workerPool.getWorker(o)&&(this.workerPool.release(o),n.push(o))}return n}canCreateNewTask(t){if(t>v_)return{allowed:!1,reason:`Too many Rover tabs open (${t}). Close some tabs to create new tasks.`};let n=this.workerPool.getActiveCount(),o=this.workerPool.getQueuedTasks().length;return n>=2&&o>=3?{allowed:!1,reason:"Maximum parallel tasks reached. Complete or cancel a task first."}:{allowed:!0}}shutdown(){this.workerPool.shutdown(),this.tasks.clear(),this.taskOrder=[],this.tabToTask.clear(),this.activeTaskId=void 0}};var w_=[/\/login/i,/\/signin/i,/\/auth/i,/\/oauth/i,/\/password/i,/\/reset/i,/\/verify/i,/\/confirm/i,/\/account/i,/\/security/i,/\/2fa/i,/\/mfa/i],x_=[/data:/i,/javascript:/i,/vbscript:/i,/blob:/i],T_=[/token/i,/secret/i,/password/i,/apikey/i,/api_key/i,/access_token/i,/refresh_token/i,/session/i,/cookie/i,/credential/i],__=/^(\d{1,3}\.){3}\d{1,3}$/;function nf(e,t){let n=0,o=[],r;try{r=new URL(e)}catch{return{score:1,blocked:!1,reasons:["invalid_url"]}}for(let f of x_)if(f.test(e)){n+=3,o.push("exfiltration_scheme");break}__.test(r.hostname)&&(n+=2,o.push("ip_address_host")),r.hostname.split(".").length>4&&(n+=1,o.push("excessive_subdomains"));let i=w_.filter(f=>f.test(r.pathname)).length;i>=2?(n+=2,o.push("multiple_credential_paths")):i===1&&(n+=1,o.push("credential_path"));let c=Array.from(r.searchParams.keys()).filter(f=>T_.some(u=>u.test(f))).length;return c>0&&(n+=Math.min(2,c),o.push("sensitive_query_params")),e.length>2e3&&(n+=1,o.push("excessive_url_length")),(e.match(/%[0-9A-Fa-f]{2}/g)||[]).length>20&&(n+=1,o.push("excessive_encoding")),r.port&&r.port!=="80"&&r.port!=="443"&&(n+=1,o.push("non_standard_port")),{score:n,blocked:n>=3,reasons:o}}function xb(e,t){return nf(e,t).blocked}var ci,Al=null,ks=!1,co=32,si=4,I_="#6b6bff";function E_(){return document.querySelector('link[rel="icon"], link[rel="shortcut icon"]')}function Tb(){let e=document.createElement("link");return e.rel="icon",e.type="image/png",document.head.appendChild(e),e}function _b(e=I_){if(ks)return!0;try{let t=E_();t&&(ci=t.href,Al=t);let n=document.createElement("canvas");n.width=co,n.height=co;let o=n.getContext("2d");if(!o)return!1;let r=new Image;return r.crossOrigin="anonymous",r.onload=()=>{o.drawImage(r,0,0,co,co),o.beginPath(),o.arc(co-si-1,co-si-1,si,0,Math.PI*2),o.fillStyle=e,o.fill(),o.strokeStyle="#1a1a2e",o.lineWidth=1,o.stroke();let a=n.toDataURL("image/png"),i=t||Tb();i.href=a,ks=!0},r.onerror=()=>{o.fillStyle="#1a1a2e",o.fillRect(0,0,co,co),o.fillStyle="#fff",o.font="bold 20px sans-serif",o.textAlign="center",o.textBaseline="middle",o.fillText("R",co/2,co/2),o.beginPath(),o.arc(co-si-1,co-si-1,si,0,Math.PI*2),o.fillStyle=e,o.fill();let a=n.toDataURL("image/png"),i=t||Tb();i.href=a,ks=!0},ci?r.src=ci:r.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEAAAAALAAAAAABAAEAAAIBAAA=",!0}catch{return!1}}function Ib(){if(ks){ks=!1;try{Al&&ci&&(Al.href=ci),ci=void 0,Al=null}catch{}}}function Eb(e){if(e.crossRegistrableDomain&&!e.serverAvailable)return{decision:e.fallbackDecision,decisionReason:"preflight_unavailable_fallback",failSafeBlocked:!1};let t=e.serverDecision==="stale_run"?e.fallbackDecision:e.serverDecision||e.fallbackDecision;return{decision:t,decisionReason:t,failSafeBlocked:!1}}function Sb(e){let t=String(e.pendingRunText||"").trim();if(t)return t;let n=String(e.activeRunText||"").trim();if(n)return n;let o=String(e.rootWorkerInput||"").trim();if(o)return o;let r=String(e.lastUserInputText||"").trim();return r||String(e.fallback||"navigation request").trim()||"navigation request"}function ys(e,t="tab_not_accessible"){let n=Number(e?.logicalTabId)||void 0,o=e?.url||"",r=e?.title||(e?.external?"External Tab (Inaccessible)":"Detached Runtime Tab (Unavailable)"),a=String(t||"").trim(),i=a?` Reason: ${a}.`:"",s=e?.external?`This external tab is tracked in virtual mode only. Live DOM control and accessibility-tree access are unavailable here.${i}`:`This tab is a detached runtime placeholder and is not attached to an active Rover runtime. Switch to an attached tab or reopen the page.${i}`;return{url:o,title:r,contentType:"text/html",content:s,metadata:{inaccessible:!0,external:!!e?.external,accessMode:e?.external?"external_placeholder":"detached_runtime_placeholder",roverAvailability:e?.roverAvailability||"unknown",reason:t,logicalTabId:n}}}function vs(e,t,n="tab_not_accessible"){let o=Number(t?.logicalTabId)||0,r=t?.url||"",a=t?.external?`Tab ${o} is external to the active runtime and cannot be controlled directly.`:`Tab ${o} is not attached to an active Rover runtime.`,i=t?.external?"DOMAIN_SCOPE_BLOCKED":"TAB_NOT_ACCESSIBLE";return{success:!1,error:a,allowFallback:!0,output:{success:!1,error:{code:i,message:a,missing:[],next_action:t?.external?"Use open_new_tab for external context or continue on an in-scope tab.":"Switch to an active tab and retry.",retryable:!1},blocked_url:r||void 0,logical_tab_id:o||void 0,external:!!t?.external,policy_action:t?.external?e.externalNavigationPolicy||"open_new_tab_notice":void 0,reason:n},errorDetails:{code:i,message:a,retryable:!1,details:{logicalTabId:o,blockedUrl:r,external:!!t?.external,reason:n}}}}function S_(e){if(e.startNewTask||!e.hasAskUserAnswers||e.taskStatus!=="running")return!1;let t=Se(e.pendingAskUserBoundaryId),n=Se(e.currentTaskBoundaryId);return t&&n&&t!==n?!1:(Math.max(0,Number(e.pendingAskUserQuestionCount)||0)<=0,!0)}function Rb(e){return!S_(e)}var R_=new Set(["a","an","and","are","as","at","be","by","for","from","how","i","in","is","it","of","on","or","that","the","this","to","was","what","when","where","who","why","with","you","your"]);function of(e){return String(e||"").replace(/\s+/g," ").trim().slice(0,2e3)}function A_(e){if(!Array.isArray(e)||e.length===0)return[];let t=[];for(let n of e){if(!n||n.role!=="user"&&n.role!=="assistant")continue;let o=of(n.text);if(!o)continue;if(n.role==="user"){t.push({user:o,ts:Number(n.ts)||0});continue}if(!t.length)continue;let r=t[t.length-1];r.assistant||(r.assistant=o,r.ts=Math.max(r.ts,Number(n.ts)||0))}return t}function Ab(e){let t=String(e||"").toLowerCase().split(/[^a-z0-9]+/g).map(n=>n.trim()).filter(n=>n.length>=2&&!R_.has(n));return new Set(t)}function C_(e,t){let n=Ab(e),o=Ab(t);if(!n.size||!o.size)return 0;let r=0;for(let i of n)o.has(i)&&(r+=1);let a=n.size+o.size-r;return a<=0?0:r/a}function Cb(e){if(e.mode!=="heuristic_same_window")return{reason:"mode_disabled",overlap:0};let t=e.previousTaskStatus;if(t!=="completed"&&t!=="ended"&&t!=="cancelled")return{reason:"status_ineligible",overlap:0};let n=A_(e.previousTaskMessages),o=of(e.previousTaskUserInput),r=of(e.previousTaskAssistantOutput),a=n.length?n:o&&r?[{user:o,assistant:r,ts:Number(e.previousTaskCompletedAt)||0}]:[];if(!a.some(p=>p.user))return{reason:"missing_previous_intent",overlap:0};if(!a.some(p=>p.assistant))return{reason:"missing_previous_output",overlap:0};let i=Math.max(0,Number(e.previousTaskCompletedAt)||0),s=Math.max(i,Number(e.now)||Date.now()),c=Math.max(1e3,Number(e.ttlMs)||0);if(!i||s-i>c)return{reason:"ttl_expired",overlap:0};let d=Math.max(0,Math.min(1,Number(e.minLexicalOverlap)||0)),f=a.map((p,g)=>{let y=C_(p.user,e.currentPrompt),I=a.length>1?g/(a.length-1)*.05:.05;return{...p,overlap:y,score:y+I,index:g}}).filter(p=>!!p.assistant);if(!f.length)return{reason:"missing_previous_output",overlap:0};let u=f.filter(p=>p.overlap>=d).sort((p,g)=>g.score!==p.score?g.score-p.score:g.index-p.index).slice(0,2).sort((p,g)=>p.index-g.index),b=f.reduce((p,g)=>Math.max(p,g.overlap),0);return u.length?{reason:"attached",overlap:b,chatLog:u.flatMap(p=>[{role:"user",message:p.user},{role:"model",message:p.assistant||""}])}:{reason:"low_lexical_overlap",overlap:b}}var Of=2,iu="rover:runtime:",M_="rover:runtime-id:",Gb="rover:visitor-id:",ql=Tt.uiMessages,$l=Tt.timelineEvents,Pf=Tt.uiMessages,N_=4,Bf=Tt.plannerHistory,Uf=Tt.prevSteps,L_=8e3,D_=12,O_=15*6e4,P_=2,B_=12e4,U_=.18,H_=30,F_=3600*24*365,Kb=1,z_=3e3,j_=4500,q_=12e3,$_=30,Wl=240,Mb=5*6e4,Vl=100,Gl=12,W_=80,V_=200,G_=700,K_=8,X_=240,Y_=48,Q_=2600,J_=800,Z_=5e3,eI="rover:handoff-bootstrap:",Xb=3e4,tI=12e4,nI=2500,oI=2*6e4,rI=45e3,aI=2e4,Us=400,iI=15e3,sI=7,cI=80,lI=2500,uI=250,dI=1e4,fI=400,rf=40,af=1e3,mI=350,pI=1e4,Hs=3e4,hI=20,Or=null,at=null,qe=null,Q=null,C=null,_n=null,cr=null,l=null,ur=null,it="",L=null,It=null,Dl=null,Fn=[],Ol=!1,pi=!1,Yb=0,pf=0,hf=0,Kl=0,As=!1,dr=null,gI=1500,bI=5e3,Nb=1e4,Lb=1200,Qb=new Set(["error","navigation_guardrail","checkpoint_error","tab_event_conflict_exhausted","voice_error","voice_permission_denied"]),kI=new Set(["ready","error","auth_required","navigation_guardrail","checkpoint_error","tab_event_conflict_exhausted","voice_error","voice_permission_denied"]),Ft,Io,Fr=!1,wa=!1,Cs=null,Ms=null,No=null,gf="",_i=!1,ui="",bt="controller",fo=!1,Ii=!1,_o=!0,Lo=!1,kn=!1,En=!1,Vo=!1,ha=[],yI=3,Db=1e4,Re="",Et=null,gt=null,In=0,Mr=null,Pl=!1,bf=!1,kf=!1,yf=!1,Br=[],hi=null,gi=null,fi="",Is="",Nr=null,bi=null,Ns="",Es="",Lr=null,ka="",Fs=null,eo=null,ki=null;function Bl(e,t,n,o){e.addEventListener(t,n,o),Br.push({target:e,event:t,handler:n,options:o}),Br.length>100&&Br.length%50===0&&vI()}function vI(){for(let e=Br.length-1;e>=0;e--){let t=Br[e],n=t.target;if(n&&"isConnected"in n&&n.isConnected===!1){try{t.target.removeEventListener(t.event,t.handler,t.options)}catch{}Br.splice(e,1)}}}var Xl=null,Ss=0,Ur=null,yi,Cl="",ln,Ls,Ds=!1,vi=null,Ta,Yo,Ei=0,wI=50,xI=100,TI=20,_I=3e5;function Jb(e,t){for(;e.size>t;){let n=e.keys().next();if(n.done)break;e.delete(n.value)}}function II(e,t){let n=e.values();for(;e.size>t;){let o=n.next();if(o.done)break;e.delete(o.value)}}var Go=new Map,Eo=new Set,pe=null,cn,Ko=0,lr=1,Ys,zs="",K=null,ya=null,js=new Set,Os="",di="",Dr=null,qs=null,vf=!1,EI=new Set(["run_started","run_state_transition","run_completed","assistant","status","tool_start","tool_result","runtime_tabs_diagnostics","auth_required","navigation_guardrail","error"]),wf={read:"rover_external_read_context",act:"rover_external_act_context"},Ul=[],Hl=new Map,bn=new Map;function Ve(e,t){Qe(e,t);let n=Hl.get(e);if(n)for(let o of n)try{o(t)}catch{}}function Zb(e){return Jg(e)}async function SI(e){if(js.size===0)return[];let t=[];for(let n of js)try{let o=await n(e),r=Array.isArray(o)?o:o==null?[]:[o];for(let a of r){let i=Zb(a);i&&t.push(i)}}catch{}return Po(t)}function ek(e){return Zg({msg:e,taskId:String(l?.activeTask?.taskId||Ci()?.taskId||"").trim()||void 0,currentTaskBoundaryId:l?.pendingRun?.taskBoundaryId||Re,normalizeTaskBoundaryId:t=>Se(typeof t=="string"?t:void 0),pageUrl:typeof window<"u"?window.location.href:void 0,now:Date.now()})}function tk(e,t){let n=typeof e?.runId=="string"&&e.runId.trim()?e.runId.trim():String(l?.pendingRun?.id||"").trim()||void 0;return eb({msg:n?{...e,runId:n}:e,taskId:String(l?.activeTask?.taskId||Ci()?.taskId||"").trim()||void 0,currentTaskBoundaryId:l?.pendingRun?.taskBoundaryId||Re,normalizeTaskBoundaryId:o=>Se(typeof o=="string"?o:void 0),completionState:t,latestSummary:n?Go.get(n):void 0,pageUrl:typeof window<"u"?window.location.href:void 0,now:Date.now()})}function nk(e,t){Hl.has(e)||Hl.set(e,new Set);let n=Hl.get(e);return n.add(t),()=>{n.delete(t)}}function RI(e){return typeof e=="string"?{name:e}:e}function mr(e){try{return`${e}-${crypto.randomUUID()}`}catch{return`${e}-${Date.now()}-${Math.floor(Math.random()*1e5)}`}}function Do(){return mr("task-boundary")}function pr(e){if(!e||typeof e!="object")return;let t=typeof e.handoffId=="string"?e.handoffId.trim():"",n=typeof e.targetUrl=="string"?e.targetUrl.trim():"";if(!t||!n)return;let o=Number(e.sourceLogicalTabId);return{handoffId:t,targetUrl:n,sourceLogicalTabId:Number.isFinite(o)&&o>0?o:void 0,runId:typeof e.runId=="string"&&e.runId.trim()?e.runId.trim():void 0,createdAt:Number(e.createdAt)||Date.now(),consumed:e.consumed===!0}}function ok(e){if(e)return{handoffId:e.handoffId,targetUrl:e.targetUrl,sourceLogicalTabId:e.sourceLogicalTabId,runId:e.runId,ts:e.createdAt}}function sf(e){return{handoffId:e.handoffId,targetUrl:e.targetUrl,sourceLogicalTabId:e.sourceLogicalTabId,runId:e.runId,createdAt:Number(e.ts)||Date.now(),consumed:!1}}function _a(e){let t=typeof e?.pendingRun?.taskBoundaryId=="string"?e.pendingRun.taskBoundaryId:void 0;if(t)return Se(t);let n=typeof e?.workerState?.taskBoundaryId=="string"?e.workerState.taskBoundaryId:void 0;if(n)return Se(n)}function AI(e){let t=_a(e);return t||Do()}function zn(){return Se(Re)||_a(l)}function xa(e){let t=ib({source:e.source,incomingBoundaryId:e.incomingBoundaryId,currentBoundaryId:zn(),taskEpochAdvanced:e.taskEpochAdvanced,hasPendingRun:!!l?.pendingRun,taskStatus:l?.activeTask?.status,allowBootstrapAdoption:e.allowBootstrapAdoption});return t.accept?(t.adoptedBoundaryId&&(Re=t.adoptedBoundaryId),!0):!1}function Hf(e=12e4){let t=pr(l?.lastNavigationHandoff);if(!t||t.consumed===!0)return;let n=Date.now()-Number(t.createdAt||0);if(!(!Number.isFinite(n)||n<-5e3||n>e))return t}function rk(e){return e==="agent_navigation"||e==="cross_host_navigation"||e==="handoff"||e==="worker_interrupted"||e==="page_reload"}function CI(e){if(!l||!rk(e.resumeReason))return!1;let t=pr(l.lastNavigationHandoff);if(!t?.targetUrl)return!1;let n=Date.now()-Number(t.createdAt||0);return!Number.isFinite(n)||n<-5e3||n>12e4?!1:Wd(t.targetUrl,window.location.href)}function MI(e){if(!Vo||!rk(e.resumeReason))return!1;let t=pr(l?.lastNavigationHandoff);if(!t)return!1;let n=Date.now()-Number(t.createdAt||0);return Number.isFinite(n)&&n>=-5e3&&n<=Xb}function Si(e){let t=st(l?.pendingRun)?.taskBoundaryId;if(t){Re=t;return}let n=Vt(l?.workerState)?.taskBoundaryId;if(n){Re=n;return}(!Re||e?.rotateIfMissing)&&(Re=Do())}function NI(e){let t=`${M_}${e}`;try{let n=window.sessionStorage.getItem(t);if(n&&n.trim())return n.trim();let o=mr("runtime");return window.sessionStorage.setItem(t,o),o}catch{return mr("runtime")}}function $s(e){let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return(t>>>0).toString(16).padStart(8,"0")}function Ml(e){return String(e||"").trim().replace(/[^a-zA-Z0-9._:-]/g,"").slice(0,180)}function ak(e){try{let t=document.cookie.match(new RegExp(`(?:^|; )${e}=([^;]*)`));return t?decodeURIComponent(t[1]||""):void 0}catch{return}}function Ob(e,t,n){try{let o=n?`; domain=${n}`:"";return document.cookie=`${e}=${encodeURIComponent(t)}; path=/; max-age=${F_}; samesite=lax${o}`,ak(e)===t}catch{return!1}}function LI(e){let t=String(e||"").trim().toLowerCase();if(!t||t==="localhost"||/^\d{1,3}(\.\d{1,3}){3}$/.test(t))return[];let n=t.split(".").filter(Boolean);if(n.length<2)return[];let o=[];for(let r=n.length-2;r>=0;r-=1)o.push(`.${n.slice(r).join(".")}`);return o}function DI(e,t){let n=`rover_vid_${$s(e)}`;for(let o of LI(window.location.hostname))if(Ob(n,t,o))return;Ob(n,t)}function Nl(e,t){let n=`${Gb}${e}`;try{window.localStorage.setItem(n,t)}catch{}try{window.sessionStorage.setItem(n,t)}catch{}DI(e,t)}function ik(e,t){l&&(l.visitor=t,Oe());try{localStorage.setItem(`rover:visitor:${e}`,JSON.stringify(t))}catch{}}function OI(e){if(l?.visitor?.name||l?.visitor?.email)return l.visitor;try{let t=localStorage.getItem(`rover:visitor:${e}`);return t?JSON.parse(t):void 0}catch{return}}function sk(e){let t=Ml(e.visitorId||"");if(t)return t;if(e.checkpointing?.autoVisitorId===!1)return;let n=`${Gb}${e.siteId}`,o=`rover_vid_${$s(e.siteId)}`,r=Ml(ak(o)||"");if(r)return Nl(e.siteId,r),r;try{let i=Ml(window.localStorage.getItem(n)||"");if(i)return Nl(e.siteId,i),i}catch{}try{let i=Ml(window.sessionStorage.getItem(n)||"");if(i)return Nl(e.siteId,i),i}catch{}let a=`v_${$s(`${e.siteId}:${mr("visitor")}`)}_${Date.now().toString(36)}`;return Nl(e.siteId,a),a}function Pb(e,t){return`visitor-${$s(`${e}:${t}`)}`}function Ff(e){!at||!qe||(at.registerTool(e.def,e.handler),qe.postMessage({type:"register_tool",tool:e.def}))}function wi(e){return`${iu}${e}`}function Fl(e,t){let n=String(t||"").trim();return n?`${iu}${e}:${$s(n)}`:wi(e)}function xf(e){return`${iu}${e}:latest_key`}function PI(e){try{let t=String(sessionStorage.getItem(xf(e))||"").trim();return!t||!t.startsWith(iu)?void 0:t}catch{return}}function Tf(e,t){if(e)try{if(!t){sessionStorage.removeItem(xf(e));return}sessionStorage.setItem(xf(e),t)}catch{}}function zf(e){return`${eI}${e}`}function BI(e,t){try{sessionStorage.setItem(zf(e),JSON.stringify(t))}catch{}}function UI(e){try{let t=zf(e),n=sessionStorage.getItem(t);if(!n)return;sessionStorage.removeItem(t);let o=JSON.parse(n),r=Number(o?.ts)||0;return!o?.runId||!r||Date.now()-r>Xb?void 0:{runId:String(o.runId),text:typeof o.text=="string"?o.text:void 0,taskBoundaryId:typeof o.taskBoundaryId=="string"&&o.taskBoundaryId.trim()?o.taskBoundaryId.trim():void 0,resumeReason:o.resumeReason==="cross_host_navigation"||o.resumeReason==="agent_navigation"||o.resumeReason==="handoff"||o.resumeReason==="page_reload"?o.resumeReason:void 0,handoffId:typeof o.handoffId=="string"?o.handoffId:void 0,openIntent:o.openIntent==="preserve_if_running"?"preserve_if_running":void 0,ts:r}}catch{return}}function ck(e){if(e)try{sessionStorage.removeItem(zf(e))}catch{}}function Bb(e){let t=typeof e?.runId=="string"&&e.runId.trim()?e.runId.trim():void 0,n=typeof e?.taskId=="string"&&e.taskId.trim()?e.taskId.trim():void 0;if(!t&&!n){yi=void 0;return}yi={runId:t,taskId:n,expiresAt:Date.now()+Math.max(1e3,Number(e?.ttlMs)||tI)}}function Ia(){yi=void 0}function jf(e){let t=yi;if(!t)return!1;if(t.expiresAt<=Date.now())return yi=void 0,!1;let n=String(e?.activeTask?.status||"").trim();if(n&&n!=="running")return yi=void 0,!1;let o=String(t.runId||"").trim(),r=String(t.taskId||"").trim(),a=String(e?.pendingRun?.id||"").trim(),i=String(e?.activeTask?.taskId||"").trim();return!(o&&a&&o!==a&&(!r||!i||r!==i)||r&&i&&r!==i)}function Qs(e){e&&jf(e)&&(e.uiHidden=!1,e.uiOpen=!0)}function Rn(e="session_start",t=Date.now(),n){return{taskId:n||mr("task"),status:"running",startedAt:t,lastUserAt:void 0,lastAssistantAt:void 0,boundaryReason:e,endedAt:void 0}}function _f(e,t){return{version:Of,sessionId:e,runtimeId:t,uiOpen:!1,uiHidden:!1,uiStatus:void 0,transientStatus:void 0,uiMessages:[],timeline:[],executionMode:"controller",workerState:void 0,pendingRun:void 0,lastNavigationHandoff:void 0,taskEpoch:1,activeTask:Rn(),taskTabScope:void 0,lastRoutingDecision:void 0,updatedAt:Date.now(),tasks:{},activeTaskId:void 0,taskOrder:[]}}function yn(e,t=L_){return e.length<=t?e:`${e.slice(0,t)}\u2026`}function zl(e){if(e!=null){if(typeof e=="string")return yn(e,1200);try{return yn(JSON.stringify(e),1200)}catch{try{return yn(String(e),1200)}catch{return}}}}function su(e){let t=e?.telemetry,n=Number(t?.sampleRate),o=Number.isFinite(n)?Math.min(1,Math.max(0,n)):1,r=Number(t?.flushIntervalMs),a=Number.isFinite(r)?Math.min(6e4,Math.max(2e3,Math.floor(r))):q_,i=Number(t?.maxBatchSize),s=Number.isFinite(i)?Math.min(80,Math.max(1,Math.floor(i))):$_;return{enabled:t?.enabled!==!1,sampleRate:o,flushIntervalMs:a,maxBatchSize:s,includePayloads:t?.includePayloads===!0}}function cu(e){return e==="same_tab"||e==="open_new_tab"?e:"same_tab"}function Ws(e){return e==="host_only"?"host_only":"registrable_domain"}function Js(e,t){return e==="observer"?"This tab is in observer mode because another tab currently holds Rover action control.":t?"Controller tab ready for actions.":"Actions are disabled by configuration (allowActions=false)."}function qf(e){return e==="auto"||e==="confirm"||e==="never"?e:"confirm"}function lk(e){return"host_session"}function uk(e){return"task_touched_only"}function $f(e){return"crash_only"}function Yl(e){let t=Number(e);return Number.isFinite(t)?Math.max(6e4,Math.min(30*6e4,Math.floor(t))):O_}function Wf(e){return"read_only"}function dk(e){return"heuristic_same_window"}function Vf(e){let t=Number(e);return Number.isFinite(t)?Math.max(1e4,Math.min(10*6e4,Math.floor(t))):B_}function Gf(e){let t=Number(e);return Number.isFinite(t)?Math.max(.05,Math.min(.9,t)):U_}function fk(e){return"empty"}function mk(e){return"deterministic_cues"}function pk(e){let t=Number(e);return Number.isFinite(t)?Math.max(1,Math.min(4,Math.floor(t))):P_}function hk(e){return"auto"}function gk(e){return!1}function bk(e){return"pre_tool_block"}function HI(){return Sb({pendingRunText:l?.pendingRun?.text,activeRunText:L?.getState()?.activeRun?.text,rootWorkerInput:l?.workerState?.rootUserInput,lastUserInputText:ln,fallback:"navigation request"})}function kk(e){return e!==!1}function Wt(e,t,n){let o=Number(e);if(Number.isFinite(o))return Math.max(t,Math.min(n,Math.floor(o)))}function Kf(e){return"on_demand"}function Xf(e){let t=Number(e);return Number.isFinite(t)?Math.max(5e3,Math.min(12e4,Math.floor(t))):uh.idleCloseMs}function Ri(e,t){let n=Number(e);return Number.isFinite(n)?Math.max(32768,Math.min(2097152,Math.floor(n))):t}function Yf(e){return!(!e||!su(e).enabled||!qn(e))}function Ub(e){if(e!=null){if(typeof e=="string")return yn(e,260);if(typeof e=="number"||typeof e=="boolean")return e;if(Array.isArray(e))return{type:"array",length:e.length};if(typeof e=="object"){let n={type:"object",keys:Object.keys(e).slice(0,20)},o=["code","message","stage","status","reason","taskId","runId","policyAction"];for(let r of o){let a=e?.[r];a!=null&&(typeof a=="string"?n[r]=yn(a,180):(typeof a=="number"||typeof a=="boolean")&&(n[r]=a))}return n}}}function FI(e,t){if(!t)return Ub(e);let n=Jf(e);if(n!=null)return typeof n=="string"?yn(n,1e3):typeof n=="number"||typeof n=="boolean"?n:Array.isArray(n)?{type:"array",length:n.length}:typeof n=="object"?n:Ub(e)}function Qf(){Dl&&(clearInterval(Dl),Dl=null),dr&&(clearTimeout(dr),dr=null),As=!1}function zI(e){return`${Il(e.apiBase)}/telemetry/ingest`}function Ql(e){let t=e||C,n=String(t?.publicKey||"").trim();if(n.startsWith("pk_site_"))return n;let o=String(t?.authToken||"").trim();return o.startsWith("pk_site_")?o:""}function qn(e){if(cn&&Ko>Date.now()+2e3)return cn;try{let o=C?.siteId||e?.siteId||"";if(o){let r=sessionStorage.getItem(`rover:sess:${o}`);if(r){let{t:a,e:i}=JSON.parse(r);if(a&&typeof a=="string"&&a.startsWith("rvrsess_")&&Number(i)>Date.now()+2e3)return cn=a,Ko=Number(i),a}}}catch{}let t=e||C,n=String(t?.sessionToken||t?.authToken||"").trim();return n.startsWith("rvrsess_")?n:""}function Jl(e,t){let n=String(e||"").trim();cn=n||void 0,Ko=Number(t)>0?Number(t):0;try{let o=C?.siteId||"";n&&Ko>Date.now()?sessionStorage.setItem(`rover:sess:${o}`,JSON.stringify({t:n,e:Ko})):sessionStorage.removeItem(`rover:sess:${o}`)}catch{}}function jI(e){try{let t=String(e||"").replace(/-/g,"+").replace(/_/g,"/"),n=t+"=".repeat((4-(t.length%4||4))%4);if(typeof atob=="function"){let o=atob(n),r=Uint8Array.from(o,a=>a.charCodeAt(0));return new TextDecoder().decode(r)}}catch{}return""}function qI(e){let t=String(e||"").trim();if(!t.startsWith("rvrsess_"))return null;let n=t.slice(8),o=n.lastIndexOf(".");if(o<=0)return null;let r=jI(n.slice(0,o));if(!r)return null;try{let a=JSON.parse(r),i=String(a.agentKey||"").trim(),s=String(a.agentName||"").trim()||void 0,c=String(a.agentVendor||"").trim()||void 0,d=String(a.agentModel||"").trim()||void 0,f=String(a.agentTrust||"").trim(),u=String(a.agentSource||"").trim(),b=String(a.agentMemoryKey||"").trim()||void 0,p=String(a.launchSource||"").trim();return!i&&!s&&!c&&!d?null:{agentKey:i||b||c||s||"anonymous",agentName:s,agentVendor:c,agentModel:d,agentTrust:f==="verified"||f==="self_reported"||f==="heuristic"||f==="anonymous"?f:void 0,agentSource:u==="public_task_agent"||u==="handoff_agent"||u==="webmcp_agent"||u==="signature_agent"||u==="user_agent"||u==="owner_resolver"||u==="anonymous"?u:void 0,agentMemoryKey:b,launchSource:p==="public_task_api"||p==="delegated_handoff"||p==="webmcp"||p==="embedded_widget"?p:void 0}}catch{return null}}function $I(e){!e||!C||(C.externalNavigationPolicy=e.externalNavigationPolicy||C.externalNavigationPolicy,e.domainScopeMode&&(C.domainScopeMode=Ws(e.domainScopeMode)),(e.crossHostPolicy==="open_new_tab"||e.crossHostPolicy==="same_tab")&&(C.navigation={...C.navigation||{},crossHostPolicy:cu(e.crossHostPolicy)}),C.tools||(C.tools={}),C.tools.web||(C.tools.web={}),C.tools.web.enableExternalWebContext=e.enableExternalWebContext??C.tools.web.enableExternalWebContext,C.tools.web.scrapeMode=e.externalScrapeMode??C.tools.web.scrapeMode,Array.isArray(e.externalAllowDomains)&&(C.tools.web.allowDomains=e.externalAllowDomains),Array.isArray(e.externalDenyDomains)&&(C.tools.web.denyDomains=e.externalDenyDomains))}function If(e){if(!l||!e)return;lr=Math.max(1,Number(e.epoch||lr));let t=typeof e.activeRunId=="string"?e.activeRunId:"",n=String(e.runStatus||"").trim().toLowerCase();db({serverRunId:t,runStatus:n,ignoredRunIds:Eo})&&zr(t,"projection_ignored_active_run",{attemptImmediately:!0}),Hr(t||void 0);let o=l.pendingRun,r=o?.id||"";!t&&r?(n==="completed"||n==="cancelled"||n==="failed"||n==="ended"||l.activeTask?.status!=="running")&&($r(r),Lt(void 0),L?.setActiveRun(void 0)):t&&!Jo()&&Zs(bt)!=="observer"&&ub({serverRunId:t,localPendingRunId:r,ignoredRunIds:Eo})?Lt({id:t,text:o?.text||"",startedAt:o?.startedAt||Date.now(),attempts:o?.attempts||0,autoResume:!0,taskBoundaryId:o?.taskBoundaryId||Re,resumeRequired:o?.resumeRequired===!0,resumeReason:o?.resumeReason}):t&&Eo.has(t)&&r===t&&(L?.releaseWorkflowLock(t),Lt(void 0),L?.setActiveRun(void 0));let a=String(e.snapshotMeta?.digest||"").trim()||(Number.isFinite(Number(e.snapshotMeta?.updatedAt))?`u:${Math.max(0,Number(e.snapshotMeta?.updatedAt||0))}`:Number.isFinite(Number(e.snapshotUpdatedAt))?`u:${Math.max(0,Number(e.snapshotUpdatedAt||0))}`:""),i=a?`${e.sessionId}:${a}`:"";if(e.snapshot&&typeof e.snapshot=="object"&&(!i||i!==zs)){let c=e.snapshot?.runtimeState,d=e.snapshot?.sharedState;if(c&&typeof c=="object"){_i=!0;try{qk({version:Kb,siteId:C?.siteId||l.sessionId,visitorId:Ft||"server_projection",sessionId:l.sessionId,updatedAt:Number(e.snapshot?.updatedAt)||Date.now(),runtimeState:c,sharedState:d})}finally{_i=!1}i&&(zs=i)}}let s=String(l?.pendingRun?.id||"").trim();s&&Eo.has(s)&&(L?.releaseWorkflowLock(s),Lt(void 0),L?.setActiveRun(void 0)),Zl()}async function Qo(e){if(!(!l||!e.apiBase&&!e.publicKey&&!e.authToken&&!e.sessionToken||!Ql(e)&&!cn)){pe?pe.setApiBase(e.apiBase):pe=new Sl({apiBase:e.apiBase,siteId:e.siteId,getSessionId:()=>l?.sessionId,getBootstrapToken:()=>Ql(C),getHost:()=>window.location.hostname,getPageUrl:()=>window.location.href,getTaskBoundaryId:()=>Re,shouldKeepTransportActive:()=>!Ea(),onSession:n=>{if(Jl(n.sessionToken,n.sessionTokenExpiresAt),_o&&L?.broadcastSessionToken(n.sessionToken||"",n.sessionTokenExpiresAt||0),lr=Math.max(1,Number(n.epoch||lr)),l&&n.sessionId&&l.sessionId!==n.sessionId&&(l.sessionId=n.sessionId,zs="",Oe()),$I(n.policy),n.siteConfig&&typeof n.siteConfig=="object"&&C){let o={shortcuts:qr(n.siteConfig.shortcuts),greeting:Li(n.siteConfig.greeting),voice:Ni(n.siteConfig.voice),aiAccess:oc(n.siteConfig.aiAccess),limits:gu(n.siteConfig.limits),pageConfig:fr(n.siteConfig.pageConfig),version:n.siteConfig.version!=null?String(n.siteConfig.version):void 0};No=o,$k(C.siteId,o),ou(C)}n.projection&&If(n.projection),qe&&qe.postMessage({type:"update_config",config:{...Aa(),pageConfig:Gs(C),publicKey:void 0,sessionToken:cn,authToken:qn(C),sessionId:l?.sessionId,activeRunId:l?.pendingRun?.id,sessionEpoch:pe?.getEpoch?.()??lr,sessionSeq:pe?.getLastSeq?.()??0}}),at&&at.setNavigationPolicy({allowedDomains:C?.allowedDomains,domainScopeMode:C?.domainScopeMode,externalNavigationPolicy:C?.externalNavigationPolicy,crossHostPolicy:C?.navigation?.crossHostPolicy}),C&&(am(C),lu(C)),Ii=!0,Xo(),Zl()},onProjection:n=>{If(n),_o&&L?.broadcastProjection(n),Zl(),qe&&qe.postMessage({type:"update_config",config:{...Aa(),pageConfig:Gs(C),sessionToken:cn,authToken:qn(C),sessionId:l?.sessionId,activeRunId:l?.pendingRun?.id,sessionEpoch:pe?.getEpoch?.()??lr,sessionSeq:pe?.getLastSeq?.()??0}})},onError:n=>{Qe("error",{message:n?.message||"server runtime sync failed",scope:"server_runtime"})}});try{await pe.start()}catch(n){C?.apiMode!==!1&&Ve("error",{message:n?.message||"server runtime sync failed",scope:"server_runtime_start"})}}}async function va(e=!1){if(Ol||pi)return;if(!C||!Yf(C)){Fn=[];return}if(!e&&Ea()||!Fn.length)return;let t=su(C),n=qn(C);if(!n)return;let o=Fn.splice(0,t.maxBatchSize);if(o.length){Ol=!0,Kl=Date.now();try{let r=await fetch(zI(C),{method:"POST",headers:{"Content-Type":"text/plain"},body:JSON.stringify({sessionToken:n,sessionId:l?.sessionId,runId:l?.pendingRun?.id,siteId:C.siteId,runtimeId:it,visitorId:Ft,flushReason:e?"manual":"interval",sdkVersion:"rover_sdk_v1",pageUrl:window.location.href,userAgent:navigator.userAgent,sampleRate:t.sampleRate,events:o})});if(!r.ok){r.status===401||r.status===403?pi=!0:Fn=[...o,...Fn].slice(-Wl);return}let a=await r.json().catch(()=>{});if(a?.success===!1){let i=String(a?.errorCode||a?.errorDetails?.code||"").toUpperCase();(i==="INVALID_API_KEY"||i==="MISSING_API_KEY"||i==="UNAUTHENTICATED"||i==="PERMISSION_DENIED")&&(pi=!0);return}}catch{Fn=[...o,...Fn].slice(-Wl)}finally{Ol=!1}}}function lu(e){if(Qf(),pi=!1,!Yf(e)){Fn=[];return}let t=su(e);Dl=setInterval(()=>{va(!1)},t.flushIntervalMs)}function Qe(e,t){if(!Yf(C)||pi||Ea()&&!kI.has(e))return;let n=su(C);if(n.sampleRate<1&&Math.random()>n.sampleRate)return;let o=Date.now();if(e==="status"){if(!String(t?.event||"").trim().startsWith("deep_link_")){if(o-pf<gI)return;pf=o}}else if(e==="checkpoint_state"){if(o-hf<bI)return;hf=o}let r={name:e,ts:o,seq:++Yb,payload:FI(t,n.includePayloads)};if(Fn.push(r),Fn.length>Wl&&(Fn=Fn.slice(-Wl)),Qb.has(e)){let i=Date.now()-Kl;if(i>=Lb){va(!1);return}dr||(dr=setTimeout(()=>{dr=null,va(!1)},Lb-i));return}if(Fn.length>=n.maxBatchSize){let i=Date.now()-Kl;i>=Nb?va(!1):As||(As=!0,setTimeout(()=>{As=!1,va(!1)},Nb-i))}}function WI(e,t){Qe(e,t)}function yk(e){if(e==="analyze"||e==="route"||e==="execute"||e==="verify"||e==="complete")return e}function VI(e){return e?e==="analyze"?"Analyze":e==="route"?"Route":e==="execute"?"Execute":e==="verify"?"Verify":e==="complete"?"Complete":"Status":"Status"}function GI(e,t,n){return[String(t||""),String(e||"").trim().toLowerCase(),String(n||"").trim().toLowerCase()].join("|")}function KI(e,t){if(!e)return!0;let n=e.trim();return!!(t&&n.toLowerCase()===t.trim().toLowerCase()||/^complexity score\b/i.test(n)||/\btool loop$/i.test(n)||/^calling \w[\w\s]*(workflow|sub-agent)$/i.test(n))}function XI(){return l?.pendingRun?.id}function Hr(e){Ys=String(e||"").trim()||void 0}function Hb(){let e=l?.pendingRun?.id;if(!e)return;if(!pe)return e;let t=pe.getActiveRunId(),n=String(t||Ys||"").trim();if(n)return n===e?e:void 0}function $r(e){e&&(Eo.add(e),II(Eo,xI))}function Ef(e){e&&Eo.delete(e)}function Sf(e){let t=Math.max(0,Math.floor(e)),n=Us*2**t;return Math.max(120,Math.min(iI,n))}function YI(){if(!bn.size)return null;let e=Number.POSITIVE_INFINITY;for(let t of bn.values())e=Math.min(e,Number(t.nextAttemptAt)||Number.POSITIVE_INFINITY);return Number.isFinite(e)?Math.max(120,Math.floor(e-Date.now())):null}function Rf(e=Us){Mr&&(clearTimeout(Mr),Mr=null);let t=Math.max(80,Math.floor(e));Mr=setTimeout(()=>{Mr=null,Zl()},t)}function zr(e,t="local_run_abandoned",n){let o=String(e||"").trim();if(!o)return;let r=Date.now(),a=bn.get(o),i=n?.attemptImmediately===!0?r:a?.nextAttemptAt&&a.nextAttemptAt>r?a.nextAttemptAt:r+Sf(a?.attempts||0);for(bn.set(o,{runId:o,reason:String(t||a?.reason||"local_run_abandoned").trim()||"local_run_abandoned",attempts:a?.attempts||0,nextAttemptAt:i,createdAt:a?.createdAt||r,lastError:a?.lastError});bn.size>cI;){let s=Array.from(bn.values()).sort((c,d)=>Number(c.createdAt)-Number(d.createdAt))[0];if(!s?.runId)break;bn.delete(s.runId)}Rf(n?.attemptImmediately?50:Us)}async function Zl(){if(Pl||!bn.size)return;if(!(!!pe&&!!Ii&&!!qn(C))){Rf(Us);return}Pl=!0;try{let t=Date.now(),n=Array.from(bn.values()).sort((o,r)=>Number(o.nextAttemptAt)-Number(r.nextAttemptAt));for(let o of n){if(o.nextAttemptAt>t)break;if(!bn.has(o.runId))continue;if(nm(o.runId)){bn.set(o.runId,{...o,nextAttemptAt:Date.now()+Sf(Math.max(1,o.attempts))});continue}let r=pe;if(!r){bn.set(o.runId,{...o,nextAttemptAt:Date.now()+Us});continue}try{if(await r.controlRun({action:"cancel",runId:o.runId,reason:o.reason})){bn.delete(o.runId);continue}throw new Error("cancel_control_no_response")}catch(a){let i=Math.max(0,Number(o.attempts||0))+1;if(i>=sI){bn.delete(o.runId),Ve("error",{message:`Failed to cancel stale run ${o.runId} after retries.`,scope:"run_cancel_repair",code:"RUN_CANCEL_REPAIR_FAILED",runId:o.runId});continue}bn.set(o.runId,{...o,attempts:i,lastError:String(a?.message||"cancel_control_failed"),nextAttemptAt:Date.now()+Sf(i)})}}}finally{Pl=!1;let t=YI();t!=null&&Rf(t)}}function Cr(){return l?.activeTask?.status==="running"}function vk(){It&&(Cr()||Af()?It.enterActiveMode():It.enterIdleMode())}function QI(){return typeof document<"u"&&document.visibilityState==="hidden"}function Af(){return!!l?.pendingRun?.id}function JI(){let e=L?.getState()?.activeRun;if(!e)return!1;if(e.runtimeId)return e.runtimeId===it;let t=String(l?.pendingRun?.id||"").trim();return!!(t&&e.runId===t)}function ZI(){let e=L?.getWorkflowLockInfo();return!!(e?.locked&&e.holderRuntimeId===it)}function wk(){return L?ZI()||JI()?!0:Af()&&!Jo():Cr()||Af()}function eE(){return Kf(C?.transport?.activation)!=="on_demand"?!0:!!(l?.uiOpen||wk()||xk()||Tk())}function Ea(){if(!_o)return!0;if(eE())Ss=0;else{let t=Xf(C?.transport?.idleCloseMs);return Ss<=0&&(Ss=Date.now()+t),!(Date.now()<Ss)}return QI()?!wk()&&!l?.uiOpen:!1}function Oo(e=!1){if(typeof window>"u")return;let t=Ea();if(!(!e&&Xl===t)){Xl=t;try{let n=window.rtrvrAISetObserverPaused;typeof n=="function"&&n(t)}catch{}}}function xk(){let e=L?.getState()?.activeRun;return!!(e&&e.runtimeId&&e.runtimeId!==it)}function Tk(){let e=L;if(!e?.isWorkflowLocked())return!1;let t=e.getWorkflowLockInfo();if(!t.locked||!t.holderRuntimeId||t.holderRuntimeId===it)return!1;let n=e.listTabs({scope:"all"}).find(o=>o.runtimeId===t.holderRuntimeId);return n?Number(n.updatedAt)>Date.now()-5e3:!1}function Jo(){return Tk()}function Zs(e){return Jo()?"observer":e==="observer"?"controller":e}function _k(){return Wf(C?.task?.observerInput)==="read_only"?!Jo():!xk()}function Ik(e){if(e==="observer")return Jo()?"Observing active run in another tab...":"Send to take control and run here."}function tE(){if(!L)return!1;let e=L.getState(),t=e?.activeRun,n=String(t?.runId||"").trim(),o=String(t?.text||"").trim();if(!L.requestControl())return!1;if(!n)return!0;if(!L.acquireWorkflowLock(n,{force:!0}))return!1;if(!l)return!0;let i=So(Vt(e?.workerContext),zn());return i&&(l.workerState=i,Si(),L.setWorkerContext(tc(l.workerState)),fo&&qe&&(uo(),qe.postMessage({type:"hydrate_state",state:l.workerState}),Ve("context_restored",{source:"controller_handoff",ts:Date.now()}))),e?.task&&(l.activeTask=Ak(e.task,l.activeTask||Rn("handoff"))),l.uiHidden=!1,l.uiOpen=!0,(o||n)&&(Lt(st({id:n,text:o||l.pendingRun?.text||ln||"Continue task",startedAt:t?.startedAt||l.pendingRun?.startedAt||Date.now(),attempts:l.pendingRun?.id===n&&l.pendingRun.attempts||0,autoResume:!0,taskBoundaryId:l.pendingRun?.taskBoundaryId||l.workerState?.taskBoundaryId||Re,resumeRequired:!0,resumeReason:"handoff"})),L.setActiveRun({runId:n,text:o||l.pendingRun?.text||"Continue task"})),Oe(),Xo({overridePolicyAction:"auto_resume"}),!0}function nE(e){let t=typeof e?.type=="string"?e.type:"";if(!EI.has(t))return!1;let n=typeof e?.runId=="string"&&e.runId?e.runId:void 0,o=typeof e?.taskBoundaryId=="string"&&e.taskBoundaryId?e.taskBoundaryId:void 0,r=String(pe?.getActiveRunId()||Ys||"").trim()||void 0;return mb({type:t,messageRunId:n,messageTaskBoundaryId:o,currentTaskBoundaryId:zn(),pendingRunId:XI(),sharedActiveRunId:L?.getState()?.activeRun?.runId,authoritativeActiveRunId:r,taskStatus:l?.activeTask?.status,ignoredRunIds:Eo})}function Ao(e){if(!Array.isArray(e))return[];let t=[],n=new Set;for(let o=0;o<e.length;o+=1){let r=e[o];if(!r||typeof r!="object")continue;let a=String(r.key||r.id||"").trim()||`clarification_${o+1}`,i=String(r.query||r.question||"").trim();if(!i)continue;let s=typeof r.required=="boolean",c=typeof r.optional=="boolean",d=s?!!r.required:c?!r.optional:!0,f=`${a}::${i}`.toLowerCase();if(n.has(f))continue;n.add(f);let u={key:a,query:i,...typeof r.id=="string"&&r.id.trim()?{id:r.id.trim()}:{},...typeof r.question=="string"&&r.question.trim()?{question:r.question.trim()}:{},...Array.isArray(r.choices)?{choices:r.choices}:{}};d||(u.required=!1),t.push(u)}return t.slice(0,6)}function oE(e,t){let n=String(e||"").trim();if(n)return n;if(!t||typeof t!="object")return"";let o=t.answersByKey&&typeof t.answersByKey=="object"?t.answersByKey:{},r=Ao(l?.workerState?.pendingAskUser?.questions),i=(Array.isArray(t.keys)?t.keys:[]).map(d=>String(d||"").trim()).filter(Boolean);if(i.length===0)for(let d of r){let f=String(d.key||"").trim();f&&i.push(f)}if(i.length===0)for(let d of Object.keys(o)){let f=String(d||"").trim();f&&i.push(f)}let s=[],c=new Set;for(let d of i){let f=String(d||"").trim();if(!f||c.has(f))continue;c.add(f);let u=String(o[f]||"").trim();s.push(`${f}: ${u||"(no answer provided)"}`)}return s.length>0?s.join(`
2099
+ `):String(t.rawText||"").trim()}function eu(e){let t=String(K?.getActiveTask()?.rootUserInput||"").trim();if(t)return t;let n=String(l?.workerState?.rootUserInput||"").trim();if(n)return n;let o=l?.pendingRun,r=o&&o.id===e?String(o.text||"").trim():"";if(r)return r;let a=String(o?.text||"").trim();return a||String(ln||"").trim()||void 0}function rE(e){if(!e||typeof e!="object")return{taskComplete:!1,needsUserInput:!1,terminalState:"in_progress",contextResetRecommended:!1};let t=String(e.terminalState||"").trim().toLowerCase(),n=e.needsUserInput===!0,o=t==="waiting_input"||t==="in_progress"||t==="completed"||t==="failed"?t:n?"waiting_input":e.taskComplete===!0?"completed":e.ok===!1?"failed":"in_progress",r=o==="completed"||e.taskComplete===!0&&o!=="waiting_input",a=Ao(e.questions),i=String(e.continuationReason||"").trim().toLowerCase(),s=i==="loop_continue"||i==="same_tab_navigation_handoff"||i==="awaiting_user"?i:o==="waiting_input"?"awaiting_user":o==="in_progress"?"loop_continue":void 0;return{taskComplete:r,needsUserInput:o==="waiting_input"||n,terminalState:o,contextResetRecommended:e.contextResetRecommended===!0||o==="completed",continuationReason:s,...a.length?{questions:a}:{}}}function aE(e){return ur?ur.readSync(e):null}function Jf(e){if(e==null||typeof e=="string"||typeof e=="number"||typeof e=="boolean")return e;try{return structuredClone(e)}catch{try{return JSON.parse(JSON.stringify(e))}catch{return}}}function jr(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(!n||typeof n!="object")continue;let o=n.type;if(o==="text"){let r=String(n.text||"");if(!r)continue;t.push({type:"text",text:r});continue}(o==="tool_output"||o==="json")&&t.push({type:o,data:Jf(n.data),label:typeof n.label=="string"?n.label:void 0,toolName:typeof n.toolName=="string"?n.toolName:void 0})}return t.length?t:void 0}function Fb(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let t=Object.entries(e).filter(([,a])=>a!=null);if(t.length!==1)return!1;let[n,o]=t[0];return typeof o!="string"||!o.trim()?!1:new Set(["response","message","summary","text","content","result","description"]).has(n)}function iE(e,t){if(e==null)return!1;if(typeof e=="string"){let n=e.trim();return n?!t||n!==t.trim():!1}if(Array.isArray(e)){let n=e.filter(o=>o!=null);if(n.length===1){let o=n[0];if(typeof o=="string"||typeof o=="number"||typeof o=="boolean"||Fb(o))return!1}return!0}return!Fb(e)}function Ek(e){if(!Array.isArray(e)||!e.length)return;let t=e.filter(o=>o.type==="text").map(o=>String(o.text||"").trim()).filter(Boolean);if(t.length)return t.join(`
2098
2100
 
2099
- `);let n=e.find(o=>o.type==="tool_output"||o.type==="json");if(n){if(typeof n.data=="string"&&n.data.trim())return n.data.trim();if(typeof n.data=="number"||typeof n.data=="boolean")return String(n.data)}}function WE(e){if(e==null)return;let t=typeof e=="object"&&e!==null?e:void 0,n=t?.output??t?.generatedContentRef??t?.schemaHeaderSheetInfo??e,o=mk(Fr([{type:"tool_output",data:n}]));if(qE(n,o))return Fr([{type:"tool_output",label:typeof t?.name=="string"?`${t.name} output`:"Tool output",data:n}])}function so(e){let t=Number(e);if(!(!Number.isFinite(t)||t<=0))return t}function $E(e){if(!e||typeof e!="object")return[];let t=e,n=[so(t.tab_id),so(t.logical_tab_id),so(t.tabId),so(t.logicalTabId)].filter(o=>!!o);return Qn(n)}function VE(e){if(!e||typeof e!="object")return[];let t=e,n=t.output&&typeof t.output=="object"?t.output:void 0,o=[so(t.tab_id),so(t.logical_tab_id),so(t.tabId),so(t.logicalTabId),so(n?.tab_id),so(n?.logical_tab_id),so(n?.tabId),so(n?.logicalTabId)].filter(r=>!!r);return Qn(o)}function GE(e){if(!e||typeof e!="object")return!1;let t=e,n=t.output&&typeof t.output=="object"?t.output:void 0,o=String(t.status||t.taskStatus||n?.status||n?.taskStatus||"").trim().toLowerCase();return!!(o==="failure"||o==="failed"||o==="error"||t.success===!1||n?.success===!1||t.error||n?.error)}function pk(e){if(!e||typeof e!="object")return null;let t=e.role,n=e.content;return typeof t!="string"||typeof n!="string"||!n?null:{role:t,content:n}}function Si(e,t){if(!Array.isArray(e))return[];let n=e.length<=t?e:[e[0],...e.slice(-(t-1))],o=[];for(let r of n){let a=Kf(r);a!==void 0&&o.push(a)}return o}function hk(e){if(!Array.isArray(e)||e.length===0)return[];let t=[...e],n=[];for(let r=0;r<t.length;r+=1){let a=t[r]?.accTreeId;typeof a=="string"&&a.trim()&&n.push(r)}if(n.length<=3)return t;let o=new Set([n[0],...n.slice(-2)]);for(let r of n)o.has(r)||t[r]&&typeof t[r]=="object"&&delete t[r].accTreeId;return t}async function KE(e,t){if(!sr)return null;try{let n=await sr.readAsync(e);if(n)return n;for(let o of t||[]){if(!o||o===e)continue;let r=await sr.readAsync(o);if(r)return r}return null}catch{return null}}function Ro(e){if(!Array.isArray(e))return[];let t=[];for(let n of e.slice(-zl)){let o=n?.role;o!=="user"&&o!=="assistant"&&o!=="system"||t.push({id:typeof n?.id=="string"&&n.id?n.id:ur("msg"),role:o,text:String(n?.text||""),blocks:Fr(n?.blocks),ts:Number(n?.ts)||Date.now(),sourceRuntimeId:typeof n?.sourceRuntimeId=="string"?n.sourceRuntimeId:void 0})}return t.filter(n=>!!n.text||!!n.blocks?.length)}function Ao(e){if(!Array.isArray(e))return[];let t=[];for(let n of e.slice(-jl)){let o=yn(String(n?.title||""),400);if(!o)continue;let r=String(n?.kind||"status"),a=n?.status;t.push({id:typeof n?.id=="string"&&n.id?n.id:ur("timeline"),kind:r,title:o,detail:n?.detail?String(n.detail):void 0,detailBlocks:Fr(n?.detailBlocks),status:a==="pending"||a==="success"||a==="error"||a==="info"?a:void 0,ts:Number(n?.ts)||Date.now(),sourceRuntimeId:typeof n?.sourceRuntimeId=="string"?n.sourceRuntimeId:void 0})}return t}function Do(e){if(!Array.isArray(e))return[];let t=[];for(let n of e.slice(-h_)){let o=n?.role==="user"?"user":n?.role==="model"?"model":void 0;if(!o)continue;let r=yn(String(n?.message||"").replace(/\s+/g," ").trim(),1500);if(!r)continue;let a=t[t.length-1];a&&a.role===o&&a.message===r||t.push({role:o,message:r})}return t}function Js(e,t){if(!e)return;let n=typeof e=="string"?e:e?.text,o=yn(String(n||"").trim(),300);if(!o)return;let r=typeof e?.runId=="string"&&e.runId.trim()?e.runId.trim():typeof t?.runId=="string"&&t.runId.trim()?t.runId.trim():void 0,a=typeof e?.taskId=="string"&&e.taskId.trim()?e.taskId.trim():typeof t?.taskId=="string"&&t.taskId.trim()?t.taskId.trim():void 0,i=typeof e?.stage=="string"&&e.stage.trim()?yn(e.stage.trim(),40):void 0;return{text:o,ts:Number(e?.ts)||Date.now(),runId:r,taskId:a,stage:i}}function XE(e,t){let n=Number(e.ts)||0,o=Number(t.ts)||0;if(n!==o)return n-o;let r=Array.isArray(e.blocks)?e.blocks.length:0,a=Array.isArray(t.blocks)?t.blocks.length:0;return r!==a?r-a:String(e.text||"").length-String(t.text||"").length}function YE(e,t){let n=new Map;for(let o of Ro(e))n.set(o.id,o);for(let o of Ro(t)){let r=n.get(o.id);(!r||XE(o,r)>0)&&n.set(o.id,o)}return Ro([...n.values()].sort((o,r)=>{let a=(Number(o.ts)||0)-(Number(r.ts)||0);return a!==0?a:o.id.localeCompare(r.id)}))}function QE(e,t){let n=Number(e.ts)||0,o=Number(t.ts)||0;if(n!==o)return n-o;let r=Array.isArray(e.detailBlocks)?e.detailBlocks.length:0,a=Array.isArray(t.detailBlocks)?t.detailBlocks.length:0;return r!==a?r-a:String(e.detail||"").length-String(t.detail||"").length}function JE(e,t){let n=new Map;for(let o of Ao(e))n.set(o.id,o);for(let o of Ao(t)){let r=n.get(o.id);(!r||QE(o,r)>0)&&n.set(o.id,o)}return Ao([...n.values()].sort((o,r)=>{let a=(Number(o.ts)||0)-(Number(r.ts)||0);return a!==0?a:o.id.localeCompare(r.id)}))}function Vt(e){if(!e||typeof e!="object")return;let t=String(e.taskBoundaryId||"").trim(),n=Array.isArray(e.history)?e.history:[],o=Array.isArray(e.plannerHistory)?e.plannerHistory:[],r=Array.isArray(e.agentPrevSteps)?e.agentPrevSteps:Array.isArray(e.lastToolPreviousSteps)?e.lastToolPreviousSteps:[],a=n.slice(-Nf).map(y=>pk(y)).filter(y=>!!y),i=Si(o,Lf),s=Si(hk(r),Df),c=So(e?.pendingAskUser?.questions),d=e?.pendingAskUser?.stepRef,f=d&&Number.isFinite(Number(d.stepIndex))&&Number(d.stepIndex)>=0&&Number.isFinite(Number(d.functionIndex))&&Number(d.functionIndex)>=0?{stepIndex:Number(d.stepIndex),functionIndex:Number(d.functionIndex),...typeof d.accTreeId=="string"&&d.accTreeId.trim()?{accTreeId:d.accTreeId.trim()}:{}}:void 0,u=c.length?{questions:c,source:e?.pendingAskUser?.source==="planner"?"planner":"act",askedAt:Number(e?.pendingAskUser?.askedAt)||Date.now(),boundaryId:typeof e?.pendingAskUser?.boundaryId=="string"&&e.pendingAskUser.boundaryId.trim()?e.pendingAskUser.boundaryId.trim():void 0,...f?{stepRef:f}:{}}:void 0,b=Se(t||void 0),p=Se(u?.boundaryId||b);u&&b&&p&&p!==b&&(u=void 0);let g=typeof e.rootUserInput=="string"?e.rootUserInput.trim():"";return{trajectoryId:typeof e.trajectoryId=="string"?e.trajectoryId:void 0,taskBoundaryId:t||void 0,rootUserInput:g||void 0,seedChatLog:Do(e.seedChatLog),history:a,plannerHistory:i,agentPrevSteps:s,lastToolPreviousSteps:s,pendingAskUser:u,updatedAt:Number(e.updatedAt)||Date.now()}}function Ws(e,t,n){if(!e||typeof e!="object")return vf(t,n);let o=Sn(),r=qr(e.activeTask,o),a=st(e.pendingRun),i=r.status==="running"?a:void 0,s=i?.taskBoundaryId&&String(i.taskBoundaryId).trim()||(typeof e?.workerState?.taskBoundaryId=="string"?String(e.workerState.taskBoundaryId).trim():"")||void 0,c=Li(e.taskTabScope,s),d={version:Mf,sessionId:typeof e.sessionId=="string"&&e.sessionId?e.sessionId:t,runtimeId:typeof e.runtimeId=="string"&&e.runtimeId?e.runtimeId:n,uiOpen:!!e.uiOpen,uiHidden:!!e.uiHidden,uiStatus:typeof e.uiStatus=="string"?yn(e.uiStatus,300):void 0,transientStatus:Js(e.transientStatus??e.uiStatus,{runId:a?.id,taskId:r?.taskId}),uiMessages:Ro(e.uiMessages),timeline:Ao(e.timeline),executionMode:e.executionMode==="observer"||e.executionMode==="controller"?e.executionMode:"controller",workerState:Vt(e.workerState),pendingRun:i,taskTabScope:c,lastNavigationHandoff:dr(e.lastNavigationHandoff),taskEpoch:Math.max(1,Number(e.taskEpoch)||1),activeTask:r,lastRoutingDecision:e.lastRoutingDecision&&(e.lastRoutingDecision.mode==="act"||e.lastRoutingDecision.mode==="planner")?{mode:e.lastRoutingDecision.mode,score:Number(e.lastRoutingDecision.score)||void 0,reason:typeof e.lastRoutingDecision.reason=="string"?yn(e.lastRoutingDecision.reason,200):void 0,ts:Number(e.lastRoutingDecision.ts)||Date.now()}:void 0,updatedAt:Number(e.updatedAt)||Date.now(),tasks:e.tasks&&typeof e.tasks=="object"?e.tasks:{},activeTaskId:typeof e.activeTaskId=="string"?e.activeTaskId:void 0,taskOrder:Array.isArray(e.taskOrder)?e.taskOrder:[]};if((Number(e.version)||1)<2&&r&&r.taskId){let u=ri.fromV1State(d),{tasks:b,activeTaskId:p,taskOrder:g}=u.toPersistedState();d.tasks=b,d.activeTaskId=p,d.taskOrder=g,u.shutdown()}return d}function qr(e,t){if(!e||typeof e!="object")return t;let n=typeof e.taskId=="string"&&e.taskId.trim()?e.taskId.trim():t.taskId,o=e.status==="ended"||e.status==="completed"||e.status==="cancelled"||e.status==="failed"||e.status==="running"?e.status:"running";return{taskId:n,status:o,startedAt:Number(e.startedAt)||t.startedAt,lastUserAt:Number(e.lastUserAt)||void 0,lastAssistantAt:Number(e.lastAssistantAt)||void 0,boundaryReason:typeof e.boundaryReason=="string"?yn(e.boundaryReason,120):t.boundaryReason,endedAt:Number(e.endedAt)||void 0}}function gk(e,t){return qr(e,t)}function Zs(e){if(!e)return;let t=So(e.pendingAskUser?.questions);return{trajectoryId:e.trajectoryId,taskBoundaryId:typeof e.taskBoundaryId=="string"?e.taskBoundaryId:void 0,rootUserInput:typeof e.rootUserInput=="string"?e.rootUserInput:void 0,seedChatLog:Do(e.seedChatLog),history:Array.isArray(e.history)?e.history.slice(-Nf).map(n=>pk(n)).filter(n=>!!n):[],plannerHistory:Si(e.plannerHistory,Lf),agentPrevSteps:Si(hk(e.agentPrevSteps),Df),pendingAskUser:t.length?{questions:t,source:e.pendingAskUser?.source==="planner"?"planner":"act",askedAt:Number(e.pendingAskUser?.askedAt)||Date.now(),boundaryId:typeof e.pendingAskUser?.boundaryId=="string"&&e.pendingAskUser.boundaryId.trim()?e.pendingAskUser.boundaryId.trim():void 0,...e.pendingAskUser?.stepRef&&Number.isFinite(Number(e.pendingAskUser.stepRef.stepIndex))&&Number(e.pendingAskUser.stepRef.stepIndex)>=0&&Number.isFinite(Number(e.pendingAskUser.stepRef.functionIndex))&&Number(e.pendingAskUser.stepRef.functionIndex)>=0?{stepRef:{stepIndex:Number(e.pendingAskUser.stepRef.stepIndex),functionIndex:Number(e.pendingAskUser.stepRef.functionIndex),...typeof e.pendingAskUser.stepRef.accTreeId=="string"&&e.pendingAskUser.stepRef.accTreeId.trim()?{accTreeId:e.pendingAskUser.stepRef.accTreeId.trim()}:{}}}:{}}:void 0,updatedAt:Number(e.updatedAt)||Date.now()}}function Qn(e){if(!Array.isArray(e))return[];let t=new Set,n=[];for(let o of e){let r=Number(o);!Number.isFinite(r)||r<=0||t.has(r)||(t.add(r),n.push(r))}return n}function Li(e,t){if(!e||typeof e!="object")return;let n=typeof e.boundaryId=="string"&&e.boundaryId.trim()?e.boundaryId.trim():typeof t=="string"&&t.trim()?t.trim():void 0;if(!n)return;let o=Number(e.seedTabId);if(!Number.isFinite(o)||o<=0)return;let r=Qn(e.touchedTabIds);return r.includes(o)||r.unshift(o),{boundaryId:n,seedTabId:o,touchedTabIds:r.slice(0,24),updatedAt:Number(e.updatedAt)||Date.now()}}function st(e){if(!e||typeof e!="object")return;let t=typeof e.id=="string"&&e.id.trim()?e.id.trim():void 0,n=typeof e.text=="string"?e.text.trim():"",o=typeof e.lastUserInputText=="string"&&e.lastUserInputText.trim()?e.lastUserInputText.trim():typeof ln=="string"&&ln.trim()?ln.trim():"Continue task",r=n||o,a=typeof e.taskBoundaryId=="string"&&e.taskBoundaryId.trim()?e.taskBoundaryId.trim():void 0;if(t)return{id:t,text:r,startedAt:Number(e.startedAt)||Date.now(),attempts:Math.max(0,Number(e.attempts)||0),autoResume:e.autoResume!==!1,taskBoundaryId:a,resumeRequired:e.resumeRequired===!0,resumeReason:e.resumeReason==="cross_host_navigation"||e.resumeReason==="agent_navigation"||e.resumeReason==="handoff"||e.resumeReason==="page_reload"?e.resumeReason:void 0}}function ZE(){return Ii(C?.stability?.maxPersistBytes,Tt.localPersistBytes)}function eI(e,t){let n={...e,uiMessages:Ro(e.uiMessages).slice(-zl),timeline:Ao(e.timeline).slice(-jl),workerState:Vt(e.workerState)};n.workerState&&(n.workerState={...n.workerState,history:Array.isArray(n.workerState.history)?n.workerState.history.slice(-Nf):[],plannerHistory:Si(n.workerState.plannerHistory,Lf),agentPrevSteps:Si(n.workerState.agentPrevSteps,Df)});let o="";try{o=JSON.stringify(n)}catch{return e}if(o.length<=t)return n;let r={...n,uiMessages:[],timeline:[],workerState:void 0};try{if(JSON.stringify(r).length<=t)return r}catch{return r}return{...r,pendingRun:void 0,activeTask:Sn("persist_trim")}}function vi(e){if(!(!l||!Tn))try{if(K){cu(),K.enforceMemoryCaps();let{tasks:o,activeTaskId:r,taskOrder:a}=K.toPersistedState();l.tasks=o,l.activeTaskId=r,l.taskOrder=a}let t=ZE();l=eI(l,t);let n=JSON.stringify({s:l.sessionId,p:l.pendingRun?.id,pa:l.pendingRun?.autoResume,t:l.activeTask?.status,te:l.taskEpoch,m:l.uiMessages?.length,tl:l.timeline?.length,o:l.uiOpen,h:l.uiHidden,e:l.executionMode,at:l.activeTaskId});if(n===If&&!e?.markCheckpointDirty)return;If=n,l.updatedAt=Date.now(),sr?.write(Tn,l),ar&&ar!==Tn&&(sr?.remove(ar),ar=null),!xi&&e?.markCheckpointDirty!==!1&&Et?.markDirty()}catch{}}var pa=!1,ha=!1,If="",ys=0,si=0,Sf=2e3,bk=2e3;function wi(e){vi({markCheckpointDirty:!0}),Et?.syncNow({push:!0,pull:!1}),Qe("checkpoint_state",{event:"critical_flush",reason:e})}function Oe(e){e?.markCheckpointDirty!==!1&&(ha=!0);let t=Date.now();if(!pa)si=t;else if(si>0&&t-si>=bk){pa=!1,si=0;let n=ha;ha=!1,ys=t,vi({markCheckpointDirty:n});return}pa||(pa=!0,setTimeout(()=>{pa=!1,si=0;let n=ha;ha=!1;let o=Date.now();if(o-ys<Sf){pa=!0,setTimeout(()=>{pa=!1,si=0,ys=Date.now(),vi({markCheckpointDirty:ha||n}),ha=!1},Sf-(o-ys));return}ys=o,vi({markCheckpointDirty:n})},0))}function tI(){if(mf)return;mf=!0,pf||(pf=!0,Ol(document,"visibilitychange",()=>{Lo()},{passive:!0})),Ol(window,"pagehide",()=>{if(cn&&C?.siteId)try{sessionStorage.setItem(`rover:sess:${C.siteId}`,JSON.stringify({t:cn,e:Vo}))}catch{}if(l?.pendingRun?.autoResume){let o=l.pendingRun.resumeReason||(Wo?"agent_navigation":"page_reload"),r=st({...l.pendingRun,resumeRequired:!0,resumeReason:o});if(l.pendingRun=r,r&&C?.siteId){let a=dr(l?.lastNavigationHandoff);vE(C.siteId,{runId:r.id,text:r.text,taskBoundaryId:r.taskBoundaryId||Re,resumeReason:o,handoffId:a?.handoffId,openIntent:l.uiOpen?"preserve_if_running":void 0,ts:Date.now()})}}let n=Of();L?.broadcastClosing(Wb(n)),l?.pendingRun&&L?.releaseWorkflowLock(l.pendingRun.id),vi(),ka(!0),Gf(),Et?.markDirty(),Et?.syncNow({push:!0,pull:!1}),Et?.stop(),L?.stop()},{capture:!0}),Ol(window,"pageshow",n=>{n.persisted&&(L&&(L.reloadFromStorage(),L.registerCurrentTab(window.location.href,document.title||void 0),L.claimLease(!1)),Mo=!1,_n=0,C&&su(C),Lo(!0))})}function nI(e="implicit"){if(l)return l.activeTask||(l.activeTask=Sn(e),l.taskEpoch=Math.max(1,Number(l.taskEpoch)||1)),l.activeTask}function Wr(e,t){if(!l)return;let n=l.activeTask?.status,o=Se(Re),r=tb({task:l.activeTask,taskEpoch:l.taskEpoch},e,{createTask:(a,i,s)=>Sn(a,i,s)});if(l.activeTask=r.task,l.taskEpoch=r.taskEpoch,r.rotateBoundary&&t?.rotateBoundary!==!1?(Re=No(),Zn({forceReset:!0,persist:!1})):Zn({persist:!1,appendSeed:!1}),r.clearPendingRun&&l.pendingRun&&Lt(void 0),r.clearWorkerState&&l.workerState&&(l.workerState=void 0,L?.setWorkerContext(void 0)),r.lifecycle==="terminal"&&(gt&&(clearTimeout(gt),gt=null),ec()),t?.syncShared!==!1&&L?.syncTask({...r.task},l.taskEpoch),t?.persist!==!1){let a=Se(Re);n!==r.task.status?wi("run_status_transition"):!!a&&a!==o?wi("task_boundary_transition"):Oe()}if(Lo(),sk(),K){let a=K.toPersistedState();l.tasks=a.tasks,l.activeTaskId=a.activeTaskId,l.taskOrder=a.taskOrder}return r.task}function Dr(){if(!K||!Q)return;cu();let e=K.listTasks(),t=K.getActiveTask()?.taskId;Q.setConversations(e.map(n=>({id:n.taskId,summary:n.rootUserInput||n.taskId.slice(0,8),status:n.state,updatedAt:n.endedAt||n.lastAssistantAt||n.lastUserAt||n.startedAt,isActive:n.taskId===t}))),t&&Q.setActiveConversationId(t)}function Ri(){if(K)return K.getActiveTask()}function oI(e=l,t){let n=String(t||e?.activeTaskId||e?.activeTask?.taskId||"").trim()||void 0,o=Se(xa(e)),r=String(st(e?.pendingRun)?.id||"").trim()||void 0;return{taskId:n,boundaryId:o,runId:r}}function rI(){let e=Do(Ri()?.seedChatLog);return e.length?e:Do(l?.workerState?.seedChatLog)}function aI(e,t){let n=t||Sn("task_record_sync");return qr({taskId:e.taskId,status:Kg(e.state),startedAt:e.startedAt,lastUserAt:e.lastUserAt,lastAssistantAt:e.lastAssistantAt,boundaryReason:e.blockReason||n.boundaryReason,endedAt:e.endedAt},n)}function kk(e,t){if(!l)return;let n=Se(e.boundaryId)||Se(e.pendingRun?.taskBoundaryId)||Se(e.workerState?.taskBoundaryId)||Hn()||No(),o=Do(e.seedChatLog??e.workerState?.seedChatLog),r=Eo(Vt(e.workerState||o.length||e.rootUserInput?{...e.workerState||{},...e.rootUserInput?{rootUserInput:e.rootUserInput}:{},...o.length?{seedChatLog:o}:{},taskBoundaryId:e.workerState?.taskBoundaryId||n}:void 0),n),a=st(e.pendingRun),i=Js(e.transientStatus,{runId:a?.id,taskId:e.taskId});l.activeTaskId=e.taskId,l.activeTask=aI(e,l.activeTask),l.uiMessages=Ro(e.uiMessages),l.timeline=Ao(e.timeline),l.workerState=r,l.pendingRun=a,l.taskTabScope=Li(e.tabScope,n),l.uiStatus=i?.text,l.transientStatus=i,Re=n,e.rootUserInput?.trim()&&(ln=e.rootUserInput.trim()),t?.replayUi!==!1&&(Yf(),l.uiMessages.length&&uu(l.uiMessages),l.timeline.length&&du(l.timeline),fu(l),Ai(),Q?.setRunning(!!l.pendingRun&&l.activeTask?.status==="running"),e.state==="paused"?Q?.showPausedTaskBanner({taskId:e.taskId,rootUserInput:e.rootUserInput||"Task"}):Q?.hidePausedTaskBanner())}function yk(e){let t=Do(e),n=Ri();n&&K&&K.updateTask(n.taskId,o=>({...o,seedChatLog:t})),l?.workerState&&(l.workerState=Vt({...l.workerState,seedChatLog:t,updatedAt:Date.now()}),L?.setWorkerContext(Zs(l.workerState)))}function cu(){if(!l||!K)return;let e=K.getActiveTask();if(!e)return;let t=ds(l.activeTask?.status||"running",l.activeTask?.boundaryReason),n=Ro(l.uiMessages),o=Ao(l.timeline),r=[...n].reverse().find(u=>u.role==="assistant"),a=Vt(l.workerState),i=st(l.pendingRun),s=Se(i?.taskBoundaryId)||Se(a?.taskBoundaryId)||Se(e.boundaryId)||Hn()||No(),c=Li(l.taskTabScope,s),d=Js(l.transientStatus,{runId:i?.id,taskId:e.taskId}),f=Do(e.seedChatLog?.length?e.seedChatLog:a?.seedChatLog);K.updateTask(e.taskId,u=>({...u,state:t,boundaryId:s,startedAt:Number(l?.activeTask?.startedAt)||u.startedAt,endedAt:Number(l?.activeTask?.endedAt)||void 0,lastUserAt:Number(l?.activeTask?.lastUserAt)||u.lastUserAt,lastAssistantAt:Number(l?.activeTask?.lastAssistantAt)||u.lastAssistantAt,uiMessages:n,timeline:o,workerState:a,pendingRun:i,tabScope:c,rootUserInput:a?.rootUserInput||i?.text||u.rootUserInput||ln,summary:r?.text||u.summary,seedChatLog:f,transientStatus:d}))}function Xf(e){if(!l||!K)return;let t=oI(l,e?.preferredTaskId),n=ab(K.listTasks(),t);if(!n&&e?.allowCreate!==!1){let r=t.boundaryId||No(),a=ds(l.activeTask?.status||"running",l.activeTask?.boundaryReason);n=K.createTask("adopted_continuation",{taskId:t.taskId,state:a,boundaryId:r,startedAt:Number(l.activeTask?.startedAt)||Date.now(),endedAt:Number(l.activeTask?.endedAt)||void 0,lastUserAt:Number(l.activeTask?.lastUserAt)||void 0,lastAssistantAt:Number(l.activeTask?.lastAssistantAt)||void 0,rootUserInput:Vt(l.workerState)?.rootUserInput||st(l.pendingRun)?.text||ln,seedChatLog:Do(l.workerState?.seedChatLog),tabIds:Li(l.taskTabScope,r)?.touchedTabIds||[]})}if(!n)return;e?.makeActive!==!1&&K.getActiveTaskId()!==n.taskId&&K.switchActiveTask(n.taskId),l.activeTaskId=K.getActiveTaskId()||n.taskId,l.activeTask=qr({...l.activeTask||Sn("adopted_continuation"),taskId:l.activeTaskId},Sn("adopted_continuation",Date.now(),l.activeTaskId)),cu();let o=K.toPersistedState();return l.tasks=o.tasks,l.activeTaskId=o.activeTaskId,l.taskOrder=o.taskOrder,Dr(),K.getTask(l.activeTaskId||n.taskId)}function iI(e,t=Date.now()){if(!l||e==="system")return;let n=nI("implicit");n&&n.status==="running"&&(e==="user"&&(n.lastUserAt=t),e==="assistant"&&(n.lastAssistantAt=t))}var of="[Rover]";function sI(e){if(!(C?.ui?.tabIndicator?.titlePrefix!==!1))return;let n=e||"[Rover: Running]",o=Ns;o||(Ms=document.title),Ns=!0,of=n;let r=o?document.title.replace(/^\[Rover[^\]]*\]\s*/,"")||Ms||"":document.title;if(document.title=`${n} ${r}`,!ki){let a=document.querySelector("title");a&&(ki=new MutationObserver(()=>{if(Ns&&!document.title.startsWith(of)){let i=document.title.replace(/^\[Rover[^\]]*\]\s*/,"");document.title=`${of} ${i}`}}),ki.observe(a,{childList:!0,characterData:!0,subtree:!0}))}C?.ui?.tabIndicator?.faviconBadge===!0&&db()}function lu(){Ns&&(Ns=!1,ki&&(ki.disconnect(),ki=null),Ms!==void 0?(document.title=Ms,Ms=void 0):document.title.startsWith("[Rover] ")&&(document.title=document.title.slice(8)),fb())}function vk(e="worker_task_active",t=Date.now()){if(K){let n=K.getActiveTask();n&&K.dispatch(n.taskId,{type:"START",reason:e})}Wr({type:"ensure_running",reason:e,at:t}),sI()}function cI(e="worker_task_complete",t=Date.now()){if(K){let n=K.getActiveTask();n&&K.dispatch(n.taskId,{type:"COMPLETE"})}Wr({type:"terminal",terminal:"completed",reason:e,at:t}),lu()}function Ml(e="worker_task_failed",t=Date.now()){if(K){let n=K.getActiveTask();n&&K.dispatch(n.taskId,{type:"FAIL",error:e})}Wr({type:"terminal",terminal:"failed",reason:e,at:t}),lu()}function lI(e="worker_task_ended",t=Date.now()){if(K){let n=K.getActiveTask();n&&K.dispatch(n.taskId,{type:"CANCEL",reason:"ended"})}Wr({type:"terminal",terminal:"ended",reason:e,at:t}),lu()}function wk(e="worker_task_cancelled",t=Date.now()){if(K){let n=K.getActiveTask();n&&K.dispatch(n.taskId,{type:"CANCEL",reason:e})}Wr({type:"terminal",terminal:"cancelled",reason:e,at:t}),lu()}function Fn(){Pr=null,Q?.setTaskSuggestion({visible:!1})}function uI(e){let t=String(e?.id||"").trim();if(!t||Xo())return!1;let n=String(e?.text||"").trim()||"Continue task";return Pr?.kind==="resume_run"&&Pr.runId===t?!1:(Pr={kind:"resume_run",runId:t,text:n,createdAt:Date.now()},Q?.setTaskSuggestion({visible:!0,text:"Resume your interrupted task or cancel it?",primaryLabel:"Resume",secondaryLabel:"Cancel"}),!0)}function ec(){kn=!1,En=!1,Ta(),C?.siteId&&(ls(C.siteId),Xb(C.siteId)),Et?.markDirty(),Et?.syncNow({push:!0,pull:!1})}function Yf(){Q?.clearMessages(),Q?.clearTimeline(),Q?.setQuestionPrompt(void 0),Fn()}function Qf(e){if(!l)return;gt&&(clearTimeout(gt),gt=null),Mo=!1,_n=0,kn=!1,En=!1,It&&(clearTimeout(It),It=null);let t=st(l.pendingRun),n=String(e.runId||t?.id||"").trim();n&&(jr(n),L?.releaseWorkflowLock(n),Jf(n)||Hr(n,e.cancelReason||e.reason,{attemptImmediately:!0})),Lt(void 0),L?.setActiveRun(void 0),Q?.setRunning(!1),Q?.setQuestionPrompt(void 0),Fn(),l.activeTask?.status==="running"?wk(e.reason):ec(),Nt(void 0),Qe("status",{event:"local_run_abandoned",reason:e.reason,runId:n||void 0}),e.timelineTitle&&dt({kind:e.timelineStatus==="error"?"error":"info",title:e.timelineTitle,detail:e.timelineDetail,status:e.timelineStatus||"info"}),e.emitError?.message&&Ve("error",{message:e.emitError.message,scope:e.emitError.scope||"resume",code:e.emitError.code,runId:n||void 0})}function dI(e){if(e)return Se(e.pendingAskUser?.boundaryId||e.taskBoundaryId)}function Eo(e,t){if(!e)return;let n=Se(t);if(!n)return e;let o=Se(e.taskBoundaryId);if(o&&o!==n)return;let r=Se(e.pendingAskUser?.boundaryId);if(!(r&&r!==n))return e}function Ai(){if(l?.activeTask?.status!=="running"){ci="",Q?.setQuestionPrompt(void 0);return}let e=Hn(),t=dI(l?.workerState);if(e&&t&&t!==Se(e)){ci="",Q?.setQuestionPrompt(void 0);return}let n=So(l?.workerState?.pendingAskUser?.questions);if(!n.length){ci="",Jn&&(Jn.lastNeedsInputSignature=void 0),Q?.setQuestionPrompt(void 0);return}let o=`${Se(t||e)||""}:${n.map(r=>`${r.key}:${r.query}`).join("|")}`;o!==ci&&(ci=o,wi("question_prompt_boundary")),Q?.setQuestionPrompt({questions:n}),Bk(n)}function fI(){let e=l?.pendingRun;if(!e)return!1;if(!L)return!0;let t=L?.getState()?.activeRun;if(t?.runId&&t.runId===e.id||t?.runtimeId&&t.runtimeId!==it)return!0;let n=Date.now()-Number(e.startedAt||0);return n>=0&&n<=__}function mI(){if(!l?.pendingRun||fI()||!L)return;let e=l.pendingRun;if(e.resumeRequired===!0&&wl(l.activeTask?.status))return;let t=String(he?.getActiveRunId()||"").trim();if(t&&t===e.id||Xo())return;let n=Date.now()-Number(e.startedAt||0);!Number.isFinite(n)||n<E_||(jr(e.id),Hr(e.id,"stale_pending_cleanup",{attemptImmediately:!0}),Lt(void 0),L?.releaseWorkflowLock(e.id),L?.setActiveRun(void 0),gt&&(clearTimeout(gt),gt=null))}function In(e,t,n=!0,o){let r=String(t||""),a=Fr(o?.blocks);if(!r&&(!a||a.length===0))return;let i={id:o?.id||ur("msg"),role:e,text:r,blocks:a,ts:o?.ts||Date.now(),sourceRuntimeId:o?.sourceRuntimeId};return Q?.addMessage(i.role,i.text,{blocks:i.blocks}),l&&n&&(l.uiMessages.push(i),l.uiMessages.length>zl&&(l.uiMessages=l.uiMessages.slice(-zl)),iI(i.role,i.ts),Oe()),L&&o?.publishShared!==!1&&(L.appendMessage({id:i.id,role:i.role,text:i.text,blocks:i.blocks,ts:i.ts}),L.markTaskActivity(i.role,i.ts)),i}function uu(e){for(let t of e)In(t.role,t.text,!1,{id:t.id,ts:t.ts,sourceRuntimeId:t.sourceRuntimeId,publishShared:!1,blocks:t.blocks})}function dt(e,t=!0){let n={id:e.id||ur("timeline"),kind:e.kind,title:yn(e.title,400),detail:e.detail?String(e.detail):void 0,detailBlocks:Fr(e.detailBlocks),status:e.status,ts:e.ts||Date.now(),sourceRuntimeId:e.sourceRuntimeId};return Q?.addTimelineEvent(n),l&&t&&(l.timeline.push(n),l.timeline.length>jl&&(l.timeline=l.timeline.slice(-jl)),Oe({markCheckpointDirty:!1})),L&&e.publishShared!==!1&&L.appendTimeline({id:n.id,kind:n.kind,title:n.title,detail:n.detail,detailBlocks:n.detailBlocks,status:n.status,ts:n.ts}),n}function du(e){Q?.clearTimeline();for(let t of e)dt({id:t.id,kind:t.kind,title:t.title,detail:t.detail,detailBlocks:t.detailBlocks,status:t.status,ts:t.ts,sourceRuntimeId:t.sourceRuntimeId,publishShared:!1},!1)}function xk(e,t){if(!e?.text||t?.taskStatus&&t.taskStatus!=="running")return;let n=String(t?.activeRunId||"").trim(),o=String(e.runId||"").trim(),r=String(t?.activeTaskId||"").trim(),a=String(e.taskId||"").trim();if(!(o&&!n)&&!(o&&n&&o!==n)&&!(a&&r&&a!==r))return e.text}function Tk(e=l){let t=L?.getState();return ib({localPendingRunId:e?.pendingRun?.id,sharedActiveRunId:t?.activeRun?.runId,sharedTaskId:t?.task?.taskId||t?.activeTaskId,activeTaskId:e?.activeTask?.taskId||e?.activeTaskId})}function Nt(e,t){let n=Js(e?{text:e,runId:t?.runId||l?.pendingRun?.id,taskId:t?.taskId||l?.activeTask?.taskId||Ri()?.taskId,stage:t?.stage,ts:Date.now()}:void 0,{runId:t?.runId||l?.pendingRun?.id,taskId:t?.taskId||l?.activeTask?.taskId||Ri()?.taskId}),o=xk(n,{activeRunId:Tk(l),activeTaskId:l?.activeTask?.taskId,taskStatus:l?.activeTask?.status});o?Q?.setStatus(o):Q?.setStatus?.(void 0),l&&(l.uiStatus=n?.text,l.transientStatus=n,cu(),Oe({markCheckpointDirty:!1})),L&&t?.publishShared!==!1&&L.setStatus(n)}function fu(e=l){let t=xk(e?.transientStatus,{activeRunId:Tk(e),activeTaskId:e?.activeTask?.taskId,taskStatus:e?.activeTask?.status});t?Q?.setStatus(t):Q?.setStatus?.(void 0)}function Ea(e,t){let n=Qs(e);bt=n;let o=t?.localLogicalTabId??L?.getLocalLogicalTabId(),r=t?.activeLogicalTabId??L?.getActiveLogicalTabId(),a=t?.holderRuntimeId??L?.getCurrentHolderRuntimeId(),i=n==="controller"&&!!(C?.allowActions??!0);at?.setAllowActions(i),at?.setActionGateContext?.({mode:n,controllerRuntimeId:a,activeLogicalTabId:r,localLogicalTabId:o,reason:Ys(n,i)}),l&&(l.executionMode=n,Oe()),Lo(),Q?.setExecutionMode(n,{controllerRuntimeId:a,localLogicalTabId:o,activeLogicalTabId:r,canTakeControl:!0,canComposeInObserver:dk(),note:fk(n)}),Ve("mode_change",{mode:n,rawMode:e,...t})}function Lt(e){l&&(e?l.pendingRun=st({...e,taskBoundaryId:e.taskBoundaryId||Re}):(l.pendingRun=void 0,l.uiStatus=void 0,l.transientStatus=void 0,Br(void 0),Uf(l)||Ta()),Xs(l),Lo(),Oe())}function rf(e){l&&(l.lastNavigationHandoff=dr(e),Oe())}function mu(){let e=Number(L?.getLocalLogicalTabId()||L?.getActiveLogicalTabId()||1);return!Number.isFinite(e)||e<=0?1:e}function Zn(e){if(!l)return;let t=Se(Re)||No();Re||(Re=t);let n=mu(),o=e?.appendSeed!==!1,r=Li(l.taskTabScope,t);if(!!e?.forceReset||!r||Se(r.boundaryId)!==t){let c={boundaryId:t,seedTabId:n,touchedTabIds:[n],updatedAt:Date.now()};return l.taskTabScope=c,e?.persist!==!1&&Oe(),c}let i=Qn(r.touchedTabIds);o&&!i.includes(n)&&i.unshift(n);let s={...r,seedTabId:Number.isFinite(Number(r.seedTabId))&&Number(r.seedTabId)>0?Number(r.seedTabId):n,touchedTabIds:i.slice(0,24),updatedAt:Date.now()};return l.taskTabScope=s,e?.persist&&Oe(),s}function _k(e,t){if(!l)return;let n=Zn({persist:!1});if(!n)return;let o=Qn([n.seedTabId,...n.touchedTabIds||[],...e]),r={...n,touchedTabIds:o.slice(0,24),updatedAt:Date.now()};return l.taskTabScope=r,t?.persist!==!1&&Oe(),r}function pI(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(e[n]!==t[n])return!1;return!0}function Ia(e){if(!l)return;let t=Zn({persist:!1,appendSeed:!1});if(!t||!L)return t;let n=Date.now(),o=Array.isArray(L.getState()?.tabs)?L.getState().tabs:[],r=new Set;for(let y of o){let E=Number(y?.logicalTabId);if(!Number.isFinite(E)||E<=0)continue;let R=Math.max(Number(y?.updatedAt)||0,Number(y?.openedAt)||0,Number(y?.detachedAt)||0),O=n-R;if(y.runtimeId){r.add(E);continue}if(y.external){O<=F_&&r.add(E);continue}if(y.detachedReason==="navigation_handoff"){O<=z_&&r.add(E);continue}if(y.detachedReason==="opened_pending_attach"){O<=j_&&r.add(E);continue}}let a=Number(L.getLocalLogicalTabId()),i=Number(L.getActiveLogicalTabId()),s=Number(t.seedTabId)>0?Number(t.seedTabId):mu();Number.isFinite(a)&&a>0&&r.add(a),Number.isFinite(i)&&i>0&&r.add(i),r.size===0&&Number.isFinite(s)&&s>0&&r.add(s);let c=Qn(t.touchedTabIds),d=c.filter(y=>r.has(y)),f=r.has(t.seedTabId)?t.seedTabId:Number.isFinite(a)&&a>0?a:Number.isFinite(i)&&i>0?i:s;d.includes(f)||d.unshift(f);let u=Qn(d).slice(0,24);if(!(f!==t.seedTabId||!pI(u,c)))return t;let p=c.filter(y=>!u.includes(y)),g={...t,seedTabId:f,touchedTabIds:u.length?u:[f],updatedAt:Date.now()};return l.taskTabScope=g,e?.persist!==!1&&Oe(),Qe("status",{event:"scoped_tab_reconciled",removedTabIds:p,scopedTabIds:g.touchedTabIds,seedTabId:g.seedTabId}),g}function Ds(){let e=Ia({persist:!1})||Zn({persist:!1,appendSeed:!1});if(!e)return[mu()];let t=Qn(e.touchedTabIds);return t.length?t:[e.seedTabId]}function Ek(){let e=Ia({persist:!1})||Zn({persist:!1,appendSeed:!1});if(e)return{boundaryId:e.boundaryId,seedTabId:e.seedTabId,touchedTabIds:Qn(e.touchedTabIds)}}function hI(e,t){let n=wa,o=Ko,r=_i,a,i=t;if(K){let d=K.listTasks(),f=K.getActiveTask()?.taskId,u=L?.getLocalLogicalTabId(),b=d.filter(y=>y.taskId!==f&&(y.state==="completed"||y.state==="cancelled")&&!!y.endedAt).sort((y,E)=>(Number(E.endedAt)||0)-(Number(y.endedAt)||0)),g=(Number.isFinite(Number(u))&&Number(u)>0?b.filter(y=>Array.isArray(y.tabIds)&&y.tabIds.includes(Number(u))):b)[0];g&&(n=g.rootUserInput||n,o=g.summary||o,r=g.endedAt||r,a=g.uiMessages.map(y=>({role:y.role,text:y.text,ts:y.ts})),i=g.state)}let s=C?.task?.followup,c=bb({mode:s?.mode,previousTaskStatus:i,previousTaskMessages:a,previousTaskUserInput:n,previousTaskAssistantOutput:o,previousTaskCompletedAt:r,currentPrompt:e,ttlMs:jf(s?.ttlMs),minLexicalOverlap:qf(s?.minLexicalOverlap)});return{chatLog:c.chatLog,reason:c.reason,overlap:c.overlap}}var jo=new Map,Rf=sE;async function gI(e){if(jo.has(e)){let r=jo.get(e);if(Date.now()-r.ts<Rf)return;jo.delete(e)}let t=Date.now();for(let[r,a]of jo)t-a.ts>=Rf&&jo.delete(r);let n=l?.pendingRun?.id;if(!n||!he)return;let o=await he.fetchExternalContext({runId:n,url:e,source:"direct_url"});o&&(jo.set(e,{data:o,ts:Date.now()}),Hb(jo,iE))}function bI(e){let t=jo.get(e);if(t){if(Date.now()-t.ts>=Rf){jo.delete(e);return}return t.data}}function kI(e){let t=String(e||"").trim();return t===bf.read||t===bf.act}function vs(e){let t=String(e.code||"EXTERNAL_CONTEXT_FAILED").trim()||"EXTERNAL_CONTEXT_FAILED",n=String(e.message||"External context request failed").trim()||"External context request failed";return{success:!1,error:`${t}: ${n}`,allowFallback:e.retryable!==!1,output:{success:!1,error:{code:t,message:n,retryable:e.retryable===!0,status:Number.isFinite(Number(e.status))?Number(e.status):void 0},details:e.details}}}async function yI(e){let t=String(e.call?.name||"").trim(),n=e.call?.args&&typeof e.call.args=="object"?e.call.args:{},o=t===bf.act?"act":"read_context",r=Number(n.tab_id),a=Number.isFinite(r)&&r>0?Math.trunc(r):Number.isFinite(Number(e.routeTabId))&&Number(e.routeTabId)>0?Math.trunc(Number(e.routeTabId)):void 0,i=L?.listTabs({scope:"all"})||[],s=a?i.find(p=>p.logicalTabId===a):void 0,d=String(n.url||"").trim()||String(s?.url||"").trim(),f=String(n.message||n.user_input||"").trim()||void 0,u=String(n.source||"").trim().toLowerCase()==="google_search"?"google_search":"direct_url";if(!d)return vs({code:"MISSING_URL",message:"External context tools require a target url or tab with a url.",retryable:!1});if(!he)return vs({code:"RUNTIME_UNAVAILABLE",message:"Rover server runtime is not initialized.",retryable:!0});let b=String(l?.pendingRun?.id||he.getActiveRunId()||Ks||"").trim()||void 0;if(!b)return vs({code:"NO_ACTIVE_RUN",message:"External context tools can only run during an active run.",retryable:!1});try{let p=bI(d);if(p)return p;let g=await he.fetchExternalContext({runId:b,tabId:a,url:d,intent:o,message:f,source:u});if(!g)return vs({code:"EMPTY_RESPONSE",message:"Server returned no external context response.",retryable:!0});let E=(g.pageData&&typeof g.pageData=="object"?g.pageData:void 0)||g;return{success:!0,output:{...E,metadata:{...E&&typeof E=="object"?E.metadata||{}:{},external:!0,accessMode:"external_scraped",logicalTabId:a,sourceTool:t},intent:o}}}catch(p){let g=String(p?.code||"").trim().toUpperCase()||"EXTERNAL_CONTEXT_FAILED",y=Number(p?.status),E=y>=500||g==="STALE_SEQ"||g==="STALE_EPOCH";return vs({code:g,message:String(p?.message||"External context request failed"),retryable:E,status:Number.isFinite(y)?y:void 0,details:p?.details})}}function Sa(e){let t=Ds();return{taskBoundaryId:Re,taskTabScope:Ek(),scopedTabIds:t,...e||{}}}var Rb="";function co(e){if(!qe)return;let t=Sa(e),n=JSON.stringify(t);n!==Rb&&(Rb=n,qe.postMessage({type:"update_config",config:t}))}function Ik(e,t){let n=String(e||"").trim();if(!n||!qe)return;if(bt==="observer"){if(Xo()){In("system","This tab is read-only while another tab is actively running Rover.",!0),dt({kind:"info",title:"Observer mode",detail:"Input is disabled while the active run is controlled by another tab.",status:"info"});return}if(!(L?.requestControl()??!1)){In("system","Unable to take control right now because another tab is still running Rover actions.",!0),dt({kind:"info",title:"Observer mode",detail:"Action execution is currently owned by another tab runtime.",status:"info"});return}let g=L?.getLocalLogicalTabId(),y=L?.getActiveLogicalTabId(),E=L?.getCurrentHolderRuntimeId()||it;Ea("controller",{localLogicalTabId:g,activeLogicalTabId:y,holderRuntimeId:E});let R=!!(C?.allowActions??!0);at?.setAllowActions(R),at?.setActionGateContext?.({mode:"controller",controllerRuntimeId:E,activeLogicalTabId:y,localLogicalTabId:g,reason:Ys("controller",R)})}let o=t?.runId||crypto.randomUUID(),r=!!t?.resume,a=t?.appendUserMessage!==!1,s=(t?.askUserAnswers?Jl(o):void 0)||n;xf(o),a&&In("user",n,!0);let c=l?.pendingRun?.id===o?l.pendingRun.attempts:0,d=l?.pendingRun?.id===o&&l.pendingRun.taskBoundaryId||Re;_k([mu()],{persist:!0});let f=Ds(),u=Do(Array.isArray(t?.seedChatLog)?t.seedChatLog:rI());Wo=!1,Lt({id:o,text:s,startedAt:Date.now(),attempts:r?c+1:0,autoResume:t?.autoResume!==!1,taskBoundaryId:d,resumeRequired:!1,resumeReason:void 0}),vk(r?"worker_task_resumed":"worker_task_active"),ln=s,l&&(l.workerState=Vt({...l.workerState||{},taskBoundaryId:d,rootUserInput:l.workerState?.rootUserInput||s,seedChatLog:u,history:l.workerState?.history||[],plannerHistory:l.workerState?.plannerHistory||[],agentPrevSteps:l.workerState?.agentPrevSteps||[],updatedAt:Date.now()}),L?.setWorkerContext(Zs(l.workerState))),yk(u),L?.acquireWorkflowLock(o),L?.setActiveRun({runId:o,text:s}),qe.postMessage({type:"run",text:n,runId:o,trajectoryId:l?.workerState?.trajectoryId,resume:r,preserveHistory:!!t?.preserveHistory,seedChatLog:u,routing:t?.routing,askUserAnswers:t?.askUserAnswers,scopedTabIds:f,taskTabScope:Ek()}),It&&clearTimeout(It);let b=o;It=setTimeout(()=>{l?.pendingRun?.id===b&&(Qf({reason:"run_timeout_terminal",statusText:"Task timed out.",runId:b,cancelReason:"run_timeout_terminal",timelineTitle:"Run timed out",timelineDetail:"Task timed out after 5 minutes with no response.",timelineStatus:"error",emitError:{message:"Run safety timeout",scope:"run_timeout",code:"RUN_TIMEOUT"}}),In("system","Task timed out after 5 minutes with no response.",!0)),It=null},5*6e4)}async function vI(e,t){let n=FE(e,t?.askUserAnswers);if(!n)return;mI();let o=l?.activeTask?.status,r=So(l?.workerState?.pendingAskUser?.questions).length,a=l?.workerState?.pendingAskUser?.boundaryId,i=hb({startNewTask:!!t?.startNewTask,taskStatus:o,pendingAskUserQuestionCount:r,hasAskUserAnswers:!!t?.askUserAnswers,pendingAskUserBoundaryId:a,currentTaskBoundaryId:Re}),s=!i,c=s?t?.continueRunId||l?.pendingRun?.id||he?.getActiveRunId():void 0,d=i?hI(n,o):{reason:"mode_disabled",overlap:0},f=i?await uE({userText:n,isFreshTask:!0,pageUrl:window.location.href,taskId:String(l?.activeTask?.taskId||"").trim()||void 0,taskBoundaryId:Se(Re),visitorId:Ft,visitor:To}):[],u=Do([...f,...d.chatLog||[]]);if(Qe("status",{event:"task_boundary_decision",startFreshTask:i,askUserContinuation:s,pendingAskUserQuestionCount:r,activeTaskStatus:o||"none"}),Qe("status",{event:"followup_chat_cue",attached:u.length>0,reason:d.reason,overlap:d.overlap}),L?.pruneTabs(i?{dropRuntimeDetached:!0,keepOnlyActiveLiveTab:!0,keepRecentExternalPlaceholders:!0}:{dropRuntimeDetached:!0}),i){let g=!!l?.pendingRun,y=t?.reason||(o==="completed"?"auto_after_task_complete":o==="running"?"auto_new_prompt_boundary":"auto_after_task_end");if(Qe("status",{event:"task_boundary_reset",reason:y,hadActiveRun:g}),K&&o==="running"){let E=K.getActiveTask();E&&(E.uiMessages=l?.uiMessages||[],E.timeline=l?.timeline||[],E.rootUserInput=E.rootUserInput||ln)}if(ac({reason:y,clearUi:!0}),K){let E=K.getActiveTask();E&&(E.rootUserInput=n,E.seedChatLog=u),Dr()}g&&he&&await new Promise(E=>setTimeout(E,50))}Fn();let b=c,p=t?.routing;if(he&&C)try{let g=await he.submitRunInput({message:n,clientEventId:crypto.randomUUID(),continueRun:s,forceNewRun:i,runId:s?c:void 0,requestedMode:t?.routing||C.taskRouting?.mode||"act"});if(!g)throw new Error("Server run/input returned no data; run was not accepted.");Number.isFinite(Number(g.epoch||g.currentEpoch))&&(ir=Math.max(1,Number(g.epoch||g.currentEpoch)));let y=typeof g.runId=="string"&&g.runId.trim()?g.runId.trim():"";if(!y){let E=String(g?.conflict?.type||"").trim();if(E==="active_run_exists"&&he&&i){let R=g?.conflict?.runId||g.runId;if(R){await he.controlRun({action:"cancel",runId:R,reason:"stale_run_cleanup"});let O=await he.submitRunInput({message:n,clientEventId:crypto.randomUUID(),continueRun:!1,forceNewRun:!0,requestedMode:t?.routing||C.taskRouting?.mode||"act"});O?.runId&&(b=O.runId.trim(),Br(b),(O.acceptedMode==="act"||O.acceptedMode==="planner")&&(p=O.acceptedMode))}}if(!b){let R=String(g.decisionReason||E||g.message||"run_not_accepted").trim();throw new Error(`Server did not accept this run (${R}).`)}}b||(b=y),Br(b),(g.acceptedMode==="act"||g.acceptedMode==="planner")&&(p=g.acceptedMode)}catch(g){let y=String(g?.message||"server run submission failed");Br(void 0),dt({kind:"error",title:"Run start failed",detail:y,status:"error"}),In("system",`Unable to start task: ${y}`,!0),Nt(`Task could not start (${y})`),Ve("error",{message:y,scope:"run_input"});return}Ik(n,{runId:b,appendUserMessage:!0,resume:!1,preserveHistory:!1,seedChatLog:u,autoResume:!0,routing:p,askUserAnswers:t?.askUserAnswers})}function Io(e,t){vI(e,t)}function ws(e,t){Qf({reason:e,statusText:t||e,cancelReason:e})}function Jf(e){let t=String(e||"").trim();if(!t)return!1;let n=L?.getWorkflowLockInfo();if(!n?.locked||!n.holderRuntimeId||n.holderRuntimeId===it||n.runId!==t)return!1;let o=L?.listTabs({scope:"all"}).find(r=>r.runtimeId===n.holderRuntimeId);return o?Number(o.updatedAt)>Date.now()-5e3:!1}function xs(e=450,t){gt||(gt=setTimeout(()=>{gt=null,Go(t)},Math.max(120,e)))}function wI(e,t){Mo=!0,kn=!1,En=!1,Fn(),Nt("Resuming interrupted task...");let n=e.text?.trim()||l?.workerState?.rootUserInput?.trim()||ln?.trim()||"Continue the current task on this page";Qe("status",{event:"resume_dispatch",source:t,runId:e.id}),Ik(n,{runId:e.id,resume:!0,appendUserMessage:!1,autoResume:!0})}function Go(e){if(!l?.pendingRun){gt&&(clearTimeout(gt),gt=null),_n=0;return}let t=st(l.pendingRun);if(!t||(bt==="observer"&&!Xo()&&Ea("controller",{localLogicalTabId:L?.getLocalLogicalTabId(),activeLogicalTabId:L?.getActiveLogicalTabId(),holderRuntimeId:L?.getCurrentHolderRuntimeId()}),bt==="observer")||Mo)return;if(!lo||!qe){xs(250,e);return}let n=l.activeTask?.status;if(Vd(n)){ws("terminal_task","Previous task already ended.");return}if(!wl(n)||!t.autoResume)return;if(Ff(C?.task?.resume?.mode)!=="crash_only"){ws("unsupported_resume_mode","Previous task dismissed.");return}if(t.resumeRequired!==!0){let d=Date.now()-Number(t.startedAt||0),f=Kl(C?.task?.resume?.ttlMs);if(Number.isFinite(d)&&d>=0&&d<f)t.resumeRequired=!0,t.resumeReason=t.resumeReason||"worker_interrupted",Lt(t);else{gt&&(clearTimeout(gt),gt=null),_n=0,Fn();return}}let r=Hf(C?.task?.autoResumePolicy),a=Jf(t.id),i=Yg({policy:r,resumeRequired:t.resumeRequired===!0,hasLiveRemoteController:a});if(i==="prompt_resume"&&(t.resumeReason==="agent_navigation"||t.resumeReason==="cross_host_navigation"||t.resumeReason==="worker_interrupted"||t.resumeReason==="page_reload")&&(i="auto_resume"),e?.overridePolicyAction&&i!=="defer_remote_owner"&&i!=="noop"&&(i=e.overridePolicyAction),i==="defer_remote_owner"){xs(650,e);return}if(i==="cancel_resume"){ws("resume_policy_never","Previous task cancelled by resume policy."),dt({kind:"info",title:"Resume cancelled",detail:"Auto-resume policy is set to never, so the interrupted run was cancelled.",status:"info"});return}if(!En&&mE(t)&&(En=!0),!En&&(t.resumeReason==="worker_interrupted"||t.resumeReason==="agent_navigation"||t.resumeReason==="page_reload")&&(En=!0),!En&&pE(t)){xs(320,e);return}if(En||(En=!0),a){xs(650,e);return}if(gt&&(clearTimeout(gt),gt=null),!Ti&&!e?.overridePolicyAction){if(_n+=1,Qe("status",{event:"resume_blocked_no_session",reason:"session_not_ready",attempt:_n,runId:t.id}),_n<x_){Nt("Preparing secure resume...");let d=Math.min(2e3,240+_n*160);xs(d,e);return}_n=0,kn=!1,Ti=!0}_n=0;let s=Kl(C?.task?.resume?.ttlMs),c=Date.now()-Number(t.startedAt||0);if(!Number.isFinite(c)||c<0||c>s){ws("resume_ttl_expired","Previous task expired.");return}if(t.attempts>=b_){ws("resume_attempt_limit","Previous task dismissed.");return}if(i==="prompt_resume"){uI(t)&&(Nt("Resume available. Choose Resume or Cancel."),Qe("status",{event:"resume_prompt_shown",runId:t.id}));return}wI(t,e?.overridePolicyAction==="auto_resume"?"manual_resume_confirm":`policy_${r}`)}function Sk(e){if(!Yd({localUpdatedAt:Number(e.localState.updatedAt)||0,incomingUpdatedAt:Number(e.incomingState.updatedAt)||0,localState:e.localState,incomingState:e.incomingState,crossDomainResumeActive:!!e.allowRicherIncomingOnResume&&kn}))return!1;if(!e.allowRicherIncomingOnResume||!kn)return!0;let n=Xd({localState:e.localState,incomingState:e.incomingState});return n.exactRunMatch||n.exactBoundaryMatch?!0:!(n.localRunId||n.localBoundaryId)}function Ab(e,t,n,o,r){return{pendingRun:r?.includePendingIdentity!==!1&&t?{id:t.id,resumeRequired:t.resumeRequired,taskBoundaryId:t.taskBoundaryId}:void 0,activeTask:n?{status:n}:void 0,workerState:e,taskEpoch:o}}function Rk(e){return e.incomingWorkerState?e.localWorkerState?Yd({localUpdatedAt:Number(e.localUpdatedAt)||Number(e.localWorkerState.updatedAt)||0,incomingUpdatedAt:Number(e.incomingUpdatedAt)||Number(e.incomingWorkerState.updatedAt)||0,localState:Ab(e.localWorkerState,e.fallbackPendingRun,e.taskStatus,e.taskEpoch,{includePendingIdentity:!0}),incomingState:Ab(e.incomingWorkerState,void 0,e.taskStatus,e.taskEpoch,{includePendingIdentity:!1}),crossDomainResumeActive:!!e.allowRicherIncomingOnResume&&kn}):!0:!1}function Ak(e){if(qr(e.localState.activeTask,Sn("compat_local")).status!=="running")return!0;let n=Math.max(1,Number(e.localState.taskEpoch)||1),o=Math.max(1,Number(e.incomingState.taskEpoch)||1);if(o<n)return!1;if(o>n)return!0;let r=Se(xa(e.localState)),a=Se(xa(e.incomingState));return r&&a?r===a:!(r&&!a||!r&&a)}async function xI(e,t){if(!l)return;let n=await KE(e,t);if(!n||!l)return;let o=Ws({...n,sessionId:l.sessionId,runtimeId:it},l.sessionId,it);if(!Sk({localState:l,incomingState:o,allowRicherIncomingOnResume:!0})||!Ak({localState:l,incomingState:o}))return;let r=Math.max(1,Number(l.taskEpoch)||1),a=Math.max(1,Number(o.taskEpoch)||1),i=xa(o);va({source:"indexeddb_checkpoint",incomingBoundaryId:i,taskEpochAdvanced:a>r,allowBootstrapAdoption:!0})&&(l=Ws({...l,...o,sessionId:l.sessionId,runtimeId:it},l.sessionId,it),Xs(l),Ei({rotateIfMissing:!Re}),Ia({persist:!1}),Xf({preferredTaskId:o.activeTaskId||o.activeTask?.taskId}),Oe(),Q&&(Q.clearMessages(),uu(l.uiMessages),du(l.timeline),fu(l),Ai(),l.uiHidden?Q.hide():(Q.show(),l.uiOpen?Q.open():Q.close())),lo&&qe&&co(),lo&&qe&&l.workerState&&bt==="controller"&&(qe.postMessage({type:"hydrate_state",state:l.workerState}),Ve("context_restored",{source:"indexeddb_checkpoint",ts:Date.now()})))}var af=!1;function Zf(e,t){if(l&&!af){af=!0;try{if(t==="remote"){let o=Math.max(1,Number(l.taskEpoch)||1),r=Math.max(1,Number(e.taskEpoch)||1),a=r>o;l.taskEpoch=Math.max(o,r);let i=l.activeTask||Sn("shared_sync");l.activeTask=gk(e.task,i),a&&(l.uiMessages=[],l.timeline=[],Yf(),Lt(void 0),l.workerState=void 0,Re=No(),l.taskTabScope=void 0,Zn({forceReset:!0,persist:!1}),co(),Fn());let s=Ro(e.uiMessages),c=new Set(s.map(M=>M.id)),d=l.uiMessages,f=l.uiMessages.filter(M=>M.role==="user"&&M.sourceRuntimeId===it&&!c.has(M.id)).length;f>0&&Qe("status",{event:"local_message_preserved",count:f});let u=YE(d,s);(u.length!==d.length||u.some((M,H)=>{let N=d[H];return N?N.id!==M.id||N.ts!==M.ts||N.role!==M.role||N.text!==M.text:!0}))&&(l.uiMessages=u,Q?.clearMessages(),uu(l.uiMessages));let p=Ao(e.timeline),g=l.timeline,y=JE(g,p);(y.length!==g.length||y.some((M,H)=>{let N=g[H];return N?N.id!==M.id||N.ts!==M.ts||N.kind!==M.kind||N.title!==M.title||N.detail!==M.detail:!0}))&&(l.timeline=y,du(l.timeline)),Nt(typeof e.transientStatus?.text=="string"?String(e.transientStatus.text):typeof e.uiStatus=="string"?e.uiStatus:void 0,{publishShared:!1,runId:e.transientStatus?.runId||e.activeRun?.runId,taskId:e.transientStatus?.taskId||e.task?.taskId,stage:e.transientStatus?.stage});let R=l.activeTask?.status,O=e.task?.status;if(e.activeRun&&e.activeRun.runtimeId!==it&&!$d({localTaskStatus:R,remoteTaskStatus:O,mode:bt,hasRemoteActiveRun:!0}))if(String(e.activeRun.runtimeId||"").trim()!==""||Xo()||Qs(bt)==="observer")Lt(void 0);else{let N=st(l.pendingRun),Y=Se(e.workerContext?.taskBoundaryId),ae=N?.id===e.activeRun.runId&&(!N?.taskBoundaryId||Se(N.taskBoundaryId)===(Y||Se(Re))),re=ae?N?.resumeRequired===!0:String(e.activeRun.runtimeId||"").trim()==="";Lt(st({id:e.activeRun.runId,text:e.activeRun.text,startedAt:e.activeRun.startedAt,attempts:ae&&N?.attempts||0,autoResume:!0,taskBoundaryId:(ae?N?.taskBoundaryId:void 0)||Y||N?.taskBoundaryId||Re,resumeRequired:re,resumeReason:ae?N?.resumeReason:re?"agent_navigation":void 0}))}else{let M=$d({localTaskStatus:R,remoteTaskStatus:O,mode:bt,hasRemoteActiveRun:!!e.activeRun}),N=st(l.pendingRun)?.resumeRequired===!0&&wl(R);M&&!N&&(l.pendingRun?.id&&jr(l.pendingRun.id),Lt(void 0),O&&O!=="running"&&ec())}if(bt==="observer"&&Ea("observer",{localLogicalTabId:L?.getLocalLogicalTabId(),activeLogicalTabId:L?.getActiveLogicalTabId(),holderRuntimeId:L?.getCurrentHolderRuntimeId()}),e.workerContext){let M=Vt(e.workerContext),H=Number(l.workerState?.updatedAt)||0,N=Number(M?.updatedAt)||0;M&&Rk({localWorkerState:l.workerState,incomingWorkerState:M,fallbackPendingRun:st(l.pendingRun),taskStatus:l.activeTask?.status,taskEpoch:l.taskEpoch,localUpdatedAt:H,incomingUpdatedAt:N,allowRicherIncomingOnResume:!0})&&va({source:"shared_worker_context",incomingBoundaryId:M.taskBoundaryId,taskEpochAdvanced:a,allowBootstrapAdoption:!0})&&(l.workerState=Eo(M,Hn()),Ei(),lo&&qe&&bt==="controller"&&(co(),qe.postMessage({type:"hydrate_state",state:l.workerState}),Ve("context_restored",{source:"shared_session",ts:Date.now()})))}}if(l.uiMessages=Ro(l.uiMessages),l.timeline=Ao(l.timeline),l.workerState=Eo(Vt(l.workerState),Hn()),Xs(l),Ei(),Ia({persist:!1}),lo&&qe&&bt==="controller"&&co(),Lo(),Ai(),l.activeTask=qr(l.activeTask,Sn("implicit")),Xf(),L&&K){let o=new Map;for(let r of K.listTasks())for(let a of r.tabIds)o.set(a,r.taskId);L.setTaskTabMapping(o)}let n=C?.ui?.tabIndicator?.widgetTabBar!==!1;if(Q&&e.tabs&&n){let o=L?.getLocalLogicalTabId(),r=L?.getActiveLogicalTabId(),a=(e.tabs||[]).filter(i=>i&&typeof i.logicalTabId=="number").map(i=>({logicalTabId:i.logicalTabId,url:String(i.url||""),title:typeof i.title=="string"?i.title:void 0,isActive:i.logicalTabId===r,isCurrent:i.logicalTabId===o,external:!!i.external,taskId:K?.getTaskForTab(i.logicalTabId)?.taskId}));a.length>1?Q.setTabs(a):Q.setTabs([])}else Q&&Q.setTabs([]);if(t==="local")return;Oe()}finally{af=!1}}}function em(e){let t=Sn("checkpoint_clone");return{version:Mf,sessionId:e.sessionId,runtimeId:e.runtimeId,uiOpen:!!e.uiOpen,uiHidden:!!e.uiHidden,uiStatus:typeof e.uiStatus=="string"?yn(e.uiStatus,300):void 0,transientStatus:Js(e.transientStatus??e.uiStatus,{runId:e.pendingRun?.id,taskId:e.activeTask?.taskId}),uiMessages:Ro(e.uiMessages),timeline:Ao(e.timeline),executionMode:e.executionMode==="observer"||e.executionMode==="controller"?e.executionMode:"controller",workerState:Vt(e.workerState),pendingRun:st(e.pendingRun),taskTabScope:Li(e.taskTabScope,st(e.pendingRun)?.taskBoundaryId||Vt(e.workerState)?.taskBoundaryId),lastNavigationHandoff:dr(e.lastNavigationHandoff),tasks:e.tasks?{...e.tasks}:{},activeTaskId:e.activeTaskId,taskOrder:e.taskOrder?[...e.taskOrder]:[],taskEpoch:Math.max(1,Number(e.taskEpoch)||1),activeTask:qr(e.activeTask,t),lastRoutingDecision:e.lastRoutingDecision&&(e.lastRoutingDecision.mode==="act"||e.lastRoutingDecision.mode==="planner")?{mode:e.lastRoutingDecision.mode,score:Number(e.lastRoutingDecision.score)||void 0,reason:e.lastRoutingDecision.reason,ts:Number(e.lastRoutingDecision.ts)||Date.now()}:void 0,updatedAt:Number(e.updatedAt)||Date.now()}}function TI(e){return!(e.sessionScope==="tab"||e.checkpointing?.enabled===!1||!zn(e)||!Ft)}function _I(){if(!l||!C||!Ft)return null;let e=L?.getState(),t=em(l),n=Math.max(Number(e?.updatedAt||0),Number(t.updatedAt||0)),o=n>0?n:Date.now();return{version:Ob,siteId:C.siteId,visitorId:Ft,sessionId:l.sessionId,updatedAt:o,sharedState:e,runtimeState:t}}function Ck(e){if(!e||typeof e!="object"||!l||!C||e.siteId&&e.siteId!==C.siteId||Ft&&e.visitorId&&e.visitorId!==Ft)return;let t=typeof e.sessionId=="string"&&e.sessionId.trim()?e.sessionId.trim():l.sessionId;xi=!0;try{if(t&&l.sessionId!==t&&(l.sessionId=t,C={...C,sessionId:t},Zl(C),co({sessionId:t})),e.sharedState&&L&&L.hydrateExternalState(e.sharedState)&&(Zf(L.getState(),"remote"),Ea(L.getRole(),{localLogicalTabId:L.getLocalLogicalTabId(),activeLogicalTabId:L.getActiveLogicalTabId(),holderRuntimeId:L.getCurrentHolderRuntimeId()})),e.runtimeState&&typeof e.runtimeState=="object"){let n=Ws({...e.runtimeState,sessionId:t,runtimeId:it},t,it);if(Sk({localState:l,incomingState:n,allowRicherIncomingOnResume:!0})){if(!Ak({localState:l,incomingState:n}))return;let o=Math.max(1,Number(l.taskEpoch)||1),r=Math.max(1,Number(n.taskEpoch)||1),a=xa(n);if(!va({source:"cloud_checkpoint",incomingBoundaryId:a,taskEpochAdvanced:r>o,allowBootstrapAdoption:!0}))return;l=Ws({...l,...n,sessionId:t,runtimeId:it},t,it),Xs(l),Ei(),l.workerState=Eo(l.workerState,Hn()),Ia({persist:!1}),Xf({preferredTaskId:n.activeTaskId||n.activeTask?.taskId}),Oe(),fu(l),l.uiHidden?Q?.hide():(Q?.show(),l.uiOpen?Q?.open():Q?.close()),lo&&co(),lo&&l.workerState&&(qe?.postMessage({type:"hydrate_state",state:l.workerState}),Ve("context_restored",{source:"cloud_checkpoint",ts:Date.now()})),bt==="controller"&&Go(),kn=!1}}}finally{xi=!1}}function tm(e){if(Et?.stop(),Et=null,!TI(e)||!Ft)return;let t=zn(e);if(!t){Ve("checkpoint_token_missing",{reason:"missing_or_invalid_session_token",expectedPrefix:"rvrsess_",action:"disabled_cloud_checkpoint_client"});return}try{let n=o=>{Ve("checkpoint_state",o),e.checkpointing?.onStateChange?.(o)};Et=new bl({apiBase:e.apiBase,authToken:t,getSessionToken:()=>zn(C),shouldSync:()=>bt==="controller"&&!kn&&!_a(),siteId:e.siteId,visitorId:Ft,ttlHours:e.checkpointing?.ttlHours??1,flushIntervalMs:e.checkpointing?.flushIntervalMs,pullIntervalMs:e.checkpointing?.pullIntervalMs,minFlushIntervalMs:e.checkpointing?.minFlushIntervalMs,maxSnapshotBytes:Ii(e.stability?.maxSnapshotBytes,Tt.snapshotBytes),shouldWrite:()=>bt==="controller"&&!kn&&!_a(),buildCheckpoint:()=>_I(),onCheckpoint:o=>{Ck(o)},onStateChange:(o,r)=>{n({state:o,reason:r.reason,action:r.action,code:r.code,message:r.message}),o==="paused_auth"&&Ve("checkpoint_error",{action:r.action,code:r.code||"INVALID_API_KEY",message:r.message||"Checkpoint sync paused due to auth failure.",disabled:!0,reason:r.reason||"auth_failed"})},onError:(o,r)=>{e.checkpointing?.onError?.(r),r.paused||Ve("checkpoint_error",{action:r.action,code:r.code,message:r.message,status:r.status,disabled:!1,reason:"transient_failure"})}}),Et.start(),Et.markDirty(),sk()}catch{Et=null}}function Zl(e){if(!l)return;if(L?.stop(),L=null,e.sessionScope==="tab"){Ea("controller");return}L=new ml({siteId:e.siteId,sessionId:l.sessionId,runtimeId:it,leaseMs:e.tabPolicy?.actionLeaseMs,onRoleChange:(o,r)=>{let a=Qs(o);Ea(a,r);let i=xo;xo=a==="controller",i!==xo&&(xo?(Lo(!0),C&&fr(C)):Lo(!0));let s=a==="controller"&&(C?.allowActions??!0);if(at?.setAllowActions(s),at?.setActionGateContext?.({mode:a,controllerRuntimeId:r?.holderRuntimeId??L?.getCurrentHolderRuntimeId(),activeLogicalTabId:r?.activeLogicalTabId??L?.getActiveLogicalTabId(),localLogicalTabId:r?.localLogicalTabId??L?.getLocalLogicalTabId(),reason:Ys(a,s)}),a==="controller"){Zn({persist:!0,appendSeed:!1}),Ia({persist:!0});let c=L?.getWorkerContext();if(c){let d=Vt(c),f=Number(l?.workerState?.updatedAt)||0,u=Number(d?.updatedAt)||0;d&&u>f+100&&va({source:"controller_handoff",incomingBoundaryId:d.taskBoundaryId,allowBootstrapAdoption:!0})&&(l&&(l.workerState=Eo(d,Hn()),Ei(),Oe()),lo&&qe&&(co(),qe.postMessage({type:"hydrate_state",state:l?.workerState}),Ve("context_restored",{source:"controller_handoff",ts:Date.now()})))}Go()}},onStateChange:(o,r)=>{Zf(o,r)},onSwitchRequested:o=>{o>0&&(uo(),dt({kind:"status",title:`Switched to tab #${o}`,status:"info"}))},onTaskTabsExhausted:o=>{K&&(K.dispatch(o,{type:"PAUSE",reason:"all_tabs_closed"}),Dr(),Oe(),Q?.showPausedTaskBanner({taskId:o,rootUserInput:K.getTask(o)?.rootUserInput||"Task"}))}}),L.onSessionTokenReceived=(o,r)=>{xo||Yl(o,r)},L.onProjectionReceived=o=>{!xo&&o&&wf(o)};let t=Of();L.start(Wb(t)),Zn({persist:!0,appendSeed:!1}),Ia({persist:!0}),st(l?.pendingRun)?.resumeRequired===!0&&L.requestControl(),l?.lastNavigationHandoff&&t&&(l.lastNavigationHandoff=dr({...l.lastNavigationHandoff,consumed:!0}),Oe()),L.setRpcRequestHandler(async o=>{if(!at)throw new Error("Bridge not available");if(o.method==="getPageData")return at.getPageData(o.params);if(o.method==="executeTool")return at.executeTool(o.params.call,o.params.payload);throw new Error(`Unknown RPC method: ${o.method}`)}),l?.activeTask&&L.syncTask({...l.activeTask,taskId:l.activeTask.taskId},l.taskEpoch),l?.workerState&&L.setWorkerContext(Zs(l.workerState))}function EI(e){e&&$o.delete(e),Q?.clearTimeline(),l&&(l.timeline=[]),L?.clearTimeline()}function II(e){if(!(!e||typeof e!="object")&&!HE(e)){if(e.type==="assistant"){let t=Fr(e.blocks),n=String(e.text||mk(t)||"");typeof e.runId=="string"&&e.runId&&($o.set(e.runId,n),Hb($o,rE)),In("assistant",n,!0,{blocks:t}),dt({kind:"tool_result",title:"Assistant update",detail:n,detailBlocks:t,status:"success"}),qo("assistant_output",{text:n,blocks:t},{immediate:!0,runId:typeof e.runId=="string"?e.runId:void 0});return}if(e.type==="status"){let t=ik(e.stage),n=e.message?String(e.message):void 0,o=e.compactThought?String(e.compactThought):void 0,r=CE(n,t,o);if(n&&Nt(n,{runId:typeof e.runId=="string"?e.runId:l?.pendingRun?.id,taskId:l?.activeTask?.taskId,stage:t}),r&&r!==Rl&&(Rl=r,n)){let a=!!(e.thought||o),i=o||(e.thought?String(e.thought):"");if(a&&t!=="analyze"&&t!=="route"&&t!=="complete"&&!ME(i,ln))dt({kind:"thought",title:i,detail:e.thought?String(e.thought):o,status:"pending"});else{let c=t?`${AE(t)}: ${n}`:n;dt({kind:"status",title:c,detail:o||(e.thought?String(e.thought):void 0),status:t==="complete"?"success":"info"})}}Ve("status",e),qo("status_update",HI(e),{runId:typeof e.runId=="string"?e.runId:void 0});return}if(e.type==="runtime_tabs_diagnostics"){let t=e?.diagnostics&&typeof e.diagnostics=="object"?e.diagnostics:{},n=Qn(t.keptScopedTabIds||[]),o=Qn(t.listedTabIds||[]),r=Qn(t.resolvedTabOrder||[]),a=n.filter(i=>!o.includes(i));a.length>0&&(dt({kind:"status",title:"Scoped tab placeholder retained",detail:`missing_in_listing=${a.join(",")}; resolved_order=${r.join(",")||"none"}`,status:"info"}),Qe("status",{event:"scoped_tab_missing_from_listing",missingScopedTabIds:a,listedTabIds:o,resolvedTabOrder:r}));return}if(e.type==="tool_start"){dt({kind:"tool_start",title:`Running ${e.call?.name||"tool"}`,detail:Hl(e.call?.args),status:"pending"}),Ve("tool_start",e),qo("tool_start",FI(e),{runId:typeof e.runId=="string"?e.runId:void 0});return}if(e.type==="tool_result"){if(!GE(e.result)){let n=Qn([...$E(e.call?.args),...VE(e.result)]);n.length&&(_k(n,{persist:!0}),co())}let t=Fr(e.detailBlocks)||WE(e.result);dt({kind:"tool_result",title:`${e.call?.name||"tool"} completed`,detail:Hl(e.result),detailBlocks:t,status:e?.result?.success===!1?"error":"success"}),Ve("tool_result",e),qo("tool_result",zI(e),{runId:typeof e.runId=="string"?e.runId:void 0});return}if(e.type==="auth_required"){Ve("auth_required",e.error),e.error?.message&&(In("system",`Auth required: ${e.error.message}`,!0),dt({kind:"error",title:"Auth required",detail:String(e.error.message),status:"error"}));return}if(e.type==="navigation_guardrail"){Ve("navigation_guardrail",e),dt({kind:"status",title:"Navigation guardrail",detail:Hl(e),status:"info"});return}if(e.type==="error"){In("system",`Error: ${e.message||"unknown"}`,!0),dt({kind:"error",title:"Execution error",detail:String(e.message||"unknown"),status:"error"}),Ve("error",e),qo("error",{message:String(e.message||"unknown")},{immediate:!0,runId:typeof e.runId=="string"?e.runId:void 0});return}if(e.type==="state_snapshot"){if(l){let t=Vt({...e.state||{},updatedAt:Date.now()});if(!t||!va({source:"worker_snapshot",incomingBoundaryId:t.taskBoundaryId,allowBootstrapAdoption:!0}))return;l.workerState=Eo(t,Hn());let n=typeof e?.activeRun?.runId=="string"&&e.activeRun.runId?e.activeRun.runId:void 0,o=typeof e?.activeRun?.text=="string"?e.activeRun.text:void 0,r=Zg({taskStatus:l.activeTask?.status,hasPendingRun:!!l.pendingRun,activeRunId:n,activeRunText:o,ignoredRunIds:_o});if(r&&(l.pendingRun=st({id:n,text:o,startedAt:e.activeRun.startedAt,attempts:0,autoResume:!0})),n&&o&&r?L?.setActiveRun({runId:n,text:o}):n&&(!Rr()||_o.has(n))&&L?.setActiveRun(void 0),!Rr()&&l.pendingRun&&Lt(void 0),l.workerState&&L?.setWorkerContext(Zs(l.workerState)),K&&t?.taskBoundaryId){let a=K.getTaskByBoundaryId(t.taskBoundaryId);a&&(a.workerState=l.workerState,n&&(a.pendingRun=l.pendingRun))}Ai(),Oe()}return}if(e.type==="task_started"){Ve("task_started",{taskId:e.taskId,reason:"worker"});return}if(e.type==="run_started"){if(Rl="",Fn(),typeof e.runId=="string"&&e.runId&&$o.delete(e.runId),!Rr()){L?.setActiveRun(void 0);return}let t=l?.pendingRun,n=typeof e?.taskBoundaryId=="string"?Se(e.taskBoundaryId):void 0;typeof e.runId=="string"&&e.runId&&xf(e.runId),Lt(st({id:e.runId,text:e.text,startedAt:t?.startedAt||Date.now(),attempts:t?.attempts||0,autoResume:t?.autoResume!==!1,taskBoundaryId:n||t?.taskBoundaryId||Re,resumeReason:t?.resumeReason,resumeRequired:t?.resumeRequired})),L?.setActiveRun({runId:e.runId,text:String(e.text||"")}),Q?.setRunning(!0),Q?.setQuestionPrompt(void 0);let o=`run:${String(e.runId||"")}:start`;if(l?.timeline.some(r=>r.id===o)||dt({id:o,kind:"plan",title:e.resume?"Run resumed":"Run started",detail:String(e.text||""),status:"pending"}),K&&n){let r=K.getTaskByBoundaryId(n);r&&(r.pendingRun=l?.pendingRun,K.dispatch(r.taskId,{type:"START"}))}qo("state_transition",{status:"running",mode:l?.lastRoutingDecision?.mode,reason:e.resume?"run_resumed":"run_started"},{immediate:!0,runId:typeof e.runId=="string"?e.runId:void 0}),Ve("run_started",zb(e));return}if(e.type==="run_completed"||e.type==="run_state_transition"){Rl="",Mo=!1,_n=0;let t=zE(e),n=jb(e,t),o=t.terminalState,r=t.continuationReason,a=t.needsUserInput?"awaiting_user":o==="completed"?"completed":o==="failed"||e?.ok===!1?"failed":"running",i=e?.ok===!1||o==="completed"||o==="failed",s=!i&&o==="in_progress"&&r!=="awaiting_user";Q?.setRunning(s),It&&(clearTimeout(It),It=null);let c=typeof e.runId=="string"&&e.runId?e.runId:void 0,d=typeof e?.taskBoundaryId=="string"?Se(e.taskBoundaryId):void 0;if(i){let f=st(l?.pendingRun),u=String(f?.text||ln||"").trim(),b=String((c?$o.get(c):"")||"").trim();wa=u||wa,Ko=b||Ko,_i=Date.now(),f?.id&&L?.releaseWorkflowLock(f.id),c&&L?.releaseWorkflowLock(c),Lt(void 0),Br(void 0),L?.setActiveRun(void 0),Fn(),c&&jr(c)}else if(Rr()&&c){xf(c),Br(c);let f=l?.pendingRun,u=f?.id===c&&f?.text?f.text:ln||f?.text||"Continue task";Lt(st({id:c,text:u,startedAt:f?.startedAt||Date.now(),attempts:f?.attempts||0,autoResume:f?.autoResume!==!1,taskBoundaryId:d||f?.taskBoundaryId||Re,resumeRequired:o==="in_progress"&&r==="same_tab_navigation_handoff",resumeReason:o==="in_progress"&&r==="same_tab_navigation_handoff"?f?.resumeReason||"agent_navigation":void 0})),L?.setActiveRun({runId:c,text:u})}if(l&&e?.route&&(e.route.mode==="act"||e.route.mode==="planner")&&(l.lastRoutingDecision={mode:e.route.mode,score:Number(e.route.score)||void 0,reason:typeof e.route.reason=="string"?yn(e.route.reason,200):void 0,ts:Date.now()},Oe()),!e.ok&&e.error){if(c&&$o.delete(c),c&&(Hr(c,"worker_run_failed",{attemptImmediately:!0}),he?.controlRun({action:"cancel",runId:c,reason:"worker_run_failed"})),!Rr())return;Q?.setQuestionPrompt(void 0),t.contextResetRecommended?(Ml("worker_run_failed_terminal"),L?.resetTabsToCurrent(window.location.href,document.title||void 0),Nt(void 0)):(Ml("worker_run_failed_terminal"),Nt(void 0)),c&&$o.delete(c),dt({kind:"error",title:"Run failed",detail:String(e.error),status:"error"})}else if(e.ok){if(!Rr())return;let f=t.taskComplete,u=t.needsUserInput,b=t.questions||So(e.questions),p=So(l?.workerState?.pendingAskUser?.questions),g=b.length?b:u?p:[];if(o==="failed")c&&(Hr(c,"worker_terminal_failed",{attemptImmediately:!0}),he?.controlRun({action:"cancel",runId:c,reason:"worker_terminal_failed"})),Q?.setQuestionPrompt(void 0),t.contextResetRecommended?(Ml("worker_run_failed_terminal"),L?.resetTabsToCurrent(window.location.href,document.title||void 0),Nt(void 0)):(Ml("worker_run_failed_terminal"),Nt(void 0)),dt({kind:"error",title:"Run failed",detail:typeof e.error=="string"?e.error:"Run reported failure state.",status:"error"});else if(f||o==="completed")c&&he?.controlRun({action:"end_task",runId:c,reason:"worker_task_complete"}),Q?.setQuestionPrompt(void 0),cI("worker_task_complete"),L?.resetTabsToCurrent(window.location.href,document.title||void 0),Nt(void 0),EI(typeof e.runId=="string"?e.runId:void 0);else{let y=u?"worker_waiting_for_input":r==="same_tab_navigation_handoff"?"worker_navigation_handoff":o==="in_progress"?"worker_loop_continue":"worker_task_active";if(u){if(K){let E=K.getActiveTask();E&&K.dispatch(E.taskId,{type:"ASK_USER"})}Wr({type:"awaiting_user",reason:y,at:Date.now()})}else vk(y);u&&g.length>0?Q?.setQuestionPrompt({questions:g}):u?Ai():Q?.setQuestionPrompt(void 0),u?(Nt(void 0),dt({kind:"status",title:"Waiting for your input",detail:g.length?`Please answer: ${g.map(E=>`${E.key} (${E.query})`).join("; ")}`:"Planner requested more information before marking the task complete.",status:"info"})):r==="same_tab_navigation_handoff"?(Nt("Navigating to continue task..."),dt({kind:"status",title:"Navigation handoff",detail:"Rover will resume after same-tab navigation completes.",status:"pending"})):Nt("Working...")}}if(K&&d){let f=K.getTaskByBoundaryId(d);if(f)if(i){let u=o==="completed"?{type:"COMPLETE"}:{type:"FAIL",error:typeof e.error=="string"?e.error:void 0};K.dispatch(f.taskId,u),K.releaseWorker(f.taskId)}else t.continuationReason==="awaiting_user"&&K.dispatch(f.taskId,{type:"ASK_USER"})}if(qo("state_transition",{status:a,mode:e?.route?.mode==="act"||e?.route?.mode==="planner"?e.route.mode:l?.lastRoutingDecision?.mode,reason:typeof e?.error=="string"?e.error:r||o,terminalState:o},{immediate:i||t.needsUserInput,runId:c}),t.needsUserInput){let f=t.questions||So(e.questions);f.length&&Bk(f)}i&&qI(c),Ve("run_state_transition",n),(e.type==="run_completed"||i)&&Ve("run_completed",n),Dr();return}if(e.type==="ready"){lo=!0,Nt(void 0),Ve("ready"),C&&qk(C);let t=L?.getWorkerContext(),n=Eo(Vt(t),Hn()),o=n&&va({source:"ready_hydrate",incomingBoundaryId:n.taskBoundaryId,allowBootstrapAdoption:!0})?n:void 0,r=Eo(Vt(l?.workerState),Hn()),a=r&&va({source:"ready_hydrate",incomingBoundaryId:r.taskBoundaryId,allowBootstrapAdoption:!0})?r:void 0,i=Number(a?.updatedAt)||0,s=Number(o?.updatedAt)||0,c=o&&Rk({localWorkerState:a,incomingWorkerState:o,fallbackPendingRun:st(l?.pendingRun),taskStatus:l?.activeTask?.status,taskEpoch:l?.taskEpoch,localUpdatedAt:i,incomingUpdatedAt:s,allowRicherIncomingOnResume:!0})?o:a;l&&(c&&c!==l.workerState?(l.workerState=Eo(c,Hn()),Oe()):!c&&l.workerState&&(l.workerState=void 0,Oe())),c?(qe?.postMessage({type:"hydrate_state",state:c}),Ve("context_restored",{source:"runtime_start",ts:Date.now()}),setTimeout(()=>{Mo||Go()},500)):kn&&Et?(Qe("status",{event:"checkpoint_pull_first"}),Et.syncPullFirst()):Go();return}if(e.type==="hydrated"){Go();return}e.type==="updated"&&Ve("updated")}}function Af(e,t){let n=Number(e);return Number.isFinite(n)?Math.max(t.min,Math.min(t.max,Math.floor(n))):t.fallback}function pu(e){if(!e||typeof e!="object")return;let t=Af(e.shortcutMaxStored,{min:1,max:Wl,fallback:Wl}),n=Af(e.shortcutMaxRendered,{min:1,max:$l,fallback:$l});return{shortcutMaxStored:t,shortcutMaxRendered:n}}function lr(e){return Vc(e)}function SI(e){let t=Number(e);if(Number.isFinite(t))return Math.max(O_,Math.min(P_,Math.floor(t)))}function Ci(e){if(!e||typeof e!="object")return;let t=e,n={};typeof t.enabled=="boolean"&&(n.enabled=t.enabled);let o=String(t.language||"").trim().replace(/[^a-zA-Z0-9-]/g,"").slice(0,L_);o&&(n.language=o);let r=SI(t.autoStopMs);return r!==void 0&&(n.autoStopMs=r),Object.keys(n).length?n:void 0}function tc(e){if(!e||typeof e!="object")return;let t=e,n={};return typeof t.enabled=="boolean"&&(n.enabled=t.enabled),typeof t.allowPromptLaunch=="boolean"&&(n.allowPromptLaunch=t.allowPromptLaunch),typeof t.allowShortcutLaunch=="boolean"&&(n.allowShortcutLaunch=t.allowShortcutLaunch),typeof t.allowCloudBrowser=="boolean"&&(n.allowCloudBrowser=t.allowCloudBrowser),typeof t.allowDelegatedHandoffs=="boolean"&&(n.allowDelegatedHandoffs=t.allowDelegatedHandoffs),typeof t.debugStreaming=="boolean"&&(n.debugStreaming=t.debugStreaming),Object.keys(n).length?n:void 0}function $s(e){if(!e)return;let t=lr(Co?.pageConfig),n=lr(e.pageConfig);return lr({...t||{},...n||{}})}function RI(e){if(e)return tc(Co?.aiAccess)}function AI(e){if(!qe||!e)return;let t=$s(e),n=JSON.stringify(t||null);n!==ff&&(ff=n,qe.postMessage({type:"update_config",config:{...Sa(),pageConfig:t}}))}function nc(){Rs&&(clearTimeout(Rs),Rs=null),As&&(clearTimeout(As),As=null)}function CI(e){try{let t=localStorage.getItem(`rover:site-config:${e}`);if(t){let n=JSON.parse(t);return!n||typeof n.ts!="number"||typeof n.data!="object"||!n.data||Date.now()-n.ts>kb?null:{shortcuts:zr(n.data.shortcuts),greeting:Mi(n.data.greeting),voice:Ci(n.data.voice),aiAccess:tc(n.data.aiAccess),limits:pu(n.data.limits),pageConfig:lr(n.data.pageConfig),version:typeof n.version=="string"?n.version:void 0}}}catch{}try{let t=localStorage.getItem(`rover:shortcuts:${e}`);if(!t)return null;let n=JSON.parse(t);return!n||typeof n.ts!="number"||!Array.isArray(n.data)||Date.now()-n.ts>kb?null:{shortcuts:zr(n.data)}}catch{return null}}function Mk(e,t){try{localStorage.setItem(`rover:site-config:${e}`,JSON.stringify({ts:Date.now(),version:t.version,data:{shortcuts:zr(t.shortcuts),greeting:Mi(t.greeting),voice:Ci(t.voice),aiAccess:tc(t.aiAccess),limits:pu(t.limits),pageConfig:lr(t.pageConfig)}}))}catch{}}function Mi(e){if(!e||typeof e!="object")return;let t={},n=String(e.text||"").trim();n&&(t.text=n.slice(0,N_));let o=Number(e.delay);Number.isFinite(o)&&(t.delay=Math.max(0,Math.min(6e4,Math.floor(o))));let r=Number(e.duration);return Number.isFinite(r)&&(t.duration=Math.max(1200,Math.min(6e4,Math.floor(r)))),typeof e.disabled=="boolean"&&(t.disabled=e.disabled),Object.keys(t).length?t:void 0}function MI(e){if(!e||typeof e!="object")return null;let t=String(e.id||"").trim().slice(0,80),n=String(e.label||"").trim().slice(0,R_),o=String(e.prompt||"").trim().slice(0,C_);if(!t||!n||!o)return null;let r={id:t,label:n,prompt:o,enabled:e.enabled!==!1};e.description&&(r.description=String(e.description).trim().slice(0,A_)),e.icon&&(r.icon=String(e.icon).trim().slice(0,M_)),(e.routing==="auto"||e.routing==="act"||e.routing==="planner")&&(r.routing=e.routing);let a=Number(e.order);return Number.isFinite(a)&&(r.order=Math.trunc(a)),r}function zr(e){if(!Array.isArray(e))return[];let t=[],n=new Set;for(let o of e){if(t.length>=Wl)break;let r=MI(o);!r||n.has(r.id)||(n.add(r.id),t.push(r))}return t}function NI(e){return e.map((t,n)=>({item:t,index:n})).sort((t,n)=>{let o=Number.isFinite(t.item.order),r=Number.isFinite(n.item.order);return o&&r?Number(t.item.order)-Number(n.item.order):o?-1:r?1:t.index-n.index}).map(t=>t.item)}function LI(e,t){let n=new Map;for(let o of t)n.set(o.id,o);for(let o of e){let r=n.get(o.id);n.set(o.id,r?{...r,...o}:o)}return NI(Array.from(n.values())).slice(0,Wl)}function Nk(e){if(!e)return[];let t=zr(e.ui?.shortcuts||[]),n=zr(Co?.shortcuts||[]);return LI(t,n)}function Lk(e){let t=Af(Co?.limits?.shortcutMaxRendered,{min:1,max:$l,fallback:$l});return e.filter(n=>n.enabled!==!1).slice(0,t)}function Os(){Mr&&(clearTimeout(Mr),Mr=null),Us=null}function DI(e){return`${window.location.href}::${e.signature}`}function Dk(e){let t=`${window.location.pathname}${window.location.search}${window.location.hash}`,n=Mg(window.location.href);if(n!==t)try{history.replaceState(history.state,document.title,n),Qe("status",{event:"launch_params_consumed",requestId:e.requestId})}catch{}}function sf(e,t,n){let o=Us;o?.handleKey===e&&o.deadlineAt===n&&Mr||(Mr&&clearTimeout(Mr),Us={handleKey:e,request:t,deadlineAt:n},Mr=setTimeout(()=>{Mr=null,oc("attach_retry")},X_))}function Ok(){gi&&(clearTimeout(gi),gi=null)}function OI(){Ok(),Jn=null}function Is(e=0){Jn?.pendingEvents.length&&(gi||(gi=setTimeout(()=>{gi=null,nm()},Math.max(0,e))))}async function nm(e=!1){let t=Jn;if(!t||!t.pendingEvents.length||t.ingestInFlight||!he)return;if(!e&&_a()){Is(tf);return}let n=t.pendingEvents.splice(0,ef);if(n.length){t.ingestInFlight=!0;try{await he.ingestLaunchEvents({requestId:t.requestId,runId:t.runId,events:n})||(t.pendingEvents=[...n,...t.pendingEvents].slice(-ef*4),Is(tf))}catch{t.pendingEvents=[...n,...t.pendingEvents].slice(-ef*4),Is(tf)}finally{t.ingestInFlight=!1}t.pendingEvents.length&&Is(0)}}function qo(e,t,n){let o=Jn;if(o){if(n?.runId&&(o.runId=n.runId),o.pendingEvents.push({type:e,ts:Date.now(),data:t}),n?.immediate){Ok(),nm(!0);return}Is(0)}}function PI(e){let t=String(e||"").trim();if(t){let r=String($o.get(t)||"").trim();if(r)return r}let n=[...l?.uiMessages||[]].reverse().find(r=>r.role==="assistant");return String(n?.text||"").trim()||void 0}function BI(){let e=String(Hs||"").trim();if(!e)return;let t=e.indexOf(":");return t<0?void 0:e.slice(t+1).trim()||void 0}function Pk(){return Jn?.detail==="full"||Jn?.detail==="debug"}function UI(){return Jn?.detail==="debug"}function HI(e){let t={stage:ik(e?.stage),message:typeof e?.message=="string"?e.message:void 0,compactThought:typeof e?.compactThought=="string"?e.compactThought:void 0};return UI()&&(t.thought=typeof e?.thought=="string"?e.thought:void 0),t}function FI(e){let t={toolName:typeof e?.call?.name=="string"?e.call.name:"tool"};return Pk()&&(t.args=e?.call?.args),t}function zI(e){let t={toolName:typeof e?.call?.name=="string"?e.call.name:"tool",success:e?.result?.success!==!1};return Pk()?t.result=e?.result:typeof e?.result?.message=="string"&&(t.message=e.result.message),t}function jI(e){let t=window.location.href,n=String(document.title||"").trim()||void 0,o=String(window.location.hostname||"").trim()||void 0,r=PI(e),a=BI();return{url:t,title:n,host:o,summary:r,snapshotDigest:a}}function Bk(e){let t=Jn;if(!t||!e.length)return;let n=e.map(o=>`${o.key}:${o.query}`).join("|");t.lastNeedsInputSignature!==n&&(t.lastNeedsInputSignature=n,qo("needs_input",{questions:e},{immediate:!0}))}function qI(e){let t=Jn;if(!t)return;let n=String(e||t.runId||"").trim()||void 0;n&&t.finalObservationRunId===n||(n&&(t.finalObservationRunId=n),qo("page_observation",jI(n),{immediate:!0,runId:n}))}function cf(e,t,n,o){Os(),ga="",o?.openWidget!==!1&&(uo(),In("system",`Rover couldn't start the AI launch: ${n}`,!0)),Qe("status",{event:"launch_attach_failed",requestId:e.requestId,message:n}),Cs=t,o?.consume!==!1&&Dk(e)}function WI(e){let t=e.input;if(!t||typeof t.prompt!="string"||!t.prompt.trim())throw new Error("Launch attach response did not include a prompt.");if(uo(),t.kind==="shortcut"){Io(t.prompt,{reason:"launch_shortcut",routing:t.routing});return}Io(t.prompt,{reason:"launch_prompt"})}function oc(e){if(!C||typeof window>"u")return;let t=Cg(window.location.href);if(!t){Os(),Cs="",_s="",ga="";return}let n=DI(t);if(n===Cs||Jn?.handleKey===n||ga===n)return;let o=RI(C);if(o&&o.enabled===!1){Os(),_s!==n&&(Qe("status",{event:"launch_ignored_disabled",requestId:t.requestId,source:e}),_s=n),cf(t,n,"AI launch is not enabled for this Rover embed.",{consume:!0,openWidget:!0});return}_s="";let r=Us?.handleKey===n?Us.deadlineAt:Date.now()+K_;if(Date.now()>=r){cf(t,n,"Launch attach timed out before Rover finished booting.",{consume:!0,openWidget:!0});return}ga=n,fr(C).then(async()=>{if(!he){sf(n,t,r);return}let a=await he.attachLaunch({requestId:t.requestId,attachToken:t.attachToken});if(!a){sf(n,t,r);return}Os(),Jn={requestId:t.requestId,attachToken:t.attachToken,handleKey:n,status:a.status,detail:a.detail,executionTarget:a.executionTarget,runId:a.runId,pendingEvents:[],attachCompletedAt:Date.now()},WI(a),qo("state_transition",{status:a.status==="awaiting_user"?"awaiting_user":"running",executionTarget:a.executionTarget,detail:a.detail,source:"launch_attach"},{immediate:!0,runId:a.runId}),Qe("status",{event:"launch_attached",requestId:t.requestId,source:e,executionTarget:a.executionTarget,detail:a.detail}),Cs=n,Dk(t)}).catch(a=>{if(Date.now()<r){sf(n,t,r);return}cf(t,n,a?.message||"Unknown launch attach failure.",{consume:!0,openWidget:!0})}).finally(()=>{ga===n&&(ga="")})}function di(){Cr&&(clearTimeout(Cr),Cr=null),hi=null}function $I(e){return`${window.location.href}::${e.signature}`}function VI(e){return e?!!(Xl(e)||zn(e)):!1}function Cf(e,t){if(!e.consume)return;let n=`${window.location.pathname}${window.location.search}${window.location.hash}`,o=Cd(window.location.href,e);if(o!==n)try{history.replaceState(history.state,document.title,o),Qe("status",{event:"deep_link_consumed",kind:t.kind,paramName:t.paramName})}catch{}}function GI(e,t,n){let o=hi;o?.handleKey===e&&o.deadlineAt===n&&Cr||(Cr&&clearTimeout(Cr),hi={handleKey:e,request:t,deadlineAt:n},Cr=setTimeout(()=>{Cr=null,Di("shortcut_retry")},G_))}function KI(e,t,n){di(),uo(),In("system",`Rover couldn't find shortcut "${e.value}" for this embed. Check the URL or expose that shortcut in the Rover boot config/site config.`,!0),Qe("status",{event:"deep_link_shortcut_not_found",shortcutId:e.value,paramName:e.paramName}),ui=t,Cf(n,e)}function Uk(){let e=String(C?.apiBase||"https://agent.rtrvr.ai").trim().replace(/\/+$/,"");return e?e.endsWith("/extensionRouter/v2/rover")?e.slice(0,-25):e.endsWith("/v2/rover")?e.slice(0,-9):e:"https://agent.rtrvr.ai"}function Ni(e){let t=String(e||"").trim();if(t)try{let n=new URL(t);return String(n.searchParams.get("access")||"").trim()||void 0}catch{return}}function XI(e,t){let n=new URL(`${Uk()}/v1/tasks/${encodeURIComponent(e)}`);return t&&n.searchParams.set("access",t),n.toString()}function YI(e,t){let n=new URL(`${Uk()}/v1/workflows/${encodeURIComponent(e)}`);return t&&n.searchParams.set("access",t),n.toString()}function Hk(e){let t=String(e.taskId||"").trim();if(!t)return;let n=String(e.taskAccessToken||Ni(e.taskUrl)||"").trim()||void 0,o=String(e.workflowId||"").trim()||void 0,r=String(e.workflowAccessToken||Ni(e.workflowUrl)||"").trim()||void 0;ba={taskId:t,taskUrl:String(e.taskUrl||XI(t,n)).trim(),taskAccessToken:n,workflowId:o,workflowUrl:o?String(e.workflowUrl||YI(o,r)).trim():void 0,workflowAccessToken:r,taskBoundaryId:Se(Re||l?.workerState?.taskBoundaryId),runId:String(e.runId||l?.pendingRun?.id||"").trim()||void 0,updatedAt:Date.now()}}function QI(){return Se(Re||l?.workerState?.taskBoundaryId)||""}function JI(e){let t=String(e||"").trim().toLowerCase();return t==="browser"||t==="cloud"?t:"auto"}function Fl(e){let t=String(e||"").trim().toLowerCase();return t==="completed"||t==="failed"||t==="cancelled"||t==="expired"}function Fk(e){let t=String(e||"").trim();if(t){if(!/^https?:\/\//i.test(t))return t;try{let o=new URL(t).pathname.split("/").filter(Boolean),r=o.lastIndexOf("tasks");if(r>=0&&o[r+1])return decodeURIComponent(o[r+1]);let a=o.lastIndexOf("workflows");if(a>=0&&o[a+1])return decodeURIComponent(o[a+1])}catch{}}}function ZI(){let e=String(Ko||l?.uiStatus||l?.transientStatus?.text||"").trim();return{url:window.location.href,title:document.title,host:window.location.hostname,...e?{summary:e}:{}}}function eS(){let e=String(document.title||"").trim();return e?`Continue the current Rover workflow on ${e}.`:`Continue the current Rover workflow on ${window.location.hostname}.`}async function tS(){let e=QI(),t=ba;if(t&&t.taskId&&t.taskAccessToken&&(!e||t.taskBoundaryId===e))return t.runId=String(l?.pendingRun?.id||t.runId||"").trim()||void 0,t.updatedAt=Date.now(),t;if(!C)throw new Error("Rover is not booted.");if(await fr(C),!he)throw new Error("Rover server runtime is unavailable.");let n=Jl(l?.pendingRun?.id)||eS(),o=await he.createSessionRootTask({url:window.location.href,prompt:n,runId:String(l?.pendingRun?.id||"").trim()||void 0});if(!o?.id||!o.task)throw new Error("Failed to create the root public workflow task.");if(Hk({taskId:o.id,taskUrl:o.task,taskAccessToken:Ni(o.task),workflowId:Fk(o.workflow||""),workflowUrl:o.workflow,workflowAccessToken:Ni(o.workflow),runId:String(l?.pendingRun?.id||"").trim()||void 0}),!ba?.taskAccessToken)throw new Error("Root public workflow task is missing an access token.");return Qe("status",{event:"handoff_root_task_created",taskId:ba.taskId,workflowId:ba.workflowId}),ba}async function Cb(e,t,n=Bs){if(!C)return null;if(await fr(C),!he)throw new Error("Rover server runtime is unavailable.");let o=Date.now()+Math.max(0,n),r=null;for(;;){let a=o-Date.now(),i=a>0?Math.max(1,Math.min(J_,Math.ceil(a/1e3))):0;if(r=await he.getPublicTask(e,{accessToken:t,waitSeconds:i}),!r||Fl(r.status)||r.status==="input_required"||a<=0)return r}}function Mb(e,t){if(t==="cloud")return{opened:!1};let n=String(e.open||e.browserLink||"").trim();if(!n)return{opened:!1};try{return window.open(n,"_blank","noopener,noreferrer")?{opened:!0,targetUrl:n}:{opened:!1,targetUrl:n,error:"Browser blocked the delegated Rover handoff window."}}catch(o){return{opened:!1,targetUrl:n,error:o?.message||"Unable to open the delegated Rover site."}}}function Nb(e,t){let n=String(e.status||"pending").trim().toLowerCase(),o=String(e.task||"").trim(),r=String(e.workflow||"").trim(),a=String(e.result?.summary||e.result?.text||e.input?.message||"").trim(),i=So(e.input?.questions),s=t?.browserOpen,c={success:n==="completed",status:n,task:o||void 0,workflow:r||void 0,open:e.open,browserLink:e.browserLink,result:e.result,handoff:e.handoff,summary:e.result?.summary,text:e.result?.text||a||void 0,observation:e.result?.observation,transcript:e.result?.transcript,artifacts:e.result?.artifacts,taskStatus:n,...s?.targetUrl?{browserOpenUrl:s.targetUrl}:{},...s?.opened?{browserOpened:!0}:{},...s?.error?{browserOpenError:s.error}:{}};if(n==="completed")return{...c,taskComplete:!0,terminalState:"completed",message:a||"Delegated Rover task completed."};if(n==="input_required")return{...c,success:!1,taskComplete:!1,terminalState:"waiting_input",continuationReason:"awaiting_user",needsUserInput:!0,waitingForUserInput:!0,questions:i.length?i:e.input?.questions,input:e.input,message:String(e.input?.message||a||"Delegated Rover task needs more input.").trim()};if(n==="failed"||n==="cancelled"||n==="expired"){let f=String(e.result?.error||a||`Delegated Rover task ${n}.`).trim();return{...c,success:!1,taskComplete:!1,terminalState:"failed",error:f,message:f}}return{...c,success:!1,taskComplete:!1,terminalState:"in_progress",continuationReason:"loop_continue",message:n==="waiting_browser"?'Delegated Rover task is waiting for a browser attachment. Re-open the returned URL or call again with execution="cloud" for a browserless run.':"Delegated Rover task is still running. Call handoff_to_rover_site again with the returned task URL to keep following it."}}async function nS(e){let t=e&&typeof e=="object"?e:{};if(!C)throw new Error("Rover is not booted.");if(await fr(C),!he)throw new Error("Rover server runtime is unavailable.");let n=JI(t.execution),o=String(t.answer||"").trim(),r=String(t.task||"").trim();if(r){let g=Ni(r),y=o?await he.continuePublicTask(r,o,{accessToken:g}):await he.getPublicTask(r,{accessToken:g});if(!y)throw new Error("Delegated Rover task could not be loaded.");let E;return!Fl(y.status)&&y.status!=="input_required"&&(E=Mb(y,n),y=await Cb(r,g,Bs)||y),Nb(y,E?{browserOpen:E}:void 0)}let a=String(t.url||"").trim(),i=String(t.shortcutId||"").trim(),s=String(t.instruction||"").trim(),c=String(t.prompt||"").trim();if(!a)throw new Error("handoff_to_rover_site requires url or task.");if(!i&&!s&&!c)throw new Error("handoff_to_rover_site requires instruction, prompt, or shortcutId when creating a new handoff.");let d=await tS(),f=await he.createTaskHandoff({parentTaskId:d.taskId,taskAccessToken:String(d.taskAccessToken||"").trim(),url:a,...i?{shortcutId:i}:{},...!i&&s?{instruction:s}:{},...!i&&!s&&c?{prompt:c}:{},...String(t.contextSummary||Ko||"").trim()?{contextSummary:String(t.contextSummary||Ko).trim()}:{},...String(t.expectedOutput||"").trim()?{expectedOutput:String(t.expectedOutput).trim()}:{},...String(Jl(l?.pendingRun?.id)||"").trim()?{originalGoal:String(Jl(l?.pendingRun?.id)||"").trim()}:{},lastObservation:ZI(),execution:n});if(!f)throw new Error("Delegated Rover handoff could not be created.");let u;!Fl(f.status)&&f.status!=="input_required"&&(u=Mb(f,n));let b=Ni(f.task),p=!Fl(f.status)&&f.status!=="input_required"&&await Cb(f.task,b,Bs)||f;return Qe("status",{event:"handoff_task_created",parentTaskId:d.taskId,childTaskId:p.id,workflowId:Fk(p.workflow||"")||d.workflowId,targetHost:(()=>{try{return new URL(a).hostname}catch{return}})()}),Nb(p,u?{browserOpen:u}:void 0)}var oS={name:"handoff_to_rover_site",description:"Delegate part of the current Rover workflow to Rover on another Rover-enabled site and keep following that child task until it completes or asks for more input.",parameters:{url:{type:"string",description:"Absolute URL for the Rover-enabled site that should handle the delegated step."},instruction:{type:"string",description:"Delegation instruction for the target site. Use this for natural-language delegation."},prompt:{type:"string",description:"Prompt alias for instruction when creating a delegated task."},shortcutId:{type:"string",description:"Exact shortcut ID to run on the delegated Rover site instead of a natural-language instruction."},contextSummary:{type:"string",description:"Short structured summary of what the target Rover site should know before continuing."},expectedOutput:{type:"string",description:"Describe the output the delegated site should return to the parent workflow."},execution:{type:"string",enum:["auto","browser","cloud"],description:"Use browser to try a new tab first, cloud for guaranteed browserless execution, or auto for browser-first hybrid behavior."},task:{type:"string",description:"Existing delegated task URL or task ID to keep following or resume after user input."},answer:{type:"string",description:"Answer to send when resuming a delegated task that is waiting for user input."}},llmCallable:!0};function rS(){gf||!at||!qe||(Pf({def:oS,handler:nS}),gf=!0)}function eu(){Nr&&(clearTimeout(Nr),Nr=null),zs=null}function aS(e){return`${window.location.href}::${e.signature}`}function zk(e,t){let n=`${window.location.pathname}${window.location.search}${window.location.hash}`,o=Dg(window.location.href);if(t?.consumeDeepLink&&C){let r=new URL(o,window.location.origin).toString();o=Cd(r,ca(C.deepLink))}if(o!==n)try{history.replaceState(history.state,document.title,o),Qe("status",{event:"browser_receipt_consumed",receipt:e.receipt,consumeDeepLink:t?.consumeDeepLink===!0})}catch{}}function lf(e,t){let n=zs;n?.handleKey===e&&n.deadlineAt===t&&Nr||(Nr&&clearTimeout(Nr),zs={handleKey:e,deadlineAt:t},Nr=setTimeout(()=>{Nr=null,rc("receipt_retry")},Y_))}function iS(e){let t=e.input;if(!t||typeof t.prompt!="string"||!t.prompt.trim())throw new Error("Browser receipt claim did not include a prompt.");if(uo(),t.kind==="shortcut"){Io(t.prompt,{reason:"browser_receipt_shortcut",routing:t.routing});return}Io(t.prompt,{reason:"browser_receipt_prompt"})}function Lb(e,t,n,o){eu(),o?.openWidget&&(uo(),In("system",`Rover couldn't claim the browser receipt: ${n}`,!0)),Qe("status",{event:"browser_receipt_claim_failed",message:n}),Ls=t,zk(e,{consumeDeepLink:!1}),o?.fallbackToDeepLink&&Di("receipt_fallback")}function rc(e){if(!C||typeof window>"u")return!1;let t=Od(window.location.href);if(!t)return eu(),Ls="",li="",!1;let n=aS(t);if(n===Ls||li===n)return!0;let o=zs?.handleKey===n?zs.deadlineAt:Date.now()+Q_;return Date.now()>=o?(Lb(t,n,"Browser receipt claim timed out before Rover finished booting.",{fallbackToDeepLink:!0,openWidget:!0}),!0):(li=n,fr(C).then(async()=>{if(!he){lf(n,o);return}let r=await he.claimBrowserTaskReceipt({receipt:t.receipt});if(!r){lf(n,o);return}eu(),Hk({taskId:r.taskId,taskAccessToken:r.taskAccessToken,workflowId:r.workflowId,workflowAccessToken:r.workflowAccessToken,runId:r.runId}),iS(r),Qe("status",{event:"browser_receipt_claimed",source:e,taskId:r.taskId}),Ls=n,zk(t,{consumeDeepLink:!0})}).catch(r=>{if(Date.now()<o){lf(n,o);return}Lb(t,n,r?.message||"Unknown browser receipt failure.",{fallbackToDeepLink:!0,openWidget:!0})}).finally(()=>{li===n&&(li="")}),!0)}function Di(e){if(!C||typeof window>"u")return;let t=ca(C.deepLink);if(e!=="receipt_fallback"&&Od(window.location.href))return;let n=Ig(window.location.href,t);if(!n){di(),ui="",Ts="";return}let o=$I(n);if(!t.enabled){di(),Ts!==o&&(Qe("status",{event:"deep_link_ignored_disabled",kind:n.kind,paramName:n.paramName,source:e}),Ts=o);return}if(Ts="",o===ui)return;if(hi?.handleKey===o||Qe("status",{event:"deep_link_detected",kind:n.kind,paramName:n.paramName,source:e}),n.kind==="prompt"){di(),uo(),Io(n.value,{reason:"deep_link_prompt"}),Qe("status",{event:"deep_link_dispatched",kind:n.kind,paramName:n.paramName}),ui=o,Cf(t,n);return}let a=Nk(C).find(s=>s.enabled!==!1&&s.id===n.value);if(a){di(),uo(),Io(a.prompt,{reason:"deep_link_shortcut",routing:a.routing}),Qe("status",{event:"deep_link_dispatched",kind:n.kind,paramName:n.paramName,shortcutId:a.id,routing:a.routing}),ui=o,Cf(t,n);return}let i=hi?.handleKey===o?hi.deadlineAt:Date.now()+V_;if(Date.now()<i&&VI(C)){GI(o,n,i);return}KI(n,o,t)}function hu(e){if(!e)return;let t=Mi(Co?.greeting),n=Mi(e.ui?.greeting);if(!(!t&&!n))return{...t||{},...n||{}}}function jk(e){if(!e)return;let t=Ci(Co?.voice),n=Ci(e.ui?.voice);if(!t&&!n)return;let o={...t||{},...n||{}};return o.enabled===!0&&o.autoStopMs===void 0&&(o.autoStopMs=D_),o}function om(e){let t=To?.name,n=e?.text;return n?n.replace(/\{name\}/g,t||"").trim()||(t?`Hey ${t}! Need any help?`:"Hey! Need any help?"):t?`Hey ${t}! Need any help?`:"Hey! Need any help?"}function Vs(){if(Ur||!Q||!C||l?.uiOpen)return;let e=hu(C);if(e?.disabled===!0)return;let t=`rover:greeting-shown:${C.siteId}`;try{if(sessionStorage.getItem(t)){ya=!0;return}}catch{}if(ya)return;nc();let n=e?.delay??3e3,o=e?.duration??8e3,r=om(e);Rs=setTimeout(()=>{if(Rs=null,!(Ur||l?.uiOpen)){Q?.showGreeting(r),ya=!0;try{sessionStorage.setItem(t,"1")}catch{}As=setTimeout(()=>{As=null,Q?.dismissGreeting()},o)}},n)}function tu(e){let t=Nk(e);Q?.setShortcuts(Lk(t)),Q?.setVoiceConfig(jk(e)),AI(e),rc("site_config"),oc("site_config"),Di("site_config")}async function sS(e){let t=null,n=Xl(e)||zn(e);if(!n)return null;let o={siteId:e.siteId,sessionId:l?.sessionId||e.sessionId,requestedSessionId:l?.sessionId||e.sessionId,host:window.location.hostname,url:window.location.href,pageUrl:window.location.href};n.startsWith("rvrsess_")?o.sessionToken=n:o.bootstrapToken=n;let r=fa(e.apiBase);for(let a of r)try{let i=await fetch(`${a}/session/open`,{method:"POST",headers:{"Content-Type":"text/plain"},body:JSON.stringify(o)}),s=await i.json().catch(()=>{});if(!i.ok||!s?.success)continue;if(t=s?.data?.siteConfig||null,t)break}catch{}return t?{shortcuts:zr(t.shortcuts),greeting:Mi(t.greeting),voice:Ci(t.voice),aiAccess:tc(t.aiAccess),limits:pu(t.limits),pageConfig:lr(t.pageConfig),version:t.version!=null?String(t.version):void 0}:null}function qk(e){let t=CI(e.siteId);t&&(Co=t),tu(e),Vs(),sS(e).then(n=>{if(n&&(Co=n,Mk(e.siteId,n),tu(e),!Ur)){let o=hu(e);ya&&!l?.uiOpen?Q?.showGreeting(om(o)):Vs()}}).catch(()=>{})}function rm(e){if(!C)return;let t={...To,...e};t.name&&(t.name=String(t.name).trim().slice(0,120)),t.email&&(t.email=String(t.email).trim().slice(0,240)),To=t,Gb(C.siteId,To),Q?.setVisitorName(To.name||""),Ur||(ya&&!l?.uiOpen?Q?.showGreeting(om(hu(C))):Vs())}function cS(e){if(Zl(e),L){let u=Qs(L.getRole());bt=u,xo=u==="controller",l&&(l.executionMode=u)}tm(e),su(e),Lo(!0);let t=(e.allowActions??!0)&&(L?L.isController():!0),n=u=>{if(!l)return;let b=st(l.pendingRun);if(b){let R=st({...b,taskBoundaryId:b.taskBoundaryId||Re,resumeRequired:!0,resumeReason:u});return l.pendingRun=R,R&&L?.setActiveRun({runId:R.id,text:R.text}),R}let p=L?.getState().activeRun,g=String(he?.getActiveRunId()||Ks||p?.runId||"").trim();if(!g)return;let y=String(p?.text||ln||"Continue task").trim()||"Continue task",E=st({id:g,text:y,startedAt:Date.now(),attempts:0,autoResume:!0,taskBoundaryId:Re,resumeRequired:!0,resumeReason:u});return l.pendingRun=E,E&&L?.setActiveRun({runId:E.id,text:E.text}),E};at=new il({allowActions:t,runtimeId:it,allowedDomains:e.allowedDomains,domainScopeMode:qs(e.domainScopeMode),externalNavigationPolicy:e.externalNavigationPolicy,crossHostPolicy:iu(e.navigation?.crossHostPolicy),navigationDelayMs:e.timing?.navigationDelayMs,domSettle:{debounceMs:$t(e.timing?.domSettleDebounceMs,8,500),maxWaitMs:$t(e.timing?.domSettleMaxWaitMs,80,5e3),retries:$t(e.timing?.domSettleRetries,0,6),sparseTreeRetryDelayMs:$t(e.timing?.sparseTreeRetryDelayMs,20,1e3),sparseTreeRetryMaxAttempts:$t(e.timing?.sparseTreeRetryMaxAttempts,0,4)},registerOpenedTab:u=>L?.registerOpenedTab(u),switchToLogicalTab:u=>L?.switchToLogicalTab(u)||{ok:!1,reason:"No session coordinator"},listKnownTabs:()=>(L?.listTabs()||[]).map(u=>({logicalTabId:u.logicalTabId,runtimeId:u.runtimeId,url:u.url,title:u.title,external:!!u.external})),onNavigationGuardrail:u=>{if(Ve("navigation_guardrail",u),dt({kind:"status",title:"Navigation guardrail",detail:Hl(u),status:"info"}),he&&u?.blockedUrl){let b=Ib();if(!b)return;let p=String(window.location.hostname||"").toLowerCase(),g=(()=>{try{return new URL(String(u.blockedUrl)).hostname.toLowerCase()}catch{return}})();he.sendTabEvent({runId:b,currentUrl:String(u.currentUrl||window.location.href),targetUrl:String(u.blockedUrl),message:String(u.reason||""),currentHost:p||void 0,targetHost:g,isCrossHost:!!g&&!!p&&g!==p}).then(y=>{y&&(y.retryAttempted&&Ve("tab_event_conflict_retry",{runId:y.runId||b,decisionReason:y.decisionReason,conflict:y.conflict}),y.retryExhausted&&Ve("tab_event_conflict_exhausted",{runId:y.runId||b,decisionReason:y.decisionReason,conflict:y.conflict}))}).catch(()=>{})}},onBeforeAgentNavigation:async u=>{let b=Ib(),p=String(window.location.hostname||"").toLowerCase();if(u?.targetUrl&&lb(u.targetUrl,p)){let re=Jd(u.targetUrl,p);return Qe("navigation_guardrail",{event:"adversarial_blocked",targetUrl:u.targetUrl,score:re.score,reasons:re.reasons}),{decision:"block",reason:`Navigation blocked: suspicious URL detected (adversarial score ${re.score}).`,decisionReason:"adversarial_block"}}if(u?.isCrossHost){let re=Date.now();for(ma.push(re);ma.length>0&&ma[0]<re-wb;)ma.shift();if(ma.length>nE)return Qe("navigation_guardrail",{event:"rapid_cross_origin_blocked",targetUrl:u.targetUrl,count:ma.length}),{decision:"block",reason:`Navigation blocked: too many cross-origin navigations (${ma.length} in ${wb/1e3}s).`,decisionReason:"rapid_cross_origin_block"}}let g=(()=>{try{return new URL(String(u?.targetUrl||"")).hostname.toLowerCase()}catch{return}})(),y=!!p&&!!g&&rr(p)!==rr(g),E=!!p&&!!g&&p!==g,O=yd({host:g,currentHost:p,allowedDomains:C?.allowedDomains,domainScopeMode:C?.domainScopeMode})?E&&C?.navigation?.crossHostPolicy==="open_new_tab"?"open_new_tab":"allow_same_tab":C?.externalNavigationPolicy==="block"?"block":C?.externalNavigationPolicy==="allow"?"allow_same_tab":"open_new_tab",M=xE(),H=O==="allow_same_tab";if(H&&l){if(Wo=!0,rf(nf(u)),n(u.isCrossHost?"cross_host_navigation":"agent_navigation"),cn&&C?.siteId)try{sessionStorage.setItem(`rover:sess:${C.siteId}`,JSON.stringify({t:cn,e:Vo}))}catch{}if(K){let re=K.getActiveTask();re&&K.dispatch(re.taskId,{type:"NAVIGATION_STARTED",targetUrl:u.targetUrl,isCrossHost:u.isCrossHost})}wi("same_tab_navigation_handoff_early")}let N=null;if(u?.targetUrl&&he&&b){let re=!!g&&!!p&&g!==p;N=await he.sendTabEvent({runId:b,currentUrl:window.location.href,targetUrl:u.targetUrl,message:M,currentHost:p||void 0,targetHost:g,isCrossHost:re}).catch(()=>null),N?.retryAttempted&&Ve("tab_event_conflict_retry",{runId:N.runId||b,decisionReason:N.decisionReason,conflict:N.conflict,targetUrl:u.targetUrl}),N?.retryExhausted&&Ve("tab_event_conflict_exhausted",{runId:N.runId||b,decisionReason:N.decisionReason,conflict:N.conflict,targetUrl:u.targetUrl})}let Y=mb({crossRegistrableDomain:y,fallbackDecision:O,serverDecision:N?.decision,serverAvailable:!!N}),ae=Y.decision;if(ae==="block")return H&&(Wo=!1),{decision:"block",reason:Y.failSafeBlocked?"Cross-domain navigation blocked because preflight policy check is unavailable.":N?.reason||"Navigation blocked by policy.",decisionReason:Y.failSafeBlocked?"preflight_unavailable_block":N?.decisionReason||"policy_blocked"};if(ae==="open_new_tab"){H&&(Wo=!1),C?.tools?.web?.scrapeMode==="on_demand"&&he&&u?.targetUrl&&gI(u.targetUrl).catch(()=>{});let le=Y.decisionReason==="preflight_unavailable_fallback"&&!N;return{decision:"open_new_tab",reason:N?.reason||(le?"Preflight is unavailable; using local policy to open in a new tab and preserve runtime continuity.":"Open in new tab to preserve runtime continuity."),decisionReason:N?.decisionReason||Y.decisionReason||"open_new_tab"}}return!H&&l?(Wo=!0,rf(nf(u)),n(u.isCrossHost?"cross_host_navigation":"agent_navigation"),wi("same_tab_navigation_handoff")):H||(Wo=!0),{decision:"allow_same_tab",reason:N?.reason||(Y.decisionReason==="preflight_unavailable_fallback"&&!N?"Preflight is unavailable; allowing navigation using local policy.":"Navigation allowed."),decisionReason:N?.decisionReason||Y.decisionReason||"allow_same_tab"}},onBeforeCrossHostNavigation:u=>{if(Wo=!0,!l||!C)return;rf(nf(u));let b=Of(),p=n("cross_host_navigation");Vg(C.siteId,{sessionId:l.sessionId,sessionToken:cn,sessionTokenExpiresAt:Vo,openIntent:l.uiOpen?"preserve_if_running":void 0,targetUrl:String(u?.targetUrl||"").trim()||void 0,sourceHost:String(window.location.hostname||"").trim().toLowerCase()||void 0,handoffId:b?.handoffId||u?.handoffId,pendingRun:p?{id:p.id,text:p.text,startedAt:p.startedAt,attempts:p.attempts,taskBoundaryId:p.taskBoundaryId||Re}:void 0,handoff:b?{handoffId:b.handoffId,sourceLogicalTabId:b.sourceLogicalTabId,runId:b.runId,targetUrl:b.targetUrl,createdAt:b.createdAt}:void 0,activeTask:l.activeTask?{taskId:l.activeTask.taskId,status:l.activeTask.status}:void 0,taskEpoch:l.taskEpoch,timestamp:Date.now()}),wi("cross_domain_handoff_pre_navigation")},instrumentationOptions:e.mode==="safe"?{observeInlineMutations:!1}:void 0});let o=bt==="observer"?"observer":"controller";at?.setActionGateContext?.({mode:o,controllerRuntimeId:L?.getCurrentHolderRuntimeId(),activeLogicalTabId:L?.getActiveLogicalTabId(),localLogicalTabId:L?.getLocalLogicalTabId(),reason:Ys(o,t)});let r=new MessageChannel;Vh(r.port1,{getSnapshot:()=>at.getSnapshot(),getPageData:async u=>{let b=C||e,p=Number(u?.tabId),g=L?.getLocalLogicalTabId();if(!Number.isFinite(p)||p<=0||p===g||!L)return at.getPageData(u);let E=L.listTabs().find(R=>R.logicalTabId===p);if(!E){let R=Ds().includes(p);return bs({logicalTabId:p,external:!1},R?"detached_runtime_placeholder":"target_tab_missing")}if(E.runtimeId===it)return at.getPageData(u);if(E.external&&b.externalNavigationPolicy!=="allow")return bs(E,"external_domain_inaccessible");if(!E.runtimeId||!L.isTabAlive(p))return bs(E,"target_tab_inactive");try{return await L.sendCrossTabRpc(E.runtimeId,"getPageData",u,15e3)}catch{return bs(E,"cross_tab_rpc_failed")}},executeTool:async u=>{let b=C||e,p=u?.payload?.forceLocal===!0,g=String(u?.call?.name||"").trim(),y=Number(u?.call?.args?.tab_id),E=L?.getActiveLogicalTabId(),R=Number.isFinite(y)&&y>0?y:E;if(kI(g)){let N=u?.call?.serverResult;return N?N.success?{success:!0,output:N.data}:{success:!1,error:N.error||"Server-side execution failed"}:yI({call:u?.call,routeTabId:Number.isFinite(Number(R))?Number(R):void 0,runtimeCfg:b})}if(p)return at.executeTool(u.call,u.payload);let O=L?.getLocalLogicalTabId();if(!R||R===O||!L)return at.executeTool(u.call,u.payload);let H=L.listTabs().find(N=>N.logicalTabId===R);if(!H){let N=Ds().includes(R);return ks(b,{logicalTabId:R,external:!1},N?"detached_runtime_placeholder":"target_tab_missing")}if(H.external&&b.externalNavigationPolicy!=="allow")return ks(b,H,"external_tab_action_blocked");if(H.runtimeId===it)return at.executeTool(u.call,u.payload);if(!H.runtimeId||!L.isTabAlive(R))return ks(b,H,"target_tab_inactive");try{return await L.sendCrossTabRpc(H.runtimeId,"executeTool",u,2e4)}catch{return ks(b,H,"cross_tab_execute_failed")}},executeClientTool:u=>at.executeClientTool(u.name,u.args),listClientTools:()=>at.listClientTools(),getTabContext:()=>{let u=L?.getLocalLogicalTabId(),b=L?.getActiveLogicalTabId();return{id:u||1,logicalTabId:u||1,activeLogicalTabId:b||u||1,runtimeId:it,mode:bt,url:window.location.href,title:document.title}},listSessionTabs:()=>{if(!L)return[];let u=L.listTabs({scope:"all"}),b=Array.isArray(L.getState()?.tabs)?L.getState().tabs:[],p=new Set(Ds()),g=new Map,y=E=>{let R=Number(E?.logicalTabId||E?.id);!Number.isFinite(R)||R<=0||g.set(R,{...g.get(R)||{},...E,logicalTabId:R,id:R})};for(let E of u)y(E);for(let E of b){let R=Number(E?.logicalTabId);!Number.isFinite(R)||R<=0||(E.runtimeId||E.external||p.has(R))&&y(E)}return[...g.values()].sort((E,R)=>Number(E.logicalTabId)-Number(R.logicalTabId))}}),r.port1.start?.();let a=e.workerUrl?e.workerUrl:new URL("./worker/worker.js",__ROVER_SCRIPT_URL__).toString(),i=a;try{let u=window.location.origin,b=new URL(a).origin;if(u!==b){let p=new Blob([`import '${a}';`],{type:"application/javascript"});i=URL.createObjectURL(p)}}catch{}qe=new Worker(i,{type:"module"}),qe.postMessage({type:"init",config:{...e,...Sa(),pageConfig:$s(C),publicKey:void 0,authToken:zn(e),sessionToken:cn,sessionId:l?.sessionId,activeRunId:l?.pendingRun?.id},port:r.port2},[r.port2]);let s=(u="manual_cancel_task")=>{if(!l)return;let b=l.pendingRun;if(b){jr(b.id),qe?.postMessage({type:"cancel_run",runId:b.id}),Hr(b.id,u,{attemptImmediately:!0}),he?.controlRun({action:"cancel",runId:b.id,reason:u}).catch(()=>{}),L?.releaseWorkflowLock(b.id),L?.setActiveRun(void 0),Lt(void 0),l.workerState=void 0,L?.setWorkerContext(void 0),Re=No(),l.taskTabScope=void 0,Zn({forceReset:!0,persist:!1}),co(),It&&(clearTimeout(It),It=null),Q?.setRunning(!1),Q?.setQuestionPrompt(void 0),wk(u),Nt(void 0),In("system","Task cancelled.",!0),wa=void 0,Ko=void 0,_i=0,dt({kind:"info",title:"Run cancelled",status:"info"}),Oe();return}let p=So(l.workerState?.pendingAskUser?.questions).length>0,g=l.activeTask?.status;!p&&g!=="running"||(Re=No(),l.workerState=void 0,l.taskTabScope=void 0,Zn({forceReset:!0,persist:!1}),co(),It&&(clearTimeout(It),It=null),Q?.setRunning(!1),Q?.setQuestionPrompt(void 0),Fn(),Lt(void 0),lI(u),L?.endTask(u),L?.setActiveRun(void 0),L?.setWorkerContext(void 0),Nt(void 0),wa=void 0,Ko=void 0,_i=0,dt({kind:"info",title:u==="question_prompt_cancel"?"Input request cancelled":"Task cancelled",status:"info"}),Oe())};Q=mg({panel:{resizable:e.ui?.panel?.resizable!==!1},shortcuts:Lk(zr(e.ui?.shortcuts||[])),greeting:hu(e),voice:jk(e),visitorName:To?.name,onVoiceTelemetry:(u,b)=>{RE(u,b)},onShortcutClick:u=>{let b=String(u.prompt||"").trim();b&&Io(b,{routing:u.routing})},onSend:(u,b)=>{Io(u,{askUserAnswers:b?.askUserAnswers})},onRequestControl:()=>{UE()?dt({kind:"status",title:"Control requested",detail:"This tab is now the active Rover controller for the current task.",status:"info"}):In("system","Unable to acquire control right now. Try again in a moment.",!0)},onCancelRun:()=>{s("manual_cancel_task")},onCancelQuestionFlow:()=>{s("question_prompt_cancel")},onNewTask:()=>{ac({reason:"manual_new_task",clearUi:!0})},onEndTask:()=>{bu({reason:"manual_end_task"})},onTaskSuggestionPrimary:()=>{let u=Pr;if(u){if(u.kind==="resume_run"){let b=st(l?.pendingRun);if(Fn(),!b||b.id!==u.runId){Nt("Previous task is no longer resumable.");return}Go({overridePolicyAction:"auto_resume"});return}Io(u.text,{bypassSuggestion:!0,startNewTask:!0,reason:u.reason})}},onTaskSuggestionSecondary:()=>{let u=Pr;if(u){if(u.kind==="resume_run"){let b=String(l?.pendingRun?.id||"").trim();if(Fn(),!b||b!==u.runId)return;Qf({reason:"resume_declined_by_user",statusText:"Resume cancelled. Start a new task when you are ready.",runId:u.runId,cancelReason:"resume_declined_by_user",timelineTitle:"Resume cancelled",timelineDetail:"Interrupted run was cancelled by user action.",timelineStatus:"info"});return}Io(u.text,{bypassSuggestion:!0})}},onSwitchConversation:u=>{if(!K||!l)return;let b=K.getActiveTask();b&&Q&&(b.scrollPosition=Q.getScrollPosition());let p=String(L?.getState()?.activeRun?.runId||"").trim(),y=!!(String(l.pendingRun?.id||"").trim()||p);if(b&&b.taskId!==u&&y){In("system","Finish the active run before switching conversations.",!0);return}let E=K.switchActiveTask(u);E&&(kk(E,{replayUi:!0}),l.activeTaskId=u,Q&&(requestAnimationFrame(()=>{E.scrollPosition!=null&&Q.setScrollPosition(E.scrollPosition)}),Q.setActiveConversationId(u)),Dr(),Oe())},onDeleteConversation:u=>{K&&(K.deleteTask(u),Dr(),Oe())},onResumeTask:u=>{if(!K)return;K.dispatch(u,{type:"RESUME"}).accepted&&(Q?.hidePausedTaskBanner(),K.assignWorker(u,{}),Dr(),Oe())},onCancelPausedTask:u=>{if(!K)return;K.dispatch(u,{type:"CANCEL",reason:"user_cancelled_paused_task"}).accepted&&(Q?.hidePausedTaskBanner(),K.archiveTask(u),Dr(),Oe())},onTabClick:u=>{L?.switchToLogicalTab(u)},showTaskControls:e.ui?.showTaskControls!==!1,muted:e.ui?.muted,agent:{name:e.ui?.agent?.name},mascot:{disabled:e.ui?.mascot?.disabled,mp4Url:e.ui?.mascot?.mp4Url,webmUrl:e.ui?.mascot?.webmUrl},onOpen:()=>{Ur=!0,nc(),l&&(l.uiOpen=!0,l.uiHidden=!1,Oe()),Ve("open")},onClose:()=>{l&&(l.uiOpen=!1,Oe()),Ve("close")}}),Fn(),l?.uiMessages?.length&&uu(l.uiMessages),l?.timeline?.length&&du(l.timeline),fu(l),Ai(),l?.executionMode&&Q.setExecutionMode(l.executionMode,{localLogicalTabId:L?.getLocalLogicalTabId(),activeLogicalTabId:L?.getActiveLogicalTabId(),controllerRuntimeId:L?.getCurrentHolderRuntimeId(),canTakeControl:!0,canComposeInObserver:dk(),note:fk(l.executionMode)}),qe.onmessage=u=>{II(u.data||{})};let c=()=>{L?.registerCurrentTab(window.location.href,document.title),L?.broadcastNavigation(window.location.href,document.title),rc("navigation"),oc("navigation"),Di("navigation")};mi||(mi=History.prototype.pushState),pi||(pi=History.prototype.replaceState);let d=mi.bind(history),f=pi.bind(history);history.pushState=function(...u){let b=d(...u);return setTimeout(c,0),b},history.replaceState=function(...u){let b=f(...u);return setTimeout(c,0),b},Ol(window,"popstate",c),l?.uiHidden?Q.hide():(Q.show(),l?.uiOpen??!!e.openOnInit?Q.open():Q.close()),l&&(l.uiHidden=!!l.uiHidden,l.uiOpen=!!l.uiOpen,Oe()),L&&(Zf(L.getState(),"remote"),Ea(L.getRole(),{localLogicalTabId:L.getLocalLogicalTabId(),activeLogicalTabId:L.getActiveLogicalTabId(),holderRuntimeId:L.getCurrentHolderRuntimeId()})),Vs()}function Gs(e){if(Lr)return nu(e),Lr;hf&&ou(),hf=!0,sr=Ug(),it=hE(e.siteId),Ft=Kb(e),To=e.visitor||kE(e.siteId),Ur=!1,ya=!1,nc(),Ta(),Co=null,En=!1;let t=e.sessionId?.trim(),n=yE(e.siteId),o=!t&&e.sessionScope!=="tab"&&Ft?Tb(e.siteId,Ft):void 0,r=Ul(e.siteId,t||o),a=yi(e.siteId),i=Array.from(new Set([t?r:n,r,n,o?Ul(e.siteId,o):void 0,a].filter(M=>!!M))),s=null,c=null;for(let M of i){let H=jE(M);if(H){s=H,c=M;break}}Tn=c||r,ar=a!==Tn?a:null;let d=i.filter(M=>M!==Tn);yf(e.siteId,Tn);let f=s?null:jd(e.siteId,{currentUrl:window.location.href,currentHost:window.location.hostname,requireTargetMatch:!0});!s&&!f&&jd(e.siteId,{currentHost:window.location.hostname,requireTargetMatch:!1})&&(Qe("status",{event:"resume_cookie_rejected",reason:"target_or_host_mismatch"}),ls(e.siteId)),f&&(ls(e.siteId),kn=!0,En=!0,f.openIntent==="preserve_if_running"&&_b({runId:f.pendingRun?.id,taskId:f.activeTask?.taskId}),f.sessionToken&&Yl(f.sessionToken,f.sessionTokenExpiresAt));let u=e.sessionId?.trim(),b=!u&&!s?.sessionId&&!f?.sessionId&&e.sessionScope!=="tab"&&Ft?Tb(e.siteId,Ft):void 0,p=u||s?.sessionId||f?.sessionId||b||crypto.randomUUID(),g=s;if(!s&&f){let M=vf(f.sessionId,it),H=String(f.activeTask?.status||"").trim().toLowerCase(),N=!H||H==="running";f.pendingRun&&N&&(M.pendingRun=st({...f.pendingRun,autoResume:!0,taskBoundaryId:f.pendingRun.taskBoundaryId,resumeRequired:!0,resumeReason:"cross_host_navigation"})),f.handoff&&(M.lastNavigationHandoff=dr({...f.handoff,createdAt:f.handoff.createdAt})),f.activeTask&&(M.activeTask={...Sn("cross_domain_resume"),taskId:f.activeTask.taskId,status:f.activeTask.status}),M.taskEpoch=f.taskEpoch||1,Qd(f.openIntent)&&(M.uiHidden=!1,M.uiOpen=!0),g=M}l=Ws(g,p,it),u&&l.sessionId!==u&&(l=vf(u,it));let y=wE(e.siteId);Re=fE(l),y&&l.activeTask?.status==="running"&&(En=!0,Qd(y.openIntent)&&(l.uiHidden=!1,l.uiOpen=!0,_b({runId:y.runId,taskId:l.activeTask?.taskId})),l.pendingRun=st({...l.pendingRun||{},id:l.pendingRun?.id||y.runId,text:l.pendingRun?.text||y.text||ln||"Continue task",startedAt:l.pendingRun?.startedAt||Date.now(),attempts:l.pendingRun?.attempts||0,autoResume:!0,taskBoundaryId:l.pendingRun?.taskBoundaryId||y.taskBoundaryId||Re,resumeRequired:!0,resumeReason:y.resumeReason||l.pendingRun?.resumeReason||"agent_navigation"})),l.pendingRun&&!l.pendingRun.taskBoundaryId&&(l.pendingRun=st({...l.pendingRun,taskBoundaryId:Re})),l.workerState&&!l.workerState.taskBoundaryId&&(l.workerState=Eo(Vt({...l.workerState,taskBoundaryId:Re}),Re)),Xs(l),C={...e,deepLink:ca(e.deepLink),pageConfig:lr(e.pageConfig),visitorId:Ft||e.visitorId,sessionId:u||l.sessionId,domainScopeMode:qs(e.domainScopeMode),taskRouting:{mode:e.taskRouting?.mode||"act",actHeuristicThreshold:e.taskRouting?.actHeuristicThreshold,plannerOnActError:e.taskRouting?.plannerOnActError},navigation:{crossHostPolicy:iu(e.navigation?.crossHostPolicy)},timing:{navigationDelayMs:$t(e.timing?.navigationDelayMs,0,3e3),actionTimeoutMs:$t(e.timing?.actionTimeoutMs,Bs,12e4),domSettleDebounceMs:$t(e.timing?.domSettleDebounceMs,8,500),domSettleMaxWaitMs:$t(e.timing?.domSettleMaxWaitMs,80,5e3),domSettleRetries:$t(e.timing?.domSettleRetries,0,6),sparseTreeRetryDelayMs:$t(e.timing?.sparseTreeRetryDelayMs,20,1e3),sparseTreeRetryMaxAttempts:$t(e.timing?.sparseTreeRetryMaxAttempts,0,4)},transport:{activation:Wf(e.transport?.activation),idleCloseMs:$f(e.transport?.idleCloseMs)},stability:{maxPersistBytes:Ii(e.stability?.maxPersistBytes,Tt.localPersistBytes),maxSnapshotBytes:Ii(e.stability?.maxSnapshotBytes,Tt.snapshotBytes)},task:{singleActiveScope:Yb(e.task?.singleActiveScope),tabScope:Qb(e.task?.tabScope),resume:{mode:Ff(e.task?.resume?.mode),ttlMs:Kl(e.task?.resume?.ttlMs)},followup:{mode:Jb(e.task?.followup?.mode),ttlMs:jf(e.task?.followup?.ttlMs),minLexicalOverlap:qf(e.task?.followup?.minLexicalOverlap)},observerInput:zf(e.task?.observerInput),autoResumePolicy:Hf(e.task?.autoResumePolicy)},chat:{inRun:Zb(e.chat?.inRun),resumeFollowup:{mode:ek(e.chat?.resumeFollowup?.mode),maxTurns:tk(e.chat?.resumeFollowup?.maxTurns)}},external:{intentSelection:nk(e.external?.intentSelection),requireUserConfirm:ok(e.external?.requireUserConfirm),adversarialGate:rk(e.external?.adversarialGate)},taskContext:{...e.taskContext},features:{rover_v2_kernel_runtime:ak(e.features?.rover_v2_kernel_runtime)}},l.sessionId=C.sessionId,l.runtimeId=it,Tn=Ul(e.siteId,l.sessionId),ar=Tn!==yi(e.siteId)?yi(e.siteId):null,yf(e.siteId,Tn),l.executionMode=l.executionMode||"controller",l.timeline=Ao(l.timeline),l.uiMessages=Ro(l.uiMessages),l.activeTask=qr(l.activeTask,Sn("boot")),Vd(l.activeTask?.status)&&(l.pendingRun=void 0,l.workerState=void 0,kn=!1,En=!1,Ta(),ls(e.siteId),Xb(e.siteId)),l.taskEpoch=Math.max(1,Number(l.taskEpoch)||1),bt=l.executionMode,To&&Gb(e.siteId,To);let E={maxConcurrentWorkers:e.task?.maxConcurrentWorkers??2,maxQueuedTasks:e.task?.maxQueuedTasks??5,maxArchivedTasks:e.task?.maxArchivedTasks??10};if(l.tasks&&Object.keys(l.tasks).length>0)K=ri.fromPersistedState({tasks:l.tasks,activeTaskId:l.activeTaskId,taskOrder:l.taskOrder},E);else{K=ri.fromV1State(l,E);let{tasks:M,activeTaskId:H,taskOrder:N}=K.toPersistedState();l.tasks=M,l.activeTaskId=H,l.taskOrder=N}let R=K.getActiveTask();R&&kk(R,{replayUi:!1}),Oe();try{sessionStorage.setItem(`rover:tab-alive:${e.siteId}`,"1")}catch{}lo=!1,Ti=!1,Mo=!1,_n=0,Gl=null;try{let M=sessionStorage.getItem(`rover:sess:${e.siteId}`);if(M){let{t:H,e:N}=JSON.parse(M);H&&typeof H=="string"&&H.startsWith("rvrsess_")&&Number(N)>Date.now()+2e3&&Yl(H,Number(N))}}catch{}cS(C),fr(C),rc("boot"),oc("boot"),Di("boot");let O=!!(cn&&Vo>Date.now()+2e3);if((!he||O)&&(Ti=!0),Tn&&xI(Tn,d.length?d:ar?[ar]:void 0),tI(),Lo(!0),kn&&setTimeout(()=>{kn&&!Mo&&(kn=!1,Go())},H_),Lr={boot:Gs,init:am,update:nu,shutdown:ou,open:uo,close:gu,show:im,hide:sm,send:cm,newTask:ac,endTask:bu,getState:dm,requestSigned:lm,registerPromptContextProvider:um,registerTool:fm,identify:rm,on:qb},rS(),Pl.length){for(let M of Pl)Pf(M);Pl.length=0}return Lr}function am(e){return Gs(e)}function nu(e){if(!Lr||!qe||!C)return;C={...C,...e,deepLink:ca({...C.deepLink,...e.deepLink}),pageConfig:e.pageConfig!==void 0?lr(e.pageConfig):C.pageConfig,domainScopeMode:qs(e.domainScopeMode??C.domainScopeMode),taskRouting:{...C.taskRouting,...e.taskRouting},navigation:{...C.navigation,...e.navigation,crossHostPolicy:iu(e.navigation?.crossHostPolicy??C.navigation?.crossHostPolicy)},timing:{...C.timing,...e.timing,navigationDelayMs:$t(e.timing?.navigationDelayMs??C.timing?.navigationDelayMs,0,3e3),actionTimeoutMs:$t(e.timing?.actionTimeoutMs??C.timing?.actionTimeoutMs,Bs,12e4),domSettleDebounceMs:$t(e.timing?.domSettleDebounceMs??C.timing?.domSettleDebounceMs,8,500),domSettleMaxWaitMs:$t(e.timing?.domSettleMaxWaitMs??C.timing?.domSettleMaxWaitMs,80,5e3),domSettleRetries:$t(e.timing?.domSettleRetries??C.timing?.domSettleRetries,0,6),sparseTreeRetryDelayMs:$t(e.timing?.sparseTreeRetryDelayMs??C.timing?.sparseTreeRetryDelayMs,20,1e3),sparseTreeRetryMaxAttempts:$t(e.timing?.sparseTreeRetryMaxAttempts??C.timing?.sparseTreeRetryMaxAttempts,0,4)},transport:{...C.transport,...e.transport,activation:Wf(e.transport?.activation??C.transport?.activation),idleCloseMs:$f(e.transport?.idleCloseMs??C.transport?.idleCloseMs)},stability:{...C.stability,...e.stability,maxPersistBytes:Ii(e.stability?.maxPersistBytes??C.stability?.maxPersistBytes,Tt.localPersistBytes),maxSnapshotBytes:Ii(e.stability?.maxSnapshotBytes??C.stability?.maxSnapshotBytes,Tt.snapshotBytes)},task:{...C.task,...e.task,singleActiveScope:Yb(e.task?.singleActiveScope??C.task?.singleActiveScope),tabScope:Qb(e.task?.tabScope??C.task?.tabScope),resume:{mode:Ff(e.task?.resume?.mode??C.task?.resume?.mode),ttlMs:Kl(e.task?.resume?.ttlMs??C.task?.resume?.ttlMs)},followup:{mode:Jb(e.task?.followup?.mode??C.task?.followup?.mode),ttlMs:jf(e.task?.followup?.ttlMs??C.task?.followup?.ttlMs),minLexicalOverlap:qf(e.task?.followup?.minLexicalOverlap??C.task?.followup?.minLexicalOverlap)},observerInput:zf(e.task?.observerInput??C.task?.observerInput),autoResumePolicy:Hf(e.task?.autoResumePolicy??C.task?.autoResumePolicy)},chat:{...C.chat,...e.chat,inRun:Zb(e.chat?.inRun??C.chat?.inRun),resumeFollowup:{mode:ek(e.chat?.resumeFollowup?.mode??C.chat?.resumeFollowup?.mode),maxTurns:tk(e.chat?.resumeFollowup?.maxTurns??C.chat?.resumeFollowup?.maxTurns)}},external:{...C.external,...e.external,intentSelection:nk(e.external?.intentSelection??C.external?.intentSelection),requireUserConfirm:ok(e.external?.requireUserConfirm??C.external?.requireUserConfirm),adversarialGate:rk(e.external?.adversarialGate??C.external?.adversarialGate)},taskContext:{...C.taskContext,...e.taskContext},features:{...C.features,...e.features,rover_v2_kernel_runtime:ak(e.features?.rover_v2_kernel_runtime??C.features?.rover_v2_kernel_runtime)},ui:{...C.ui,...e.ui,agent:{...C.ui?.agent,...e.ui?.agent},panel:{...C.ui?.panel,...e.ui?.panel},voice:{...C.ui?.voice,...e.ui?.voice}},tools:{...C.tools,...e.tools,client:e.tools?.client??C.tools?.client,web:{...C.tools?.web,...e.tools?.web}}},Ft=Kb(C),Ft&&(C.visitorId=Ft),e.sessionId&&l?(l.sessionId=e.sessionId,Tn=Ul(C.siteId,l.sessionId),ar=Tn!==yi(C.siteId)?yi(C.siteId):null,yf(C.siteId,Tn),Oe(),Zl(C)):(e.sessionScope||e.tabPolicy)&&Zl(C),tm(C),su(C),fr(C);let t=e.apiBase!==void 0||e.publicKey!==void 0||e.authToken!==void 0||e.sessionToken!==void 0||e.siteId!==void 0||e.siteKeyId!==void 0||e.ui?.shortcuts!==void 0||e.ui?.greeting!==void 0;if(at){typeof e.allowActions=="boolean"&&at.setAllowActions(e.allowActions&&bt==="controller");let n=bt==="controller"&&(C?.allowActions??!0),o=bt==="observer"?"observer":"controller";at?.setActionGateContext?.({mode:o,controllerRuntimeId:L?.getCurrentHolderRuntimeId(),activeLogicalTabId:L?.getActiveLogicalTabId(),localLogicalTabId:L?.getLocalLogicalTabId(),reason:Ys(o,n)}),(e.allowedDomains||e.domainScopeMode||e.externalNavigationPolicy||e.navigation?.crossHostPolicy)&&at.setNavigationPolicy({allowedDomains:e.allowedDomains,domainScopeMode:qs(e.domainScopeMode??C.domainScopeMode),externalNavigationPolicy:e.externalNavigationPolicy,crossHostPolicy:e.navigation?.crossHostPolicy})}qe.postMessage({type:"update_config",config:{...e,...Sa(),pageConfig:$s(C),publicKey:void 0,authToken:zn(C),sessionToken:cn,sessionId:l?.sessionId,activeRunId:l?.pendingRun?.id,sessionEpoch:he?.getEpoch?.()??ir,sessionSeq:he?.getLastSeq?.()??0}}),tu(C),t?qk(C):Vs(),e.visitor&&rm(e.visitor),typeof e.openOnInit=="boolean"&&(e.openOnInit||Uf(l)?uo():gu()),rc("update"),oc("update"),Di("update"),Lo()}function ou(){Ta(),Fn(),vi(),nm(!0),ka(!0),Gf(),Et?.markDirty(),Et?.syncNow({push:!0,pull:!1}),Et?.stop(),Et=null,he?.stop(),he=null,cn=void 0,Vo=0,ir=1,Br(void 0),Hs="",L?.stop(),L=null,K?.shutdown(),K=null,qe?.terminate(),qe=null,Q?.destroy(),Q=null,at=null,C=null,lo=!1,Mo=!1,_n=0,gt&&(clearTimeout(gt),gt=null),Ar&&(clearTimeout(Ar),Ar=null),Dl=!1,bn.clear(),$o.clear(),_o.clear(),jo.clear(),Os(),di(),ga="",Cs="",_s="",OI(),ui="",Ts="",eu(),Ls="",li="",ba=null,Fs.clear(),gf=!1,Wo=!1,Re="",it="",Ft=void 0,To=void 0,Ur=!1,ya=!1,nc(),Co=null,ff="",xi=!1,Ll=!1,fi=!1,Un=[],Bb=0,uf=0,df=0,Vl=0,Ss=!1,cr&&(clearTimeout(cr),cr=null),If="",ci="",bt="controller",xo=!0,Pr=null,sr=null,Gl=null,Es=0;try{let e=window.rtrvrAIClearObserverPause;typeof e=="function"&&e()}catch{}Lr=null;for(let e of Or)try{e.target.removeEventListener(e.event,e.handler,e.options)}catch{}if(Or.length=0,mi){try{History.prototype.pushState=mi}catch{}mi=null}if(pi){try{History.prototype.replaceState=pi}catch{}pi=null}mf=!1,pf=!1,hf=!1}function uo(){Ur=!0,nc(),Q?.show(),Q?.open(),l&&(l.uiHidden=!1,l.uiOpen=!0,Oe())}function gu(){Q?.close(),Ta(),l&&(l.uiOpen=!1,Oe())}function im(){Q?.show(),l&&(l.uiHidden=!1,Oe())}function sm(){Q?.hide(),Ta(),l&&(l.uiHidden=!0,l.uiOpen=!1,Oe())}function cm(e){e?.trim()&&Io(e)}async function lm(e,t={}){if(!C)throw new Error("Rover is not booted.");await fr(C),await he?.ensureSession(!1);let n=he?.getSessionToken()||cn||zn(C);if(!n)throw new Error("Rover signed request is unavailable without an active Rover session.");let o=new Headers(t.headers||void 0);return o.has("Authorization")||o.set("Authorization",`Bearer ${n}`),l?.sessionId&&!o.has("X-Rover-Session-Id")&&o.set("X-Rover-Session-Id",l.sessionId),C.siteId&&!o.has("X-Rover-Site-Id")&&o.set("X-Rover-Site-Id",C.siteId),typeof window<"u"&&!o.has("X-Rover-Host")&&o.set("X-Rover-Host",window.location.hostname),fetch(e,{...t,headers:o})}function um(e){return typeof e!="function"?()=>{}:(Fs.add(e),()=>{Fs.delete(e)})}function ac(e){if(!l)return;let t=e?.reason||"manual_new_task",n=e?.clearUi!==!1;if(wa=void 0,Ko=void 0,_i=0,l.pendingRun&&(jr(l.pendingRun.id),qe?.postMessage({type:"cancel_run",runId:l.pendingRun.id}),Hr(l.pendingRun.id,t,{attemptImmediately:!0}),he?.controlRun({action:"cancel",runId:l.pendingRun.id,reason:t}),L?.releaseWorkflowLock(l.pendingRun.id)),It&&(clearTimeout(It),It=null),Q?.setRunning(!1),Q?.setQuestionPrompt(void 0),Mo=!1,_n=0,ec(),K){let a=K.createTask(t);K.switchActiveTask(a.taskId),K.dispatch(a.taskId,{type:"START",reason:t})}let o=Wr({type:"new_task",reason:t,at:Date.now()},{syncShared:!1,persist:!1});if(!o)return;let r=Math.max(1,Number(l.taskEpoch)||1);n&&(l.uiMessages=[],l.timeline=[],l.uiStatus=void 0,l.transientStatus=void 0,Yf()),L?.startNewTask({taskId:o.taskId,startedAt:o.startedAt,boundaryReason:t,status:"running",lastUserAt:void 0,lastAssistantAt:void 0}),Zn({forceReset:!0,persist:!1}),L?.setActiveRun(void 0),L?.setWorkerContext(void 0),yk([]),Nt(void 0),Oe(),qe?.postMessage({type:"start_new_task",taskId:o.taskId,...Sa()}),he?.controlRun({action:"new_task",reason:t}),Ve("task_started",{taskId:o.taskId,reason:t,taskEpoch:r})}function bu(e){if(!l)return;let t=e?.reason||"manual_end_task";if(wa=void 0,Ko=void 0,_i=0,Mo=!1,_n=0,En=!1,ec(),K){let r=K.getActiveTask();r&&K.dispatch(r.taskId,{type:"CANCEL",reason:t})}let n=l.pendingRun?.id,o=Wr({type:"terminal",terminal:"ended",reason:t,at:Date.now()},{syncShared:!1,persist:!1,rotateBoundary:!1});o&&(n&&(jr(n),qe?.postMessage({type:"cancel_run",runId:n}),Hr(n,t,{attemptImmediately:!0}),he?.controlRun({action:"cancel",runId:n,reason:t}),L?.releaseWorkflowLock(n)),Lt(void 0),Re=No(),l.workerState=void 0,l.taskTabScope=void 0,Zn({forceReset:!0,persist:!1}),co(),It&&(clearTimeout(It),It=null),Q?.setRunning(!1),Q?.setQuestionPrompt(void 0),Fn(),Nt(void 0),he?.controlRun({action:"end_task",runId:n,reason:t}),L?.endTask(t),L?.setActiveRun(void 0),L?.setWorkerContext(void 0),Oe(),dt({kind:"info",title:"Task ended",detail:"Start a new task when you are ready.",status:"info"}),Ve("task_ended",{taskId:o.taskId,reason:t,endedAt:o.endedAt}))}function dm(){let e=IE(zn()),t=l?em(l):null;return t&&e&&(t.currentAgentAttribution=e),{mode:bt,runtimeId:it,runtimeState:t,sharedState:L?.getState()||null,pendingTaskSuggestion:Pr,currentAgentAttribution:e}}function fm(e,t){let n=dE(e);if(!Lr||!at||!qe){Pl.push({def:n,handler:t});return}Pf({def:n,handler:t})}function lS(e){if(!e)return;let t=String(e);if(t==="init")return"init";if(t==="boot")return"boot";if(t==="update")return"update";if(t==="shutdown")return"shutdown";if(t==="open")return"open";if(t==="close")return"close";if(t==="show")return"show";if(t==="hide")return"hide";if(t==="send")return"send";if(t==="newTask")return"newTask";if(t==="endTask")return"endTask";if(t==="getState")return"getState";if(t==="requestSigned")return"requestSigned";if(t==="registerPromptContextProvider")return"registerPromptContextProvider";if(t==="registerTool")return"registerTool";if(t==="on")return"on"}var uS={sanitizeWorkerState:Vt,cloneRuntimeStateForCheckpoint:em,getPersistGovernorConfig:()=>({minPersistIntervalMs:Sf,maxCoalesceDelayMs:bk}),getTelemetryFastLaneEvents:()=>Array.from(Ub.values()),normalizePromptContextEntry:Fb,buildPublicRunStartedPayload:zb,buildPublicRunLifecyclePayload:jb};function Wk(){let e=window,t=e.rover,n=((o,...r)=>{let a=lS(o),i=a?n[a]:void 0;if(typeof i=="function")return i(...r)});if(n.boot=Gs,n.init=am,n.update=nu,n.shutdown=ou,n.open=uo,n.close=gu,n.show=im,n.hide=sm,n.send=cm,n.newTask=ac,n.endTask=bu,n.getState=dm,n.requestSigned=lm,n.registerPromptContextProvider=um,n.registerTool=fm,n.on=qb,e.rover=n,typeof t=="function"&&Array.isArray(t.q))for(let o of t.q){let[r,...a]=Array.isArray(o)?o:Array.from(o);typeof r=="string"&&n(r,...a)}if(!Lr){let o=typeof globalThis.__ROVER_SCRIPT_EL__<"u"?globalThis.__ROVER_SCRIPT_EL__:null;if(o){let r=o.getAttribute("data-site-id"),a=o.getAttribute("data-public-key");if(r&&a){let i={siteId:r,publicKey:a},s=o.getAttribute("data-allowed-domains");s&&(i.allowedDomains=s.split(",").map(u=>u.trim()).filter(Boolean));let c=o.getAttribute("data-domain-scope-mode");(c==="host_only"||c==="registrable_domain")&&(i.domainScopeMode=c);let d=o.getAttribute("data-site-key-id");d&&(i.siteKeyId=d);let f=o.getAttribute("data-worker-url");f&&(i.workerUrl=f),Gs(i)}}}}Wk();return Cy(dS);})();
2101
+ `);let n=e.find(o=>o.type==="tool_output"||o.type==="json");if(n){if(typeof n.data=="string"&&n.data.trim())return n.data.trim();if(typeof n.data=="number"||typeof n.data=="boolean")return String(n.data)}}function sE(e){if(e==null)return;let t=typeof e=="object"&&e!==null?e:void 0,n=t?.output??t?.generatedContentRef??t?.schemaHeaderSheetInfo??e,o=Ek(jr([{type:"tool_output",data:n}]));if(iE(n,o))return jr([{type:"tool_output",label:typeof t?.name=="string"?`${t.name} output`:"Tool output",data:n}])}function lo(e){let t=Number(e);if(!(!Number.isFinite(t)||t<=0))return t}function cE(e){if(!e||typeof e!="object")return[];let t=e,n=[lo(t.tab_id),lo(t.logical_tab_id),lo(t.tabId),lo(t.logicalTabId)].filter(o=>!!o);return Zn(n)}function lE(e){if(!e||typeof e!="object")return[];let t=e,n=t.output&&typeof t.output=="object"?t.output:void 0,o=[lo(t.tab_id),lo(t.logical_tab_id),lo(t.tabId),lo(t.logicalTabId),lo(n?.tab_id),lo(n?.logical_tab_id),lo(n?.tabId),lo(n?.logicalTabId)].filter(r=>!!r);return Zn(o)}function uE(e){if(!e||typeof e!="object")return!1;let t=e,n=t.output&&typeof t.output=="object"?t.output:void 0,o=String(t.status||t.taskStatus||n?.status||n?.taskStatus||"").trim().toLowerCase();return!!(o==="failure"||o==="failed"||o==="error"||t.success===!1||n?.success===!1||t.error||n?.error)}function Sk(e){if(!e||typeof e!="object")return null;let t=e.role,n=e.content;return typeof t!="string"||typeof n!="string"||!n?null:{role:t,content:n}}function Ai(e,t){if(!Array.isArray(e))return[];let n=e.length<=t?e:[e[0],...e.slice(-(t-1))],o=[];for(let r of n){let a=Jf(r);a!==void 0&&o.push(a)}return o}function Rk(e){if(!Array.isArray(e)||e.length===0)return[];let t=[...e],n=[];for(let r=0;r<t.length;r+=1){let a=t[r]?.accTreeId;typeof a=="string"&&a.trim()&&n.push(r)}if(n.length<=3)return t;let o=new Set([n[0],...n.slice(-2)]);for(let r of n)o.has(r)||t[r]&&typeof t[r]=="object"&&delete t[r].accTreeId;return t}async function dE(e,t){if(!ur)return null;try{let n=await ur.readAsync(e);if(n)return n;for(let o of t||[]){if(!o||o===e)continue;let r=await ur.readAsync(o);if(r)return r}return null}catch{return null}}function Co(e){if(!Array.isArray(e))return[];let t=[];for(let n of e.slice(-ql)){let o=n?.role;o!=="user"&&o!=="assistant"&&o!=="system"||t.push({id:typeof n?.id=="string"&&n.id?n.id:mr("msg"),role:o,text:String(n?.text||""),blocks:jr(n?.blocks),ts:Number(n?.ts)||Date.now(),sourceRuntimeId:typeof n?.sourceRuntimeId=="string"?n.sourceRuntimeId:void 0})}return t.filter(n=>!!n.text||!!n.blocks?.length)}function Mo(e){if(!Array.isArray(e))return[];let t=[];for(let n of e.slice(-$l)){let o=yn(String(n?.title||""),400);if(!o)continue;let r=String(n?.kind||"status"),a=n?.status;t.push({id:typeof n?.id=="string"&&n.id?n.id:mr("timeline"),kind:r,title:o,detail:n?.detail?String(n.detail):void 0,detailBlocks:jr(n?.detailBlocks),status:a==="pending"||a==="success"||a==="error"||a==="info"?a:void 0,ts:Number(n?.ts)||Date.now(),sourceRuntimeId:typeof n?.sourceRuntimeId=="string"?n.sourceRuntimeId:void 0})}return t}function Po(e){if(!Array.isArray(e))return[];let t=[];for(let n of e.slice(-N_)){let o=n?.role==="user"?"user":n?.role==="model"?"model":void 0;if(!o)continue;let r=yn(String(n?.message||"").replace(/\s+/g," ").trim(),1500);if(!r)continue;let a=t[t.length-1];a&&a.role===o&&a.message===r||t.push({role:o,message:r})}return t}function ec(e,t){if(!e)return;let n=typeof e=="string"?e:e?.text,o=yn(String(n||"").trim(),300);if(!o)return;let r=typeof e?.runId=="string"&&e.runId.trim()?e.runId.trim():typeof t?.runId=="string"&&t.runId.trim()?t.runId.trim():void 0,a=typeof e?.taskId=="string"&&e.taskId.trim()?e.taskId.trim():typeof t?.taskId=="string"&&t.taskId.trim()?t.taskId.trim():void 0,i=typeof e?.stage=="string"&&e.stage.trim()?yn(e.stage.trim(),40):void 0;return{text:o,ts:Number(e?.ts)||Date.now(),runId:r,taskId:a,stage:i}}function fE(e,t){let n=Number(e.ts)||0,o=Number(t.ts)||0;if(n!==o)return n-o;let r=Array.isArray(e.blocks)?e.blocks.length:0,a=Array.isArray(t.blocks)?t.blocks.length:0;return r!==a?r-a:String(e.text||"").length-String(t.text||"").length}function mE(e,t){let n=new Map;for(let o of Co(e))n.set(o.id,o);for(let o of Co(t)){let r=n.get(o.id);(!r||fE(o,r)>0)&&n.set(o.id,o)}return Co([...n.values()].sort((o,r)=>{let a=(Number(o.ts)||0)-(Number(r.ts)||0);return a!==0?a:o.id.localeCompare(r.id)}))}function pE(e,t){let n=Number(e.ts)||0,o=Number(t.ts)||0;if(n!==o)return n-o;let r=Array.isArray(e.detailBlocks)?e.detailBlocks.length:0,a=Array.isArray(t.detailBlocks)?t.detailBlocks.length:0;return r!==a?r-a:String(e.detail||"").length-String(t.detail||"").length}function hE(e,t){let n=new Map;for(let o of Mo(e))n.set(o.id,o);for(let o of Mo(t)){let r=n.get(o.id);(!r||pE(o,r)>0)&&n.set(o.id,o)}return Mo([...n.values()].sort((o,r)=>{let a=(Number(o.ts)||0)-(Number(r.ts)||0);return a!==0?a:o.id.localeCompare(r.id)}))}function Vt(e){if(!e||typeof e!="object")return;let t=String(e.taskBoundaryId||"").trim(),n=Array.isArray(e.history)?e.history:[],o=Array.isArray(e.plannerHistory)?e.plannerHistory:[],r=Array.isArray(e.agentPrevSteps)?e.agentPrevSteps:Array.isArray(e.lastToolPreviousSteps)?e.lastToolPreviousSteps:[],a=n.slice(-Pf).map(y=>Sk(y)).filter(y=>!!y),i=Ai(o,Bf),s=Ai(Rk(r),Uf),c=Ao(e?.pendingAskUser?.questions),d=e?.pendingAskUser?.stepRef,f=d&&Number.isFinite(Number(d.stepIndex))&&Number(d.stepIndex)>=0&&Number.isFinite(Number(d.functionIndex))&&Number(d.functionIndex)>=0?{stepIndex:Number(d.stepIndex),functionIndex:Number(d.functionIndex),...typeof d.accTreeId=="string"&&d.accTreeId.trim()?{accTreeId:d.accTreeId.trim()}:{}}:void 0,u=c.length?{questions:c,source:e?.pendingAskUser?.source==="planner"?"planner":"act",askedAt:Number(e?.pendingAskUser?.askedAt)||Date.now(),boundaryId:typeof e?.pendingAskUser?.boundaryId=="string"&&e.pendingAskUser.boundaryId.trim()?e.pendingAskUser.boundaryId.trim():void 0,...f?{stepRef:f}:{}}:void 0,b=Se(t||void 0),p=Se(u?.boundaryId||b);u&&b&&p&&p!==b&&(u=void 0);let g=typeof e.rootUserInput=="string"?e.rootUserInput.trim():"";return{trajectoryId:typeof e.trajectoryId=="string"?e.trajectoryId:void 0,taskBoundaryId:t||void 0,rootUserInput:g||void 0,seedChatLog:Po(e.seedChatLog),history:a,plannerHistory:i,agentPrevSteps:s,lastToolPreviousSteps:s,pendingAskUser:u,updatedAt:Number(e.updatedAt)||Date.now()}}function Vs(e,t,n){if(!e||typeof e!="object")return _f(t,n);let o=Rn(),r=Wr(e.activeTask,o),a=st(e.pendingRun),i=r.status==="running"?a:void 0,s=i?.taskBoundaryId&&String(i.taskBoundaryId).trim()||(typeof e?.workerState?.taskBoundaryId=="string"?String(e.workerState.taskBoundaryId).trim():"")||void 0,c=Oi(e.taskTabScope,s),d={version:Of,sessionId:typeof e.sessionId=="string"&&e.sessionId?e.sessionId:t,runtimeId:typeof e.runtimeId=="string"&&e.runtimeId?e.runtimeId:n,uiOpen:!!e.uiOpen,uiHidden:!!e.uiHidden,uiStatus:typeof e.uiStatus=="string"?yn(e.uiStatus,300):void 0,transientStatus:ec(e.transientStatus??e.uiStatus,{runId:a?.id,taskId:r?.taskId}),uiMessages:Co(e.uiMessages),timeline:Mo(e.timeline),executionMode:e.executionMode==="observer"||e.executionMode==="controller"?e.executionMode:"controller",workerState:Vt(e.workerState),pendingRun:i,taskTabScope:c,lastNavigationHandoff:pr(e.lastNavigationHandoff),taskEpoch:Math.max(1,Number(e.taskEpoch)||1),activeTask:r,lastRoutingDecision:e.lastRoutingDecision&&(e.lastRoutingDecision.mode==="act"||e.lastRoutingDecision.mode==="planner")?{mode:e.lastRoutingDecision.mode,score:Number(e.lastRoutingDecision.score)||void 0,reason:typeof e.lastRoutingDecision.reason=="string"?yn(e.lastRoutingDecision.reason,200):void 0,ts:Number(e.lastRoutingDecision.ts)||Date.now()}:void 0,updatedAt:Number(e.updatedAt)||Date.now(),tasks:e.tasks&&typeof e.tasks=="object"?e.tasks:{},activeTaskId:typeof e.activeTaskId=="string"?e.activeTaskId:void 0,taskOrder:Array.isArray(e.taskOrder)?e.taskOrder:[]};if((Number(e.version)||1)<2&&r&&r.taskId){let u=ii.fromV1State(d),{tasks:b,activeTaskId:p,taskOrder:g}=u.toPersistedState();d.tasks=b,d.activeTaskId=p,d.taskOrder=g,u.shutdown()}return d}function Wr(e,t){if(!e||typeof e!="object")return t;let n=typeof e.taskId=="string"&&e.taskId.trim()?e.taskId.trim():t.taskId,o=e.status==="ended"||e.status==="completed"||e.status==="cancelled"||e.status==="failed"||e.status==="running"?e.status:"running";return{taskId:n,status:o,startedAt:Number(e.startedAt)||t.startedAt,lastUserAt:Number(e.lastUserAt)||void 0,lastAssistantAt:Number(e.lastAssistantAt)||void 0,boundaryReason:typeof e.boundaryReason=="string"?yn(e.boundaryReason,120):t.boundaryReason,endedAt:Number(e.endedAt)||void 0}}function Ak(e,t){return Wr(e,t)}function tc(e){if(!e)return;let t=Ao(e.pendingAskUser?.questions);return{trajectoryId:e.trajectoryId,taskBoundaryId:typeof e.taskBoundaryId=="string"?e.taskBoundaryId:void 0,rootUserInput:typeof e.rootUserInput=="string"?e.rootUserInput:void 0,seedChatLog:Po(e.seedChatLog),history:Array.isArray(e.history)?e.history.slice(-Pf).map(n=>Sk(n)).filter(n=>!!n):[],plannerHistory:Ai(e.plannerHistory,Bf),agentPrevSteps:Ai(Rk(e.agentPrevSteps),Uf),pendingAskUser:t.length?{questions:t,source:e.pendingAskUser?.source==="planner"?"planner":"act",askedAt:Number(e.pendingAskUser?.askedAt)||Date.now(),boundaryId:typeof e.pendingAskUser?.boundaryId=="string"&&e.pendingAskUser.boundaryId.trim()?e.pendingAskUser.boundaryId.trim():void 0,...e.pendingAskUser?.stepRef&&Number.isFinite(Number(e.pendingAskUser.stepRef.stepIndex))&&Number(e.pendingAskUser.stepRef.stepIndex)>=0&&Number.isFinite(Number(e.pendingAskUser.stepRef.functionIndex))&&Number(e.pendingAskUser.stepRef.functionIndex)>=0?{stepRef:{stepIndex:Number(e.pendingAskUser.stepRef.stepIndex),functionIndex:Number(e.pendingAskUser.stepRef.functionIndex),...typeof e.pendingAskUser.stepRef.accTreeId=="string"&&e.pendingAskUser.stepRef.accTreeId.trim()?{accTreeId:e.pendingAskUser.stepRef.accTreeId.trim()}:{}}}:{}}:void 0,updatedAt:Number(e.updatedAt)||Date.now()}}function Zn(e){if(!Array.isArray(e))return[];let t=new Set,n=[];for(let o of e){let r=Number(o);!Number.isFinite(r)||r<=0||t.has(r)||(t.add(r),n.push(r))}return n}function Oi(e,t){if(!e||typeof e!="object")return;let n=typeof e.boundaryId=="string"&&e.boundaryId.trim()?e.boundaryId.trim():typeof t=="string"&&t.trim()?t.trim():void 0;if(!n)return;let o=Number(e.seedTabId);if(!Number.isFinite(o)||o<=0)return;let r=Zn(e.touchedTabIds);return r.includes(o)||r.unshift(o),{boundaryId:n,seedTabId:o,touchedTabIds:r.slice(0,24),updatedAt:Number(e.updatedAt)||Date.now()}}function st(e){if(!e||typeof e!="object")return;let t=typeof e.id=="string"&&e.id.trim()?e.id.trim():void 0,n=typeof e.text=="string"?e.text.trim():"",o=typeof e.lastUserInputText=="string"&&e.lastUserInputText.trim()?e.lastUserInputText.trim():typeof ln=="string"&&ln.trim()?ln.trim():"Continue task",r=n||o,a=typeof e.taskBoundaryId=="string"&&e.taskBoundaryId.trim()?e.taskBoundaryId.trim():void 0;if(t)return{id:t,text:r,startedAt:Number(e.startedAt)||Date.now(),attempts:Math.max(0,Number(e.attempts)||0),autoResume:e.autoResume!==!1,taskBoundaryId:a,resumeRequired:e.resumeRequired===!0,resumeReason:e.resumeReason==="cross_host_navigation"||e.resumeReason==="agent_navigation"||e.resumeReason==="handoff"||e.resumeReason==="page_reload"?e.resumeReason:void 0}}function gE(){return Ri(C?.stability?.maxPersistBytes,Tt.localPersistBytes)}function bE(e,t){let n={...e,uiMessages:Co(e.uiMessages).slice(-ql),timeline:Mo(e.timeline).slice(-$l),workerState:Vt(e.workerState)};n.workerState&&(n.workerState={...n.workerState,history:Array.isArray(n.workerState.history)?n.workerState.history.slice(-Pf):[],plannerHistory:Ai(n.workerState.plannerHistory,Bf),agentPrevSteps:Ai(n.workerState.agentPrevSteps,Uf)});let o="";try{o=JSON.stringify(n)}catch{return e}if(o.length<=t)return n;let r={...n,uiMessages:[],timeline:[],workerState:void 0};try{if(JSON.stringify(r).length<=t)return r}catch{return r}return{...r,pendingRun:void 0,activeTask:Rn("persist_trim")}}function xi(e){if(!(!l||!_n))try{if(K){uu(),K.enforceMemoryCaps();let{tasks:o,activeTaskId:r,taskOrder:a}=K.toPersistedState();l.tasks=o,l.activeTaskId=r,l.taskOrder=a}let t=gE();l=bE(l,t);let n=JSON.stringify({s:l.sessionId,p:l.pendingRun?.id,pa:l.pendingRun?.autoResume,t:l.activeTask?.status,te:l.taskEpoch,m:l.uiMessages?.length,tl:l.timeline?.length,o:l.uiOpen,h:l.uiHidden,e:l.executionMode,at:l.activeTaskId});if(n===Cf&&!e?.markCheckpointDirty)return;Cf=n,l.updatedAt=Date.now(),ur?.write(_n,l),cr&&cr!==_n&&(ur?.remove(cr),cr=null),!_i&&e?.markCheckpointDirty!==!1&&It?.markDirty()}catch{}}var ga=!1,ba=!1,Cf="",ws=0,li=0,Mf=2e3,Ck=2e3;function Ti(e){xi({markCheckpointDirty:!0}),It?.syncNow({push:!0,pull:!1}),Qe("checkpoint_state",{event:"critical_flush",reason:e})}function Oe(e){e?.markCheckpointDirty!==!1&&(ba=!0);let t=Date.now();if(!ga)li=t;else if(li>0&&t-li>=Ck){ga=!1,li=0;let n=ba;ba=!1,ws=t,xi({markCheckpointDirty:n});return}ga||(ga=!0,setTimeout(()=>{ga=!1,li=0;let n=ba;ba=!1;let o=Date.now();if(o-ws<Mf){ga=!0,setTimeout(()=>{ga=!1,li=0,ws=Date.now(),xi({markCheckpointDirty:ba||n}),ba=!1},Mf-(o-ws));return}ws=o,xi({markCheckpointDirty:n})},0))}function kE(){if(bf)return;bf=!0,kf||(kf=!0,Bl(document,"visibilitychange",()=>{Oo()},{passive:!0})),Bl(window,"pagehide",()=>{if(cn&&C?.siteId)try{sessionStorage.setItem(`rover:sess:${C.siteId}`,JSON.stringify({t:cn,e:Ko}))}catch{}if(l?.pendingRun?.autoResume){let o=l.pendingRun.resumeReason||(Vo?"agent_navigation":"page_reload"),r=st({...l.pendingRun,resumeRequired:!0,resumeReason:o});if(l.pendingRun=r,r&&C?.siteId){let a=pr(l?.lastNavigationHandoff);BI(C.siteId,{runId:r.id,text:r.text,taskBoundaryId:r.taskBoundaryId||Re,resumeReason:o,handoffId:a?.handoffId,openIntent:l.uiOpen?"preserve_if_running":void 0,ts:Date.now()})}}let n=Hf();L?.broadcastClosing(ok(n)),l?.pendingRun&&L?.releaseWorkflowLock(l.pendingRun.id),xi(),va(!0),Qf(),It?.markDirty(),It?.syncNow({push:!0,pull:!1}),It?.stop(),L?.stop()},{capture:!0}),Bl(window,"pageshow",n=>{n.persisted&&(L&&(L.reloadFromStorage(),L.registerCurrentTab(window.location.href,document.title||void 0),L.claimLease(!1)),Lo=!1,In=0,C&&lu(C),Oo(!0))})}function yE(e="implicit"){if(l)return l.activeTask||(l.activeTask=Rn(e),l.taskEpoch=Math.max(1,Number(l.taskEpoch)||1)),l.activeTask}function Vr(e,t){if(!l)return;let n=l.activeTask?.status,o=Se(Re),r=pb({task:l.activeTask,taskEpoch:l.taskEpoch},e,{createTask:(a,i,s)=>Rn(a,i,s)});if(l.activeTask=r.task,l.taskEpoch=r.taskEpoch,r.rotateBoundary&&t?.rotateBoundary!==!1?(Re=Do(),to({forceReset:!0,persist:!1})):to({persist:!1,appendSeed:!1}),r.clearPendingRun&&l.pendingRun&&Lt(void 0),r.clearWorkerState&&l.workerState&&(l.workerState=void 0,L?.setWorkerContext(void 0)),r.lifecycle==="terminal"&&(gt&&(clearTimeout(gt),gt=null),nc()),t?.syncShared!==!1&&L?.syncTask({...r.task},l.taskEpoch),t?.persist!==!1){let a=Se(Re);n!==r.task.status?Ti("run_status_transition"):!!a&&a!==o?Ti("task_boundary_transition"):Oe()}if(Oo(),vk(),K){let a=K.toPersistedState();l.tasks=a.tasks,l.activeTaskId=a.activeTaskId,l.taskOrder=a.taskOrder}return r.task}function Pr(){if(!K||!Q)return;uu();let e=K.listTasks(),t=K.getActiveTask()?.taskId;Q.setConversations(e.map(n=>({id:n.taskId,summary:n.rootUserInput||n.taskId.slice(0,8),status:n.state,updatedAt:n.endedAt||n.lastAssistantAt||n.lastUserAt||n.startedAt,isActive:n.taskId===t}))),t&&Q.setActiveConversationId(t)}function Ci(){if(K)return K.getActiveTask()}function vE(e=l,t){let n=String(t||e?.activeTaskId||e?.activeTask?.taskId||"").trim()||void 0,o=Se(_a(e)),r=String(st(e?.pendingRun)?.id||"").trim()||void 0;return{taskId:n,boundaryId:o,runId:r}}function wE(){let e=Po(Ci()?.seedChatLog);return e.length?e:Po(l?.workerState?.seedChatLog)}function xE(e,t){let n=t||Rn("task_record_sync");return Wr({taskId:e.taskId,status:sb(e.state),startedAt:e.startedAt,lastUserAt:e.lastUserAt,lastAssistantAt:e.lastAssistantAt,boundaryReason:e.blockReason||n.boundaryReason,endedAt:e.endedAt},n)}function Mk(e,t){if(!l)return;let n=Se(e.boundaryId)||Se(e.pendingRun?.taskBoundaryId)||Se(e.workerState?.taskBoundaryId)||zn()||Do(),o=Po(e.seedChatLog??e.workerState?.seedChatLog),r=So(Vt(e.workerState||o.length||e.rootUserInput?{...e.workerState||{},...e.rootUserInput?{rootUserInput:e.rootUserInput}:{},...o.length?{seedChatLog:o}:{},taskBoundaryId:e.workerState?.taskBoundaryId||n}:void 0),n),a=st(e.pendingRun),i=ec(e.transientStatus,{runId:a?.id,taskId:e.taskId});l.activeTaskId=e.taskId,l.activeTask=xE(e,l.activeTask),l.uiMessages=Co(e.uiMessages),l.timeline=Mo(e.timeline),l.workerState=r,l.pendingRun=a,l.taskTabScope=Oi(e.tabScope,n),l.uiStatus=i?.text,l.transientStatus=i,Re=n,e.rootUserInput?.trim()&&(ln=e.rootUserInput.trim()),t?.replayUi!==!1&&(em(),l.uiMessages.length&&fu(l.uiMessages),l.timeline.length&&mu(l.timeline),pu(l),Mi(),Q?.setRunning(!!l.pendingRun&&l.activeTask?.status==="running"),e.state==="paused"?Q?.showPausedTaskBanner({taskId:e.taskId,rootUserInput:e.rootUserInput||"Task"}):Q?.hidePausedTaskBanner())}function Nk(e){let t=Po(e),n=Ci();n&&K&&K.updateTask(n.taskId,o=>({...o,seedChatLog:t})),l?.workerState&&(l.workerState=Vt({...l.workerState,seedChatLog:t,updatedAt:Date.now()}),L?.setWorkerContext(tc(l.workerState)))}function uu(){if(!l||!K)return;let e=K.getActiveTask();if(!e)return;let t=ms(l.activeTask?.status||"running",l.activeTask?.boundaryReason),n=Co(l.uiMessages),o=Mo(l.timeline),r=[...n].reverse().find(u=>u.role==="assistant"),a=Vt(l.workerState),i=st(l.pendingRun),s=Se(i?.taskBoundaryId)||Se(a?.taskBoundaryId)||Se(e.boundaryId)||zn()||Do(),c=Oi(l.taskTabScope,s),d=ec(l.transientStatus,{runId:i?.id,taskId:e.taskId}),f=Po(e.seedChatLog?.length?e.seedChatLog:a?.seedChatLog);K.updateTask(e.taskId,u=>({...u,state:t,boundaryId:s,startedAt:Number(l?.activeTask?.startedAt)||u.startedAt,endedAt:Number(l?.activeTask?.endedAt)||void 0,lastUserAt:Number(l?.activeTask?.lastUserAt)||u.lastUserAt,lastAssistantAt:Number(l?.activeTask?.lastAssistantAt)||u.lastAssistantAt,uiMessages:n,timeline:o,workerState:a,pendingRun:i,tabScope:c,rootUserInput:a?.rootUserInput||i?.text||u.rootUserInput||ln,summary:r?.text||u.summary,seedChatLog:f,transientStatus:d}))}function Zf(e){if(!l||!K)return;let t=vE(l,e?.preferredTaskId),n=kb(K.listTasks(),t);if(!n&&e?.allowCreate!==!1){let r=t.boundaryId||Do(),a=ms(l.activeTask?.status||"running",l.activeTask?.boundaryReason);n=K.createTask("adopted_continuation",{taskId:t.taskId,state:a,boundaryId:r,startedAt:Number(l.activeTask?.startedAt)||Date.now(),endedAt:Number(l.activeTask?.endedAt)||void 0,lastUserAt:Number(l.activeTask?.lastUserAt)||void 0,lastAssistantAt:Number(l.activeTask?.lastAssistantAt)||void 0,rootUserInput:Vt(l.workerState)?.rootUserInput||st(l.pendingRun)?.text||ln,seedChatLog:Po(l.workerState?.seedChatLog),tabIds:Oi(l.taskTabScope,r)?.touchedTabIds||[]})}if(!n)return;e?.makeActive!==!1&&K.getActiveTaskId()!==n.taskId&&K.switchActiveTask(n.taskId),l.activeTaskId=K.getActiveTaskId()||n.taskId,l.activeTask=Wr({...l.activeTask||Rn("adopted_continuation"),taskId:l.activeTaskId},Rn("adopted_continuation",Date.now(),l.activeTaskId)),uu();let o=K.toPersistedState();return l.tasks=o.tasks,l.activeTaskId=o.activeTaskId,l.taskOrder=o.taskOrder,Pr(),K.getTask(l.activeTaskId||n.taskId)}function TE(e,t=Date.now()){if(!l||e==="system")return;let n=yE("implicit");n&&n.status==="running"&&(e==="user"&&(n.lastUserAt=t),e==="assistant"&&(n.lastAssistantAt=t))}var cf="[Rover]";function _E(e){if(!(C?.ui?.tabIndicator?.titlePrefix!==!1))return;let n=e||"[Rover: Running]",o=Ds;o||(Ls=document.title),Ds=!0,cf=n;let r=o?document.title.replace(/^\[Rover[^\]]*\]\s*/,"")||Ls||"":document.title;if(document.title=`${n} ${r}`,!vi){let a=document.querySelector("title");a&&(vi=new MutationObserver(()=>{if(Ds&&!document.title.startsWith(cf)){let i=document.title.replace(/^\[Rover[^\]]*\]\s*/,"");document.title=`${cf} ${i}`}}),vi.observe(a,{childList:!0,characterData:!0,subtree:!0}))}C?.ui?.tabIndicator?.faviconBadge===!0&&_b()}function du(){Ds&&(Ds=!1,vi&&(vi.disconnect(),vi=null),Ls!==void 0?(document.title=Ls,Ls=void 0):document.title.startsWith("[Rover] ")&&(document.title=document.title.slice(8)),Ib())}function Lk(e="worker_task_active",t=Date.now()){if(K){let n=K.getActiveTask();n&&K.dispatch(n.taskId,{type:"START",reason:e})}Vr({type:"ensure_running",reason:e,at:t}),_E()}function IE(e="worker_task_complete",t=Date.now()){if(K){let n=K.getActiveTask();n&&K.dispatch(n.taskId,{type:"COMPLETE"})}Vr({type:"terminal",terminal:"completed",reason:e,at:t}),du()}function Ll(e="worker_task_failed",t=Date.now()){if(K){let n=K.getActiveTask();n&&K.dispatch(n.taskId,{type:"FAIL",error:e})}Vr({type:"terminal",terminal:"failed",reason:e,at:t}),du()}function EE(e="worker_task_ended",t=Date.now()){if(K){let n=K.getActiveTask();n&&K.dispatch(n.taskId,{type:"CANCEL",reason:"ended"})}Vr({type:"terminal",terminal:"ended",reason:e,at:t}),du()}function Dk(e="worker_task_cancelled",t=Date.now()){if(K){let n=K.getActiveTask();n&&K.dispatch(n.taskId,{type:"CANCEL",reason:e})}Vr({type:"terminal",terminal:"cancelled",reason:e,at:t}),du()}function jn(){Ur=null,Q?.setTaskSuggestion({visible:!1})}function SE(e){let t=String(e?.id||"").trim();if(!t||Jo())return!1;let n=String(e?.text||"").trim()||"Continue task";return Ur?.kind==="resume_run"&&Ur.runId===t?!1:(Ur={kind:"resume_run",runId:t,text:n,createdAt:Date.now()},Q?.setTaskSuggestion({visible:!0,text:"Resume your interrupted task or cancel it?",primaryLabel:"Resume",secondaryLabel:"Cancel"}),!0)}function nc(){kn=!1,En=!1,Ia(),C?.siteId&&(ds(C.siteId),ck(C.siteId)),It?.markDirty(),It?.syncNow({push:!0,pull:!1})}function em(){Q?.clearMessages(),Q?.clearTimeline(),Q?.setQuestionPrompt(void 0),jn()}function tm(e){if(!l)return;gt&&(clearTimeout(gt),gt=null),Lo=!1,In=0,kn=!1,En=!1,Et&&(clearTimeout(Et),Et=null);let t=st(l.pendingRun),n=String(e.runId||t?.id||"").trim();n&&($r(n),L?.releaseWorkflowLock(n),nm(n)||zr(n,e.cancelReason||e.reason,{attemptImmediately:!0})),Lt(void 0),L?.setActiveRun(void 0),Q?.setRunning(!1),Q?.setQuestionPrompt(void 0),jn(),l.activeTask?.status==="running"?Dk(e.reason):nc(),Nt(void 0),Qe("status",{event:"local_run_abandoned",reason:e.reason,runId:n||void 0}),e.timelineTitle&&dt({kind:e.timelineStatus==="error"?"error":"info",title:e.timelineTitle,detail:e.timelineDetail,status:e.timelineStatus||"info"}),e.emitError?.message&&Ve("error",{message:e.emitError.message,scope:e.emitError.scope||"resume",code:e.emitError.code,runId:n||void 0})}function RE(e){if(e)return Se(e.pendingAskUser?.boundaryId||e.taskBoundaryId)}function So(e,t){if(!e)return;let n=Se(t);if(!n)return e;let o=Se(e.taskBoundaryId);if(o&&o!==n)return;let r=Se(e.pendingAskUser?.boundaryId);if(!(r&&r!==n))return e}function Mi(){if(l?.activeTask?.status!=="running"){ui="",Q?.setQuestionPrompt(void 0);return}let e=zn(),t=RE(l?.workerState);if(e&&t&&t!==Se(e)){ui="",Q?.setQuestionPrompt(void 0);return}let n=Ao(l?.workerState?.pendingAskUser?.questions);if(!n.length){ui="",eo&&(eo.lastNeedsInputSignature=void 0),Q?.setQuestionPrompt(void 0);return}let o=`${Se(t||e)||""}:${n.map(r=>`${r.key}:${r.query}`).join("|")}`;o!==ui&&(ui=o,Ti("question_prompt_boundary")),Q?.setQuestionPrompt({questions:n}),Yk(n)}function AE(){let e=l?.pendingRun;if(!e)return!1;if(!L)return!0;let t=L?.getState()?.activeRun;if(t?.runId&&t.runId===e.id||t?.runtimeId&&t.runtimeId!==it)return!0;let n=Date.now()-Number(e.startedAt||0);return n>=0&&n<=z_}function CE(){if(!l?.pendingRun||AE()||!L)return;let e=l.pendingRun;if(e.resumeRequired===!0&&Tl(l.activeTask?.status))return;let t=String(pe?.getActiveRunId()||"").trim();if(t&&t===e.id||Jo())return;let n=Date.now()-Number(e.startedAt||0);!Number.isFinite(n)||n<j_||($r(e.id),zr(e.id,"stale_pending_cleanup",{attemptImmediately:!0}),Lt(void 0),L?.releaseWorkflowLock(e.id),L?.setActiveRun(void 0),gt&&(clearTimeout(gt),gt=null))}function Sn(e,t,n=!0,o){let r=String(t||""),a=jr(o?.blocks);if(!r&&(!a||a.length===0))return;let i={id:o?.id||mr("msg"),role:e,text:r,blocks:a,ts:o?.ts||Date.now(),sourceRuntimeId:o?.sourceRuntimeId};return Q?.addMessage(i.role,i.text,{blocks:i.blocks}),l&&n&&(l.uiMessages.push(i),l.uiMessages.length>ql&&(l.uiMessages=l.uiMessages.slice(-ql)),TE(i.role,i.ts),Oe()),L&&o?.publishShared!==!1&&(L.appendMessage({id:i.id,role:i.role,text:i.text,blocks:i.blocks,ts:i.ts}),L.markTaskActivity(i.role,i.ts)),i}function fu(e){for(let t of e)Sn(t.role,t.text,!1,{id:t.id,ts:t.ts,sourceRuntimeId:t.sourceRuntimeId,publishShared:!1,blocks:t.blocks})}function dt(e,t=!0){let n={id:e.id||mr("timeline"),kind:e.kind,title:yn(e.title,400),detail:e.detail?String(e.detail):void 0,detailBlocks:jr(e.detailBlocks),status:e.status,ts:e.ts||Date.now(),sourceRuntimeId:e.sourceRuntimeId};return Q?.addTimelineEvent(n),l&&t&&(l.timeline.push(n),l.timeline.length>$l&&(l.timeline=l.timeline.slice(-$l)),Oe({markCheckpointDirty:!1})),L&&e.publishShared!==!1&&L.appendTimeline({id:n.id,kind:n.kind,title:n.title,detail:n.detail,detailBlocks:n.detailBlocks,status:n.status,ts:n.ts}),n}function mu(e){Q?.clearTimeline();for(let t of e)dt({id:t.id,kind:t.kind,title:t.title,detail:t.detail,detailBlocks:t.detailBlocks,status:t.status,ts:t.ts,sourceRuntimeId:t.sourceRuntimeId,publishShared:!1},!1)}function Ok(e,t){if(!e?.text||t?.taskStatus&&t.taskStatus!=="running")return;let n=String(t?.activeRunId||"").trim(),o=String(e.runId||"").trim(),r=String(t?.activeTaskId||"").trim(),a=String(e.taskId||"").trim();if(!(o&&!n)&&!(o&&n&&o!==n)&&!(a&&r&&a!==r))return e.text}function Pk(e=l){let t=L?.getState();return yb({localPendingRunId:e?.pendingRun?.id,sharedActiveRunId:t?.activeRun?.runId,sharedTaskId:t?.task?.taskId||t?.activeTaskId,activeTaskId:e?.activeTask?.taskId||e?.activeTaskId})}function Nt(e,t){let n=ec(e?{text:e,runId:t?.runId||l?.pendingRun?.id,taskId:t?.taskId||l?.activeTask?.taskId||Ci()?.taskId,stage:t?.stage,ts:Date.now()}:void 0,{runId:t?.runId||l?.pendingRun?.id,taskId:t?.taskId||l?.activeTask?.taskId||Ci()?.taskId}),o=Ok(n,{activeRunId:Pk(l),activeTaskId:l?.activeTask?.taskId,taskStatus:l?.activeTask?.status});o?Q?.setStatus(o):Q?.setStatus?.(void 0),l&&(l.uiStatus=n?.text,l.transientStatus=n,uu(),Oe({markCheckpointDirty:!1})),L&&t?.publishShared!==!1&&L.setStatus(n)}function pu(e=l){let t=Ok(e?.transientStatus,{activeRunId:Pk(e),activeTaskId:e?.activeTask?.taskId,taskStatus:e?.activeTask?.status});t?Q?.setStatus(t):Q?.setStatus?.(void 0)}function Sa(e,t){let n=Zs(e);bt=n;let o=t?.localLogicalTabId??L?.getLocalLogicalTabId(),r=t?.activeLogicalTabId??L?.getActiveLogicalTabId(),a=t?.holderRuntimeId??L?.getCurrentHolderRuntimeId(),i=n==="controller"&&!!(C?.allowActions??!0);at?.setAllowActions(i),at?.setActionGateContext?.({mode:n,controllerRuntimeId:a,activeLogicalTabId:r,localLogicalTabId:o,reason:Js(n,i)}),l&&(l.executionMode=n,Oe()),Oo(),Q?.setExecutionMode(n,{controllerRuntimeId:a,localLogicalTabId:o,activeLogicalTabId:r,canTakeControl:!0,canComposeInObserver:_k(),note:Ik(n)}),Ve("mode_change",{mode:n,rawMode:e,...t})}function Lt(e){l&&(e?l.pendingRun=st({...e,taskBoundaryId:e.taskBoundaryId||Re}):(l.pendingRun=void 0,l.uiStatus=void 0,l.transientStatus=void 0,Hr(void 0),jf(l)||Ia()),Qs(l),Oo(),Oe())}function lf(e){l&&(l.lastNavigationHandoff=pr(e),Oe())}function hu(){let e=Number(L?.getLocalLogicalTabId()||L?.getActiveLogicalTabId()||1);return!Number.isFinite(e)||e<=0?1:e}function to(e){if(!l)return;let t=Se(Re)||Do();Re||(Re=t);let n=hu(),o=e?.appendSeed!==!1,r=Oi(l.taskTabScope,t);if(!!e?.forceReset||!r||Se(r.boundaryId)!==t){let c={boundaryId:t,seedTabId:n,touchedTabIds:[n],updatedAt:Date.now()};return l.taskTabScope=c,e?.persist!==!1&&Oe(),c}let i=Zn(r.touchedTabIds);o&&!i.includes(n)&&i.unshift(n);let s={...r,seedTabId:Number.isFinite(Number(r.seedTabId))&&Number(r.seedTabId)>0?Number(r.seedTabId):n,touchedTabIds:i.slice(0,24),updatedAt:Date.now()};return l.taskTabScope=s,e?.persist&&Oe(),s}function Bk(e,t){if(!l)return;let n=to({persist:!1});if(!n)return;let o=Zn([n.seedTabId,...n.touchedTabIds||[],...e]),r={...n,touchedTabIds:o.slice(0,24),updatedAt:Date.now()};return l.taskTabScope=r,t?.persist!==!1&&Oe(),r}function ME(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(e[n]!==t[n])return!1;return!0}function Ra(e){if(!l)return;let t=to({persist:!1,appendSeed:!1});if(!t||!L)return t;let n=Date.now(),o=Array.isArray(L.getState()?.tabs)?L.getState().tabs:[],r=new Set;for(let y of o){let I=Number(y?.logicalTabId);if(!Number.isFinite(I)||I<=0)continue;let R=Math.max(Number(y?.updatedAt)||0,Number(y?.openedAt)||0,Number(y?.detachedAt)||0),O=n-R;if(y.runtimeId){r.add(I);continue}if(y.external){O<=oI&&r.add(I);continue}if(y.detachedReason==="navigation_handoff"){O<=rI&&r.add(I);continue}if(y.detachedReason==="opened_pending_attach"){O<=aI&&r.add(I);continue}}let a=Number(L.getLocalLogicalTabId()),i=Number(L.getActiveLogicalTabId()),s=Number(t.seedTabId)>0?Number(t.seedTabId):hu();Number.isFinite(a)&&a>0&&r.add(a),Number.isFinite(i)&&i>0&&r.add(i),r.size===0&&Number.isFinite(s)&&s>0&&r.add(s);let c=Zn(t.touchedTabIds),d=c.filter(y=>r.has(y)),f=r.has(t.seedTabId)?t.seedTabId:Number.isFinite(a)&&a>0?a:Number.isFinite(i)&&i>0?i:s;d.includes(f)||d.unshift(f);let u=Zn(d).slice(0,24);if(!(f!==t.seedTabId||!ME(u,c)))return t;let p=c.filter(y=>!u.includes(y)),g={...t,seedTabId:f,touchedTabIds:u.length?u:[f],updatedAt:Date.now()};return l.taskTabScope=g,e?.persist!==!1&&Oe(),Qe("status",{event:"scoped_tab_reconciled",removedTabIds:p,scopedTabIds:g.touchedTabIds,seedTabId:g.seedTabId}),g}function Ps(){let e=Ra({persist:!1})||to({persist:!1,appendSeed:!1});if(!e)return[hu()];let t=Zn(e.touchedTabIds);return t.length?t:[e.seedTabId]}function Uk(){let e=Ra({persist:!1})||to({persist:!1,appendSeed:!1});if(e)return{boundaryId:e.boundaryId,seedTabId:e.seedTabId,touchedTabIds:Zn(e.touchedTabIds)}}function NE(e,t){let n=Ta,o=Yo,r=Ei,a,i=t;if(K){let d=K.listTasks(),f=K.getActiveTask()?.taskId,u=L?.getLocalLogicalTabId(),b=d.filter(y=>y.taskId!==f&&(y.state==="completed"||y.state==="cancelled")&&!!y.endedAt).sort((y,I)=>(Number(I.endedAt)||0)-(Number(y.endedAt)||0)),g=(Number.isFinite(Number(u))&&Number(u)>0?b.filter(y=>Array.isArray(y.tabIds)&&y.tabIds.includes(Number(u))):b)[0];g&&(n=g.rootUserInput||n,o=g.summary||o,r=g.endedAt||r,a=g.uiMessages.map(y=>({role:y.role,text:y.text,ts:y.ts})),i=g.state)}let s=C?.task?.followup,c=Cb({mode:s?.mode,previousTaskStatus:i,previousTaskMessages:a,previousTaskUserInput:n,previousTaskAssistantOutput:o,previousTaskCompletedAt:r,currentPrompt:e,ttlMs:Vf(s?.ttlMs),minLexicalOverlap:Gf(s?.minLexicalOverlap)});return{chatLog:c.chatLog,reason:c.reason,overlap:c.overlap}}var $o=new Map,Nf=_I;async function LE(e){if($o.has(e)){let r=$o.get(e);if(Date.now()-r.ts<Nf)return;$o.delete(e)}let t=Date.now();for(let[r,a]of $o)t-a.ts>=Nf&&$o.delete(r);let n=l?.pendingRun?.id;if(!n||!pe)return;let o=await pe.fetchExternalContext({runId:n,url:e,source:"direct_url"});o&&($o.set(e,{data:o,ts:Date.now()}),Jb($o,TI))}function DE(e){let t=$o.get(e);if(t){if(Date.now()-t.ts>=Nf){$o.delete(e);return}return t.data}}function OE(e){let t=String(e||"").trim();return t===wf.read||t===wf.act}function xs(e){let t=String(e.code||"EXTERNAL_CONTEXT_FAILED").trim()||"EXTERNAL_CONTEXT_FAILED",n=String(e.message||"External context request failed").trim()||"External context request failed";return{success:!1,error:`${t}: ${n}`,allowFallback:e.retryable!==!1,output:{success:!1,error:{code:t,message:n,retryable:e.retryable===!0,status:Number.isFinite(Number(e.status))?Number(e.status):void 0},details:e.details}}}async function PE(e){let t=String(e.call?.name||"").trim(),n=e.call?.args&&typeof e.call.args=="object"?e.call.args:{},o=t===wf.act?"act":"read_context",r=Number(n.tab_id),a=Number.isFinite(r)&&r>0?Math.trunc(r):Number.isFinite(Number(e.routeTabId))&&Number(e.routeTabId)>0?Math.trunc(Number(e.routeTabId)):void 0,i=L?.listTabs({scope:"all"})||[],s=a?i.find(p=>p.logicalTabId===a):void 0,d=String(n.url||"").trim()||String(s?.url||"").trim(),f=String(n.message||n.user_input||"").trim()||void 0,u=String(n.source||"").trim().toLowerCase()==="google_search"?"google_search":"direct_url";if(!d)return xs({code:"MISSING_URL",message:"External context tools require a target url or tab with a url.",retryable:!1});if(!pe)return xs({code:"RUNTIME_UNAVAILABLE",message:"Rover server runtime is not initialized.",retryable:!0});let b=String(l?.pendingRun?.id||pe.getActiveRunId()||Ys||"").trim()||void 0;if(!b)return xs({code:"NO_ACTIVE_RUN",message:"External context tools can only run during an active run.",retryable:!1});try{let p=DE(d);if(p)return p;let g=await pe.fetchExternalContext({runId:b,tabId:a,url:d,intent:o,message:f,source:u});if(!g)return xs({code:"EMPTY_RESPONSE",message:"Server returned no external context response.",retryable:!0});let I=(g.pageData&&typeof g.pageData=="object"?g.pageData:void 0)||g;return{success:!0,output:{...I,metadata:{...I&&typeof I=="object"?I.metadata||{}:{},external:!0,accessMode:"external_scraped",logicalTabId:a,sourceTool:t},intent:o}}}catch(p){let g=String(p?.code||"").trim().toUpperCase()||"EXTERNAL_CONTEXT_FAILED",y=Number(p?.status),I=y>=500||g==="STALE_SEQ"||g==="STALE_EPOCH";return xs({code:g,message:String(p?.message||"External context request failed"),retryable:I,status:Number.isFinite(y)?y:void 0,details:p?.details})}}function Aa(e){let t=Ps();return{taskBoundaryId:Re,taskTabScope:Uk(),scopedTabIds:t,...e||{}}}var zb="";function uo(e){if(!qe)return;let t=Aa(e),n=JSON.stringify(t);n!==zb&&(zb=n,qe.postMessage({type:"update_config",config:t}))}function Hk(e,t){let n=String(e||"").trim();if(!n||!qe)return;if(bt==="observer"){if(Jo()){Sn("system","This tab is read-only while another tab is actively running Rover.",!0),dt({kind:"info",title:"Observer mode",detail:"Input is disabled while the active run is controlled by another tab.",status:"info"});return}if(!(L?.requestControl()??!1)){Sn("system","Unable to take control right now because another tab is still running Rover actions.",!0),dt({kind:"info",title:"Observer mode",detail:"Action execution is currently owned by another tab runtime.",status:"info"});return}let g=L?.getLocalLogicalTabId(),y=L?.getActiveLogicalTabId(),I=L?.getCurrentHolderRuntimeId()||it;Sa("controller",{localLogicalTabId:g,activeLogicalTabId:y,holderRuntimeId:I});let R=!!(C?.allowActions??!0);at?.setAllowActions(R),at?.setActionGateContext?.({mode:"controller",controllerRuntimeId:I,activeLogicalTabId:y,localLogicalTabId:g,reason:Js("controller",R)})}let o=t?.runId||crypto.randomUUID(),r=!!t?.resume,a=t?.appendUserMessage!==!1,s=(t?.askUserAnswers?eu(o):void 0)||n;Ef(o),a&&Sn("user",n,!0);let c=l?.pendingRun?.id===o?l.pendingRun.attempts:0,d=l?.pendingRun?.id===o&&l.pendingRun.taskBoundaryId||Re;Bk([hu()],{persist:!0});let f=Ps(),u=Po(Array.isArray(t?.seedChatLog)?t.seedChatLog:wE());Vo=!1,Lt({id:o,text:s,startedAt:Date.now(),attempts:r?c+1:0,autoResume:t?.autoResume!==!1,taskBoundaryId:d,resumeRequired:!1,resumeReason:void 0}),Lk(r?"worker_task_resumed":"worker_task_active"),ln=s,l&&(l.workerState=Vt({...l.workerState||{},taskBoundaryId:d,rootUserInput:l.workerState?.rootUserInput||s,seedChatLog:u,history:l.workerState?.history||[],plannerHistory:l.workerState?.plannerHistory||[],agentPrevSteps:l.workerState?.agentPrevSteps||[],updatedAt:Date.now()}),L?.setWorkerContext(tc(l.workerState))),Nk(u),L?.acquireWorkflowLock(o),L?.setActiveRun({runId:o,text:s}),qe.postMessage({type:"run",text:n,runId:o,trajectoryId:l?.workerState?.trajectoryId,resume:r,preserveHistory:!!t?.preserveHistory,seedChatLog:u,routing:t?.routing,askUserAnswers:t?.askUserAnswers,scopedTabIds:f,taskTabScope:Uk()}),Et&&clearTimeout(Et);let b=o;Et=setTimeout(()=>{l?.pendingRun?.id===b&&(tm({reason:"run_timeout_terminal",statusText:"Task timed out.",runId:b,cancelReason:"run_timeout_terminal",timelineTitle:"Run timed out",timelineDetail:"Task timed out after 5 minutes with no response.",timelineStatus:"error",emitError:{message:"Run safety timeout",scope:"run_timeout",code:"RUN_TIMEOUT"}}),Sn("system","Task timed out after 5 minutes with no response.",!0)),Et=null},5*6e4)}async function BE(e,t){let n=oE(e,t?.askUserAnswers);if(!n)return;CE();let o=l?.activeTask?.status,r=Ao(l?.workerState?.pendingAskUser?.questions).length,a=l?.workerState?.pendingAskUser?.boundaryId,i=Rb({startNewTask:!!t?.startNewTask,taskStatus:o,pendingAskUserQuestionCount:r,hasAskUserAnswers:!!t?.askUserAnswers,pendingAskUserBoundaryId:a,currentTaskBoundaryId:Re}),s=!i,c=s?t?.continueRunId||l?.pendingRun?.id||pe?.getActiveRunId():void 0,d=i?NE(n,o):{reason:"mode_disabled",overlap:0},f=i?await SI({userText:n,isFreshTask:!0,pageUrl:window.location.href,taskId:String(l?.activeTask?.taskId||"").trim()||void 0,taskBoundaryId:Se(Re),visitorId:Ft,visitor:Io}):[],u=Po([...f,...d.chatLog||[]]);if(Qe("status",{event:"task_boundary_decision",startFreshTask:i,askUserContinuation:s,pendingAskUserQuestionCount:r,activeTaskStatus:o||"none"}),Qe("status",{event:"followup_chat_cue",attached:u.length>0,reason:d.reason,overlap:d.overlap}),L?.pruneTabs(i?{dropRuntimeDetached:!0,keepOnlyActiveLiveTab:!0,keepRecentExternalPlaceholders:!0}:{dropRuntimeDetached:!0}),i){let g=!!l?.pendingRun,y=t?.reason||(o==="completed"?"auto_after_task_complete":o==="running"?"auto_new_prompt_boundary":"auto_after_task_end");if(Qe("status",{event:"task_boundary_reset",reason:y,hadActiveRun:g}),K&&o==="running"){let I=K.getActiveTask();I&&(I.uiMessages=l?.uiMessages||[],I.timeline=l?.timeline||[],I.rootUserInput=I.rootUserInput||ln)}if(sc({reason:y,clearUi:!0}),K){let I=K.getActiveTask();I&&(I.rootUserInput=n,I.seedChatLog=u),Pr()}g&&pe&&await new Promise(I=>setTimeout(I,50))}jn();let b=c,p=t?.routing;if(pe&&C)try{let g=await pe.submitRunInput({message:n,clientEventId:crypto.randomUUID(),continueRun:s,forceNewRun:i,runId:s?c:void 0,requestedMode:t?.routing||C.taskRouting?.mode||"act"});if(!g)throw new Error("Server run/input returned no data; run was not accepted.");Number.isFinite(Number(g.epoch||g.currentEpoch))&&(lr=Math.max(1,Number(g.epoch||g.currentEpoch)));let y=typeof g.runId=="string"&&g.runId.trim()?g.runId.trim():"";if(!y){let I=String(g?.conflict?.type||"").trim();if(I==="active_run_exists"&&pe&&i){let R=g?.conflict?.runId||g.runId;if(R){await pe.controlRun({action:"cancel",runId:R,reason:"stale_run_cleanup"});let O=await pe.submitRunInput({message:n,clientEventId:crypto.randomUUID(),continueRun:!1,forceNewRun:!0,requestedMode:t?.routing||C.taskRouting?.mode||"act"});O?.runId&&(b=O.runId.trim(),Hr(b),(O.acceptedMode==="act"||O.acceptedMode==="planner")&&(p=O.acceptedMode))}}if(!b){let R=String(g.decisionReason||I||g.message||"run_not_accepted").trim();throw new Error(`Server did not accept this run (${R}).`)}}b||(b=y),Hr(b),(g.acceptedMode==="act"||g.acceptedMode==="planner")&&(p=g.acceptedMode)}catch(g){let y=String(g?.message||"server run submission failed");Hr(void 0),dt({kind:"error",title:"Run start failed",detail:y,status:"error"}),Sn("system",`Unable to start task: ${y}`,!0),Nt(`Task could not start (${y})`),Ve("error",{message:y,scope:"run_input"});return}Hk(n,{runId:b,appendUserMessage:!0,resume:!1,preserveHistory:!1,seedChatLog:u,autoResume:!0,routing:p,askUserAnswers:t?.askUserAnswers})}function Ro(e,t){BE(e,t)}function Ts(e,t){tm({reason:e,statusText:t||e,cancelReason:e})}function nm(e){let t=String(e||"").trim();if(!t)return!1;let n=L?.getWorkflowLockInfo();if(!n?.locked||!n.holderRuntimeId||n.holderRuntimeId===it||n.runId!==t)return!1;let o=L?.listTabs({scope:"all"}).find(r=>r.runtimeId===n.holderRuntimeId);return o?Number(o.updatedAt)>Date.now()-5e3:!1}function _s(e=450,t){gt||(gt=setTimeout(()=>{gt=null,Xo(t)},Math.max(120,e)))}function UE(e,t){Lo=!0,kn=!1,En=!1,jn(),Nt("Resuming interrupted task...");let n=e.text?.trim()||l?.workerState?.rootUserInput?.trim()||ln?.trim()||"Continue the current task on this page";Qe("status",{event:"resume_dispatch",source:t,runId:e.id}),Hk(n,{runId:e.id,resume:!0,appendUserMessage:!1,autoResume:!0})}function Xo(e){if(!l?.pendingRun){gt&&(clearTimeout(gt),gt=null),In=0;return}let t=st(l.pendingRun);if(!t||(bt==="observer"&&!Jo()&&Sa("controller",{localLogicalTabId:L?.getLocalLogicalTabId(),activeLogicalTabId:L?.getActiveLogicalTabId(),holderRuntimeId:L?.getCurrentHolderRuntimeId()}),bt==="observer")||Lo)return;if(!fo||!qe){_s(250,e);return}let n=l.activeTask?.status;if(Yd(n)){Ts("terminal_task","Previous task already ended.");return}if(!Tl(n)||!t.autoResume)return;if($f(C?.task?.resume?.mode)!=="crash_only"){Ts("unsupported_resume_mode","Previous task dismissed.");return}if(t.resumeRequired!==!0){let d=Date.now()-Number(t.startedAt||0),f=Yl(C?.task?.resume?.ttlMs);if(Number.isFinite(d)&&d>=0&&d<f)t.resumeRequired=!0,t.resumeReason=t.resumeReason||"worker_interrupted",Lt(t);else{gt&&(clearTimeout(gt),gt=null),In=0,jn();return}}let r=qf(C?.task?.autoResumePolicy),a=nm(t.id),i=lb({policy:r,resumeRequired:t.resumeRequired===!0,hasLiveRemoteController:a});if(i==="prompt_resume"&&(t.resumeReason==="agent_navigation"||t.resumeReason==="cross_host_navigation"||t.resumeReason==="worker_interrupted"||t.resumeReason==="page_reload")&&(i="auto_resume"),e?.overridePolicyAction&&i!=="defer_remote_owner"&&i!=="noop"&&(i=e.overridePolicyAction),i==="defer_remote_owner"){_s(650,e);return}if(i==="cancel_resume"){Ts("resume_policy_never","Previous task cancelled by resume policy."),dt({kind:"info",title:"Resume cancelled",detail:"Auto-resume policy is set to never, so the interrupted run was cancelled.",status:"info"});return}if(!En&&CI(t)&&(En=!0),!En&&(t.resumeReason==="worker_interrupted"||t.resumeReason==="agent_navigation"||t.resumeReason==="page_reload")&&(En=!0),!En&&MI(t)){_s(320,e);return}if(En||(En=!0),a){_s(650,e);return}if(gt&&(clearTimeout(gt),gt=null),!Ii&&!e?.overridePolicyAction){if(In+=1,Qe("status",{event:"resume_blocked_no_session",reason:"session_not_ready",attempt:In,runId:t.id}),In<H_){Nt("Preparing secure resume...");let d=Math.min(2e3,240+In*160);_s(d,e);return}In=0,kn=!1,Ii=!0}In=0;let s=Yl(C?.task?.resume?.ttlMs),c=Date.now()-Number(t.startedAt||0);if(!Number.isFinite(c)||c<0||c>s){Ts("resume_ttl_expired","Previous task expired.");return}if(t.attempts>=D_){Ts("resume_attempt_limit","Previous task dismissed.");return}if(i==="prompt_resume"){SE(t)&&(Nt("Resume available. Choose Resume or Cancel."),Qe("status",{event:"resume_prompt_shown",runId:t.id}));return}UE(t,e?.overridePolicyAction==="auto_resume"?"manual_resume_confirm":`policy_${r}`)}function Fk(e){if(!ef({localUpdatedAt:Number(e.localState.updatedAt)||0,incomingUpdatedAt:Number(e.incomingState.updatedAt)||0,localState:e.localState,incomingState:e.incomingState,crossDomainResumeActive:!!e.allowRicherIncomingOnResume&&kn}))return!1;if(!e.allowRicherIncomingOnResume||!kn)return!0;let n=Zd({localState:e.localState,incomingState:e.incomingState});return n.exactRunMatch||n.exactBoundaryMatch?!0:!(n.localRunId||n.localBoundaryId)}function jb(e,t,n,o,r){return{pendingRun:r?.includePendingIdentity!==!1&&t?{id:t.id,resumeRequired:t.resumeRequired,taskBoundaryId:t.taskBoundaryId}:void 0,activeTask:n?{status:n}:void 0,workerState:e,taskEpoch:o}}function zk(e){return e.incomingWorkerState?e.localWorkerState?ef({localUpdatedAt:Number(e.localUpdatedAt)||Number(e.localWorkerState.updatedAt)||0,incomingUpdatedAt:Number(e.incomingUpdatedAt)||Number(e.incomingWorkerState.updatedAt)||0,localState:jb(e.localWorkerState,e.fallbackPendingRun,e.taskStatus,e.taskEpoch,{includePendingIdentity:!0}),incomingState:jb(e.incomingWorkerState,void 0,e.taskStatus,e.taskEpoch,{includePendingIdentity:!1}),crossDomainResumeActive:!!e.allowRicherIncomingOnResume&&kn}):!0:!1}function jk(e){if(Wr(e.localState.activeTask,Rn("compat_local")).status!=="running")return!0;let n=Math.max(1,Number(e.localState.taskEpoch)||1),o=Math.max(1,Number(e.incomingState.taskEpoch)||1);if(o<n)return!1;if(o>n)return!0;let r=Se(_a(e.localState)),a=Se(_a(e.incomingState));return r&&a?r===a:!(r&&!a||!r&&a)}async function HE(e,t){if(!l)return;let n=await dE(e,t);if(!n||!l)return;let o=Vs({...n,sessionId:l.sessionId,runtimeId:it},l.sessionId,it);if(!Fk({localState:l,incomingState:o,allowRicherIncomingOnResume:!0})||!jk({localState:l,incomingState:o}))return;let r=Math.max(1,Number(l.taskEpoch)||1),a=Math.max(1,Number(o.taskEpoch)||1),i=_a(o);xa({source:"indexeddb_checkpoint",incomingBoundaryId:i,taskEpochAdvanced:a>r,allowBootstrapAdoption:!0})&&(l=Vs({...l,...o,sessionId:l.sessionId,runtimeId:it},l.sessionId,it),Qs(l),Si({rotateIfMissing:!Re}),Ra({persist:!1}),Zf({preferredTaskId:o.activeTaskId||o.activeTask?.taskId}),Oe(),Q&&(Q.clearMessages(),fu(l.uiMessages),mu(l.timeline),pu(l),Mi(),l.uiHidden?Q.hide():(Q.show(),l.uiOpen?Q.open():Q.close())),fo&&qe&&uo(),fo&&qe&&l.workerState&&bt==="controller"&&(qe.postMessage({type:"hydrate_state",state:l.workerState}),Ve("context_restored",{source:"indexeddb_checkpoint",ts:Date.now()})))}var uf=!1;function om(e,t){if(l&&!uf){uf=!0;try{if(t==="remote"){let o=Math.max(1,Number(l.taskEpoch)||1),r=Math.max(1,Number(e.taskEpoch)||1),a=r>o;l.taskEpoch=Math.max(o,r);let i=l.activeTask||Rn("shared_sync");l.activeTask=Ak(e.task,i),a&&(l.uiMessages=[],l.timeline=[],em(),Lt(void 0),l.workerState=void 0,Re=Do(),l.taskTabScope=void 0,to({forceReset:!0,persist:!1}),uo(),jn());let s=Co(e.uiMessages),c=new Set(s.map(M=>M.id)),d=l.uiMessages,f=l.uiMessages.filter(M=>M.role==="user"&&M.sourceRuntimeId===it&&!c.has(M.id)).length;f>0&&Qe("status",{event:"local_message_preserved",count:f});let u=mE(d,s);(u.length!==d.length||u.some((M,H)=>{let N=d[H];return N?N.id!==M.id||N.ts!==M.ts||N.role!==M.role||N.text!==M.text:!0}))&&(l.uiMessages=u,Q?.clearMessages(),fu(l.uiMessages));let p=Mo(e.timeline),g=l.timeline,y=hE(g,p);(y.length!==g.length||y.some((M,H)=>{let N=g[H];return N?N.id!==M.id||N.ts!==M.ts||N.kind!==M.kind||N.title!==M.title||N.detail!==M.detail:!0}))&&(l.timeline=y,mu(l.timeline)),Nt(typeof e.transientStatus?.text=="string"?String(e.transientStatus.text):typeof e.uiStatus=="string"?e.uiStatus:void 0,{publishShared:!1,runId:e.transientStatus?.runId||e.activeRun?.runId,taskId:e.transientStatus?.taskId||e.task?.taskId,stage:e.transientStatus?.stage});let R=l.activeTask?.status,O=e.task?.status;if(e.activeRun&&e.activeRun.runtimeId!==it&&!Xd({localTaskStatus:R,remoteTaskStatus:O,mode:bt,hasRemoteActiveRun:!0}))if(String(e.activeRun.runtimeId||"").trim()!==""||Jo()||Zs(bt)==="observer")Lt(void 0);else{let N=st(l.pendingRun),Y=Se(e.workerContext?.taskBoundaryId),ae=N?.id===e.activeRun.runId&&(!N?.taskBoundaryId||Se(N.taskBoundaryId)===(Y||Se(Re))),re=ae?N?.resumeRequired===!0:String(e.activeRun.runtimeId||"").trim()==="";Lt(st({id:e.activeRun.runId,text:e.activeRun.text,startedAt:e.activeRun.startedAt,attempts:ae&&N?.attempts||0,autoResume:!0,taskBoundaryId:(ae?N?.taskBoundaryId:void 0)||Y||N?.taskBoundaryId||Re,resumeRequired:re,resumeReason:ae?N?.resumeReason:re?"agent_navigation":void 0}))}else{let M=Xd({localTaskStatus:R,remoteTaskStatus:O,mode:bt,hasRemoteActiveRun:!!e.activeRun}),N=st(l.pendingRun)?.resumeRequired===!0&&Tl(R);M&&!N&&(l.pendingRun?.id&&$r(l.pendingRun.id),Lt(void 0),O&&O!=="running"&&nc())}if(bt==="observer"&&Sa("observer",{localLogicalTabId:L?.getLocalLogicalTabId(),activeLogicalTabId:L?.getActiveLogicalTabId(),holderRuntimeId:L?.getCurrentHolderRuntimeId()}),e.workerContext){let M=Vt(e.workerContext),H=Number(l.workerState?.updatedAt)||0,N=Number(M?.updatedAt)||0;M&&zk({localWorkerState:l.workerState,incomingWorkerState:M,fallbackPendingRun:st(l.pendingRun),taskStatus:l.activeTask?.status,taskEpoch:l.taskEpoch,localUpdatedAt:H,incomingUpdatedAt:N,allowRicherIncomingOnResume:!0})&&xa({source:"shared_worker_context",incomingBoundaryId:M.taskBoundaryId,taskEpochAdvanced:a,allowBootstrapAdoption:!0})&&(l.workerState=So(M,zn()),Si(),fo&&qe&&bt==="controller"&&(uo(),qe.postMessage({type:"hydrate_state",state:l.workerState}),Ve("context_restored",{source:"shared_session",ts:Date.now()})))}}if(l.uiMessages=Co(l.uiMessages),l.timeline=Mo(l.timeline),l.workerState=So(Vt(l.workerState),zn()),Qs(l),Si(),Ra({persist:!1}),fo&&qe&&bt==="controller"&&uo(),Oo(),Mi(),l.activeTask=Wr(l.activeTask,Rn("implicit")),Zf(),L&&K){let o=new Map;for(let r of K.listTasks())for(let a of r.tabIds)o.set(a,r.taskId);L.setTaskTabMapping(o)}let n=C?.ui?.tabIndicator?.widgetTabBar!==!1;if(Q&&e.tabs&&n){let o=L?.getLocalLogicalTabId(),r=L?.getActiveLogicalTabId(),a=(e.tabs||[]).filter(i=>i&&typeof i.logicalTabId=="number").map(i=>({logicalTabId:i.logicalTabId,url:String(i.url||""),title:typeof i.title=="string"?i.title:void 0,isActive:i.logicalTabId===r,isCurrent:i.logicalTabId===o,external:!!i.external,taskId:K?.getTaskForTab(i.logicalTabId)?.taskId}));a.length>1?Q.setTabs(a):Q.setTabs([])}else Q&&Q.setTabs([]);if(t==="local")return;Oe()}finally{uf=!1}}}function rm(e){let t=Rn("checkpoint_clone");return{version:Of,sessionId:e.sessionId,runtimeId:e.runtimeId,uiOpen:!!e.uiOpen,uiHidden:!!e.uiHidden,uiStatus:typeof e.uiStatus=="string"?yn(e.uiStatus,300):void 0,transientStatus:ec(e.transientStatus??e.uiStatus,{runId:e.pendingRun?.id,taskId:e.activeTask?.taskId}),uiMessages:Co(e.uiMessages),timeline:Mo(e.timeline),executionMode:e.executionMode==="observer"||e.executionMode==="controller"?e.executionMode:"controller",workerState:Vt(e.workerState),pendingRun:st(e.pendingRun),taskTabScope:Oi(e.taskTabScope,st(e.pendingRun)?.taskBoundaryId||Vt(e.workerState)?.taskBoundaryId),lastNavigationHandoff:pr(e.lastNavigationHandoff),tasks:e.tasks?{...e.tasks}:{},activeTaskId:e.activeTaskId,taskOrder:e.taskOrder?[...e.taskOrder]:[],taskEpoch:Math.max(1,Number(e.taskEpoch)||1),activeTask:Wr(e.activeTask,t),lastRoutingDecision:e.lastRoutingDecision&&(e.lastRoutingDecision.mode==="act"||e.lastRoutingDecision.mode==="planner")?{mode:e.lastRoutingDecision.mode,score:Number(e.lastRoutingDecision.score)||void 0,reason:e.lastRoutingDecision.reason,ts:Number(e.lastRoutingDecision.ts)||Date.now()}:void 0,updatedAt:Number(e.updatedAt)||Date.now()}}function FE(e){return!(e.sessionScope==="tab"||e.checkpointing?.enabled===!1||!qn(e)||!Ft)}function zE(){if(!l||!C||!Ft)return null;let e=L?.getState(),t=rm(l),n=Math.max(Number(e?.updatedAt||0),Number(t.updatedAt||0)),o=n>0?n:Date.now();return{version:Kb,siteId:C.siteId,visitorId:Ft,sessionId:l.sessionId,updatedAt:o,sharedState:e,runtimeState:t}}function qk(e){if(!e||typeof e!="object"||!l||!C||e.siteId&&e.siteId!==C.siteId||Ft&&e.visitorId&&e.visitorId!==Ft)return;let t=typeof e.sessionId=="string"&&e.sessionId.trim()?e.sessionId.trim():l.sessionId;_i=!0;try{if(t&&l.sessionId!==t&&(l.sessionId=t,C={...C,sessionId:t},tu(C),uo({sessionId:t})),e.sharedState&&L&&L.hydrateExternalState(e.sharedState)&&(om(L.getState(),"remote"),Sa(L.getRole(),{localLogicalTabId:L.getLocalLogicalTabId(),activeLogicalTabId:L.getActiveLogicalTabId(),holderRuntimeId:L.getCurrentHolderRuntimeId()})),e.runtimeState&&typeof e.runtimeState=="object"){let n=Vs({...e.runtimeState,sessionId:t,runtimeId:it},t,it);if(Fk({localState:l,incomingState:n,allowRicherIncomingOnResume:!0})){if(!jk({localState:l,incomingState:n}))return;let o=Math.max(1,Number(l.taskEpoch)||1),r=Math.max(1,Number(n.taskEpoch)||1),a=_a(n);if(!xa({source:"cloud_checkpoint",incomingBoundaryId:a,taskEpochAdvanced:r>o,allowBootstrapAdoption:!0}))return;l=Vs({...l,...n,sessionId:t,runtimeId:it},t,it),Qs(l),Si(),l.workerState=So(l.workerState,zn()),Ra({persist:!1}),Zf({preferredTaskId:n.activeTaskId||n.activeTask?.taskId}),Oe(),pu(l),l.uiHidden?Q?.hide():(Q?.show(),l.uiOpen?Q?.open():Q?.close()),fo&&uo(),fo&&l.workerState&&(qe?.postMessage({type:"hydrate_state",state:l.workerState}),Ve("context_restored",{source:"cloud_checkpoint",ts:Date.now()})),bt==="controller"&&Xo(),kn=!1}}}finally{_i=!1}}function am(e){if(It?.stop(),It=null,!FE(e)||!Ft)return;let t=qn(e);if(!t){Ve("checkpoint_token_missing",{reason:"missing_or_invalid_session_token",expectedPrefix:"rvrsess_",action:"disabled_cloud_checkpoint_client"});return}try{let n=o=>{Ve("checkpoint_state",o),e.checkpointing?.onStateChange?.(o)};It=new yl({apiBase:e.apiBase,authToken:t,getSessionToken:()=>qn(C),shouldSync:()=>bt==="controller"&&!kn&&!Ea(),siteId:e.siteId,visitorId:Ft,ttlHours:e.checkpointing?.ttlHours??1,flushIntervalMs:e.checkpointing?.flushIntervalMs,pullIntervalMs:e.checkpointing?.pullIntervalMs,minFlushIntervalMs:e.checkpointing?.minFlushIntervalMs,maxSnapshotBytes:Ri(e.stability?.maxSnapshotBytes,Tt.snapshotBytes),shouldWrite:()=>bt==="controller"&&!kn&&!Ea(),buildCheckpoint:()=>zE(),onCheckpoint:o=>{qk(o)},onStateChange:(o,r)=>{n({state:o,reason:r.reason,action:r.action,code:r.code,message:r.message}),o==="paused_auth"&&Ve("checkpoint_error",{action:r.action,code:r.code||"INVALID_API_KEY",message:r.message||"Checkpoint sync paused due to auth failure.",disabled:!0,reason:r.reason||"auth_failed"})},onError:(o,r)=>{e.checkpointing?.onError?.(r),r.paused||Ve("checkpoint_error",{action:r.action,code:r.code,message:r.message,status:r.status,disabled:!1,reason:"transient_failure"})}}),It.start(),It.markDirty(),vk()}catch{It=null}}function tu(e){if(!l)return;if(L?.stop(),L=null,e.sessionScope==="tab"){Sa("controller");return}L=new hl({siteId:e.siteId,sessionId:l.sessionId,runtimeId:it,leaseMs:e.tabPolicy?.actionLeaseMs,onRoleChange:(o,r)=>{let a=Zs(o);Sa(a,r);let i=_o;_o=a==="controller",i!==_o&&(_o?(Oo(!0),C&&Qo(C)):Oo(!0));let s=a==="controller"&&(C?.allowActions??!0);if(at?.setAllowActions(s),at?.setActionGateContext?.({mode:a,controllerRuntimeId:r?.holderRuntimeId??L?.getCurrentHolderRuntimeId(),activeLogicalTabId:r?.activeLogicalTabId??L?.getActiveLogicalTabId(),localLogicalTabId:r?.localLogicalTabId??L?.getLocalLogicalTabId(),reason:Js(a,s)}),a==="controller"){to({persist:!0,appendSeed:!1}),Ra({persist:!0});let c=L?.getWorkerContext();if(c){let d=Vt(c),f=Number(l?.workerState?.updatedAt)||0,u=Number(d?.updatedAt)||0;d&&u>f+100&&xa({source:"controller_handoff",incomingBoundaryId:d.taskBoundaryId,allowBootstrapAdoption:!0})&&(l&&(l.workerState=So(d,zn()),Si(),Oe()),fo&&qe&&(uo(),qe.postMessage({type:"hydrate_state",state:l?.workerState}),Ve("context_restored",{source:"controller_handoff",ts:Date.now()})))}Xo()}},onStateChange:(o,r)=>{om(o,r)},onSwitchRequested:o=>{o>0&&(mo(),dt({kind:"status",title:`Switched to tab #${o}`,status:"info"}))},onTaskTabsExhausted:o=>{K&&(K.dispatch(o,{type:"PAUSE",reason:"all_tabs_closed"}),Pr(),Oe(),Q?.showPausedTaskBanner({taskId:o,rootUserInput:K.getTask(o)?.rootUserInput||"Task"}))}}),L.onSessionTokenReceived=(o,r)=>{_o||Jl(o,r)},L.onProjectionReceived=o=>{!_o&&o&&If(o)};let t=Hf();L.start(ok(t)),to({persist:!0,appendSeed:!1}),Ra({persist:!0}),st(l?.pendingRun)?.resumeRequired===!0&&L.requestControl(),l?.lastNavigationHandoff&&t&&(l.lastNavigationHandoff=pr({...l.lastNavigationHandoff,consumed:!0}),Oe()),L.setRpcRequestHandler(async o=>{if(!at)throw new Error("Bridge not available");if(o.method==="getPageData")return at.getPageData(o.params);if(o.method==="executeTool")return at.executeTool(o.params.call,o.params.payload);throw new Error(`Unknown RPC method: ${o.method}`)}),l?.activeTask&&L.syncTask({...l.activeTask,taskId:l.activeTask.taskId},l.taskEpoch),l?.workerState&&L.setWorkerContext(tc(l.workerState))}function jE(e){e&&Go.delete(e),Q?.clearTimeline(),l&&(l.timeline=[]),L?.clearTimeline()}function qE(e){if(!(!e||typeof e!="object")&&!nE(e)){if(e.type==="assistant"){let t=jr(e.blocks),n=String(e.text||Ek(t)||"");typeof e.runId=="string"&&e.runId&&(Go.set(e.runId,n),Jb(Go,wI)),Sn("assistant",n,!0,{blocks:t}),dt({kind:"tool_result",title:"Assistant update",detail:n,detailBlocks:t,status:"success"}),Wo("assistant_output",{text:n,blocks:t},{immediate:!0,runId:typeof e.runId=="string"?e.runId:void 0});return}if(e.type==="status"){let t=yk(e.stage),n=e.message?String(e.message):void 0,o=e.compactThought?String(e.compactThought):void 0,r=GI(n,t,o);if(n&&Nt(n,{runId:typeof e.runId=="string"?e.runId:l?.pendingRun?.id,taskId:l?.activeTask?.taskId,stage:t}),r&&r!==Cl&&(Cl=r,n)){let a=!!(e.thought||o),i=o||(e.thought?String(e.thought):"");if(a&&t!=="analyze"&&t!=="route"&&t!=="complete"&&!KI(i,ln))dt({kind:"thought",title:i,detail:e.thought?String(e.thought):o,status:"pending"});else{let c=t?`${VI(t)}: ${n}`:n;dt({kind:"status",title:c,detail:o||(e.thought?String(e.thought):void 0),status:t==="complete"?"success":"info"})}}Ve("status",e),Wo("status_update",nS(e),{runId:typeof e.runId=="string"?e.runId:void 0});return}if(e.type==="runtime_tabs_diagnostics"){let t=e?.diagnostics&&typeof e.diagnostics=="object"?e.diagnostics:{},n=Zn(t.keptScopedTabIds||[]),o=Zn(t.listedTabIds||[]),r=Zn(t.resolvedTabOrder||[]),a=n.filter(i=>!o.includes(i));a.length>0&&(dt({kind:"status",title:"Scoped tab placeholder retained",detail:`missing_in_listing=${a.join(",")}; resolved_order=${r.join(",")||"none"}`,status:"info"}),Qe("status",{event:"scoped_tab_missing_from_listing",missingScopedTabIds:a,listedTabIds:o,resolvedTabOrder:r}));return}if(e.type==="tool_start"){dt({kind:"tool_start",title:`Running ${e.call?.name||"tool"}`,detail:zl(e.call?.args),status:"pending"}),Ve("tool_start",e),Wo("tool_start",oS(e),{runId:typeof e.runId=="string"?e.runId:void 0});return}if(e.type==="tool_result"){if(!uE(e.result)){let n=Zn([...cE(e.call?.args),...lE(e.result)]);n.length&&(Bk(n,{persist:!0}),uo())}let t=jr(e.detailBlocks)||sE(e.result);dt({kind:"tool_result",title:`${e.call?.name||"tool"} completed`,detail:zl(e.result),detailBlocks:t,status:e?.result?.success===!1?"error":"success"}),Ve("tool_result",e),Wo("tool_result",rS(e),{runId:typeof e.runId=="string"?e.runId:void 0});return}if(e.type==="auth_required"){Ve("auth_required",e.error),e.error?.message&&(Sn("system",`Auth required: ${e.error.message}`,!0),dt({kind:"error",title:"Auth required",detail:String(e.error.message),status:"error"}));return}if(e.type==="navigation_guardrail"){Ve("navigation_guardrail",e),dt({kind:"status",title:"Navigation guardrail",detail:zl(e),status:"info"});return}if(e.type==="error"){Sn("system",`Error: ${e.message||"unknown"}`,!0),dt({kind:"error",title:"Execution error",detail:String(e.message||"unknown"),status:"error"}),Ve("error",e),Wo("error",{message:String(e.message||"unknown")},{immediate:!0,runId:typeof e.runId=="string"?e.runId:void 0});return}if(e.type==="state_snapshot"){if(l){let t=Vt({...e.state||{},updatedAt:Date.now()});if(!t||!xa({source:"worker_snapshot",incomingBoundaryId:t.taskBoundaryId,allowBootstrapAdoption:!0}))return;l.workerState=So(t,zn());let n=typeof e?.activeRun?.runId=="string"&&e.activeRun.runId?e.activeRun.runId:void 0,o=typeof e?.activeRun?.text=="string"?e.activeRun.text:void 0,r=fb({taskStatus:l.activeTask?.status,hasPendingRun:!!l.pendingRun,activeRunId:n,activeRunText:o,ignoredRunIds:Eo});if(r&&(l.pendingRun=st({id:n,text:o,startedAt:e.activeRun.startedAt,attempts:0,autoResume:!0})),n&&o&&r?L?.setActiveRun({runId:n,text:o}):n&&(!Cr()||Eo.has(n))&&L?.setActiveRun(void 0),!Cr()&&l.pendingRun&&Lt(void 0),l.workerState&&L?.setWorkerContext(tc(l.workerState)),K&&t?.taskBoundaryId){let a=K.getTaskByBoundaryId(t.taskBoundaryId);a&&(a.workerState=l.workerState,n&&(a.pendingRun=l.pendingRun))}Mi(),Oe()}return}if(e.type==="task_started"){Ve("task_started",{taskId:e.taskId,reason:"worker"});return}if(e.type==="run_started"){if(Cl="",jn(),typeof e.runId=="string"&&e.runId&&Go.delete(e.runId),!Cr()){L?.setActiveRun(void 0);return}let t=l?.pendingRun,n=typeof e?.taskBoundaryId=="string"?Se(e.taskBoundaryId):void 0;typeof e.runId=="string"&&e.runId&&Ef(e.runId),Lt(st({id:e.runId,text:e.text,startedAt:t?.startedAt||Date.now(),attempts:t?.attempts||0,autoResume:t?.autoResume!==!1,taskBoundaryId:n||t?.taskBoundaryId||Re,resumeReason:t?.resumeReason,resumeRequired:t?.resumeRequired})),L?.setActiveRun({runId:e.runId,text:String(e.text||"")}),Q?.setRunning(!0),Q?.setQuestionPrompt(void 0);let o=`run:${String(e.runId||"")}:start`;if(l?.timeline.some(r=>r.id===o)||dt({id:o,kind:"plan",title:e.resume?"Run resumed":"Run started",detail:String(e.text||""),status:"pending"}),K&&n){let r=K.getTaskByBoundaryId(n);r&&(r.pendingRun=l?.pendingRun,K.dispatch(r.taskId,{type:"START"}))}Wo("state_transition",{status:"running",mode:l?.lastRoutingDecision?.mode,reason:e.resume?"run_resumed":"run_started"},{immediate:!0,runId:typeof e.runId=="string"?e.runId:void 0}),Ve("run_started",ek(e));return}if(e.type==="run_completed"||e.type==="run_state_transition"){Cl="",Lo=!1,In=0;let t=rE(e),n=tk(e,t),o=t.terminalState,r=t.continuationReason,a=t.needsUserInput?"awaiting_user":o==="completed"?"completed":o==="failed"||e?.ok===!1?"failed":"running",i=e?.ok===!1||o==="completed"||o==="failed",s=!i&&o==="in_progress"&&r!=="awaiting_user";Q?.setRunning(s),Et&&(clearTimeout(Et),Et=null);let c=typeof e.runId=="string"&&e.runId?e.runId:void 0,d=typeof e?.taskBoundaryId=="string"?Se(e.taskBoundaryId):void 0;if(i){let f=st(l?.pendingRun),u=String(f?.text||ln||"").trim(),b=String((c?Go.get(c):"")||"").trim();Ta=u||Ta,Yo=b||Yo,Ei=Date.now(),f?.id&&L?.releaseWorkflowLock(f.id),c&&L?.releaseWorkflowLock(c),Lt(void 0),Hr(void 0),L?.setActiveRun(void 0),jn(),c&&$r(c)}else if(Cr()&&c){Ef(c),Hr(c);let f=l?.pendingRun,u=f?.id===c&&f?.text?f.text:ln||f?.text||"Continue task";Lt(st({id:c,text:u,startedAt:f?.startedAt||Date.now(),attempts:f?.attempts||0,autoResume:f?.autoResume!==!1,taskBoundaryId:d||f?.taskBoundaryId||Re,resumeRequired:o==="in_progress"&&r==="same_tab_navigation_handoff",resumeReason:o==="in_progress"&&r==="same_tab_navigation_handoff"?f?.resumeReason||"agent_navigation":void 0})),L?.setActiveRun({runId:c,text:u})}if(l&&e?.route&&(e.route.mode==="act"||e.route.mode==="planner")&&(l.lastRoutingDecision={mode:e.route.mode,score:Number(e.route.score)||void 0,reason:typeof e.route.reason=="string"?yn(e.route.reason,200):void 0,ts:Date.now()},Oe()),!e.ok&&e.error){if(c&&Go.delete(c),c&&(zr(c,"worker_run_failed",{attemptImmediately:!0}),pe?.controlRun({action:"cancel",runId:c,reason:"worker_run_failed"})),!Cr())return;Q?.setQuestionPrompt(void 0),t.contextResetRecommended?(Ll("worker_run_failed_terminal"),L?.resetTabsToCurrent(window.location.href,document.title||void 0),Nt(void 0)):(Ll("worker_run_failed_terminal"),Nt(void 0)),c&&Go.delete(c),dt({kind:"error",title:"Run failed",detail:String(e.error),status:"error"})}else if(e.ok){if(!Cr())return;let f=t.taskComplete,u=t.needsUserInput,b=t.questions||Ao(e.questions),p=Ao(l?.workerState?.pendingAskUser?.questions),g=b.length?b:u?p:[];if(o==="failed")c&&(zr(c,"worker_terminal_failed",{attemptImmediately:!0}),pe?.controlRun({action:"cancel",runId:c,reason:"worker_terminal_failed"})),Q?.setQuestionPrompt(void 0),t.contextResetRecommended?(Ll("worker_run_failed_terminal"),L?.resetTabsToCurrent(window.location.href,document.title||void 0),Nt(void 0)):(Ll("worker_run_failed_terminal"),Nt(void 0)),dt({kind:"error",title:"Run failed",detail:typeof e.error=="string"?e.error:"Run reported failure state.",status:"error"});else if(f||o==="completed")c&&pe?.controlRun({action:"end_task",runId:c,reason:"worker_task_complete"}),Q?.setQuestionPrompt(void 0),IE("worker_task_complete"),L?.resetTabsToCurrent(window.location.href,document.title||void 0),Nt(void 0),jE(typeof e.runId=="string"?e.runId:void 0);else{let y=u?"worker_waiting_for_input":r==="same_tab_navigation_handoff"?"worker_navigation_handoff":o==="in_progress"?"worker_loop_continue":"worker_task_active";if(u){if(K){let I=K.getActiveTask();I&&K.dispatch(I.taskId,{type:"ASK_USER"})}Vr({type:"awaiting_user",reason:y,at:Date.now()})}else Lk(y);u&&g.length>0?Q?.setQuestionPrompt({questions:g}):u?Mi():Q?.setQuestionPrompt(void 0),u?(Nt(void 0),dt({kind:"status",title:"Waiting for your input",detail:g.length?`Please answer: ${g.map(I=>`${I.key} (${I.query})`).join("; ")}`:"Planner requested more information before marking the task complete.",status:"info"})):r==="same_tab_navigation_handoff"?(Nt("Navigating to continue task..."),dt({kind:"status",title:"Navigation handoff",detail:"Rover will resume after same-tab navigation completes.",status:"pending"})):Nt("Working...")}}if(K&&d){let f=K.getTaskByBoundaryId(d);if(f)if(i){let u=o==="completed"?{type:"COMPLETE"}:{type:"FAIL",error:typeof e.error=="string"?e.error:void 0};K.dispatch(f.taskId,u),K.releaseWorker(f.taskId)}else t.continuationReason==="awaiting_user"&&K.dispatch(f.taskId,{type:"ASK_USER"})}if(Wo("state_transition",{status:a,mode:e?.route?.mode==="act"||e?.route?.mode==="planner"?e.route.mode:l?.lastRoutingDecision?.mode,reason:typeof e?.error=="string"?e.error:r||o,terminalState:o},{immediate:i||t.needsUserInput,runId:c}),t.needsUserInput){let f=t.questions||Ao(e.questions);f.length&&Yk(f)}i&&iS(c),Ve("run_state_transition",n),(e.type==="run_completed"||i)&&Ve("run_completed",n),Pr();return}if(e.type==="ready"){fo=!0,Nt(void 0),Ve("ready"),C&&ny(C);let t=L?.getWorkerContext(),n=So(Vt(t),zn()),o=n&&xa({source:"ready_hydrate",incomingBoundaryId:n.taskBoundaryId,allowBootstrapAdoption:!0})?n:void 0,r=So(Vt(l?.workerState),zn()),a=r&&xa({source:"ready_hydrate",incomingBoundaryId:r.taskBoundaryId,allowBootstrapAdoption:!0})?r:void 0,i=Number(a?.updatedAt)||0,s=Number(o?.updatedAt)||0,c=o&&zk({localWorkerState:a,incomingWorkerState:o,fallbackPendingRun:st(l?.pendingRun),taskStatus:l?.activeTask?.status,taskEpoch:l?.taskEpoch,localUpdatedAt:i,incomingUpdatedAt:s,allowRicherIncomingOnResume:!0})?o:a;l&&(c&&c!==l.workerState?(l.workerState=So(c,zn()),Oe()):!c&&l.workerState&&(l.workerState=void 0,Oe())),c?(qe?.postMessage({type:"hydrate_state",state:c}),Ve("context_restored",{source:"runtime_start",ts:Date.now()}),setTimeout(()=>{Lo||Xo()},500)):kn&&It?(Qe("status",{event:"checkpoint_pull_first"}),It.syncPullFirst()):Xo();return}if(e.type==="hydrated"){Xo();return}e.type==="updated"&&Ve("updated")}}function Lf(e,t){let n=Number(e);return Number.isFinite(n)?Math.max(t.min,Math.min(t.max,Math.floor(n))):t.fallback}function gu(e){if(!e||typeof e!="object")return;let t=Lf(e.shortcutMaxStored,{min:1,max:Vl,fallback:Vl}),n=Lf(e.shortcutMaxRendered,{min:1,max:Gl,fallback:Gl});return{shortcutMaxStored:t,shortcutMaxRendered:n}}function fr(e){return Kc(e)}function $E(e){let t=Number(e);if(Number.isFinite(t))return Math.max(J_,Math.min(Z_,Math.floor(t)))}function Ni(e){if(!e||typeof e!="object")return;let t=e,n={};typeof t.enabled=="boolean"&&(n.enabled=t.enabled);let o=String(t.language||"").trim().replace(/[^a-zA-Z0-9-]/g,"").slice(0,Y_);o&&(n.language=o);let r=$E(t.autoStopMs);return r!==void 0&&(n.autoStopMs=r),Object.keys(n).length?n:void 0}function oc(e){if(!e||typeof e!="object")return;let t=e,n={};return typeof t.enabled=="boolean"&&(n.enabled=t.enabled),typeof t.allowPromptLaunch=="boolean"&&(n.allowPromptLaunch=t.allowPromptLaunch),typeof t.allowShortcutLaunch=="boolean"&&(n.allowShortcutLaunch=t.allowShortcutLaunch),typeof t.allowCloudBrowser=="boolean"&&(n.allowCloudBrowser=t.allowCloudBrowser),typeof t.allowDelegatedHandoffs=="boolean"&&(n.allowDelegatedHandoffs=t.allowDelegatedHandoffs),typeof t.debugStreaming=="boolean"&&(n.debugStreaming=t.debugStreaming),Object.keys(n).length?n:void 0}function Gs(e){if(!e)return;let t=fr(No?.pageConfig),n=fr(e.pageConfig);return fr({...t||{},...n||{}})}function WE(e){if(e)return oc(No?.aiAccess)}function VE(e){if(!qe||!e)return;let t=Gs(e),n=JSON.stringify(t||null);n!==gf&&(gf=n,qe.postMessage({type:"update_config",config:{...Aa(),pageConfig:t}}))}function rc(){Cs&&(clearTimeout(Cs),Cs=null),Ms&&(clearTimeout(Ms),Ms=null)}function GE(e){try{let t=localStorage.getItem(`rover:site-config:${e}`);if(t){let n=JSON.parse(t);return!n||typeof n.ts!="number"||typeof n.data!="object"||!n.data||Date.now()-n.ts>Mb?null:{shortcuts:qr(n.data.shortcuts),greeting:Li(n.data.greeting),voice:Ni(n.data.voice),aiAccess:oc(n.data.aiAccess),limits:gu(n.data.limits),pageConfig:fr(n.data.pageConfig),version:typeof n.version=="string"?n.version:void 0}}}catch{}try{let t=localStorage.getItem(`rover:shortcuts:${e}`);if(!t)return null;let n=JSON.parse(t);return!n||typeof n.ts!="number"||!Array.isArray(n.data)||Date.now()-n.ts>Mb?null:{shortcuts:qr(n.data)}}catch{return null}}function $k(e,t){try{localStorage.setItem(`rover:site-config:${e}`,JSON.stringify({ts:Date.now(),version:t.version,data:{shortcuts:qr(t.shortcuts),greeting:Li(t.greeting),voice:Ni(t.voice),aiAccess:oc(t.aiAccess),limits:gu(t.limits),pageConfig:fr(t.pageConfig)}}))}catch{}}function Li(e){if(!e||typeof e!="object")return;let t={},n=String(e.text||"").trim();n&&(t.text=n.slice(0,X_));let o=Number(e.delay);Number.isFinite(o)&&(t.delay=Math.max(0,Math.min(6e4,Math.floor(o))));let r=Number(e.duration);return Number.isFinite(r)&&(t.duration=Math.max(1200,Math.min(6e4,Math.floor(r)))),typeof e.disabled=="boolean"&&(t.disabled=e.disabled),Object.keys(t).length?t:void 0}function KE(e){if(!e||typeof e!="object")return null;let t=String(e.id||"").trim().slice(0,80),n=String(e.label||"").trim().slice(0,W_),o=String(e.prompt||"").trim().slice(0,G_);if(!t||!n||!o)return null;let r={id:t,label:n,prompt:o,enabled:e.enabled!==!1};e.description&&(r.description=String(e.description).trim().slice(0,V_)),e.icon&&(r.icon=String(e.icon).trim().slice(0,K_)),(e.routing==="auto"||e.routing==="act"||e.routing==="planner")&&(r.routing=e.routing);let a=Number(e.order);return Number.isFinite(a)&&(r.order=Math.trunc(a)),r}function qr(e){if(!Array.isArray(e))return[];let t=[],n=new Set;for(let o of e){if(t.length>=Vl)break;let r=KE(o);!r||n.has(r.id)||(n.add(r.id),t.push(r))}return t}function XE(e){return e.map((t,n)=>({item:t,index:n})).sort((t,n)=>{let o=Number.isFinite(t.item.order),r=Number.isFinite(n.item.order);return o&&r?Number(t.item.order)-Number(n.item.order):o?-1:r?1:t.index-n.index}).map(t=>t.item)}function YE(e,t){let n=new Map;for(let o of t)n.set(o.id,o);for(let o of e){let r=n.get(o.id);n.set(o.id,r?{...r,...o}:o)}return XE(Array.from(n.values())).slice(0,Vl)}function Wk(e){if(!e)return[];let t=qr(e.ui?.shortcuts||[]),n=qr(No?.shortcuts||[]);return YE(t,n)}function Vk(e){let t=Lf(No?.limits?.shortcutMaxRendered,{min:1,max:Gl,fallback:Gl});return e.filter(n=>n.enabled!==!1).slice(0,t)}function Bs(){Lr&&(clearTimeout(Lr),Lr=null),Fs=null}function QE(e){return`${window.location.href}::${e.signature}`}function Gk(e){let t=`${window.location.pathname}${window.location.search}${window.location.hash}`,n=Ug(window.location.href);if(n!==t)try{history.replaceState(history.state,document.title,n),Qe("status",{event:"launch_params_consumed",requestId:e.requestId})}catch{}}function df(e,t,n){let o=Fs;o?.handleKey===e&&o.deadlineAt===n&&Lr||(Lr&&clearTimeout(Lr),Fs={handleKey:e,request:t,deadlineAt:n},Lr=setTimeout(()=>{Lr=null,ac("attach_retry")},fI))}function Kk(){ki&&(clearTimeout(ki),ki=null)}function JE(){Kk(),eo=null}function Rs(e=0){eo?.pendingEvents.length&&(ki||(ki=setTimeout(()=>{ki=null,im()},Math.max(0,e))))}async function im(e=!1){let t=eo;if(!t||!t.pendingEvents.length||t.ingestInFlight||!pe)return;if(!e&&Ea()){Rs(af);return}let n=t.pendingEvents.splice(0,rf);if(n.length){t.ingestInFlight=!0;try{await pe.ingestLaunchEvents({requestId:t.requestId,runId:t.runId,events:n})||(t.pendingEvents=[...n,...t.pendingEvents].slice(-rf*4),Rs(af))}catch{t.pendingEvents=[...n,...t.pendingEvents].slice(-rf*4),Rs(af)}finally{t.ingestInFlight=!1}t.pendingEvents.length&&Rs(0)}}function Wo(e,t,n){let o=eo;if(o){if(n?.runId&&(o.runId=n.runId),o.pendingEvents.push({type:e,ts:Date.now(),data:t}),n?.immediate){Kk(),im(!0);return}Rs(0)}}function ZE(e){let t=String(e||"").trim();if(t){let r=String(Go.get(t)||"").trim();if(r)return r}let n=[...l?.uiMessages||[]].reverse().find(r=>r.role==="assistant");return String(n?.text||"").trim()||void 0}function eS(){let e=String(zs||"").trim();if(!e)return;let t=e.indexOf(":");return t<0?void 0:e.slice(t+1).trim()||void 0}function Xk(){return eo?.detail==="full"||eo?.detail==="debug"}function tS(){return eo?.detail==="debug"}function nS(e){let t={stage:yk(e?.stage),message:typeof e?.message=="string"?e.message:void 0,compactThought:typeof e?.compactThought=="string"?e.compactThought:void 0};return tS()&&(t.thought=typeof e?.thought=="string"?e.thought:void 0),t}function oS(e){let t={toolName:typeof e?.call?.name=="string"?e.call.name:"tool"};return Xk()&&(t.args=e?.call?.args),t}function rS(e){let t={toolName:typeof e?.call?.name=="string"?e.call.name:"tool",success:e?.result?.success!==!1};return Xk()?t.result=e?.result:typeof e?.result?.message=="string"&&(t.message=e.result.message),t}function aS(e){let t=window.location.href,n=String(document.title||"").trim()||void 0,o=String(window.location.hostname||"").trim()||void 0,r=ZE(e),a=eS();return{url:t,title:n,host:o,summary:r,snapshotDigest:a}}function Yk(e){let t=eo;if(!t||!e.length)return;let n=e.map(o=>`${o.key}:${o.query}`).join("|");t.lastNeedsInputSignature!==n&&(t.lastNeedsInputSignature=n,Wo("needs_input",{questions:e},{immediate:!0}))}function iS(e){let t=eo;if(!t)return;let n=String(e||t.runId||"").trim()||void 0;n&&t.finalObservationRunId===n||(n&&(t.finalObservationRunId=n),Wo("page_observation",aS(n),{immediate:!0,runId:n}))}function ff(e,t,n,o){Bs(),ka="",o?.openWidget!==!1&&(mo(),Sn("system",`Rover couldn't start the AI launch: ${n}`,!0)),Qe("status",{event:"launch_attach_failed",requestId:e.requestId,message:n}),Ns=t,o?.consume!==!1&&Gk(e)}function sS(e){let t=e.input;if(!t||typeof t.prompt!="string"||!t.prompt.trim())throw new Error("Launch attach response did not include a prompt.");if(mo(),t.kind==="shortcut"){Ro(t.prompt,{reason:"launch_shortcut",routing:t.routing});return}Ro(t.prompt,{reason:"launch_prompt"})}function ac(e){if(!C||typeof window>"u")return;let t=Bg(window.location.href);if(!t){Bs(),Ns="",Es="",ka="";return}let n=QE(t);if(n===Ns||eo?.handleKey===n||ka===n)return;let o=WE(C);if(o&&o.enabled===!1){Bs(),Es!==n&&(Qe("status",{event:"launch_ignored_disabled",requestId:t.requestId,source:e}),Es=n),ff(t,n,"AI launch is not enabled for this Rover embed.",{consume:!0,openWidget:!0});return}Es="";let r=Fs?.handleKey===n?Fs.deadlineAt:Date.now()+dI;if(Date.now()>=r){ff(t,n,"Launch attach timed out before Rover finished booting.",{consume:!0,openWidget:!0});return}ka=n,Qo(C).then(async()=>{if(!pe){df(n,t,r);return}let a=await pe.attachLaunch({requestId:t.requestId,attachToken:t.attachToken});if(!a){df(n,t,r);return}Bs(),eo={requestId:t.requestId,attachToken:t.attachToken,handleKey:n,status:a.status,detail:a.detail,executionTarget:a.executionTarget,runId:a.runId,pendingEvents:[],attachCompletedAt:Date.now()},sS(a),Wo("state_transition",{status:a.status==="awaiting_user"?"awaiting_user":"running",executionTarget:a.executionTarget,detail:a.detail,source:"launch_attach"},{immediate:!0,runId:a.runId}),Qe("status",{event:"launch_attached",requestId:t.requestId,source:e,executionTarget:a.executionTarget,detail:a.detail}),Ns=n,Gk(t)}).catch(a=>{if(Date.now()<r){df(n,t,r);return}ff(t,n,a?.message||"Unknown launch attach failure.",{consume:!0,openWidget:!0})}).finally(()=>{ka===n&&(ka="")})}function mi(){Nr&&(clearTimeout(Nr),Nr=null),bi=null}function cS(e){return`${window.location.href}::${e.signature}`}function lS(e){return e?!!(Ql(e)||qn(e)):!1}function Df(e,t){if(!e.consume)return;let n=`${window.location.pathname}${window.location.search}${window.location.hash}`,o=Nd(window.location.href,e);if(o!==n)try{history.replaceState(history.state,document.title,o),Qe("status",{event:"deep_link_consumed",kind:t.kind,paramName:t.paramName})}catch{}}function uS(e,t,n){let o=bi;o?.handleKey===e&&o.deadlineAt===n&&Nr||(Nr&&clearTimeout(Nr),bi={handleKey:e,request:t,deadlineAt:n},Nr=setTimeout(()=>{Nr=null,Pi("shortcut_retry")},uI))}function dS(e,t,n){mi(),mo(),Sn("system",`Rover couldn't find shortcut "${e.value}" for this embed. Check the URL or expose that shortcut in the Rover boot config/site config.`,!0),Qe("status",{event:"deep_link_shortcut_not_found",shortcutId:e.value,paramName:e.paramName}),fi=t,Df(n,e)}function Qk(){let e=String(C?.apiBase||"https://agent.rtrvr.ai").trim().replace(/\/+$/,"");return e?e.endsWith("/extensionRouter/v2/rover")?e.slice(0,-25):e.endsWith("/v2/rover")?e.slice(0,-9):e:"https://agent.rtrvr.ai"}function Di(e){let t=String(e||"").trim();if(t)try{let n=new URL(t);return String(n.searchParams.get("access")||"").trim()||void 0}catch{return}}function fS(e,t){let n=new URL(`${Qk()}/v1/tasks/${encodeURIComponent(e)}`);return t&&n.searchParams.set("access",t),n.toString()}function mS(e,t){let n=new URL(`${Qk()}/v1/workflows/${encodeURIComponent(e)}`);return t&&n.searchParams.set("access",t),n.toString()}function Jk(e){let t=String(e.taskId||"").trim();if(!t)return;let n=String(e.taskAccessToken||Di(e.taskUrl)||"").trim()||void 0,o=String(e.workflowId||"").trim()||void 0,r=String(e.workflowAccessToken||Di(e.workflowUrl)||"").trim()||void 0;ya={taskId:t,taskUrl:String(e.taskUrl||fS(t,n)).trim(),taskAccessToken:n,workflowId:o,workflowUrl:o?String(e.workflowUrl||mS(o,r)).trim():void 0,workflowAccessToken:r,taskBoundaryId:Se(Re||l?.workerState?.taskBoundaryId),runId:String(e.runId||l?.pendingRun?.id||"").trim()||void 0,updatedAt:Date.now()}}function pS(){return Se(Re||l?.workerState?.taskBoundaryId)||""}function hS(e){let t=String(e||"").trim().toLowerCase();return t==="browser"||t==="cloud"?t:"auto"}function jl(e){let t=String(e||"").trim().toLowerCase();return t==="completed"||t==="failed"||t==="cancelled"||t==="expired"}function Zk(e){let t=String(e||"").trim();if(t){if(!/^https?:\/\//i.test(t))return t;try{let o=new URL(t).pathname.split("/").filter(Boolean),r=o.lastIndexOf("tasks");if(r>=0&&o[r+1])return decodeURIComponent(o[r+1]);let a=o.lastIndexOf("workflows");if(a>=0&&o[a+1])return decodeURIComponent(o[a+1])}catch{}}}function gS(){let e=String(Yo||l?.uiStatus||l?.transientStatus?.text||"").trim();return{url:window.location.href,title:document.title,host:window.location.hostname,...e?{summary:e}:{}}}function bS(){let e=String(document.title||"").trim();return e?`Continue the current Rover workflow on ${e}.`:`Continue the current Rover workflow on ${window.location.hostname}.`}async function kS(){let e=pS(),t=ya;if(t&&t.taskId&&t.taskAccessToken&&(!e||t.taskBoundaryId===e))return t.runId=String(l?.pendingRun?.id||t.runId||"").trim()||void 0,t.updatedAt=Date.now(),t;if(!C)throw new Error("Rover is not booted.");if(await Qo(C),!pe)throw new Error("Rover server runtime is unavailable.");let n=eu(l?.pendingRun?.id)||bS(),o=await pe.createSessionRootTask({url:window.location.href,prompt:n,runId:String(l?.pendingRun?.id||"").trim()||void 0});if(!o?.id||!o.task)throw new Error("Failed to create the root public workflow task.");if(Jk({taskId:o.id,taskUrl:o.task,taskAccessToken:Di(o.task),workflowId:Zk(o.workflow||""),workflowUrl:o.workflow,workflowAccessToken:Di(o.workflow),runId:String(l?.pendingRun?.id||"").trim()||void 0}),!ya?.taskAccessToken)throw new Error("Root public workflow task is missing an access token.");return Qe("status",{event:"handoff_root_task_created",taskId:ya.taskId,workflowId:ya.workflowId}),ya}async function qb(e,t,n=Hs){if(!C)return null;if(await Qo(C),!pe)throw new Error("Rover server runtime is unavailable.");let o=Date.now()+Math.max(0,n),r=null;for(;;){let a=o-Date.now(),i=a>0?Math.max(1,Math.min(hI,Math.ceil(a/1e3))):0;if(r=await pe.getPublicTask(e,{accessToken:t,waitSeconds:i}),!r||jl(r.status)||r.status==="input_required"||a<=0)return r}}function $b(e,t){if(t==="cloud")return{opened:!1};let n=String(e.open||e.browserLink||"").trim();if(!n)return{opened:!1};try{return window.open(n,"_blank","noopener,noreferrer")?{opened:!0,targetUrl:n}:{opened:!1,targetUrl:n,error:"Browser blocked the delegated Rover handoff window."}}catch(o){return{opened:!1,targetUrl:n,error:o?.message||"Unable to open the delegated Rover site."}}}function Wb(e,t){let n=String(e.status||"pending").trim().toLowerCase(),o=String(e.task||"").trim(),r=String(e.workflow||"").trim(),a=String(e.result?.summary||e.result?.text||e.input?.message||"").trim(),i=Ao(e.input?.questions),s=t?.browserOpen,c={success:n==="completed",status:n,task:o||void 0,workflow:r||void 0,open:e.open,browserLink:e.browserLink,result:e.result,handoff:e.handoff,summary:e.result?.summary,text:e.result?.text||a||void 0,observation:e.result?.observation,transcript:e.result?.transcript,artifacts:e.result?.artifacts,taskStatus:n,...s?.targetUrl?{browserOpenUrl:s.targetUrl}:{},...s?.opened?{browserOpened:!0}:{},...s?.error?{browserOpenError:s.error}:{}};if(n==="completed")return{...c,taskComplete:!0,terminalState:"completed",message:a||"Delegated Rover task completed."};if(n==="input_required")return{...c,success:!1,taskComplete:!1,terminalState:"waiting_input",continuationReason:"awaiting_user",needsUserInput:!0,waitingForUserInput:!0,questions:i.length?i:e.input?.questions,input:e.input,message:String(e.input?.message||a||"Delegated Rover task needs more input.").trim()};if(n==="failed"||n==="cancelled"||n==="expired"){let f=String(e.result?.error||a||`Delegated Rover task ${n}.`).trim();return{...c,success:!1,taskComplete:!1,terminalState:"failed",error:f,message:f}}return{...c,success:!1,taskComplete:!1,terminalState:"in_progress",continuationReason:"loop_continue",message:n==="waiting_browser"?'Delegated Rover task is waiting for a browser attachment. Re-open the returned URL or call again with execution="cloud" for a browserless run.':"Delegated Rover task is still running. Call handoff_to_rover_site again with the returned task URL to keep following it."}}async function yS(e){let t=e&&typeof e=="object"?e:{};if(!C)throw new Error("Rover is not booted.");if(await Qo(C),!pe)throw new Error("Rover server runtime is unavailable.");let n=hS(t.execution),o=String(t.answer||"").trim(),r=String(t.task||"").trim();if(r){let g=Di(r),y=o?await pe.continuePublicTask(r,o,{accessToken:g}):await pe.getPublicTask(r,{accessToken:g});if(!y)throw new Error("Delegated Rover task could not be loaded.");let I;return!jl(y.status)&&y.status!=="input_required"&&(I=$b(y,n),y=await qb(r,g,Hs)||y),Wb(y,I?{browserOpen:I}:void 0)}let a=String(t.url||"").trim(),i=String(t.shortcutId||"").trim(),s=String(t.instruction||"").trim(),c=String(t.prompt||"").trim();if(!a)throw new Error("handoff_to_rover_site requires url or task.");if(!i&&!s&&!c)throw new Error("handoff_to_rover_site requires instruction, prompt, or shortcutId when creating a new handoff.");let d=await kS(),f=await pe.createTaskHandoff({parentTaskId:d.taskId,taskAccessToken:String(d.taskAccessToken||"").trim(),url:a,...i?{shortcutId:i}:{},...!i&&s?{instruction:s}:{},...!i&&!s&&c?{prompt:c}:{},...String(t.contextSummary||Yo||"").trim()?{contextSummary:String(t.contextSummary||Yo).trim()}:{},...String(t.expectedOutput||"").trim()?{expectedOutput:String(t.expectedOutput).trim()}:{},...String(eu(l?.pendingRun?.id)||"").trim()?{originalGoal:String(eu(l?.pendingRun?.id)||"").trim()}:{},lastObservation:gS(),execution:n});if(!f)throw new Error("Delegated Rover handoff could not be created.");let u;!jl(f.status)&&f.status!=="input_required"&&(u=$b(f,n));let b=Di(f.task),p=!jl(f.status)&&f.status!=="input_required"&&await qb(f.task,b,Hs)||f;return Qe("status",{event:"handoff_task_created",parentTaskId:d.taskId,childTaskId:p.id,workflowId:Zk(p.workflow||"")||d.workflowId,targetHost:(()=>{try{return new URL(a).hostname}catch{return}})()}),Wb(p,u?{browserOpen:u}:void 0)}var vS={name:"handoff_to_rover_site",description:"Delegate part of the current Rover workflow to Rover on another Rover-enabled site and keep following that child task until it completes or asks for more input.",parameters:{url:{type:"string",description:"Absolute URL for the Rover-enabled site that should handle the delegated step."},instruction:{type:"string",description:"Delegation instruction for the target site. Use this for natural-language delegation."},prompt:{type:"string",description:"Prompt alias for instruction when creating a delegated task."},shortcutId:{type:"string",description:"Exact shortcut ID to run on the delegated Rover site instead of a natural-language instruction."},contextSummary:{type:"string",description:"Short structured summary of what the target Rover site should know before continuing."},expectedOutput:{type:"string",description:"Describe the output the delegated site should return to the parent workflow."},execution:{type:"string",enum:["auto","browser","cloud"],description:"Use browser to try a new tab first, cloud for guaranteed browserless execution, or auto for browser-first hybrid behavior."},task:{type:"string",description:"Existing delegated task URL or task ID to keep following or resume after user input."},answer:{type:"string",description:"Answer to send when resuming a delegated task that is waiting for user input."}},llmCallable:!0};function wS(){vf||!at||!qe||(Ff({def:vS,handler:yS}),vf=!0)}function nu(){Dr&&(clearTimeout(Dr),Dr=null),qs=null}function xS(e){return`${window.location.href}::${e.signature}`}function ey(e,t){let n=`${window.location.pathname}${window.location.search}${window.location.hash}`,o=zg(window.location.href);if(t?.consumeDeepLink&&C){let r=new URL(o,window.location.origin).toString();o=Nd(r,ua(C.deepLink))}if(o!==n)try{history.replaceState(history.state,document.title,o),Qe("status",{event:"browser_receipt_consumed",receipt:e.receipt,consumeDeepLink:t?.consumeDeepLink===!0})}catch{}}function mf(e,t){let n=qs;n?.handleKey===e&&n.deadlineAt===t&&Dr||(Dr&&clearTimeout(Dr),qs={handleKey:e,deadlineAt:t},Dr=setTimeout(()=>{Dr=null,ic("receipt_retry")},mI))}function TS(e){let t=e.input;if(!t||typeof t.prompt!="string"||!t.prompt.trim())throw new Error("Browser receipt claim did not include a prompt.");if(mo(),t.kind==="shortcut"){Ro(t.prompt,{reason:"browser_receipt_shortcut",routing:t.routing});return}Ro(t.prompt,{reason:"browser_receipt_prompt"})}function Vb(e,t,n,o){nu(),o?.openWidget&&(mo(),Sn("system",`Rover couldn't claim the browser receipt: ${n}`,!0)),Qe("status",{event:"browser_receipt_claim_failed",message:n}),Os=t,ey(e,{consumeDeepLink:!1}),o?.fallbackToDeepLink&&Pi("receipt_fallback")}function ic(e){if(!C||typeof window>"u")return!1;let t=Bd(window.location.href);if(!t)return nu(),Os="",di="",!1;let n=xS(t);if(n===Os||di===n)return!0;let o=qs?.handleKey===n?qs.deadlineAt:Date.now()+pI;return Date.now()>=o?(Vb(t,n,"Browser receipt claim timed out before Rover finished booting.",{fallbackToDeepLink:!0,openWidget:!0}),!0):(di=n,Qo(C).then(async()=>{if(!pe){mf(n,o);return}let r=await pe.claimBrowserTaskReceipt({receipt:t.receipt});if(!r){mf(n,o);return}nu(),Jk({taskId:r.taskId,taskAccessToken:r.taskAccessToken,workflowId:r.workflowId,workflowAccessToken:r.workflowAccessToken,runId:r.runId}),TS(r),Qe("status",{event:"browser_receipt_claimed",source:e,taskId:r.taskId}),Os=n,ey(t,{consumeDeepLink:!0})}).catch(r=>{if(Date.now()<o){mf(n,o);return}Vb(t,n,r?.message||"Unknown browser receipt failure.",{fallbackToDeepLink:!0,openWidget:!0})}).finally(()=>{di===n&&(di="")}),!0)}function Pi(e){if(!C||typeof window>"u")return;let t=ua(C.deepLink);if(e!=="receipt_fallback"&&Bd(window.location.href))return;let n=Lg(window.location.href,t);if(!n){mi(),fi="",Is="";return}let o=cS(n);if(!t.enabled){mi(),Is!==o&&(Qe("status",{event:"deep_link_ignored_disabled",kind:n.kind,paramName:n.paramName,source:e}),Is=o);return}if(Is="",o===fi)return;if(bi?.handleKey===o||Qe("status",{event:"deep_link_detected",kind:n.kind,paramName:n.paramName,source:e}),n.kind==="prompt"){mi(),mo(),Ro(n.value,{reason:"deep_link_prompt"}),Qe("status",{event:"deep_link_dispatched",kind:n.kind,paramName:n.paramName}),fi=o,Df(t,n);return}let a=Wk(C).find(s=>s.enabled!==!1&&s.id===n.value);if(a){mi(),mo(),Ro(a.prompt,{reason:"deep_link_shortcut",routing:a.routing}),Qe("status",{event:"deep_link_dispatched",kind:n.kind,paramName:n.paramName,shortcutId:a.id,routing:a.routing}),fi=o,Df(t,n);return}let i=bi?.handleKey===o?bi.deadlineAt:Date.now()+lI;if(Date.now()<i&&lS(C)){uS(o,n,i);return}dS(n,o,t)}function bu(e){if(!e)return;let t=Li(No?.greeting),n=Li(e.ui?.greeting);if(!(!t&&!n))return{...t||{},...n||{}}}function ty(e){if(!e)return;let t=Ni(No?.voice),n=Ni(e.ui?.voice);if(!t&&!n)return;let o={...t||{},...n||{}};return o.enabled===!0&&o.autoStopMs===void 0&&(o.autoStopMs=Q_),o}function sm(e){let t=Io?.name,n=e?.text;return n?n.replace(/\{name\}/g,t||"").trim()||(t?`Hey ${t}! Need any help?`:"Hey! Need any help?"):t?`Hey ${t}! Need any help?`:"Hey! Need any help?"}function Ks(){if(Fr||!Q||!C||l?.uiOpen)return;let e=bu(C);if(e?.disabled===!0)return;let t=`rover:greeting-shown:${C.siteId}`;try{if(sessionStorage.getItem(t)){wa=!0;return}}catch{}if(wa)return;rc();let n=e?.delay??3e3,o=e?.duration??8e3,r=sm(e);Cs=setTimeout(()=>{if(Cs=null,!(Fr||l?.uiOpen)){Q?.showGreeting(r),wa=!0;try{sessionStorage.setItem(t,"1")}catch{}Ms=setTimeout(()=>{Ms=null,Q?.dismissGreeting()},o)}},n)}function ou(e){let t=Wk(e);Q?.setShortcuts(Vk(t)),Q?.setVoiceConfig(ty(e)),VE(e),ic("site_config"),ac("site_config"),Pi("site_config")}async function _S(e){let t=null,n=Ql(e)||qn(e);if(!n)return null;let o={siteId:e.siteId,sessionId:l?.sessionId||e.sessionId,requestedSessionId:l?.sessionId||e.sessionId,host:window.location.hostname,url:window.location.href,pageUrl:window.location.href};n.startsWith("rvrsess_")?o.sessionToken=n:o.bootstrapToken=n;let r=pa(e.apiBase);for(let a of r)try{let i=await fetch(`${a}/session/open`,{method:"POST",headers:{"Content-Type":"text/plain"},body:JSON.stringify(o)}),s=await i.json().catch(()=>{});if(!i.ok||!s?.success)continue;if(t=s?.data?.siteConfig||null,t)break}catch{}return t?{shortcuts:qr(t.shortcuts),greeting:Li(t.greeting),voice:Ni(t.voice),aiAccess:oc(t.aiAccess),limits:gu(t.limits),pageConfig:fr(t.pageConfig),version:t.version!=null?String(t.version):void 0}:null}function ny(e){let t=GE(e.siteId);t&&(No=t),ou(e),Ks(),_S(e).then(n=>{if(n&&(No=n,$k(e.siteId,n),ou(e),!Fr)){let o=bu(e);wa&&!l?.uiOpen?Q?.showGreeting(sm(o)):Ks()}}).catch(()=>{})}function cm(e){if(!C)return;let t={...Io,...e};t.name&&(t.name=String(t.name).trim().slice(0,120)),t.email&&(t.email=String(t.email).trim().slice(0,240)),Io=t,ik(C.siteId,Io),Q?.setVisitorName(Io.name||""),Fr||(wa&&!l?.uiOpen?Q?.showGreeting(sm(bu(C))):Ks())}function IS(e){if(tu(e),L){let u=Zs(L.getRole());bt=u,_o=u==="controller",l&&(l.executionMode=u)}am(e),lu(e),Oo(!0);let t=(e.allowActions??!0)&&(L?L.isController():!0),n=u=>{if(!l)return;let b=st(l.pendingRun);if(b){let R=st({...b,taskBoundaryId:b.taskBoundaryId||Re,resumeRequired:!0,resumeReason:u});return l.pendingRun=R,R&&L?.setActiveRun({runId:R.id,text:R.text}),R}let p=L?.getState().activeRun,g=String(pe?.getActiveRunId()||Ys||p?.runId||"").trim();if(!g)return;let y=String(p?.text||ln||"Continue task").trim()||"Continue task",I=st({id:g,text:y,startedAt:Date.now(),attempts:0,autoResume:!0,taskBoundaryId:Re,resumeRequired:!0,resumeReason:u});return l.pendingRun=I,I&&L?.setActiveRun({runId:I.id,text:I.text}),I};at=new cl({allowActions:t,runtimeId:it,allowedDomains:e.allowedDomains,domainScopeMode:Ws(e.domainScopeMode),externalNavigationPolicy:e.externalNavigationPolicy,crossHostPolicy:cu(e.navigation?.crossHostPolicy),navigationDelayMs:e.timing?.navigationDelayMs,domSettle:{debounceMs:Wt(e.timing?.domSettleDebounceMs,8,500),maxWaitMs:Wt(e.timing?.domSettleMaxWaitMs,80,5e3),retries:Wt(e.timing?.domSettleRetries,0,6),sparseTreeRetryDelayMs:Wt(e.timing?.sparseTreeRetryDelayMs,20,1e3),sparseTreeRetryMaxAttempts:Wt(e.timing?.sparseTreeRetryMaxAttempts,0,4)},registerOpenedTab:u=>L?.registerOpenedTab(u),switchToLogicalTab:u=>L?.switchToLogicalTab(u)||{ok:!1,reason:"No session coordinator"},listKnownTabs:()=>(L?.listTabs()||[]).map(u=>({logicalTabId:u.logicalTabId,runtimeId:u.runtimeId,url:u.url,title:u.title,external:!!u.external})),onNavigationGuardrail:u=>{if(Ve("navigation_guardrail",u),dt({kind:"status",title:"Navigation guardrail",detail:zl(u),status:"info"}),pe&&u?.blockedUrl){let b=Hb();if(!b)return;let p=String(window.location.hostname||"").toLowerCase(),g=(()=>{try{return new URL(String(u.blockedUrl)).hostname.toLowerCase()}catch{return}})();pe.sendTabEvent({runId:b,currentUrl:String(u.currentUrl||window.location.href),targetUrl:String(u.blockedUrl),message:String(u.reason||""),currentHost:p||void 0,targetHost:g,isCrossHost:!!g&&!!p&&g!==p}).then(y=>{y&&(y.retryAttempted&&Ve("tab_event_conflict_retry",{runId:y.runId||b,decisionReason:y.decisionReason,conflict:y.conflict}),y.retryExhausted&&Ve("tab_event_conflict_exhausted",{runId:y.runId||b,decisionReason:y.decisionReason,conflict:y.conflict}))}).catch(()=>{})}},onBeforeAgentNavigation:async u=>{let b=Hb(),p=String(window.location.hostname||"").toLowerCase();if(u?.targetUrl&&xb(u.targetUrl,p)){let re=nf(u.targetUrl,p);return Qe("navigation_guardrail",{event:"adversarial_blocked",targetUrl:u.targetUrl,score:re.score,reasons:re.reasons}),{decision:"block",reason:`Navigation blocked: suspicious URL detected (adversarial score ${re.score}).`,decisionReason:"adversarial_block"}}if(u?.isCrossHost){let re=Date.now();for(ha.push(re);ha.length>0&&ha[0]<re-Db;)ha.shift();if(ha.length>yI)return Qe("navigation_guardrail",{event:"rapid_cross_origin_blocked",targetUrl:u.targetUrl,count:ha.length}),{decision:"block",reason:`Navigation blocked: too many cross-origin navigations (${ha.length} in ${Db/1e3}s).`,decisionReason:"rapid_cross_origin_block"}}let g=(()=>{try{return new URL(String(u?.targetUrl||"")).hostname.toLowerCase()}catch{return}})(),y=!!p&&!!g&&sr(p)!==sr(g),I=!!p&&!!g&&p!==g,O=wd({host:g,currentHost:p,allowedDomains:C?.allowedDomains,domainScopeMode:C?.domainScopeMode})?I&&C?.navigation?.crossHostPolicy==="open_new_tab"?"open_new_tab":"allow_same_tab":C?.externalNavigationPolicy==="block"?"block":C?.externalNavigationPolicy==="allow"?"allow_same_tab":"open_new_tab",M=HI(),H=O==="allow_same_tab";if(H&&l){if(Vo=!0,lf(sf(u)),n(u.isCrossHost?"cross_host_navigation":"agent_navigation"),cn&&C?.siteId)try{sessionStorage.setItem(`rover:sess:${C.siteId}`,JSON.stringify({t:cn,e:Ko}))}catch{}if(K){let re=K.getActiveTask();re&&K.dispatch(re.taskId,{type:"NAVIGATION_STARTED",targetUrl:u.targetUrl,isCrossHost:u.isCrossHost})}Ti("same_tab_navigation_handoff_early")}let N=null;if(u?.targetUrl&&pe&&b){let re=!!g&&!!p&&g!==p;N=await pe.sendTabEvent({runId:b,currentUrl:window.location.href,targetUrl:u.targetUrl,message:M,currentHost:p||void 0,targetHost:g,isCrossHost:re}).catch(()=>null),N?.retryAttempted&&Ve("tab_event_conflict_retry",{runId:N.runId||b,decisionReason:N.decisionReason,conflict:N.conflict,targetUrl:u.targetUrl}),N?.retryExhausted&&Ve("tab_event_conflict_exhausted",{runId:N.runId||b,decisionReason:N.decisionReason,conflict:N.conflict,targetUrl:u.targetUrl})}let Y=Eb({crossRegistrableDomain:y,fallbackDecision:O,serverDecision:N?.decision,serverAvailable:!!N}),ae=Y.decision;if(ae==="block")return H&&(Vo=!1),{decision:"block",reason:Y.failSafeBlocked?"Cross-domain navigation blocked because preflight policy check is unavailable.":N?.reason||"Navigation blocked by policy.",decisionReason:Y.failSafeBlocked?"preflight_unavailable_block":N?.decisionReason||"policy_blocked"};if(ae==="open_new_tab"){H&&(Vo=!1),C?.tools?.web?.scrapeMode==="on_demand"&&pe&&u?.targetUrl&&LE(u.targetUrl).catch(()=>{});let le=Y.decisionReason==="preflight_unavailable_fallback"&&!N;return{decision:"open_new_tab",reason:N?.reason||(le?"Preflight is unavailable; using local policy to open in a new tab and preserve runtime continuity.":"Open in new tab to preserve runtime continuity."),decisionReason:N?.decisionReason||Y.decisionReason||"open_new_tab"}}return!H&&l?(Vo=!0,lf(sf(u)),n(u.isCrossHost?"cross_host_navigation":"agent_navigation"),Ti("same_tab_navigation_handoff")):H||(Vo=!0),{decision:"allow_same_tab",reason:N?.reason||(Y.decisionReason==="preflight_unavailable_fallback"&&!N?"Preflight is unavailable; allowing navigation using local policy.":"Navigation allowed."),decisionReason:N?.decisionReason||Y.decisionReason||"allow_same_tab"}},onBeforeCrossHostNavigation:u=>{if(Vo=!0,!l||!C)return;lf(sf(u));let b=Hf(),p=n("cross_host_navigation");ab(C.siteId,{sessionId:l.sessionId,sessionToken:cn,sessionTokenExpiresAt:Ko,openIntent:l.uiOpen?"preserve_if_running":void 0,targetUrl:String(u?.targetUrl||"").trim()||void 0,sourceHost:String(window.location.hostname||"").trim().toLowerCase()||void 0,handoffId:b?.handoffId||u?.handoffId,pendingRun:p?{id:p.id,text:p.text,startedAt:p.startedAt,attempts:p.attempts,taskBoundaryId:p.taskBoundaryId||Re}:void 0,handoff:b?{handoffId:b.handoffId,sourceLogicalTabId:b.sourceLogicalTabId,runId:b.runId,targetUrl:b.targetUrl,createdAt:b.createdAt}:void 0,activeTask:l.activeTask?{taskId:l.activeTask.taskId,status:l.activeTask.status}:void 0,taskEpoch:l.taskEpoch,timestamp:Date.now()}),Ti("cross_domain_handoff_pre_navigation")},instrumentationOptions:e.mode==="safe"?{observeInlineMutations:!1}:void 0});let o=bt==="observer"?"observer":"controller";at?.setActionGateContext?.({mode:o,controllerRuntimeId:L?.getCurrentHolderRuntimeId(),activeLogicalTabId:L?.getActiveLogicalTabId(),localLogicalTabId:L?.getLocalLogicalTabId(),reason:Js(o,t)});let r=new MessageChannel;Zh(r.port1,{getSnapshot:()=>at.getSnapshot(),getPageData:async u=>{let b=C||e,p=Number(u?.tabId),g=L?.getLocalLogicalTabId();if(!Number.isFinite(p)||p<=0||p===g||!L)return at.getPageData(u);let I=L.listTabs().find(R=>R.logicalTabId===p);if(!I){let R=Ps().includes(p);return ys({logicalTabId:p,external:!1},R?"detached_runtime_placeholder":"target_tab_missing")}if(I.runtimeId===it)return at.getPageData(u);if(I.external&&b.externalNavigationPolicy!=="allow")return ys(I,"external_domain_inaccessible");if(!I.runtimeId||!L.isTabAlive(p))return ys(I,"target_tab_inactive");try{return await L.sendCrossTabRpc(I.runtimeId,"getPageData",u,15e3)}catch{return ys(I,"cross_tab_rpc_failed")}},executeTool:async u=>{let b=C||e,p=u?.payload?.forceLocal===!0,g=String(u?.call?.name||"").trim(),y=Number(u?.call?.args?.tab_id),I=L?.getActiveLogicalTabId(),R=Number.isFinite(y)&&y>0?y:I;if(OE(g)){let N=u?.call?.serverResult;return N?N.success?{success:!0,output:N.data}:{success:!1,error:N.error||"Server-side execution failed"}:PE({call:u?.call,routeTabId:Number.isFinite(Number(R))?Number(R):void 0,runtimeCfg:b})}if(p)return at.executeTool(u.call,u.payload);let O=L?.getLocalLogicalTabId();if(!R||R===O||!L)return at.executeTool(u.call,u.payload);let H=L.listTabs().find(N=>N.logicalTabId===R);if(!H){let N=Ps().includes(R);return vs(b,{logicalTabId:R,external:!1},N?"detached_runtime_placeholder":"target_tab_missing")}if(H.external&&b.externalNavigationPolicy!=="allow")return vs(b,H,"external_tab_action_blocked");if(H.runtimeId===it)return at.executeTool(u.call,u.payload);if(!H.runtimeId||!L.isTabAlive(R))return vs(b,H,"target_tab_inactive");try{return await L.sendCrossTabRpc(H.runtimeId,"executeTool",u,2e4)}catch{return vs(b,H,"cross_tab_execute_failed")}},executeClientTool:u=>at.executeClientTool(u.name,u.args),listClientTools:()=>at.listClientTools(),getTabContext:()=>{let u=L?.getLocalLogicalTabId(),b=L?.getActiveLogicalTabId();return{id:u||1,logicalTabId:u||1,activeLogicalTabId:b||u||1,runtimeId:it,mode:bt,url:window.location.href,title:document.title}},listSessionTabs:()=>{if(!L)return[];let u=L.listTabs({scope:"all"}),b=Array.isArray(L.getState()?.tabs)?L.getState().tabs:[],p=new Set(Ps()),g=new Map,y=I=>{let R=Number(I?.logicalTabId||I?.id);!Number.isFinite(R)||R<=0||g.set(R,{...g.get(R)||{},...I,logicalTabId:R,id:R})};for(let I of u)y(I);for(let I of b){let R=Number(I?.logicalTabId);!Number.isFinite(R)||R<=0||(I.runtimeId||I.external||p.has(R))&&y(I)}return[...g.values()].sort((I,R)=>Number(I.logicalTabId)-Number(R.logicalTabId))}}),r.port1.start?.();let a=e.workerUrl?e.workerUrl:new URL("./worker/worker.js",__ROVER_SCRIPT_URL__).toString(),i=a;try{let u=window.location.origin,b=new URL(a).origin;if(u!==b){let p=new Blob([`import '${a}';`],{type:"application/javascript"});i=URL.createObjectURL(p)}}catch{}qe=new Worker(i,{type:"module"}),qe.postMessage({type:"init",config:{...e,...Aa(),pageConfig:Gs(C),publicKey:void 0,authToken:qn(e),sessionToken:cn,sessionId:l?.sessionId,activeRunId:l?.pendingRun?.id},port:r.port2},[r.port2]);let s=(u="manual_cancel_task")=>{if(!l)return;let b=l.pendingRun;if(b){$r(b.id),qe?.postMessage({type:"cancel_run",runId:b.id}),zr(b.id,u,{attemptImmediately:!0}),pe?.controlRun({action:"cancel",runId:b.id,reason:u}).catch(()=>{}),L?.releaseWorkflowLock(b.id),L?.setActiveRun(void 0),Lt(void 0),l.workerState=void 0,L?.setWorkerContext(void 0),Re=Do(),l.taskTabScope=void 0,to({forceReset:!0,persist:!1}),uo(),Et&&(clearTimeout(Et),Et=null),Q?.setRunning(!1),Q?.setQuestionPrompt(void 0),Dk(u),Nt(void 0),Sn("system","Task cancelled.",!0),Ta=void 0,Yo=void 0,Ei=0,dt({kind:"info",title:"Run cancelled",status:"info"}),Oe();return}let p=Ao(l.workerState?.pendingAskUser?.questions).length>0,g=l.activeTask?.status;!p&&g!=="running"||(Re=Do(),l.workerState=void 0,l.taskTabScope=void 0,to({forceReset:!0,persist:!1}),uo(),Et&&(clearTimeout(Et),Et=null),Q?.setRunning(!1),Q?.setQuestionPrompt(void 0),jn(),Lt(void 0),EE(u),L?.endTask(u),L?.setActiveRun(void 0),L?.setWorkerContext(void 0),Nt(void 0),Ta=void 0,Yo=void 0,Ei=0,dt({kind:"info",title:u==="question_prompt_cancel"?"Input request cancelled":"Task cancelled",status:"info"}),Oe())};Q=vg({panel:{resizable:e.ui?.panel?.resizable!==!1},shortcuts:Vk(qr(e.ui?.shortcuts||[])),greeting:bu(e),voice:ty(e),visitorName:Io?.name,onVoiceTelemetry:(u,b)=>{WI(u,b)},onShortcutClick:u=>{let b=String(u.prompt||"").trim();b&&Ro(b,{routing:u.routing})},onSend:(u,b)=>{Ro(u,{askUserAnswers:b?.askUserAnswers})},onRequestControl:()=>{tE()?dt({kind:"status",title:"Control requested",detail:"This tab is now the active Rover controller for the current task.",status:"info"}):Sn("system","Unable to acquire control right now. Try again in a moment.",!0)},onCancelRun:()=>{s("manual_cancel_task")},onCancelQuestionFlow:()=>{s("question_prompt_cancel")},onNewTask:()=>{sc({reason:"manual_new_task",clearUi:!0})},onEndTask:()=>{yu({reason:"manual_end_task"})},onTaskSuggestionPrimary:()=>{let u=Ur;if(u){if(u.kind==="resume_run"){let b=st(l?.pendingRun);if(jn(),!b||b.id!==u.runId){Nt("Previous task is no longer resumable.");return}Xo({overridePolicyAction:"auto_resume"});return}Ro(u.text,{bypassSuggestion:!0,startNewTask:!0,reason:u.reason})}},onTaskSuggestionSecondary:()=>{let u=Ur;if(u){if(u.kind==="resume_run"){let b=String(l?.pendingRun?.id||"").trim();if(jn(),!b||b!==u.runId)return;tm({reason:"resume_declined_by_user",statusText:"Resume cancelled. Start a new task when you are ready.",runId:u.runId,cancelReason:"resume_declined_by_user",timelineTitle:"Resume cancelled",timelineDetail:"Interrupted run was cancelled by user action.",timelineStatus:"info"});return}Ro(u.text,{bypassSuggestion:!0})}},onSwitchConversation:u=>{if(!K||!l)return;let b=K.getActiveTask();b&&Q&&(b.scrollPosition=Q.getScrollPosition());let p=String(L?.getState()?.activeRun?.runId||"").trim(),y=!!(String(l.pendingRun?.id||"").trim()||p);if(b&&b.taskId!==u&&y){Sn("system","Finish the active run before switching conversations.",!0);return}let I=K.switchActiveTask(u);I&&(Mk(I,{replayUi:!0}),l.activeTaskId=u,Q&&(requestAnimationFrame(()=>{I.scrollPosition!=null&&Q.setScrollPosition(I.scrollPosition)}),Q.setActiveConversationId(u)),Pr(),Oe())},onDeleteConversation:u=>{K&&(K.deleteTask(u),Pr(),Oe())},onResumeTask:u=>{if(!K)return;K.dispatch(u,{type:"RESUME"}).accepted&&(Q?.hidePausedTaskBanner(),K.assignWorker(u,{}),Pr(),Oe())},onCancelPausedTask:u=>{if(!K)return;K.dispatch(u,{type:"CANCEL",reason:"user_cancelled_paused_task"}).accepted&&(Q?.hidePausedTaskBanner(),K.archiveTask(u),Pr(),Oe())},onTabClick:u=>{L?.switchToLogicalTab(u)},showTaskControls:e.ui?.showTaskControls!==!1,muted:e.ui?.muted,agent:{name:e.ui?.agent?.name},mascot:{disabled:e.ui?.mascot?.disabled,mp4Url:e.ui?.mascot?.mp4Url,webmUrl:e.ui?.mascot?.webmUrl},onOpen:()=>{Fr=!0,rc(),l&&(l.uiOpen=!0,l.uiHidden=!1,Oe()),Ve("open")},onClose:()=>{l&&(l.uiOpen=!1,Oe()),Ve("close")}}),jn(),l?.uiMessages?.length&&fu(l.uiMessages),l?.timeline?.length&&mu(l.timeline),pu(l),Mi(),l?.executionMode&&Q.setExecutionMode(l.executionMode,{localLogicalTabId:L?.getLocalLogicalTabId(),activeLogicalTabId:L?.getActiveLogicalTabId(),controllerRuntimeId:L?.getCurrentHolderRuntimeId(),canTakeControl:!0,canComposeInObserver:_k(),note:Ik(l.executionMode)}),qe.onmessage=u=>{qE(u.data||{})};let c=()=>{L?.registerCurrentTab(window.location.href,document.title),L?.broadcastNavigation(window.location.href,document.title),ic("navigation"),ac("navigation"),Pi("navigation")};hi||(hi=History.prototype.pushState),gi||(gi=History.prototype.replaceState);let d=hi.bind(history),f=gi.bind(history);history.pushState=function(...u){let b=d(...u);return setTimeout(c,0),b},history.replaceState=function(...u){let b=f(...u);return setTimeout(c,0),b},Bl(window,"popstate",c),l?.uiHidden?Q.hide():(Q.show(),l?.uiOpen??!!e.openOnInit?Q.open():Q.close()),l&&(l.uiHidden=!!l.uiHidden,l.uiOpen=!!l.uiOpen,Oe()),L&&(om(L.getState(),"remote"),Sa(L.getRole(),{localLogicalTabId:L.getLocalLogicalTabId(),activeLogicalTabId:L.getActiveLogicalTabId(),holderRuntimeId:L.getCurrentHolderRuntimeId()})),Ks()}function Xs(e){if(Or)return ru(e),Or;yf&&au(),yf=!0,ur=Qg(),it=NI(e.siteId),Ft=sk(e),Io=e.visitor||OI(e.siteId),Fr=!1,wa=!1,rc(),Ia(),No=null,En=!1;let t=e.sessionId?.trim(),n=PI(e.siteId),o=!t&&e.sessionScope!=="tab"&&Ft?Pb(e.siteId,Ft):void 0,r=Fl(e.siteId,t||o),a=wi(e.siteId),i=Array.from(new Set([t?r:n,r,n,o?Fl(e.siteId,o):void 0,a].filter(M=>!!M))),s=null,c=null;for(let M of i){let H=aE(M);if(H){s=H,c=M;break}}_n=c||r,cr=a!==_n?a:null;let d=i.filter(M=>M!==_n);Tf(e.siteId,_n);let f=s?null:Vd(e.siteId,{currentUrl:window.location.href,currentHost:window.location.hostname,requireTargetMatch:!0});!s&&!f&&Vd(e.siteId,{currentHost:window.location.hostname,requireTargetMatch:!1})&&(Qe("status",{event:"resume_cookie_rejected",reason:"target_or_host_mismatch"}),ds(e.siteId)),f&&(ds(e.siteId),kn=!0,En=!0,f.openIntent==="preserve_if_running"&&Bb({runId:f.pendingRun?.id,taskId:f.activeTask?.taskId}),f.sessionToken&&Jl(f.sessionToken,f.sessionTokenExpiresAt));let u=e.sessionId?.trim(),b=!u&&!s?.sessionId&&!f?.sessionId&&e.sessionScope!=="tab"&&Ft?Pb(e.siteId,Ft):void 0,p=u||s?.sessionId||f?.sessionId||b||crypto.randomUUID(),g=s;if(!s&&f){let M=_f(f.sessionId,it),H=String(f.activeTask?.status||"").trim().toLowerCase(),N=!H||H==="running";f.pendingRun&&N&&(M.pendingRun=st({...f.pendingRun,autoResume:!0,taskBoundaryId:f.pendingRun.taskBoundaryId,resumeRequired:!0,resumeReason:"cross_host_navigation"})),f.handoff&&(M.lastNavigationHandoff=pr({...f.handoff,createdAt:f.handoff.createdAt})),f.activeTask&&(M.activeTask={...Rn("cross_domain_resume"),taskId:f.activeTask.taskId,status:f.activeTask.status}),M.taskEpoch=f.taskEpoch||1,tf(f.openIntent)&&(M.uiHidden=!1,M.uiOpen=!0),g=M}l=Vs(g,p,it),u&&l.sessionId!==u&&(l=_f(u,it));let y=UI(e.siteId);Re=AI(l),y&&l.activeTask?.status==="running"&&(En=!0,tf(y.openIntent)&&(l.uiHidden=!1,l.uiOpen=!0,Bb({runId:y.runId,taskId:l.activeTask?.taskId})),l.pendingRun=st({...l.pendingRun||{},id:l.pendingRun?.id||y.runId,text:l.pendingRun?.text||y.text||ln||"Continue task",startedAt:l.pendingRun?.startedAt||Date.now(),attempts:l.pendingRun?.attempts||0,autoResume:!0,taskBoundaryId:l.pendingRun?.taskBoundaryId||y.taskBoundaryId||Re,resumeRequired:!0,resumeReason:y.resumeReason||l.pendingRun?.resumeReason||"agent_navigation"})),l.pendingRun&&!l.pendingRun.taskBoundaryId&&(l.pendingRun=st({...l.pendingRun,taskBoundaryId:Re})),l.workerState&&!l.workerState.taskBoundaryId&&(l.workerState=So(Vt({...l.workerState,taskBoundaryId:Re}),Re)),Qs(l),C={...e,deepLink:ua(e.deepLink),pageConfig:fr(e.pageConfig),visitorId:Ft||e.visitorId,sessionId:u||l.sessionId,domainScopeMode:Ws(e.domainScopeMode),taskRouting:{mode:e.taskRouting?.mode||"act",actHeuristicThreshold:e.taskRouting?.actHeuristicThreshold,plannerOnActError:e.taskRouting?.plannerOnActError},navigation:{crossHostPolicy:cu(e.navigation?.crossHostPolicy)},timing:{navigationDelayMs:Wt(e.timing?.navigationDelayMs,0,3e3),actionTimeoutMs:Wt(e.timing?.actionTimeoutMs,Hs,12e4),domSettleDebounceMs:Wt(e.timing?.domSettleDebounceMs,8,500),domSettleMaxWaitMs:Wt(e.timing?.domSettleMaxWaitMs,80,5e3),domSettleRetries:Wt(e.timing?.domSettleRetries,0,6),sparseTreeRetryDelayMs:Wt(e.timing?.sparseTreeRetryDelayMs,20,1e3),sparseTreeRetryMaxAttempts:Wt(e.timing?.sparseTreeRetryMaxAttempts,0,4)},transport:{activation:Kf(e.transport?.activation),idleCloseMs:Xf(e.transport?.idleCloseMs)},stability:{maxPersistBytes:Ri(e.stability?.maxPersistBytes,Tt.localPersistBytes),maxSnapshotBytes:Ri(e.stability?.maxSnapshotBytes,Tt.snapshotBytes)},task:{singleActiveScope:lk(e.task?.singleActiveScope),tabScope:uk(e.task?.tabScope),resume:{mode:$f(e.task?.resume?.mode),ttlMs:Yl(e.task?.resume?.ttlMs)},followup:{mode:dk(e.task?.followup?.mode),ttlMs:Vf(e.task?.followup?.ttlMs),minLexicalOverlap:Gf(e.task?.followup?.minLexicalOverlap)},observerInput:Wf(e.task?.observerInput),autoResumePolicy:qf(e.task?.autoResumePolicy)},chat:{inRun:fk(e.chat?.inRun),resumeFollowup:{mode:mk(e.chat?.resumeFollowup?.mode),maxTurns:pk(e.chat?.resumeFollowup?.maxTurns)}},external:{intentSelection:hk(e.external?.intentSelection),requireUserConfirm:gk(e.external?.requireUserConfirm),adversarialGate:bk(e.external?.adversarialGate)},taskContext:{...e.taskContext},features:{rover_v2_kernel_runtime:kk(e.features?.rover_v2_kernel_runtime)}},l.sessionId=C.sessionId,l.runtimeId=it,_n=Fl(e.siteId,l.sessionId),cr=_n!==wi(e.siteId)?wi(e.siteId):null,Tf(e.siteId,_n),l.executionMode=l.executionMode||"controller",l.timeline=Mo(l.timeline),l.uiMessages=Co(l.uiMessages),l.activeTask=Wr(l.activeTask,Rn("boot")),Yd(l.activeTask?.status)&&(l.pendingRun=void 0,l.workerState=void 0,kn=!1,En=!1,Ia(),ds(e.siteId),ck(e.siteId)),l.taskEpoch=Math.max(1,Number(l.taskEpoch)||1),bt=l.executionMode,Io&&ik(e.siteId,Io);let I={maxConcurrentWorkers:e.task?.maxConcurrentWorkers??2,maxQueuedTasks:e.task?.maxQueuedTasks??5,maxArchivedTasks:e.task?.maxArchivedTasks??10};if(l.tasks&&Object.keys(l.tasks).length>0)K=ii.fromPersistedState({tasks:l.tasks,activeTaskId:l.activeTaskId,taskOrder:l.taskOrder},I);else{K=ii.fromV1State(l,I);let{tasks:M,activeTaskId:H,taskOrder:N}=K.toPersistedState();l.tasks=M,l.activeTaskId=H,l.taskOrder=N}let R=K.getActiveTask();R&&Mk(R,{replayUi:!1}),Oe();try{sessionStorage.setItem(`rover:tab-alive:${e.siteId}`,"1")}catch{}fo=!1,Ii=!1,Lo=!1,In=0,Xl=null;try{let M=sessionStorage.getItem(`rover:sess:${e.siteId}`);if(M){let{t:H,e:N}=JSON.parse(M);H&&typeof H=="string"&&H.startsWith("rvrsess_")&&Number(N)>Date.now()+2e3&&Jl(H,Number(N))}}catch{}IS(C),Qo(C),ic("boot"),ac("boot"),Pi("boot");let O=!!(cn&&Ko>Date.now()+2e3);if((!pe||O)&&(Ii=!0),_n&&HE(_n,d.length?d:cr?[cr]:void 0),kE(),Oo(!0),kn&&setTimeout(()=>{kn&&!Lo&&(kn=!1,Xo())},nI),Or={boot:Xs,init:lm,update:ru,shutdown:au,open:mo,close:ku,show:um,hide:dm,send:fm,newTask:sc,endTask:yu,getState:gm,requestSigned:pm,attachLaunch:mm,registerPromptContextProvider:hm,registerTool:bm,identify:cm,on:nk},wS(),Ul.length){for(let M of Ul)Ff(M);Ul.length=0}return Or}function lm(e){return Xs(e)}function ru(e){if(!Or||!qe||!C)return;C={...C,...e,deepLink:ua({...C.deepLink,...e.deepLink}),pageConfig:e.pageConfig!==void 0?fr(e.pageConfig):C.pageConfig,domainScopeMode:Ws(e.domainScopeMode??C.domainScopeMode),taskRouting:{...C.taskRouting,...e.taskRouting},navigation:{...C.navigation,...e.navigation,crossHostPolicy:cu(e.navigation?.crossHostPolicy??C.navigation?.crossHostPolicy)},timing:{...C.timing,...e.timing,navigationDelayMs:Wt(e.timing?.navigationDelayMs??C.timing?.navigationDelayMs,0,3e3),actionTimeoutMs:Wt(e.timing?.actionTimeoutMs??C.timing?.actionTimeoutMs,Hs,12e4),domSettleDebounceMs:Wt(e.timing?.domSettleDebounceMs??C.timing?.domSettleDebounceMs,8,500),domSettleMaxWaitMs:Wt(e.timing?.domSettleMaxWaitMs??C.timing?.domSettleMaxWaitMs,80,5e3),domSettleRetries:Wt(e.timing?.domSettleRetries??C.timing?.domSettleRetries,0,6),sparseTreeRetryDelayMs:Wt(e.timing?.sparseTreeRetryDelayMs??C.timing?.sparseTreeRetryDelayMs,20,1e3),sparseTreeRetryMaxAttempts:Wt(e.timing?.sparseTreeRetryMaxAttempts??C.timing?.sparseTreeRetryMaxAttempts,0,4)},transport:{...C.transport,...e.transport,activation:Kf(e.transport?.activation??C.transport?.activation),idleCloseMs:Xf(e.transport?.idleCloseMs??C.transport?.idleCloseMs)},stability:{...C.stability,...e.stability,maxPersistBytes:Ri(e.stability?.maxPersistBytes??C.stability?.maxPersistBytes,Tt.localPersistBytes),maxSnapshotBytes:Ri(e.stability?.maxSnapshotBytes??C.stability?.maxSnapshotBytes,Tt.snapshotBytes)},task:{...C.task,...e.task,singleActiveScope:lk(e.task?.singleActiveScope??C.task?.singleActiveScope),tabScope:uk(e.task?.tabScope??C.task?.tabScope),resume:{mode:$f(e.task?.resume?.mode??C.task?.resume?.mode),ttlMs:Yl(e.task?.resume?.ttlMs??C.task?.resume?.ttlMs)},followup:{mode:dk(e.task?.followup?.mode??C.task?.followup?.mode),ttlMs:Vf(e.task?.followup?.ttlMs??C.task?.followup?.ttlMs),minLexicalOverlap:Gf(e.task?.followup?.minLexicalOverlap??C.task?.followup?.minLexicalOverlap)},observerInput:Wf(e.task?.observerInput??C.task?.observerInput),autoResumePolicy:qf(e.task?.autoResumePolicy??C.task?.autoResumePolicy)},chat:{...C.chat,...e.chat,inRun:fk(e.chat?.inRun??C.chat?.inRun),resumeFollowup:{mode:mk(e.chat?.resumeFollowup?.mode??C.chat?.resumeFollowup?.mode),maxTurns:pk(e.chat?.resumeFollowup?.maxTurns??C.chat?.resumeFollowup?.maxTurns)}},external:{...C.external,...e.external,intentSelection:hk(e.external?.intentSelection??C.external?.intentSelection),requireUserConfirm:gk(e.external?.requireUserConfirm??C.external?.requireUserConfirm),adversarialGate:bk(e.external?.adversarialGate??C.external?.adversarialGate)},taskContext:{...C.taskContext,...e.taskContext},features:{...C.features,...e.features,rover_v2_kernel_runtime:kk(e.features?.rover_v2_kernel_runtime??C.features?.rover_v2_kernel_runtime)},ui:{...C.ui,...e.ui,agent:{...C.ui?.agent,...e.ui?.agent},panel:{...C.ui?.panel,...e.ui?.panel},voice:{...C.ui?.voice,...e.ui?.voice}},tools:{...C.tools,...e.tools,client:e.tools?.client??C.tools?.client,web:{...C.tools?.web,...e.tools?.web}}},Ft=sk(C),Ft&&(C.visitorId=Ft),e.sessionId&&l?(l.sessionId=e.sessionId,_n=Fl(C.siteId,l.sessionId),cr=_n!==wi(C.siteId)?wi(C.siteId):null,Tf(C.siteId,_n),Oe(),tu(C)):(e.sessionScope||e.tabPolicy)&&tu(C),am(C),lu(C),Qo(C);let t=e.apiBase!==void 0||e.publicKey!==void 0||e.authToken!==void 0||e.sessionToken!==void 0||e.siteId!==void 0||e.siteKeyId!==void 0||e.ui?.shortcuts!==void 0||e.ui?.greeting!==void 0;if(at){typeof e.allowActions=="boolean"&&at.setAllowActions(e.allowActions&&bt==="controller");let n=bt==="controller"&&(C?.allowActions??!0),o=bt==="observer"?"observer":"controller";at?.setActionGateContext?.({mode:o,controllerRuntimeId:L?.getCurrentHolderRuntimeId(),activeLogicalTabId:L?.getActiveLogicalTabId(),localLogicalTabId:L?.getLocalLogicalTabId(),reason:Js(o,n)}),(e.allowedDomains||e.domainScopeMode||e.externalNavigationPolicy||e.navigation?.crossHostPolicy)&&at.setNavigationPolicy({allowedDomains:e.allowedDomains,domainScopeMode:Ws(e.domainScopeMode??C.domainScopeMode),externalNavigationPolicy:e.externalNavigationPolicy,crossHostPolicy:e.navigation?.crossHostPolicy})}qe.postMessage({type:"update_config",config:{...e,...Aa(),pageConfig:Gs(C),publicKey:void 0,authToken:qn(C),sessionToken:cn,sessionId:l?.sessionId,activeRunId:l?.pendingRun?.id,sessionEpoch:pe?.getEpoch?.()??lr,sessionSeq:pe?.getLastSeq?.()??0}}),ou(C),t?ny(C):Ks(),e.visitor&&cm(e.visitor),typeof e.openOnInit=="boolean"&&(e.openOnInit||jf(l)?mo():ku()),ic("update"),ac("update"),Pi("update"),Oo()}function au(){Ia(),jn(),xi(),im(!0),va(!0),Qf(),It?.markDirty(),It?.syncNow({push:!0,pull:!1}),It?.stop(),It=null,pe?.stop(),pe=null,cn=void 0,Ko=0,lr=1,Hr(void 0),zs="",L?.stop(),L=null,K?.shutdown(),K=null,qe?.terminate(),qe=null,Q?.destroy(),Q=null,at=null,C=null,fo=!1,Lo=!1,In=0,gt&&(clearTimeout(gt),gt=null),Mr&&(clearTimeout(Mr),Mr=null),Pl=!1,bn.clear(),Go.clear(),Eo.clear(),$o.clear(),Bs(),mi(),ka="",Ns="",Es="",JE(),fi="",Is="",nu(),Os="",di="",ya=null,js.clear(),vf=!1,Vo=!1,Re="",it="",Ft=void 0,Io=void 0,Fr=!1,wa=!1,rc(),No=null,gf="",_i=!1,Ol=!1,pi=!1,Fn=[],Yb=0,pf=0,hf=0,Kl=0,As=!1,dr&&(clearTimeout(dr),dr=null),Cf="",ui="",bt="controller",_o=!0,Ur=null,ur=null,Xl=null,Ss=0;try{let e=window.rtrvrAIClearObserverPause;typeof e=="function"&&e()}catch{}Or=null;for(let e of Br)try{e.target.removeEventListener(e.event,e.handler,e.options)}catch{}if(Br.length=0,hi){try{History.prototype.pushState=hi}catch{}hi=null}if(gi){try{History.prototype.replaceState=gi}catch{}gi=null}bf=!1,kf=!1,yf=!1}function mo(){Fr=!0,rc(),Q?.show(),Q?.open(),l&&(l.uiHidden=!1,l.uiOpen=!0,Oe())}function ku(){Q?.close(),Ia(),l&&(l.uiOpen=!1,Oe())}function um(){Q?.show(),l&&(l.uiHidden=!1,Oe())}function dm(){Q?.hide(),Ia(),l&&(l.uiHidden=!0,l.uiOpen=!1,Oe())}function fm(e){e?.trim()&&Ro(e)}async function mm(e){return C?(await Qo(C),pe?.attachLaunch({requestId:e.requestId,attachToken:e.attachToken})||null):null}async function pm(e,t={}){if(!C)throw new Error("Rover is not booted.");await Qo(C),await pe?.ensureSession(!1);let n=pe?.getSessionToken()||cn||qn(C);if(!n)throw new Error("Rover signed request is unavailable without an active Rover session.");let o=new Headers(t.headers||void 0);return o.has("Authorization")||o.set("Authorization",`Bearer ${n}`),l?.sessionId&&!o.has("X-Rover-Session-Id")&&o.set("X-Rover-Session-Id",l.sessionId),C.siteId&&!o.has("X-Rover-Site-Id")&&o.set("X-Rover-Site-Id",C.siteId),typeof window<"u"&&!o.has("X-Rover-Host")&&o.set("X-Rover-Host",window.location.hostname),fetch(e,{...t,headers:o})}function hm(e){return typeof e!="function"?()=>{}:(js.add(e),()=>{js.delete(e)})}function sc(e){if(!l)return;let t=e?.reason||"manual_new_task",n=e?.clearUi!==!1;if(Ta=void 0,Yo=void 0,Ei=0,l.pendingRun&&($r(l.pendingRun.id),qe?.postMessage({type:"cancel_run",runId:l.pendingRun.id}),zr(l.pendingRun.id,t,{attemptImmediately:!0}),pe?.controlRun({action:"cancel",runId:l.pendingRun.id,reason:t}),L?.releaseWorkflowLock(l.pendingRun.id)),Et&&(clearTimeout(Et),Et=null),Q?.setRunning(!1),Q?.setQuestionPrompt(void 0),Lo=!1,In=0,nc(),K){let a=K.createTask(t);K.switchActiveTask(a.taskId),K.dispatch(a.taskId,{type:"START",reason:t})}let o=Vr({type:"new_task",reason:t,at:Date.now()},{syncShared:!1,persist:!1});if(!o)return;let r=Math.max(1,Number(l.taskEpoch)||1);n&&(l.uiMessages=[],l.timeline=[],l.uiStatus=void 0,l.transientStatus=void 0,em()),L?.startNewTask({taskId:o.taskId,startedAt:o.startedAt,boundaryReason:t,status:"running",lastUserAt:void 0,lastAssistantAt:void 0}),to({forceReset:!0,persist:!1}),L?.setActiveRun(void 0),L?.setWorkerContext(void 0),Nk([]),Nt(void 0),Oe(),qe?.postMessage({type:"start_new_task",taskId:o.taskId,...Aa()}),pe?.controlRun({action:"new_task",reason:t}),Ve("task_started",{taskId:o.taskId,reason:t,taskEpoch:r})}function yu(e){if(!l)return;let t=e?.reason||"manual_end_task";if(Ta=void 0,Yo=void 0,Ei=0,Lo=!1,In=0,En=!1,nc(),K){let r=K.getActiveTask();r&&K.dispatch(r.taskId,{type:"CANCEL",reason:t})}let n=l.pendingRun?.id,o=Vr({type:"terminal",terminal:"ended",reason:t,at:Date.now()},{syncShared:!1,persist:!1,rotateBoundary:!1});o&&(n&&($r(n),qe?.postMessage({type:"cancel_run",runId:n}),zr(n,t,{attemptImmediately:!0}),pe?.controlRun({action:"cancel",runId:n,reason:t}),L?.releaseWorkflowLock(n)),Lt(void 0),Re=Do(),l.workerState=void 0,l.taskTabScope=void 0,to({forceReset:!0,persist:!1}),uo(),Et&&(clearTimeout(Et),Et=null),Q?.setRunning(!1),Q?.setQuestionPrompt(void 0),jn(),Nt(void 0),pe?.controlRun({action:"end_task",runId:n,reason:t}),L?.endTask(t),L?.setActiveRun(void 0),L?.setWorkerContext(void 0),Oe(),dt({kind:"info",title:"Task ended",detail:"Start a new task when you are ready.",status:"info"}),Ve("task_ended",{taskId:o.taskId,reason:t,endedAt:o.endedAt}))}function gm(){let e=qI(qn()),t=l?rm(l):null;return t&&e&&(t.currentAgentAttribution=e),{mode:bt,runtimeId:it,runtimeState:t,sharedState:L?.getState()||null,pendingTaskSuggestion:Ur,currentAgentAttribution:e}}function bm(e,t){let n=RI(e);if(!Or||!at||!qe){Ul.push({def:n,handler:t});return}Ff({def:n,handler:t})}function ES(e){if(!e)return;let t=String(e);if(t==="init")return"init";if(t==="boot")return"boot";if(t==="update")return"update";if(t==="shutdown")return"shutdown";if(t==="open")return"open";if(t==="close")return"close";if(t==="show")return"show";if(t==="hide")return"hide";if(t==="send")return"send";if(t==="newTask")return"newTask";if(t==="endTask")return"endTask";if(t==="attachLaunch")return"attachLaunch";if(t==="getState")return"getState";if(t==="requestSigned")return"requestSigned";if(t==="registerPromptContextProvider")return"registerPromptContextProvider";if(t==="registerTool")return"registerTool";if(t==="on")return"on"}var SS={sanitizeWorkerState:Vt,cloneRuntimeStateForCheckpoint:rm,getPersistGovernorConfig:()=>({minPersistIntervalMs:Mf,maxCoalesceDelayMs:Ck}),getTelemetryFastLaneEvents:()=>Array.from(Qb.values()),normalizePromptContextEntry:Zb,buildPublicRunStartedPayload:ek,buildPublicRunLifecyclePayload:tk};function oy(){let e=window,t=e.rover,n=((o,...r)=>{let a=ES(o),i=a?n[a]:void 0;if(typeof i=="function")return i(...r)});if(n.boot=Xs,n.init=lm,n.update=ru,n.shutdown=au,n.open=mo,n.close=ku,n.show=um,n.hide=dm,n.send=fm,n.attachLaunch=mm,n.newTask=sc,n.endTask=yu,n.getState=gm,n.requestSigned=pm,n.registerPromptContextProvider=hm,n.registerTool=bm,n.on=nk,e.rover=n,typeof t=="function"&&Array.isArray(t.q))for(let o of t.q){let[r,...a]=Array.isArray(o)?o:Array.from(o);typeof r=="string"&&n(r,...a)}if(!Or){let o=typeof globalThis.__ROVER_SCRIPT_EL__<"u"?globalThis.__ROVER_SCRIPT_EL__:null;if(o){let r=Hd(o);r&&Xs(r)}}}oy();return qy(RS);})();