shiplightai 0.1.7 → 0.1.9

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.
@@ -0,0 +1,183 @@
1
+ import { createRequire as __createRequire } from "module";
2
+ const require = __createRequire(import.meta.url);
3
+ import{a as Oe,c as Zu,d as Lr,e as zt,f as Me,g as Ue,h as He}from"./chunk-RZSEU5IV.js";import{A as Er,B as Ar,a as Qu,b as er,c as tr,d as ur,e as rr,f as ir,g as ar,h as nr,i as sr,j as or,k as cr,l as lr,m as dr,n as fr,o as hr,p as pr,q as mr,r as gr,s as br,t as xr,u as wr,v as yr,w as vr,x as kr,y as Sr,z as Tr}from"./chunk-7IODNB46.js";import{a as Pe,b as O,c as Ft,d as jt,f as Xu,n as Re}from"./chunk-WMT4NNJ7.js";import{a as o}from"./chunk-2N37B5MX.js";import{a as Kt,b as Ir,c as pe,d as Nr,e as Dr,f as Cr,g as $r,h as Br,i as Or,l as Pr,o as Jt,r as Rr}from"./chunk-OPPQ2WGO.js";import{a as Vt,b as _r,d as Wt,g as Gt,h as qe}from"./chunk-FL4TL6US.js";import{a as k}from"./chunk-BVOD5VWH.js";import{c as Ht}from"./chunk-FBJSHHRD.js";import{a as un,c as Z,d as Yu}from"./chunk-CSINHOOD.js";var Gi=Z((gl,Wi)=>{"use strict";var Fs=function(t){return js(t)&&!Vs(t)};function js(e){return!!e&&typeof e=="object"}function Vs(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||zs(e)}var Ws=typeof Symbol=="function"&&Symbol.for,Gs=Ws?Symbol.for("react.element"):60103;function zs(e){return e.$$typeof===Gs}function Ks(e){return Array.isArray(e)?[]:{}}function De(e,t){return t.clone!==!1&&t.isMergeableObject(e)?fe(Ks(e),e,t):e}function Js(e,t,u){return e.concat(t).map(function(r){return De(r,u)})}function Ys(e,t){if(!t.customMerge)return fe;var u=t.customMerge(e);return typeof u=="function"?u:fe}function Zs(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return Object.propertyIsEnumerable.call(e,t)}):[]}function ji(e){return Object.keys(e).concat(Zs(e))}function Vi(e,t){try{return t in e}catch{return!1}}function Xs(e,t){return Vi(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}function Qs(e,t,u){var r={};return u.isMergeableObject(e)&&ji(e).forEach(function(i){r[i]=De(e[i],u)}),ji(t).forEach(function(i){Xs(e,i)||(Vi(e,i)&&u.isMergeableObject(t[i])?r[i]=Ys(i,u)(e[i],t[i],u):r[i]=De(t[i],u))}),r}function fe(e,t,u){u=u||{},u.arrayMerge=u.arrayMerge||Js,u.isMergeableObject=u.isMergeableObject||Fs,u.cloneUnlessOtherwiseSpecified=De;var r=Array.isArray(t),i=Array.isArray(e),a=r===i;return a?r?u.arrayMerge(e,t,u):Qs(e,t,u):De(t,u)}fe.all=function(t,u){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(r,i){return fe(r,i,u)},{})};var eo=fe;Wi.exports=eo});var xa=Z(St=>{"use strict";Object.defineProperty(St,"__esModule",{value:!0});function h0(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var ba=h0(un("crypto")),p0=(e,t,u)=>ba.createHmac(e,Buffer.from(t,"hex")).update(Buffer.from(u,"hex")).digest().toString("hex"),m0=(e,t)=>ba.randomBytes(e).toString(t);St.createDigest=p0;St.createRandomBytes=m0});var ya=Z(Du=>{"use strict";var g0="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",wa=[255,255,26,27,28,29,30,31,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255];function b0(e){var t=Math.floor(e.length/5);return e.length%5===0?t:t+1}Du.encode=function(e){Buffer.isBuffer(e)||(e=new Buffer(e));for(var t=0,u=0,r=0,i=0,a=new Buffer(b0(e)*8);t<e.length;){var n=e[t];r>3?(i=n&255>>r,r=(r+5)%8,i=i<<r|(t+1<e.length?e[t+1]:0)>>8-r,t++):(i=n>>8-(r+5)&31,r=(r+5)%8,r===0&&t++),a[u]=g0.charCodeAt(i),u++}for(t=u;t<a.length;t++)a[t]=61;return a};Du.decode=function(e){var t=0,u=0,r,i=0;Buffer.isBuffer(e)||(e=new Buffer(e));for(var a=new Buffer(Math.ceil(e.length*5/8)),n=0;n<e.length&&e[n]!==61;n++){var s=e[n]-48;if(s<wa.length)u=wa[s],t<=3?(t=(t+5)%8,t===0?(r|=u,a[i]=r,i++,r=0):r|=255&u<<8-t):(t=(t+5)%8,r|=255&u>>>t,a[i]=r,i++,r=255&u<<8-t);else throw new Error("Invalid input - it is not base32 encoded string")}return a.slice(0,i)}});var ka=Z(Cu=>{"use strict";var va=ya();Cu.encode=va.encode;Cu.decode=va.decode});var Ta=Z(Tt=>{"use strict";Object.defineProperty(Tt,"__esModule",{value:!0});function x0(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var Sa=x0(ka()),w0=(e,t)=>Sa.decode(e).toString(t),y0=(e,t)=>Sa.encode(Buffer.from(e,t).toString("ascii")).toString().replace(/=/g,"");Tt.keyDecoder=w0;Tt.keyEncoder=y0});var Ga=Z(p=>{"use strict";Object.defineProperty(p,"__esModule",{value:!0});function Nt(e){return Object.keys(e).map(t=>e[t])}(function(e){e.SHA1="sha1",e.SHA256="sha256",e.SHA512="sha512"})(p.HashAlgorithms||(p.HashAlgorithms={}));var At=Nt(p.HashAlgorithms);(function(e){e.ASCII="ascii",e.BASE64="base64",e.HEX="hex",e.LATIN1="latin1",e.UTF8="utf8"})(p.KeyEncodings||(p.KeyEncodings={}));var $u=Nt(p.KeyEncodings);(function(e){e.HOTP="hotp",e.TOTP="totp"})(p.Strategy||(p.Strategy={}));var Bu=Nt(p.Strategy),Dt=()=>{throw new Error("Please provide an options.createDigest implementation.")};function Ru(e){return/^(\d+)$/.test(e)}function qu(e,t,u){return e.length>=t?e:`${Array(t+1).join(u)}${e}`.slice(-1*t)}function Mu(e){let t=`otpauth://${e.type}/{labelPrefix}:{accountName}?secret={secret}{query}`,u=[];if(Bu.indexOf(e.type)<0)throw new Error(`Expecting options.type to be one of ${Bu.join(", ")}. Received ${e.type}.`);if(e.type==="hotp"){if(e.counter==null||typeof e.counter!="number")throw new Error('Expecting options.counter to be a number when options.type is "hotp".');u.push(`&counter=${e.counter}`)}return e.type==="totp"&&e.step&&u.push(`&period=${e.step}`),e.digits&&u.push(`&digits=${e.digits}`),e.algorithm&&u.push(`&algorithm=${e.algorithm.toUpperCase()}`),e.issuer&&u.push(`&issuer=${encodeURIComponent(e.issuer)}`),t.replace("{labelPrefix}",encodeURIComponent(e.issuer||e.accountName)).replace("{accountName}",encodeURIComponent(e.accountName)).replace("{secret}",e.secret).replace("{query}",u.join(""))}var _t=class e{constructor(t={}){this._defaultOptions=Object.freeze({...t}),this._options=Object.freeze({})}create(t={}){return new e(t)}clone(t={}){let u=this.create({...this._defaultOptions,...t});return u.options=this._options,u}get options(){return Object.freeze({...this._defaultOptions,...this._options})}set options(t){this._options=Object.freeze({...this._options,...t})}allOptions(){return this.options}resetOptions(){this._options=Object.freeze({})}};function Uu(e){if(typeof e.createDigest!="function")throw new Error("Expecting options.createDigest to be a function.");if(typeof e.createHmacKey!="function")throw new Error("Expecting options.createHmacKey to be a function.");if(typeof e.digits!="number")throw new Error("Expecting options.digits to be a number.");if(!e.algorithm||At.indexOf(e.algorithm)<0)throw new Error(`Expecting options.algorithm to be one of ${At.join(", ")}. Received ${e.algorithm}.`);if(!e.encoding||$u.indexOf(e.encoding)<0)throw new Error(`Expecting options.encoding to be one of ${$u.join(", ")}. Received ${e.encoding}.`)}var Aa=(e,t,u)=>Buffer.from(t,u).toString("hex");function _a(){return{algorithm:p.HashAlgorithms.SHA1,createHmacKey:Aa,createDigest:Dt,digits:6,encoding:p.KeyEncodings.ASCII}}function La(e){let t={..._a(),...e};return Uu(t),Object.freeze(t)}function Ia(e){let t=e.toString(16);return qu(t,16,"0")}function Na(e,t){let u=Buffer.from(e,"hex"),r=u[u.length-1]&15,a=((u[r]&127)<<24|(u[r+1]&255)<<16|(u[r+2]&255)<<8|u[r+3]&255)%Math.pow(10,t);return qu(String(a),t,"0")}function v0(e,t,u){let r=Ia(t),i=u.createHmacKey(u.algorithm,e,u.encoding);return u.createDigest(u.algorithm,i,r)}function Ct(e,t,u){let r=u.digest||v0(e,t,u);return Na(r,u.digits)}function Da(e,t,u,r){if(!Ru(e))return!1;let i=Ct(t,u,r);return e===i}function Ca(e,t,u,r,i){return Mu({algorithm:i.algorithm,digits:i.digits,type:p.Strategy.HOTP,accountName:e,counter:r,issuer:t,secret:u})}var Lt=class e extends _t{create(t={}){return new e(t)}allOptions(){return La(this.options)}generate(t,u){return Ct(t,u,this.allOptions())}check(t,u,r){return Da(t,u,r,this.allOptions())}verify(t){if(typeof t!="object")throw new Error("Expecting argument 0 of verify to be an object");return this.check(t.token,t.secret,t.counter)}keyuri(t,u,r,i){return Ca(t,u,r,i,this.allOptions())}};function $a(e){if(typeof e=="number")return[Math.abs(e),Math.abs(e)];if(Array.isArray(e)){let[t,u]=e;if(typeof t=="number"&&typeof u=="number")return[Math.abs(t),Math.abs(u)]}throw new Error("Expecting options.window to be an number or [number, number].")}function Hu(e){if(Uu(e),$a(e.window),typeof e.epoch!="number")throw new Error("Expecting options.epoch to be a number.");if(typeof e.step!="number")throw new Error("Expecting options.step to be a number.")}var Et=(e,t,u)=>{let r=e.length,i=Buffer.from(e,t).toString("hex");if(r<u){let a=new Array(u-r+1).join(i);return Buffer.from(a,"hex").slice(0,u).toString("hex")}return i},Fu=(e,t,u)=>{switch(e){case p.HashAlgorithms.SHA1:return Et(t,u,20);case p.HashAlgorithms.SHA256:return Et(t,u,32);case p.HashAlgorithms.SHA512:return Et(t,u,64);default:throw new Error(`Expecting algorithm to be one of ${At.join(", ")}. Received ${e}.`)}};function Ba(){return{algorithm:p.HashAlgorithms.SHA1,createDigest:Dt,createHmacKey:Fu,digits:6,encoding:p.KeyEncodings.ASCII,epoch:Date.now(),step:30,window:0}}function Oa(e){let t={...Ba(),...e};return Hu(t),Object.freeze(t)}function Pa(e,t){return Math.floor(e/t/1e3)}function $t(e,t){let u=Pa(t.epoch,t.step);return Ct(e,u,t)}function Ea(e,t,u,r){let i=[];if(r===0)return i;for(let a=1;a<=r;a++){let n=t*a*u;i.push(e+n)}return i}function Ra(e,t,u){let r=$a(u),i=t*1e3;return{current:e,past:Ea(e,-1,i,r[0]),future:Ea(e,1,i,r[1])}}function ju(e,t,u){if(!Ru(e))return!1;let r=$t(t,u);return e===r}function Ou(e,t,u,r){let i=null;return e.some((a,n)=>ju(t,u,{...r,epoch:a})?(i=n+1,!0):!1),i}function Vu(e,t,u){if(ju(e,t,u))return 0;let r=Ra(u.epoch,u.step,u.window),i=Ou(r.past,e,t,u);return i!==null?i*-1:Ou(r.future,e,t,u)}function Wu(e,t){return Math.floor(e/1e3)%t}function qa(e,t){return t-Wu(e,t)}function Ma(e,t,u,r){return Mu({algorithm:r.algorithm,digits:r.digits,step:r.step,type:p.Strategy.TOTP,accountName:e,issuer:t,secret:u})}var It=class e extends Lt{create(t={}){return new e(t)}allOptions(){return Oa(this.options)}generate(t){return $t(t,this.allOptions())}checkDelta(t,u){return Vu(t,u,this.allOptions())}check(t,u){return typeof this.checkDelta(t,u)=="number"}verify(t){if(typeof t!="object")throw new Error("Expecting argument 0 of verify to be an object");return this.check(t.token,t.secret)}timeRemaining(){let t=this.allOptions();return qa(t.epoch,t.step)}timeUsed(){let t=this.allOptions();return Wu(t.epoch,t.step)}keyuri(t,u,r){return Ma(t,u,r,this.allOptions())}};function Ua(e){if(Hu(e),typeof e.keyDecoder!="function")throw new Error("Expecting options.keyDecoder to be a function.");if(e.keyEncoder&&typeof e.keyEncoder!="function")throw new Error("Expecting options.keyEncoder to be a function.")}function Ha(){return{algorithm:p.HashAlgorithms.SHA1,createDigest:Dt,createHmacKey:Fu,digits:6,encoding:p.KeyEncodings.HEX,epoch:Date.now(),step:30,window:0}}function Fa(e){let t={...Ha(),...e};return Ua(t),Object.freeze(t)}function Gu(e,t){return t.keyEncoder(e,t.encoding)}function Bt(e,t){return t.keyDecoder(e,t.encoding)}function ja(e,t){let u=t.createRandomBytes(e,t.encoding);return Gu(u,t)}function Va(e,t){return $t(Bt(e,t),t)}function Wa(e,t,u){return Vu(e,Bt(t,u),u)}var Pu=class e extends It{create(t={}){return new e(t)}allOptions(){return Fa(this.options)}generate(t){return Va(t,this.allOptions())}checkDelta(t,u){return Wa(t,u,this.allOptions())}encode(t){return Gu(t,this.allOptions())}decode(t){return Bt(t,this.allOptions())}generateSecret(t=10){return ja(t,this.allOptions())}};p.Authenticator=Pu;p.HASH_ALGORITHMS=At;p.HOTP=Lt;p.KEY_ENCODINGS=$u;p.OTP=_t;p.STRATEGY=Bu;p.TOTP=It;p.authenticatorCheckWithWindow=Wa;p.authenticatorDecoder=Bt;p.authenticatorDefaultOptions=Ha;p.authenticatorEncoder=Gu;p.authenticatorGenerateSecret=ja;p.authenticatorOptionValidator=Ua;p.authenticatorOptions=Fa;p.authenticatorToken=Va;p.createDigestPlaceholder=Dt;p.hotpCheck=Da;p.hotpCounter=Ia;p.hotpCreateHmacKey=Aa;p.hotpDefaultOptions=_a;p.hotpDigestToToken=Na;p.hotpKeyuri=Ca;p.hotpOptions=La;p.hotpOptionsValidator=Uu;p.hotpToken=Ct;p.isTokenValid=Ru;p.keyuri=Mu;p.objectValues=Nt;p.padStart=qu;p.totpCheck=ju;p.totpCheckByEpoch=Ou;p.totpCheckWithWindow=Vu;p.totpCounter=Pa;p.totpCreateHmacKey=Fu;p.totpDefaultOptions=Ba;p.totpEpochAvailable=Ra;p.totpKeyuri=Ma;p.totpOptions=Oa;p.totpOptionsValidator=Hu;p.totpPadSecret=Et;p.totpTimeRemaining=qa;p.totpTimeUsed=Wu;p.totpToken=$t});var Ka=Z(Ce=>{"use strict";Object.defineProperty(Ce,"__esModule",{value:!0});var Ot=xa(),za=Ta(),zu=Ga(),k0=new zu.HOTP({createDigest:Ot.createDigest}),S0=new zu.TOTP({createDigest:Ot.createDigest}),T0=new zu.Authenticator({createDigest:Ot.createDigest,createRandomBytes:Ot.createRandomBytes,keyDecoder:za.keyDecoder,keyEncoder:za.keyEncoder});Ce.authenticator=T0;Ce.hotp=k0;Ce.totp=S0});var Ya=Z(Ku=>{"use strict";Object.defineProperty(Ku,"__esModule",{value:!0});var Ja=Ka();Object.keys(Ja).forEach(function(e){e!=="default"&&Object.defineProperty(Ku,e,{enumerable:!0,get:function(){return Ja[e]}})})});import*as qr from"fs/promises";import*as Fe from"vm";function Mr(e,t,u,r=!1){if(e[t])if(r)o.info(`Overriding existing function: ${t}`),delete e[t];else{o.error(`The name ${t} is already defined in the global scope`);return}try{let i;if(Fe.isContext(e)?i=new Fe.Script(u).runInContext(e):i=(0,eval)(u),typeof i!="function")throw new Error("The injected code must be a function");e[t]=i}catch(i){o.error(`Error injecting user function ${t}: ${i.message}`)}}async function rn(e,t,u=!1){try{let r=await qr.readFile(t,"utf8"),i=JSON.parse(r);o.info(`Loading ${Object.keys(i).length} user functions...`);for(let[a,n]of Object.entries(i))Mr(e,a,n,u)}catch(r){throw o.error("Failed to load user functions:",r),r}}import*as Yt from"fs/promises";async function an(e){try{let t=await Yt.readFile(e,"utf8"),u=JSON.parse(t);return o.info(`Loaded ${u.length} knowledges from file`),u}catch(t){if(t.code==="ENOENT")return o.debug("No knowledges file found"),[];throw o.error("Failed to load knowledges:",t),t}}async function nn(e){try{let t=await Yt.readFile(e,"utf8"),u=JSON.parse(t);return o.info(`Loaded ${u.length} knowledge mappings from file`),u}catch(t){if(t.code==="ENOENT")return o.debug("No knowledge mappings file found"),[];throw o.error("Failed to load knowledge mappings:",t),t}}async function sn(e,t){if(!e.body)throw new Error("Response body is null");let u=e.body.getReader(),r=new TextDecoder,i="";try{for(;;){let{done:a,value:n}=await u.read();if(a)break;i+=r.decode(n,{stream:!0});let s=i.split(`
4
+ `);i=s.pop()||"";for(let c of s){let l=null;if(c.startsWith("data: "))try{let f=c.slice(6);f.trim()&&(l=JSON.parse(f))}catch(f){console.error(`Failed to parse SSE event: ${c}`,f);continue}l&&t(l)}}}finally{u.releaseLock()}}import{z as Ur}from"zod";var on=Ur.object({instruction:Ur.string().describe('The instruction of the operation to perform. Can only include one operation. Do not inlcude element indexes just describe the element, e.g. "select the text "Hello, world!" in "Hello, world!""')});function Hr(e){e.register({name:"perform_accurate_operation",description:"Perform an operation that requires accurate interaction like dragging or interacting with a specific area of an element. Only use this action when neccecary.",schema:on,usesElementIndex:!1,async execute(t,u){let{instruction:r}=t,i={page:u.page,agentServices:u.agentServices,domService:u.domService},a=await Zu(r,i,{});if(a.status==="error"||!a.actionEntity)return{success:!1,actionEntity:{action_description:r,action_data:{action_name:"perform_accurate_operation",kwargs:{instruction:r}}},error:a.error||"Failed to generate action"};let{actionEntity:n}=a,s=await Lr(n,i);return{success:s.success,actionEntity:n,message:s.success?`Successfully executed action: ${n.action_data?.action_name}`:void 0,error:s.error}}})}var S;(function(e){e.Root="root",e.Text="text",e.Directive="directive",e.Comment="comment",e.Script="script",e.Style="style",e.Tag="tag",e.CDATA="cdata",e.Doctype="doctype"})(S||(S={}));function Fr(e){return e.type===S.Tag||e.type===S.Script||e.type===S.Style}var jr=S.Root,Vr=S.Text,Wr=S.Directive,Gr=S.Comment,zr=S.Script,Kr=S.Style,Jr=S.Tag,Yr=S.CDATA,Zr=S.Doctype;var je=class{constructor(){this.parent=null,this.prev=null,this.next=null,this.startIndex=null,this.endIndex=null}get parentNode(){return this.parent}set parentNode(t){this.parent=t}get previousSibling(){return this.prev}set previousSibling(t){this.prev=t}get nextSibling(){return this.next}set nextSibling(t){this.next=t}cloneNode(t=!1){return ei(this,t)}},me=class extends je{constructor(t){super(),this.data=t}get nodeValue(){return this.data}set nodeValue(t){this.data=t}},te=class extends me{constructor(){super(...arguments),this.type=S.Text}get nodeType(){return 3}},ge=class extends me{constructor(){super(...arguments),this.type=S.Comment}get nodeType(){return 8}},be=class extends me{constructor(t,u){super(u),this.name=t,this.type=S.Directive}get nodeType(){return 1}},xe=class extends je{constructor(t){super(),this.children=t}get firstChild(){var t;return(t=this.children[0])!==null&&t!==void 0?t:null}get lastChild(){return this.children.length>0?this.children[this.children.length-1]:null}get childNodes(){return this.children}set childNodes(t){this.children=t}},we=class extends xe{constructor(){super(...arguments),this.type=S.CDATA}get nodeType(){return 4}},ue=class extends xe{constructor(){super(...arguments),this.type=S.Root}get nodeType(){return 9}},ye=class extends xe{constructor(t,u,r=[],i=t==="script"?S.Script:t==="style"?S.Style:S.Tag){super(r),this.name=t,this.attribs=u,this.type=i}get nodeType(){return 1}get tagName(){return this.name}set tagName(t){this.name=t}get attributes(){return Object.keys(this.attribs).map(t=>{var u,r;return{name:t,value:this.attribs[t],namespace:(u=this["x-attribsNamespace"])===null||u===void 0?void 0:u[t],prefix:(r=this["x-attribsPrefix"])===null||r===void 0?void 0:r[t]}})}};function W(e){return Fr(e)}function Xt(e){return e.type===S.CDATA}function Ve(e){return e.type===S.Text}function Qt(e){return e.type===S.Comment}function cn(e){return e.type===S.Directive}function Qr(e){return e.type===S.Root}function ei(e,t=!1){let u;if(Ve(e))u=new te(e.data);else if(Qt(e))u=new ge(e.data);else if(W(e)){let r=t?Zt(e.children):[],i=new ye(e.name,{...e.attribs},r);r.forEach(a=>a.parent=i),e.namespace!=null&&(i.namespace=e.namespace),e["x-attribsNamespace"]&&(i["x-attribsNamespace"]={...e["x-attribsNamespace"]}),e["x-attribsPrefix"]&&(i["x-attribsPrefix"]={...e["x-attribsPrefix"]}),u=i}else if(Xt(e)){let r=t?Zt(e.children):[],i=new we(r);r.forEach(a=>a.parent=i),u=i}else if(Qr(e)){let r=t?Zt(e.children):[],i=new ue(r);r.forEach(a=>a.parent=i),e["x-mode"]&&(i["x-mode"]=e["x-mode"]),u=i}else if(cn(e)){let r=new be(e.name,e.data);e["x-name"]!=null&&(r["x-name"]=e["x-name"],r["x-publicId"]=e["x-publicId"],r["x-systemId"]=e["x-systemId"]),u=r}else throw new Error(`Not implemented yet: ${e.type}`);return u.startIndex=e.startIndex,u.endIndex=e.endIndex,e.sourceCodeLocation!=null&&(u.sourceCodeLocation=e.sourceCodeLocation),u}function Zt(e){let t=e.map(u=>ei(u,!0));for(let u=1;u<t.length;u++)t[u].prev=t[u-1],t[u-1].next=t[u];return t}var ti={withStartIndices:!1,withEndIndices:!1,xmlMode:!1},re=class{constructor(t,u,r){this.dom=[],this.root=new ue(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null,typeof u=="function"&&(r=u,u=ti),typeof t=="object"&&(u=t,t=void 0),this.callback=t??null,this.options=u??ti,this.elementCB=r??null}onparserinit(t){this.parser=t}onreset(){this.dom=[],this.root=new ue(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null}onend(){this.done||(this.done=!0,this.parser=null,this.handleCallback(null))}onerror(t){this.handleCallback(t)}onclosetag(){this.lastNode=null;let t=this.tagStack.pop();this.options.withEndIndices&&(t.endIndex=this.parser.endIndex),this.elementCB&&this.elementCB(t)}onopentag(t,u){let r=this.options.xmlMode?S.Tag:void 0,i=new ye(t,u,void 0,r);this.addNode(i),this.tagStack.push(i)}ontext(t){let{lastNode:u}=this;if(u&&u.type===S.Text)u.data+=t,this.options.withEndIndices&&(u.endIndex=this.parser.endIndex);else{let r=new te(t);this.addNode(r),this.lastNode=r}}oncomment(t){if(this.lastNode&&this.lastNode.type===S.Comment){this.lastNode.data+=t;return}let u=new ge(t);this.addNode(u),this.lastNode=u}oncommentend(){this.lastNode=null}oncdatastart(){let t=new te(""),u=new we([t]);this.addNode(u),t.parent=u,this.lastNode=t}oncdataend(){this.lastNode=null}onprocessinginstruction(t,u){let r=new be(t,u);this.addNode(r)}handleCallback(t){if(typeof this.callback=="function")this.callback(t,this.dom);else if(t)throw t}addNode(t){let u=this.tagStack[this.tagStack.length-1],r=u.children[u.children.length-1];this.options.withStartIndices&&(t.startIndex=this.parser.startIndex),this.options.withEndIndices&&(t.endIndex=this.parser.endIndex),u.children.push(t),r&&(t.prev=r,r.next=t),t.parent=u,this.lastNode=null}};var ln=/\n/g;function dn(e){let t=[...e.matchAll(ln)].map(r=>r.index||0);t.unshift(-1);let u=eu(t,0,t.length);return r=>ri(u,r)}function eu(e,t,u){if(u-t==1)return{offset:e[t],index:t+1};let r=Math.ceil((t+u)/2),i=eu(e,t,r),a=eu(e,r,u);return{offset:i.offset,low:i,high:a}}function ri(e,t){return function(u){return Object.prototype.hasOwnProperty.call(u,"index")}(e)?{line:e.index,column:t-e.offset}:ri(e.high.offset<t?e.high:e.low,t)}function tu(e,t="",u={}){let r=typeof t!="string"?t:u,i=typeof t=="string"?t:"",a=e.map(fn),n=!!r.lineNumbers;return function(s,c=0){let l=n?dn(s):()=>({line:0,column:0}),f=c,g=[];e:for(;f<s.length;){let x=!1;for(let b of a){b.regex.lastIndex=f;let m=b.regex.exec(s);if(m&&m[0].length>0){if(!b.discard){let y=l(f),w=typeof b.replace=="string"?m[0].replace(new RegExp(b.regex.source,b.regex.flags),b.replace):m[0];g.push({state:i,name:b.name,text:w,offset:f,len:m[0].length,line:y.line,column:y.column})}if(f=b.regex.lastIndex,x=!0,b.push){let y=b.push(s,f);g.push(...y.tokens),f=y.offset}if(b.pop)break e;break}}if(!x)break}return{tokens:g,offset:f,complete:s.length<=f}}}function fn(e,t){return{...e,regex:hn(e,t)}}function hn(e,t){if(e.name.length===0)throw new Error(`Rule #${t} has empty name, which is not allowed.`);if(function(u){return Object.prototype.hasOwnProperty.call(u,"regex")}(e))return function(u){if(u.global)throw new Error(`Regular expression /${u.source}/${u.flags} contains the global flag, which is not allowed.`);return u.sticky?u:new RegExp(u.source,u.flags+"y")}(e.regex);if(function(u){return Object.prototype.hasOwnProperty.call(u,"str")}(e)){if(e.str.length===0)throw new Error(`Rule #${t} ("${e.name}") has empty "str" property, which is not allowed.`);return new RegExp(ui(e.str),"y")}return new RegExp(ui(e.name),"y")}function ui(e){return e.replace(/[-[\]{}()*+!<=:?./\\^$|#\s,]/g,"\\$&")}function j(e,t){return(u,r)=>{let i=r,a;return r<u.tokens.length?(a=e(u.tokens[r],u,r),a!==void 0&&i++):t?.(u,r),a===void 0?{matched:!1}:{matched:!0,position:i,value:a}}}function uu(e,t){return e.matched?{matched:!0,position:e.position,value:t(e.value,e.position)}:e}function We(e,t){return e.matched?t(e):e}function N(e,t){return(u,r)=>uu(e(u,r),(i,a)=>t(i,u,r,a))}function ve(e,t){return(u,r)=>{let i=e(u,r);return i.matched?i:{matched:!0,position:r,value:t}}}function ie(...e){return(t,u)=>{for(let r of e){let i=r(t,u);if(i.matched)return i}return{matched:!1}}}function X(e,t){return(u,r)=>{let i=e(u,r);return i.matched?i:t(u,r)}}function pn(e,t){return(u,r)=>{let i=[],a=!0;do{let n=e(u,r);n.matched&&t(n.value,i.length+1,u,r,n.position)?(i.push(n.value),r=n.position):a=!1}while(a);return{matched:!0,position:r,value:i}}}function Ge(e){return pn(e,()=>!0)}function ii(e){return D(e,Ge(e),(t,u)=>[t,...u])}function D(e,t,u){return(r,i)=>We(e(r,i),a=>uu(t(r,a.position),(n,s)=>u(a.value,n,r,i,s)))}function ai(e,t){return D(e,t,u=>u)}function ru(e,t){return D(e,t,(u,r)=>r)}function ze(e,t,u,r){return(i,a)=>We(e(i,a),n=>We(t(i,n.position),s=>uu(u(i,s.position),(c,l)=>r(n.value,s.value,c,i,a,l))))}function iu(e,t,u){return ze(e,t,u,(r,i)=>i)}function mn(...e){return(t,u)=>{let r=[],i=u;for(let a of e){let n=a(t,i);if(n.matched)r.push(n.value),i=n.position;else return{matched:!1}}return{matched:!0,position:i,value:r}}}function ni(...e){return gn(mn(...e))}function gn(e){return N(e,t=>t.flatMap(u=>u))}function bn(e,t){return(u,r)=>{let i=!0,a=e,n=r;do{let s=t(a,u,n)(u,n);s.matched?(a=s.value,n=s.position):i=!1}while(i);return{matched:!0,position:n,value:a}}}function xn(e,t,u){return bn(e,r=>N(t,(i,a,n,s)=>u(r,i,a,n,s)))}function au(e,t,u){return wn(e,r=>xn(r,D(t,u,(i,a)=>[i,a]),(i,[a,n])=>a(i,n)))}function wn(e,t){return(u,r)=>We(e(u,r),i=>t(i.value,u,r,i.position)(u,i.position))}var vn="(?:[ \\t\\r\\n\\f]*)",fi="(?:\\n|\\r\\n|\\r|\\f)",Ye="[^\\x00-\\x7F]",Te="(?:\\\\[0-9a-f]{1,6}(?:\\r\\n|[ \\n\\r\\t\\f])?)",Ee="(?:\\\\[^\\n\\r\\f0-9a-f])",kn=`(?:[_a-z]|${Ye}|${Te}|${Ee})`,hi=`(?:[_a-z0-9-]|${Ye}|${Te}|${Ee})`,Sn=`(?:${hi}+)`,Tn=`(?:[-]?${kn}${hi}*)`,En=`'([^\\n\\r\\f\\\\']|\\\\${fi}|${Ye}|${Te}|${Ee})*'`,An=`"([^\\n\\r\\f\\\\"]|\\\\${fi}|${Ye}|${Te}|${Ee})*"`,_n=tu([{name:"ws",regex:new RegExp(vn)},{name:"hash",regex:new RegExp(`#${Sn}`,"i")},{name:"ident",regex:new RegExp(Tn,"i")},{name:"str1",regex:new RegExp(En,"i")},{name:"str2",regex:new RegExp(An,"i")},{name:"*"},{name:"."},{name:","},{name:"["},{name:"]"},{name:"="},{name:">"},{name:"|"},{name:"+"},{name:"~"},{name:"^"},{name:"$"}]),Ln=tu([{name:"unicode",regex:new RegExp(Te,"i")},{name:"escape",regex:new RegExp(Ee,"i")},{name:"any",regex:new RegExp("[\\s\\S]","i")}]);function pi([e,t,u],[r,i,a]){return[e+r,t+i,u+a]}function In(e){return e.reduce(pi,[0,0,0])}var Nn=j(e=>e.name==="unicode"?String.fromCodePoint(parseInt(e.text.slice(1),16)):void 0),Dn=j(e=>e.name==="escape"?e.text.slice(1):void 0),Cn=j(e=>e.name==="any"?e.text:void 0),$n=N(Ge(ie(Nn,Dn,Cn)),e=>e.join(""));function ou(e){let t=Ln(e);return $n({tokens:t.tokens,options:void 0},0).value}function E(e){return j(t=>t.name===e?!0:void 0)}var cu=j(e=>e.name==="ws"?null:void 0),nu=ve(cu,null);function ne(e){return iu(nu,e,nu)}var Se=j(e=>e.name==="ident"?ou(e.text):void 0),Bn=j(e=>e.name==="hash"?ou(e.text.slice(1)):void 0),On=j(e=>e.name.startsWith("str")?ou(e.text.slice(1,-1)):void 0),mi=ai(ve(Se,""),E("|")),lu=X(D(mi,Se,(e,t)=>({name:t,namespace:e})),N(Se,e=>({name:e,namespace:null}))),Pn=X(D(mi,E("*"),e=>({type:"universal",namespace:e,specificity:[0,0,0]})),N(E("*"),()=>({type:"universal",namespace:null,specificity:[0,0,0]}))),Rn=N(lu,({name:e,namespace:t})=>({type:"tag",name:e,namespace:t,specificity:[0,0,1]})),qn=D(E("."),Se,(e,t)=>({type:"class",name:t,specificity:[0,1,0]})),Mn=N(Bn,e=>({type:"id",name:e,specificity:[1,0,0]})),si=j(e=>{if(e.name==="ident"){if(e.text==="i"||e.text==="I")return"i";if(e.text==="s"||e.text==="S")return"s"}}),Un=X(D(On,ve(ru(nu,si),null),(e,t)=>({value:e,modifier:t})),D(Se,ve(ru(cu,si),null),(e,t)=>({value:e,modifier:t}))),Hn=ie(N(E("="),()=>"="),D(E("~"),E("="),()=>"~="),D(E("|"),E("="),()=>"|="),D(E("^"),E("="),()=>"^="),D(E("$"),E("="),()=>"$="),D(E("*"),E("="),()=>"*=")),Fn=ze(E("["),ne(lu),E("]"),(e,{name:t,namespace:u})=>({type:"attrPresence",name:t,namespace:u,specificity:[0,1,0]})),jn=iu(E("["),ze(ne(lu),Hn,ne(Un),({name:e,namespace:t},u,{value:r,modifier:i})=>({type:"attrValue",name:e,namespace:t,matcher:u,value:r,modifier:i,specificity:[0,1,0]})),E("]")),Vn=X(Fn,jn),Wn=X(Pn,Rn),oi=ie(Mn,qn,Vn),ci=N(X(ni(Wn,Ge(oi)),ii(oi)),e=>({type:"compound",list:e,specificity:In(e.map(t=>t.specificity))})),Gn=ie(N(E(">"),()=>">"),N(E("+"),()=>"+"),N(E("~"),()=>"~"),D(E("|"),E("|"),()=>"||")),zn=X(ne(Gn),N(cu,()=>" ")),su=au(ci,N(zn,e=>(t,u)=>({type:"compound",list:[...u.list,{type:"combinator",combinator:e,left:t,specificity:t.specificity}],specificity:pi(t.specificity,u.specificity)})),ci),G0=au(N(su,e=>({type:"list",list:[e]})),N(ne(E(",")),()=>(e,t)=>({type:"list",list:[...e.list,t]})),su);function Kn(e,t){if(!(typeof t=="string"||t instanceof String))throw new Error("Expected a selector string. Actual input is not a string!");let u=_n(t);if(!u.complete)throw new Error(`The input "${t}" was only partially tokenized, stopped at offset ${u.offset}!
5
+ `+li(t,u.offset));let r=ne(e)({tokens:u.tokens,options:void 0},0);if(!r.matched)throw new Error(`No match for "${t}" input!`);if(r.position<u.tokens.length){let i=u.tokens[r.position];throw new Error(`The input "${t}" was only partially parsed, stopped at offset ${i.offset}!
6
+ `+li(t,i.offset,i.len))}return r.value}function li(e,t,u=1){return`${e.replace(/(\t)|(\r)|(\n)/g,(r,i,a)=>i?"\u2409":a?"\u240D":"\u240A")}
7
+ ${"".padEnd(t)}${"^".repeat(u)}`}function gi(e){return Kn(su,e)}function U(e){if(!e.type)throw new Error("This is not an AST node.");switch(e.type){case"universal":return Ke(e.namespace)+"*";case"tag":return Ke(e.namespace)+ae(e.name);case"class":return"."+ae(e.name);case"id":return"#"+ae(e.name);case"attrPresence":return`[${Ke(e.namespace)}${ae(e.name)}]`;case"attrValue":return`[${Ke(e.namespace)}${ae(e.name)}${e.matcher}"${Jn(e.value)}"${e.modifier?e.modifier:""}]`;case"combinator":return U(e.left)+e.combinator;case"compound":return e.list.reduce((t,u)=>u.type==="combinator"?U(u)+t:t+U(u),"");case"list":return e.list.map(U).join(",")}}function Ke(e){return e||e===""?ae(e)+"|":""}function Je(e){return`\\${e.codePointAt(0).toString(16)} `}function ae(e){return e.replace(/(^[0-9])|(^-[0-9])|(^-$)|([-0-9a-zA-Z_]|[^\x00-\x7F])|(\x00)|([\x01-\x1f]|\x7f)|([\s\S])/g,(t,u,r,i,a,n,s,c)=>u?Je(u):r?"-"+Je(r.slice(1)):i?"\\-":a||(n?"\uFFFD":s?Je(s):"\\"+c))}function Jn(e){return e.replace(/(")|(\\)|(\x00)|([\x01-\x1f]|\x7f)/g,(t,u,r,i,a)=>u?'\\"':r?"\\\\":i?"\uFFFD":Je(a))}function ke(e){if(!e.type)throw new Error("This is not an AST node.");switch(e.type){case"compound":{e.list.forEach(ke),e.list.sort((t,u)=>bi(di(t),di(u)));break}case"combinator":{ke(e.left);break}case"list":{e.list.forEach(ke),e.list.sort((t,u)=>U(t)<U(u)?-1:1);break}}return e}function di(e){switch(e.type){case"universal":return[1];case"tag":return[1];case"id":return[2];case"class":return[3,e.name];case"attrPresence":return[4,U(e)];case"attrValue":return[5,U(e)];case"combinator":return[15,U(e)]}}function du(e,t){return bi(e,t)}function bi(e,t){if(!Array.isArray(e)||!Array.isArray(t))throw new Error("Arguments must be arrays.");let u=e.length<t.length?e.length:t.length;for(let r=0;r<u;r++)if(e[r]!==t[r])return e[r]<t[r]?-1:1;return e.length-t.length}var Ae=class{constructor(t){this.branches=se(Zn(t))}build(t){return t(this.branches)}};function Zn(e){let t=e.length,u=new Array(t);for(let r=0;r<t;r++){let[i,a]=e[r],n=Xn(gi(i));u[r]={ast:n,terminal:{type:"terminal",valueContainer:{index:r,value:a,specificity:n.specificity}}}}return u}function Xn(e){return wi(e),ke(e),e}function wi(e){let t=[];e.list.forEach(u=>{switch(u.type){case"class":t.push({matcher:"~=",modifier:null,name:"class",namespace:null,specificity:u.specificity,type:"attrValue",value:u.name});break;case"id":t.push({matcher:"=",modifier:null,name:"id",namespace:null,specificity:u.specificity,type:"attrValue",value:u.name});break;case"combinator":wi(u.left),t.push(u);break;case"universal":break;default:t.push(u);break}}),e.list=t}function se(e){let t=[];for(;e.length;){let u=ki(e,n=>!0,yi),{matches:r,nonmatches:i,empty:a}=es(e,u);e=i,r.length&&t.push(ts(u,r)),a.length&&t.push(...Qn(a))}return t}function Qn(e){let t=[];for(let u of e){let r=u.terminal;if(r.type==="terminal")t.push(r);else{let{matches:i,rest:a}=ns(r.cont,n=>n.type==="terminal");i.forEach(n=>t.push(n)),a.length&&(r.cont=a,t.push(r))}}return t}function es(e,t){let u=[],r=[],i=[];for(let a of e){let n=a.ast.list;n.length?(n.some(c=>yi(c)===t)?u:r).push(a):i.push(a)}return{matches:u,nonmatches:r,empty:i}}function yi(e){switch(e.type){case"attrPresence":return`attrPresence ${e.name}`;case"attrValue":return`attrValue ${e.name}`;case"combinator":return`combinator ${e.combinator}`;default:return e.type}}function ts(e,t){if(e==="tag")return us(t);if(e.startsWith("attrValue "))return is(e.substring(10),t);if(e.startsWith("attrPresence "))return rs(e.substring(13),t);if(e==="combinator >")return xi(">",t);if(e==="combinator +")return xi("+",t);throw new Error(`Unsupported selector kind: ${e}`)}function us(e){let t=fu(e,r=>r.type==="tag",r=>r.name);return{type:"tagName",variants:Object.entries(t).map(([r,i])=>({type:"variant",value:r,cont:se(i.items)}))}}function rs(e,t){for(let u of t)vi(u,r=>r.type==="attrPresence"&&r.name===e);return{type:"attrPresence",name:e,cont:se(t)}}function is(e,t){let u=fu(t,i=>i.type==="attrValue"&&i.name===e,i=>`${i.matcher} ${i.modifier||""} ${i.value}`),r=[];for(let i of Object.values(u)){let a=i.oneSimpleSelector,n=as(a),s=se(i.items);r.push({type:"matcher",matcher:a.matcher,modifier:a.modifier,value:a.value,predicate:n,cont:s})}return{type:"attrValue",name:e,matchers:r}}function as(e){if(e.modifier==="i"){let t=e.value.toLowerCase();switch(e.matcher){case"=":return u=>t===u.toLowerCase();case"~=":return u=>u.toLowerCase().split(/[ \t]+/).includes(t);case"^=":return u=>u.toLowerCase().startsWith(t);case"$=":return u=>u.toLowerCase().endsWith(t);case"*=":return u=>u.toLowerCase().includes(t);case"|=":return u=>{let r=u.toLowerCase();return t===r||r.startsWith(t)&&r[t.length]==="-"}}}else{let t=e.value;switch(e.matcher){case"=":return u=>t===u;case"~=":return u=>u.split(/[ \t]+/).includes(t);case"^=":return u=>u.startsWith(t);case"$=":return u=>u.endsWith(t);case"*=":return u=>u.includes(t);case"|=":return u=>t===u||u.startsWith(t)&&u[t.length]==="-"}}}function xi(e,t){let u=fu(t,i=>i.type==="combinator"&&i.combinator===e,i=>U(i.left)),r=[];for(let i of Object.values(u)){let a=se(i.items),n=i.oneSimpleSelector.left;r.push({ast:n,terminal:{type:"popElement",cont:a}})}return{type:"pushElement",combinator:e,cont:se(r)}}function fu(e,t,u){let r={};for(;e.length;){let i=ki(e,t,u),a=f=>t(f)&&u(f)===i,n=f=>f.ast.list.some(a),{matches:s,rest:c}=ss(e,n),l=null;for(let f of s){let g=vi(f,a);l||(l=g)}if(l==null)throw new Error("No simple selector is found.");r[i]={oneSimpleSelector:l,items:s},e=c}return r}function vi(e,t){let u=e.ast.list,r=new Array(u.length),i=-1;for(let n=u.length;n-- >0;)t(u[n])&&(r[n]=!0,i=n);if(i==-1)throw new Error("Couldn't find the required simple selector.");let a=u[i];return e.ast.list=u.filter((n,s)=>!r[s]),a}function ki(e,t,u){let r={};for(let n of e){let s={};for(let c of n.ast.list.filter(t))s[u(c)]=!0;for(let c of Object.keys(s))r[c]?r[c]++:r[c]=1}let i="",a=0;for(let n of Object.entries(r))n[1]>a&&(i=n[0],a=n[1]);return i}function ns(e,t){let u=[],r=[];for(let i of e)t(i)?u.push(i):r.push(i);return{matches:u,rest:r}}function ss(e,t){let u=[],r=[];for(let i of e)t(i)?u.push(i):r.push(i);return{matches:u,rest:r}}var Ze=class{constructor(t){this.f=t}pickAll(t){return this.f(t)}pick1(t,u=!1){let r=this.f(t),i=r.length;if(i===0)return null;if(i===1)return r[0].value;let a=u?os:cs,n=r[0];for(let s=1;s<i;s++){let c=r[s];a(n,c)&&(n=c)}return n.value}};function os(e,t){let u=du(t.specificity,e.specificity);return u>0||u===0&&t.index<e.index}function cs(e,t){let u=du(t.specificity,e.specificity);return u>0||u===0&&t.index>e.index}function hu(e){return new Ze(oe(e))}function oe(e){let t=e.map(ls);return(u,...r)=>t.flatMap(i=>i(u,...r))}function ls(e){switch(e.type){case"terminal":{let t=[e.valueContainer];return(u,...r)=>t}case"tagName":return ds(e);case"attrValue":return hs(e);case"attrPresence":return fs(e);case"pushElement":return ps(e);case"popElement":return gs(e)}}function ds(e){let t={};for(let u of e.variants)t[u.value]=oe(u.cont);return(u,...r)=>{let i=t[u.name];return i?i(u,...r):[]}}function fs(e){let t=e.name,u=oe(e.cont);return(r,...i)=>Object.prototype.hasOwnProperty.call(r.attribs,t)?u(r,...i):[]}function hs(e){let t=[];for(let r of e.matchers){let i=r.predicate,a=oe(r.cont);t.push((n,s,...c)=>i(n)?a(s,...c):[])}let u=e.name;return(r,...i)=>{let a=r.attribs[u];return a||a===""?t.flatMap(n=>n(a,r,...i)):[]}}function ps(e){let t=oe(e.cont),u=e.combinator==="+"?Si:ms;return(r,...i)=>{let a=u(r);return a===null?[]:t(a,r,...i)}}var Si=e=>{let t=e.prev;return t===null?null:W(t)?t:Si(t)},ms=e=>{let t=e.parent;return t&&W(t)?t:null};function gs(e){let t=oe(e.cont);return(u,r,...i)=>t(r,...i)}var Xe=new Uint16Array('\u1D41<\xD5\u0131\u028A\u049D\u057B\u05D0\u0675\u06DE\u07A2\u07D6\u080F\u0A4A\u0A91\u0DA1\u0E6D\u0F09\u0F26\u10CA\u1228\u12E1\u1415\u149D\u14C3\u14DF\u1525\0\0\0\0\0\0\u156B\u16CD\u198D\u1C12\u1DDD\u1F7E\u2060\u21B0\u228D\u23C0\u23FB\u2442\u2824\u2912\u2D08\u2E48\u2FCE\u3016\u32BA\u3639\u37AC\u38FE\u3A28\u3A71\u3AE0\u3B2E\u0800EMabcfglmnoprstu\\bfms\x7F\x84\x8B\x90\x95\x98\xA6\xB3\xB9\xC8\xCFlig\u803B\xC6\u40C6P\u803B&\u4026cute\u803B\xC1\u40C1reve;\u4102\u0100iyx}rc\u803B\xC2\u40C2;\u4410r;\uC000\u{1D504}rave\u803B\xC0\u40C0pha;\u4391acr;\u4100d;\u6A53\u0100gp\x9D\xA1on;\u4104f;\uC000\u{1D538}plyFunction;\u6061ing\u803B\xC5\u40C5\u0100cs\xBE\xC3r;\uC000\u{1D49C}ign;\u6254ilde\u803B\xC3\u40C3ml\u803B\xC4\u40C4\u0400aceforsu\xE5\xFB\xFE\u0117\u011C\u0122\u0127\u012A\u0100cr\xEA\xF2kslash;\u6216\u0176\xF6\xF8;\u6AE7ed;\u6306y;\u4411\u0180crt\u0105\u010B\u0114ause;\u6235noullis;\u612Ca;\u4392r;\uC000\u{1D505}pf;\uC000\u{1D539}eve;\u42D8c\xF2\u0113mpeq;\u624E\u0700HOacdefhilorsu\u014D\u0151\u0156\u0180\u019E\u01A2\u01B5\u01B7\u01BA\u01DC\u0215\u0273\u0278\u027Ecy;\u4427PY\u803B\xA9\u40A9\u0180cpy\u015D\u0162\u017Aute;\u4106\u0100;i\u0167\u0168\u62D2talDifferentialD;\u6145leys;\u612D\u0200aeio\u0189\u018E\u0194\u0198ron;\u410Cdil\u803B\xC7\u40C7rc;\u4108nint;\u6230ot;\u410A\u0100dn\u01A7\u01ADilla;\u40B8terDot;\u40B7\xF2\u017Fi;\u43A7rcle\u0200DMPT\u01C7\u01CB\u01D1\u01D6ot;\u6299inus;\u6296lus;\u6295imes;\u6297o\u0100cs\u01E2\u01F8kwiseContourIntegral;\u6232eCurly\u0100DQ\u0203\u020FoubleQuote;\u601Duote;\u6019\u0200lnpu\u021E\u0228\u0247\u0255on\u0100;e\u0225\u0226\u6237;\u6A74\u0180git\u022F\u0236\u023Aruent;\u6261nt;\u622FourIntegral;\u622E\u0100fr\u024C\u024E;\u6102oduct;\u6210nterClockwiseContourIntegral;\u6233oss;\u6A2Fcr;\uC000\u{1D49E}p\u0100;C\u0284\u0285\u62D3ap;\u624D\u0580DJSZacefios\u02A0\u02AC\u02B0\u02B4\u02B8\u02CB\u02D7\u02E1\u02E6\u0333\u048D\u0100;o\u0179\u02A5trahd;\u6911cy;\u4402cy;\u4405cy;\u440F\u0180grs\u02BF\u02C4\u02C7ger;\u6021r;\u61A1hv;\u6AE4\u0100ay\u02D0\u02D5ron;\u410E;\u4414l\u0100;t\u02DD\u02DE\u6207a;\u4394r;\uC000\u{1D507}\u0100af\u02EB\u0327\u0100cm\u02F0\u0322ritical\u0200ADGT\u0300\u0306\u0316\u031Ccute;\u40B4o\u0174\u030B\u030D;\u42D9bleAcute;\u42DDrave;\u4060ilde;\u42DCond;\u62C4ferentialD;\u6146\u0470\u033D\0\0\0\u0342\u0354\0\u0405f;\uC000\u{1D53B}\u0180;DE\u0348\u0349\u034D\u40A8ot;\u60DCqual;\u6250ble\u0300CDLRUV\u0363\u0372\u0382\u03CF\u03E2\u03F8ontourIntegra\xEC\u0239o\u0274\u0379\0\0\u037B\xBB\u0349nArrow;\u61D3\u0100eo\u0387\u03A4ft\u0180ART\u0390\u0396\u03A1rrow;\u61D0ightArrow;\u61D4e\xE5\u02CAng\u0100LR\u03AB\u03C4eft\u0100AR\u03B3\u03B9rrow;\u67F8ightArrow;\u67FAightArrow;\u67F9ight\u0100AT\u03D8\u03DErrow;\u61D2ee;\u62A8p\u0241\u03E9\0\0\u03EFrrow;\u61D1ownArrow;\u61D5erticalBar;\u6225n\u0300ABLRTa\u0412\u042A\u0430\u045E\u047F\u037Crrow\u0180;BU\u041D\u041E\u0422\u6193ar;\u6913pArrow;\u61F5reve;\u4311eft\u02D2\u043A\0\u0446\0\u0450ightVector;\u6950eeVector;\u695Eector\u0100;B\u0459\u045A\u61BDar;\u6956ight\u01D4\u0467\0\u0471eeVector;\u695Fector\u0100;B\u047A\u047B\u61C1ar;\u6957ee\u0100;A\u0486\u0487\u62A4rrow;\u61A7\u0100ct\u0492\u0497r;\uC000\u{1D49F}rok;\u4110\u0800NTacdfglmopqstux\u04BD\u04C0\u04C4\u04CB\u04DE\u04E2\u04E7\u04EE\u04F5\u0521\u052F\u0536\u0552\u055D\u0560\u0565G;\u414AH\u803B\xD0\u40D0cute\u803B\xC9\u40C9\u0180aiy\u04D2\u04D7\u04DCron;\u411Arc\u803B\xCA\u40CA;\u442Dot;\u4116r;\uC000\u{1D508}rave\u803B\xC8\u40C8ement;\u6208\u0100ap\u04FA\u04FEcr;\u4112ty\u0253\u0506\0\0\u0512mallSquare;\u65FBerySmallSquare;\u65AB\u0100gp\u0526\u052Aon;\u4118f;\uC000\u{1D53C}silon;\u4395u\u0100ai\u053C\u0549l\u0100;T\u0542\u0543\u6A75ilde;\u6242librium;\u61CC\u0100ci\u0557\u055Ar;\u6130m;\u6A73a;\u4397ml\u803B\xCB\u40CB\u0100ip\u056A\u056Fsts;\u6203onentialE;\u6147\u0280cfios\u0585\u0588\u058D\u05B2\u05CCy;\u4424r;\uC000\u{1D509}lled\u0253\u0597\0\0\u05A3mallSquare;\u65FCerySmallSquare;\u65AA\u0370\u05BA\0\u05BF\0\0\u05C4f;\uC000\u{1D53D}All;\u6200riertrf;\u6131c\xF2\u05CB\u0600JTabcdfgorst\u05E8\u05EC\u05EF\u05FA\u0600\u0612\u0616\u061B\u061D\u0623\u066C\u0672cy;\u4403\u803B>\u403Emma\u0100;d\u05F7\u05F8\u4393;\u43DCreve;\u411E\u0180eiy\u0607\u060C\u0610dil;\u4122rc;\u411C;\u4413ot;\u4120r;\uC000\u{1D50A};\u62D9pf;\uC000\u{1D53E}eater\u0300EFGLST\u0635\u0644\u064E\u0656\u065B\u0666qual\u0100;L\u063E\u063F\u6265ess;\u62DBullEqual;\u6267reater;\u6AA2ess;\u6277lantEqual;\u6A7Eilde;\u6273cr;\uC000\u{1D4A2};\u626B\u0400Aacfiosu\u0685\u068B\u0696\u069B\u069E\u06AA\u06BE\u06CARDcy;\u442A\u0100ct\u0690\u0694ek;\u42C7;\u405Eirc;\u4124r;\u610ClbertSpace;\u610B\u01F0\u06AF\0\u06B2f;\u610DizontalLine;\u6500\u0100ct\u06C3\u06C5\xF2\u06A9rok;\u4126mp\u0144\u06D0\u06D8ownHum\xF0\u012Fqual;\u624F\u0700EJOacdfgmnostu\u06FA\u06FE\u0703\u0707\u070E\u071A\u071E\u0721\u0728\u0744\u0778\u078B\u078F\u0795cy;\u4415lig;\u4132cy;\u4401cute\u803B\xCD\u40CD\u0100iy\u0713\u0718rc\u803B\xCE\u40CE;\u4418ot;\u4130r;\u6111rave\u803B\xCC\u40CC\u0180;ap\u0720\u072F\u073F\u0100cg\u0734\u0737r;\u412AinaryI;\u6148lie\xF3\u03DD\u01F4\u0749\0\u0762\u0100;e\u074D\u074E\u622C\u0100gr\u0753\u0758ral;\u622Bsection;\u62C2isible\u0100CT\u076C\u0772omma;\u6063imes;\u6062\u0180gpt\u077F\u0783\u0788on;\u412Ef;\uC000\u{1D540}a;\u4399cr;\u6110ilde;\u4128\u01EB\u079A\0\u079Ecy;\u4406l\u803B\xCF\u40CF\u0280cfosu\u07AC\u07B7\u07BC\u07C2\u07D0\u0100iy\u07B1\u07B5rc;\u4134;\u4419r;\uC000\u{1D50D}pf;\uC000\u{1D541}\u01E3\u07C7\0\u07CCr;\uC000\u{1D4A5}rcy;\u4408kcy;\u4404\u0380HJacfos\u07E4\u07E8\u07EC\u07F1\u07FD\u0802\u0808cy;\u4425cy;\u440Cppa;\u439A\u0100ey\u07F6\u07FBdil;\u4136;\u441Ar;\uC000\u{1D50E}pf;\uC000\u{1D542}cr;\uC000\u{1D4A6}\u0580JTaceflmost\u0825\u0829\u082C\u0850\u0863\u09B3\u09B8\u09C7\u09CD\u0A37\u0A47cy;\u4409\u803B<\u403C\u0280cmnpr\u0837\u083C\u0841\u0844\u084Dute;\u4139bda;\u439Bg;\u67EAlacetrf;\u6112r;\u619E\u0180aey\u0857\u085C\u0861ron;\u413Ddil;\u413B;\u441B\u0100fs\u0868\u0970t\u0500ACDFRTUVar\u087E\u08A9\u08B1\u08E0\u08E6\u08FC\u092F\u095B\u0390\u096A\u0100nr\u0883\u088FgleBracket;\u67E8row\u0180;BR\u0899\u089A\u089E\u6190ar;\u61E4ightArrow;\u61C6eiling;\u6308o\u01F5\u08B7\0\u08C3bleBracket;\u67E6n\u01D4\u08C8\0\u08D2eeVector;\u6961ector\u0100;B\u08DB\u08DC\u61C3ar;\u6959loor;\u630Aight\u0100AV\u08EF\u08F5rrow;\u6194ector;\u694E\u0100er\u0901\u0917e\u0180;AV\u0909\u090A\u0910\u62A3rrow;\u61A4ector;\u695Aiangle\u0180;BE\u0924\u0925\u0929\u62B2ar;\u69CFqual;\u62B4p\u0180DTV\u0937\u0942\u094CownVector;\u6951eeVector;\u6960ector\u0100;B\u0956\u0957\u61BFar;\u6958ector\u0100;B\u0965\u0966\u61BCar;\u6952ight\xE1\u039Cs\u0300EFGLST\u097E\u098B\u0995\u099D\u09A2\u09ADqualGreater;\u62DAullEqual;\u6266reater;\u6276ess;\u6AA1lantEqual;\u6A7Dilde;\u6272r;\uC000\u{1D50F}\u0100;e\u09BD\u09BE\u62D8ftarrow;\u61DAidot;\u413F\u0180npw\u09D4\u0A16\u0A1Bg\u0200LRlr\u09DE\u09F7\u0A02\u0A10eft\u0100AR\u09E6\u09ECrrow;\u67F5ightArrow;\u67F7ightArrow;\u67F6eft\u0100ar\u03B3\u0A0Aight\xE1\u03BFight\xE1\u03CAf;\uC000\u{1D543}er\u0100LR\u0A22\u0A2CeftArrow;\u6199ightArrow;\u6198\u0180cht\u0A3E\u0A40\u0A42\xF2\u084C;\u61B0rok;\u4141;\u626A\u0400acefiosu\u0A5A\u0A5D\u0A60\u0A77\u0A7C\u0A85\u0A8B\u0A8Ep;\u6905y;\u441C\u0100dl\u0A65\u0A6FiumSpace;\u605Flintrf;\u6133r;\uC000\u{1D510}nusPlus;\u6213pf;\uC000\u{1D544}c\xF2\u0A76;\u439C\u0480Jacefostu\u0AA3\u0AA7\u0AAD\u0AC0\u0B14\u0B19\u0D91\u0D97\u0D9Ecy;\u440Acute;\u4143\u0180aey\u0AB4\u0AB9\u0ABEron;\u4147dil;\u4145;\u441D\u0180gsw\u0AC7\u0AF0\u0B0Eative\u0180MTV\u0AD3\u0ADF\u0AE8ediumSpace;\u600Bhi\u0100cn\u0AE6\u0AD8\xEB\u0AD9eryThi\xEE\u0AD9ted\u0100GL\u0AF8\u0B06reaterGreate\xF2\u0673essLes\xF3\u0A48Line;\u400Ar;\uC000\u{1D511}\u0200Bnpt\u0B22\u0B28\u0B37\u0B3Areak;\u6060BreakingSpace;\u40A0f;\u6115\u0680;CDEGHLNPRSTV\u0B55\u0B56\u0B6A\u0B7C\u0BA1\u0BEB\u0C04\u0C5E\u0C84\u0CA6\u0CD8\u0D61\u0D85\u6AEC\u0100ou\u0B5B\u0B64ngruent;\u6262pCap;\u626DoubleVerticalBar;\u6226\u0180lqx\u0B83\u0B8A\u0B9Bement;\u6209ual\u0100;T\u0B92\u0B93\u6260ilde;\uC000\u2242\u0338ists;\u6204reater\u0380;EFGLST\u0BB6\u0BB7\u0BBD\u0BC9\u0BD3\u0BD8\u0BE5\u626Fqual;\u6271ullEqual;\uC000\u2267\u0338reater;\uC000\u226B\u0338ess;\u6279lantEqual;\uC000\u2A7E\u0338ilde;\u6275ump\u0144\u0BF2\u0BFDownHump;\uC000\u224E\u0338qual;\uC000\u224F\u0338e\u0100fs\u0C0A\u0C27tTriangle\u0180;BE\u0C1A\u0C1B\u0C21\u62EAar;\uC000\u29CF\u0338qual;\u62ECs\u0300;EGLST\u0C35\u0C36\u0C3C\u0C44\u0C4B\u0C58\u626Equal;\u6270reater;\u6278ess;\uC000\u226A\u0338lantEqual;\uC000\u2A7D\u0338ilde;\u6274ested\u0100GL\u0C68\u0C79reaterGreater;\uC000\u2AA2\u0338essLess;\uC000\u2AA1\u0338recedes\u0180;ES\u0C92\u0C93\u0C9B\u6280qual;\uC000\u2AAF\u0338lantEqual;\u62E0\u0100ei\u0CAB\u0CB9verseElement;\u620CghtTriangle\u0180;BE\u0CCB\u0CCC\u0CD2\u62EBar;\uC000\u29D0\u0338qual;\u62ED\u0100qu\u0CDD\u0D0CuareSu\u0100bp\u0CE8\u0CF9set\u0100;E\u0CF0\u0CF3\uC000\u228F\u0338qual;\u62E2erset\u0100;E\u0D03\u0D06\uC000\u2290\u0338qual;\u62E3\u0180bcp\u0D13\u0D24\u0D4Eset\u0100;E\u0D1B\u0D1E\uC000\u2282\u20D2qual;\u6288ceeds\u0200;EST\u0D32\u0D33\u0D3B\u0D46\u6281qual;\uC000\u2AB0\u0338lantEqual;\u62E1ilde;\uC000\u227F\u0338erset\u0100;E\u0D58\u0D5B\uC000\u2283\u20D2qual;\u6289ilde\u0200;EFT\u0D6E\u0D6F\u0D75\u0D7F\u6241qual;\u6244ullEqual;\u6247ilde;\u6249erticalBar;\u6224cr;\uC000\u{1D4A9}ilde\u803B\xD1\u40D1;\u439D\u0700Eacdfgmoprstuv\u0DBD\u0DC2\u0DC9\u0DD5\u0DDB\u0DE0\u0DE7\u0DFC\u0E02\u0E20\u0E22\u0E32\u0E3F\u0E44lig;\u4152cute\u803B\xD3\u40D3\u0100iy\u0DCE\u0DD3rc\u803B\xD4\u40D4;\u441Eblac;\u4150r;\uC000\u{1D512}rave\u803B\xD2\u40D2\u0180aei\u0DEE\u0DF2\u0DF6cr;\u414Cga;\u43A9cron;\u439Fpf;\uC000\u{1D546}enCurly\u0100DQ\u0E0E\u0E1AoubleQuote;\u601Cuote;\u6018;\u6A54\u0100cl\u0E27\u0E2Cr;\uC000\u{1D4AA}ash\u803B\xD8\u40D8i\u016C\u0E37\u0E3Cde\u803B\xD5\u40D5es;\u6A37ml\u803B\xD6\u40D6er\u0100BP\u0E4B\u0E60\u0100ar\u0E50\u0E53r;\u603Eac\u0100ek\u0E5A\u0E5C;\u63DEet;\u63B4arenthesis;\u63DC\u0480acfhilors\u0E7F\u0E87\u0E8A\u0E8F\u0E92\u0E94\u0E9D\u0EB0\u0EFCrtialD;\u6202y;\u441Fr;\uC000\u{1D513}i;\u43A6;\u43A0usMinus;\u40B1\u0100ip\u0EA2\u0EADncareplan\xE5\u069Df;\u6119\u0200;eio\u0EB9\u0EBA\u0EE0\u0EE4\u6ABBcedes\u0200;EST\u0EC8\u0EC9\u0ECF\u0EDA\u627Aqual;\u6AAFlantEqual;\u627Cilde;\u627Eme;\u6033\u0100dp\u0EE9\u0EEEuct;\u620Fortion\u0100;a\u0225\u0EF9l;\u621D\u0100ci\u0F01\u0F06r;\uC000\u{1D4AB};\u43A8\u0200Ufos\u0F11\u0F16\u0F1B\u0F1FOT\u803B"\u4022r;\uC000\u{1D514}pf;\u611Acr;\uC000\u{1D4AC}\u0600BEacefhiorsu\u0F3E\u0F43\u0F47\u0F60\u0F73\u0FA7\u0FAA\u0FAD\u1096\u10A9\u10B4\u10BEarr;\u6910G\u803B\xAE\u40AE\u0180cnr\u0F4E\u0F53\u0F56ute;\u4154g;\u67EBr\u0100;t\u0F5C\u0F5D\u61A0l;\u6916\u0180aey\u0F67\u0F6C\u0F71ron;\u4158dil;\u4156;\u4420\u0100;v\u0F78\u0F79\u611Cerse\u0100EU\u0F82\u0F99\u0100lq\u0F87\u0F8Eement;\u620Builibrium;\u61CBpEquilibrium;\u696Fr\xBB\u0F79o;\u43A1ght\u0400ACDFTUVa\u0FC1\u0FEB\u0FF3\u1022\u1028\u105B\u1087\u03D8\u0100nr\u0FC6\u0FD2gleBracket;\u67E9row\u0180;BL\u0FDC\u0FDD\u0FE1\u6192ar;\u61E5eftArrow;\u61C4eiling;\u6309o\u01F5\u0FF9\0\u1005bleBracket;\u67E7n\u01D4\u100A\0\u1014eeVector;\u695Dector\u0100;B\u101D\u101E\u61C2ar;\u6955loor;\u630B\u0100er\u102D\u1043e\u0180;AV\u1035\u1036\u103C\u62A2rrow;\u61A6ector;\u695Biangle\u0180;BE\u1050\u1051\u1055\u62B3ar;\u69D0qual;\u62B5p\u0180DTV\u1063\u106E\u1078ownVector;\u694FeeVector;\u695Cector\u0100;B\u1082\u1083\u61BEar;\u6954ector\u0100;B\u1091\u1092\u61C0ar;\u6953\u0100pu\u109B\u109Ef;\u611DndImplies;\u6970ightarrow;\u61DB\u0100ch\u10B9\u10BCr;\u611B;\u61B1leDelayed;\u69F4\u0680HOacfhimoqstu\u10E4\u10F1\u10F7\u10FD\u1119\u111E\u1151\u1156\u1161\u1167\u11B5\u11BB\u11BF\u0100Cc\u10E9\u10EEHcy;\u4429y;\u4428FTcy;\u442Ccute;\u415A\u0280;aeiy\u1108\u1109\u110E\u1113\u1117\u6ABCron;\u4160dil;\u415Erc;\u415C;\u4421r;\uC000\u{1D516}ort\u0200DLRU\u112A\u1134\u113E\u1149ownArrow\xBB\u041EeftArrow\xBB\u089AightArrow\xBB\u0FDDpArrow;\u6191gma;\u43A3allCircle;\u6218pf;\uC000\u{1D54A}\u0272\u116D\0\0\u1170t;\u621Aare\u0200;ISU\u117B\u117C\u1189\u11AF\u65A1ntersection;\u6293u\u0100bp\u118F\u119Eset\u0100;E\u1197\u1198\u628Fqual;\u6291erset\u0100;E\u11A8\u11A9\u6290qual;\u6292nion;\u6294cr;\uC000\u{1D4AE}ar;\u62C6\u0200bcmp\u11C8\u11DB\u1209\u120B\u0100;s\u11CD\u11CE\u62D0et\u0100;E\u11CD\u11D5qual;\u6286\u0100ch\u11E0\u1205eeds\u0200;EST\u11ED\u11EE\u11F4\u11FF\u627Bqual;\u6AB0lantEqual;\u627Dilde;\u627FTh\xE1\u0F8C;\u6211\u0180;es\u1212\u1213\u1223\u62D1rset\u0100;E\u121C\u121D\u6283qual;\u6287et\xBB\u1213\u0580HRSacfhiors\u123E\u1244\u1249\u1255\u125E\u1271\u1276\u129F\u12C2\u12C8\u12D1ORN\u803B\xDE\u40DEADE;\u6122\u0100Hc\u124E\u1252cy;\u440By;\u4426\u0100bu\u125A\u125C;\u4009;\u43A4\u0180aey\u1265\u126A\u126Fron;\u4164dil;\u4162;\u4422r;\uC000\u{1D517}\u0100ei\u127B\u1289\u01F2\u1280\0\u1287efore;\u6234a;\u4398\u0100cn\u128E\u1298kSpace;\uC000\u205F\u200ASpace;\u6009lde\u0200;EFT\u12AB\u12AC\u12B2\u12BC\u623Cqual;\u6243ullEqual;\u6245ilde;\u6248pf;\uC000\u{1D54B}ipleDot;\u60DB\u0100ct\u12D6\u12DBr;\uC000\u{1D4AF}rok;\u4166\u0AE1\u12F7\u130E\u131A\u1326\0\u132C\u1331\0\0\0\0\0\u1338\u133D\u1377\u1385\0\u13FF\u1404\u140A\u1410\u0100cr\u12FB\u1301ute\u803B\xDA\u40DAr\u0100;o\u1307\u1308\u619Fcir;\u6949r\u01E3\u1313\0\u1316y;\u440Eve;\u416C\u0100iy\u131E\u1323rc\u803B\xDB\u40DB;\u4423blac;\u4170r;\uC000\u{1D518}rave\u803B\xD9\u40D9acr;\u416A\u0100di\u1341\u1369er\u0100BP\u1348\u135D\u0100ar\u134D\u1350r;\u405Fac\u0100ek\u1357\u1359;\u63DFet;\u63B5arenthesis;\u63DDon\u0100;P\u1370\u1371\u62C3lus;\u628E\u0100gp\u137B\u137Fon;\u4172f;\uC000\u{1D54C}\u0400ADETadps\u1395\u13AE\u13B8\u13C4\u03E8\u13D2\u13D7\u13F3rrow\u0180;BD\u1150\u13A0\u13A4ar;\u6912ownArrow;\u61C5ownArrow;\u6195quilibrium;\u696Eee\u0100;A\u13CB\u13CC\u62A5rrow;\u61A5own\xE1\u03F3er\u0100LR\u13DE\u13E8eftArrow;\u6196ightArrow;\u6197i\u0100;l\u13F9\u13FA\u43D2on;\u43A5ing;\u416Ecr;\uC000\u{1D4B0}ilde;\u4168ml\u803B\xDC\u40DC\u0480Dbcdefosv\u1427\u142C\u1430\u1433\u143E\u1485\u148A\u1490\u1496ash;\u62ABar;\u6AEBy;\u4412ash\u0100;l\u143B\u143C\u62A9;\u6AE6\u0100er\u1443\u1445;\u62C1\u0180bty\u144C\u1450\u147Aar;\u6016\u0100;i\u144F\u1455cal\u0200BLST\u1461\u1465\u146A\u1474ar;\u6223ine;\u407Ceparator;\u6758ilde;\u6240ThinSpace;\u600Ar;\uC000\u{1D519}pf;\uC000\u{1D54D}cr;\uC000\u{1D4B1}dash;\u62AA\u0280cefos\u14A7\u14AC\u14B1\u14B6\u14BCirc;\u4174dge;\u62C0r;\uC000\u{1D51A}pf;\uC000\u{1D54E}cr;\uC000\u{1D4B2}\u0200fios\u14CB\u14D0\u14D2\u14D8r;\uC000\u{1D51B};\u439Epf;\uC000\u{1D54F}cr;\uC000\u{1D4B3}\u0480AIUacfosu\u14F1\u14F5\u14F9\u14FD\u1504\u150F\u1514\u151A\u1520cy;\u442Fcy;\u4407cy;\u442Ecute\u803B\xDD\u40DD\u0100iy\u1509\u150Drc;\u4176;\u442Br;\uC000\u{1D51C}pf;\uC000\u{1D550}cr;\uC000\u{1D4B4}ml;\u4178\u0400Hacdefos\u1535\u1539\u153F\u154B\u154F\u155D\u1560\u1564cy;\u4416cute;\u4179\u0100ay\u1544\u1549ron;\u417D;\u4417ot;\u417B\u01F2\u1554\0\u155BoWidt\xE8\u0AD9a;\u4396r;\u6128pf;\u6124cr;\uC000\u{1D4B5}\u0BE1\u1583\u158A\u1590\0\u15B0\u15B6\u15BF\0\0\0\0\u15C6\u15DB\u15EB\u165F\u166D\0\u1695\u169B\u16B2\u16B9\0\u16BEcute\u803B\xE1\u40E1reve;\u4103\u0300;Ediuy\u159C\u159D\u15A1\u15A3\u15A8\u15AD\u623E;\uC000\u223E\u0333;\u623Frc\u803B\xE2\u40E2te\u80BB\xB4\u0306;\u4430lig\u803B\xE6\u40E6\u0100;r\xB2\u15BA;\uC000\u{1D51E}rave\u803B\xE0\u40E0\u0100ep\u15CA\u15D6\u0100fp\u15CF\u15D4sym;\u6135\xE8\u15D3ha;\u43B1\u0100ap\u15DFc\u0100cl\u15E4\u15E7r;\u4101g;\u6A3F\u0264\u15F0\0\0\u160A\u0280;adsv\u15FA\u15FB\u15FF\u1601\u1607\u6227nd;\u6A55;\u6A5Clope;\u6A58;\u6A5A\u0380;elmrsz\u1618\u1619\u161B\u161E\u163F\u164F\u1659\u6220;\u69A4e\xBB\u1619sd\u0100;a\u1625\u1626\u6221\u0461\u1630\u1632\u1634\u1636\u1638\u163A\u163C\u163E;\u69A8;\u69A9;\u69AA;\u69AB;\u69AC;\u69AD;\u69AE;\u69AFt\u0100;v\u1645\u1646\u621Fb\u0100;d\u164C\u164D\u62BE;\u699D\u0100pt\u1654\u1657h;\u6222\xBB\xB9arr;\u637C\u0100gp\u1663\u1667on;\u4105f;\uC000\u{1D552}\u0380;Eaeiop\u12C1\u167B\u167D\u1682\u1684\u1687\u168A;\u6A70cir;\u6A6F;\u624Ad;\u624Bs;\u4027rox\u0100;e\u12C1\u1692\xF1\u1683ing\u803B\xE5\u40E5\u0180cty\u16A1\u16A6\u16A8r;\uC000\u{1D4B6};\u402Amp\u0100;e\u12C1\u16AF\xF1\u0288ilde\u803B\xE3\u40E3ml\u803B\xE4\u40E4\u0100ci\u16C2\u16C8onin\xF4\u0272nt;\u6A11\u0800Nabcdefiklnoprsu\u16ED\u16F1\u1730\u173C\u1743\u1748\u1778\u177D\u17E0\u17E6\u1839\u1850\u170D\u193D\u1948\u1970ot;\u6AED\u0100cr\u16F6\u171Ek\u0200ceps\u1700\u1705\u170D\u1713ong;\u624Cpsilon;\u43F6rime;\u6035im\u0100;e\u171A\u171B\u623Dq;\u62CD\u0176\u1722\u1726ee;\u62BDed\u0100;g\u172C\u172D\u6305e\xBB\u172Drk\u0100;t\u135C\u1737brk;\u63B6\u0100oy\u1701\u1741;\u4431quo;\u601E\u0280cmprt\u1753\u175B\u1761\u1764\u1768aus\u0100;e\u010A\u0109ptyv;\u69B0s\xE9\u170Cno\xF5\u0113\u0180ahw\u176F\u1771\u1773;\u43B2;\u6136een;\u626Cr;\uC000\u{1D51F}g\u0380costuvw\u178D\u179D\u17B3\u17C1\u17D5\u17DB\u17DE\u0180aiu\u1794\u1796\u179A\xF0\u0760rc;\u65EFp\xBB\u1371\u0180dpt\u17A4\u17A8\u17ADot;\u6A00lus;\u6A01imes;\u6A02\u0271\u17B9\0\0\u17BEcup;\u6A06ar;\u6605riangle\u0100du\u17CD\u17D2own;\u65BDp;\u65B3plus;\u6A04e\xE5\u1444\xE5\u14ADarow;\u690D\u0180ako\u17ED\u1826\u1835\u0100cn\u17F2\u1823k\u0180lst\u17FA\u05AB\u1802ozenge;\u69EBriangle\u0200;dlr\u1812\u1813\u1818\u181D\u65B4own;\u65BEeft;\u65C2ight;\u65B8k;\u6423\u01B1\u182B\0\u1833\u01B2\u182F\0\u1831;\u6592;\u65914;\u6593ck;\u6588\u0100eo\u183E\u184D\u0100;q\u1843\u1846\uC000=\u20E5uiv;\uC000\u2261\u20E5t;\u6310\u0200ptwx\u1859\u185E\u1867\u186Cf;\uC000\u{1D553}\u0100;t\u13CB\u1863om\xBB\u13CCtie;\u62C8\u0600DHUVbdhmptuv\u1885\u1896\u18AA\u18BB\u18D7\u18DB\u18EC\u18FF\u1905\u190A\u1910\u1921\u0200LRlr\u188E\u1890\u1892\u1894;\u6557;\u6554;\u6556;\u6553\u0280;DUdu\u18A1\u18A2\u18A4\u18A6\u18A8\u6550;\u6566;\u6569;\u6564;\u6567\u0200LRlr\u18B3\u18B5\u18B7\u18B9;\u655D;\u655A;\u655C;\u6559\u0380;HLRhlr\u18CA\u18CB\u18CD\u18CF\u18D1\u18D3\u18D5\u6551;\u656C;\u6563;\u6560;\u656B;\u6562;\u655Fox;\u69C9\u0200LRlr\u18E4\u18E6\u18E8\u18EA;\u6555;\u6552;\u6510;\u650C\u0280;DUdu\u06BD\u18F7\u18F9\u18FB\u18FD;\u6565;\u6568;\u652C;\u6534inus;\u629Flus;\u629Eimes;\u62A0\u0200LRlr\u1919\u191B\u191D\u191F;\u655B;\u6558;\u6518;\u6514\u0380;HLRhlr\u1930\u1931\u1933\u1935\u1937\u1939\u193B\u6502;\u656A;\u6561;\u655E;\u653C;\u6524;\u651C\u0100ev\u0123\u1942bar\u803B\xA6\u40A6\u0200ceio\u1951\u1956\u195A\u1960r;\uC000\u{1D4B7}mi;\u604Fm\u0100;e\u171A\u171Cl\u0180;bh\u1968\u1969\u196B\u405C;\u69C5sub;\u67C8\u016C\u1974\u197El\u0100;e\u1979\u197A\u6022t\xBB\u197Ap\u0180;Ee\u012F\u1985\u1987;\u6AAE\u0100;q\u06DC\u06DB\u0CE1\u19A7\0\u19E8\u1A11\u1A15\u1A32\0\u1A37\u1A50\0\0\u1AB4\0\0\u1AC1\0\0\u1B21\u1B2E\u1B4D\u1B52\0\u1BFD\0\u1C0C\u0180cpr\u19AD\u19B2\u19DDute;\u4107\u0300;abcds\u19BF\u19C0\u19C4\u19CA\u19D5\u19D9\u6229nd;\u6A44rcup;\u6A49\u0100au\u19CF\u19D2p;\u6A4Bp;\u6A47ot;\u6A40;\uC000\u2229\uFE00\u0100eo\u19E2\u19E5t;\u6041\xEE\u0693\u0200aeiu\u19F0\u19FB\u1A01\u1A05\u01F0\u19F5\0\u19F8s;\u6A4Don;\u410Ddil\u803B\xE7\u40E7rc;\u4109ps\u0100;s\u1A0C\u1A0D\u6A4Cm;\u6A50ot;\u410B\u0180dmn\u1A1B\u1A20\u1A26il\u80BB\xB8\u01ADptyv;\u69B2t\u8100\xA2;e\u1A2D\u1A2E\u40A2r\xE4\u01B2r;\uC000\u{1D520}\u0180cei\u1A3D\u1A40\u1A4Dy;\u4447ck\u0100;m\u1A47\u1A48\u6713ark\xBB\u1A48;\u43C7r\u0380;Ecefms\u1A5F\u1A60\u1A62\u1A6B\u1AA4\u1AAA\u1AAE\u65CB;\u69C3\u0180;el\u1A69\u1A6A\u1A6D\u42C6q;\u6257e\u0261\u1A74\0\0\u1A88rrow\u0100lr\u1A7C\u1A81eft;\u61BAight;\u61BB\u0280RSacd\u1A92\u1A94\u1A96\u1A9A\u1A9F\xBB\u0F47;\u64C8st;\u629Birc;\u629Aash;\u629Dnint;\u6A10id;\u6AEFcir;\u69C2ubs\u0100;u\u1ABB\u1ABC\u6663it\xBB\u1ABC\u02EC\u1AC7\u1AD4\u1AFA\0\u1B0Aon\u0100;e\u1ACD\u1ACE\u403A\u0100;q\xC7\xC6\u026D\u1AD9\0\0\u1AE2a\u0100;t\u1ADE\u1ADF\u402C;\u4040\u0180;fl\u1AE8\u1AE9\u1AEB\u6201\xEE\u1160e\u0100mx\u1AF1\u1AF6ent\xBB\u1AE9e\xF3\u024D\u01E7\u1AFE\0\u1B07\u0100;d\u12BB\u1B02ot;\u6A6Dn\xF4\u0246\u0180fry\u1B10\u1B14\u1B17;\uC000\u{1D554}o\xE4\u0254\u8100\xA9;s\u0155\u1B1Dr;\u6117\u0100ao\u1B25\u1B29rr;\u61B5ss;\u6717\u0100cu\u1B32\u1B37r;\uC000\u{1D4B8}\u0100bp\u1B3C\u1B44\u0100;e\u1B41\u1B42\u6ACF;\u6AD1\u0100;e\u1B49\u1B4A\u6AD0;\u6AD2dot;\u62EF\u0380delprvw\u1B60\u1B6C\u1B77\u1B82\u1BAC\u1BD4\u1BF9arr\u0100lr\u1B68\u1B6A;\u6938;\u6935\u0270\u1B72\0\0\u1B75r;\u62DEc;\u62DFarr\u0100;p\u1B7F\u1B80\u61B6;\u693D\u0300;bcdos\u1B8F\u1B90\u1B96\u1BA1\u1BA5\u1BA8\u622Arcap;\u6A48\u0100au\u1B9B\u1B9Ep;\u6A46p;\u6A4Aot;\u628Dr;\u6A45;\uC000\u222A\uFE00\u0200alrv\u1BB5\u1BBF\u1BDE\u1BE3rr\u0100;m\u1BBC\u1BBD\u61B7;\u693Cy\u0180evw\u1BC7\u1BD4\u1BD8q\u0270\u1BCE\0\0\u1BD2re\xE3\u1B73u\xE3\u1B75ee;\u62CEedge;\u62CFen\u803B\xA4\u40A4earrow\u0100lr\u1BEE\u1BF3eft\xBB\u1B80ight\xBB\u1BBDe\xE4\u1BDD\u0100ci\u1C01\u1C07onin\xF4\u01F7nt;\u6231lcty;\u632D\u0980AHabcdefhijlorstuwz\u1C38\u1C3B\u1C3F\u1C5D\u1C69\u1C75\u1C8A\u1C9E\u1CAC\u1CB7\u1CFB\u1CFF\u1D0D\u1D7B\u1D91\u1DAB\u1DBB\u1DC6\u1DCDr\xF2\u0381ar;\u6965\u0200glrs\u1C48\u1C4D\u1C52\u1C54ger;\u6020eth;\u6138\xF2\u1133h\u0100;v\u1C5A\u1C5B\u6010\xBB\u090A\u016B\u1C61\u1C67arow;\u690Fa\xE3\u0315\u0100ay\u1C6E\u1C73ron;\u410F;\u4434\u0180;ao\u0332\u1C7C\u1C84\u0100gr\u02BF\u1C81r;\u61CAtseq;\u6A77\u0180glm\u1C91\u1C94\u1C98\u803B\xB0\u40B0ta;\u43B4ptyv;\u69B1\u0100ir\u1CA3\u1CA8sht;\u697F;\uC000\u{1D521}ar\u0100lr\u1CB3\u1CB5\xBB\u08DC\xBB\u101E\u0280aegsv\u1CC2\u0378\u1CD6\u1CDC\u1CE0m\u0180;os\u0326\u1CCA\u1CD4nd\u0100;s\u0326\u1CD1uit;\u6666amma;\u43DDin;\u62F2\u0180;io\u1CE7\u1CE8\u1CF8\u40F7de\u8100\xF7;o\u1CE7\u1CF0ntimes;\u62C7n\xF8\u1CF7cy;\u4452c\u026F\u1D06\0\0\u1D0Arn;\u631Eop;\u630D\u0280lptuw\u1D18\u1D1D\u1D22\u1D49\u1D55lar;\u4024f;\uC000\u{1D555}\u0280;emps\u030B\u1D2D\u1D37\u1D3D\u1D42q\u0100;d\u0352\u1D33ot;\u6251inus;\u6238lus;\u6214quare;\u62A1blebarwedg\xE5\xFAn\u0180adh\u112E\u1D5D\u1D67ownarrow\xF3\u1C83arpoon\u0100lr\u1D72\u1D76ef\xF4\u1CB4igh\xF4\u1CB6\u0162\u1D7F\u1D85karo\xF7\u0F42\u026F\u1D8A\0\0\u1D8Ern;\u631Fop;\u630C\u0180cot\u1D98\u1DA3\u1DA6\u0100ry\u1D9D\u1DA1;\uC000\u{1D4B9};\u4455l;\u69F6rok;\u4111\u0100dr\u1DB0\u1DB4ot;\u62F1i\u0100;f\u1DBA\u1816\u65BF\u0100ah\u1DC0\u1DC3r\xF2\u0429a\xF2\u0FA6angle;\u69A6\u0100ci\u1DD2\u1DD5y;\u445Fgrarr;\u67FF\u0900Dacdefglmnopqrstux\u1E01\u1E09\u1E19\u1E38\u0578\u1E3C\u1E49\u1E61\u1E7E\u1EA5\u1EAF\u1EBD\u1EE1\u1F2A\u1F37\u1F44\u1F4E\u1F5A\u0100Do\u1E06\u1D34o\xF4\u1C89\u0100cs\u1E0E\u1E14ute\u803B\xE9\u40E9ter;\u6A6E\u0200aioy\u1E22\u1E27\u1E31\u1E36ron;\u411Br\u0100;c\u1E2D\u1E2E\u6256\u803B\xEA\u40EAlon;\u6255;\u444Dot;\u4117\u0100Dr\u1E41\u1E45ot;\u6252;\uC000\u{1D522}\u0180;rs\u1E50\u1E51\u1E57\u6A9Aave\u803B\xE8\u40E8\u0100;d\u1E5C\u1E5D\u6A96ot;\u6A98\u0200;ils\u1E6A\u1E6B\u1E72\u1E74\u6A99nters;\u63E7;\u6113\u0100;d\u1E79\u1E7A\u6A95ot;\u6A97\u0180aps\u1E85\u1E89\u1E97cr;\u4113ty\u0180;sv\u1E92\u1E93\u1E95\u6205et\xBB\u1E93p\u01001;\u1E9D\u1EA4\u0133\u1EA1\u1EA3;\u6004;\u6005\u6003\u0100gs\u1EAA\u1EAC;\u414Bp;\u6002\u0100gp\u1EB4\u1EB8on;\u4119f;\uC000\u{1D556}\u0180als\u1EC4\u1ECE\u1ED2r\u0100;s\u1ECA\u1ECB\u62D5l;\u69E3us;\u6A71i\u0180;lv\u1EDA\u1EDB\u1EDF\u43B5on\xBB\u1EDB;\u43F5\u0200csuv\u1EEA\u1EF3\u1F0B\u1F23\u0100io\u1EEF\u1E31rc\xBB\u1E2E\u0269\u1EF9\0\0\u1EFB\xED\u0548ant\u0100gl\u1F02\u1F06tr\xBB\u1E5Dess\xBB\u1E7A\u0180aei\u1F12\u1F16\u1F1Als;\u403Dst;\u625Fv\u0100;D\u0235\u1F20D;\u6A78parsl;\u69E5\u0100Da\u1F2F\u1F33ot;\u6253rr;\u6971\u0180cdi\u1F3E\u1F41\u1EF8r;\u612Fo\xF4\u0352\u0100ah\u1F49\u1F4B;\u43B7\u803B\xF0\u40F0\u0100mr\u1F53\u1F57l\u803B\xEB\u40EBo;\u60AC\u0180cip\u1F61\u1F64\u1F67l;\u4021s\xF4\u056E\u0100eo\u1F6C\u1F74ctatio\xEE\u0559nential\xE5\u0579\u09E1\u1F92\0\u1F9E\0\u1FA1\u1FA7\0\0\u1FC6\u1FCC\0\u1FD3\0\u1FE6\u1FEA\u2000\0\u2008\u205Allingdotse\xF1\u1E44y;\u4444male;\u6640\u0180ilr\u1FAD\u1FB3\u1FC1lig;\u8000\uFB03\u0269\u1FB9\0\0\u1FBDg;\u8000\uFB00ig;\u8000\uFB04;\uC000\u{1D523}lig;\u8000\uFB01lig;\uC000fj\u0180alt\u1FD9\u1FDC\u1FE1t;\u666Dig;\u8000\uFB02ns;\u65B1of;\u4192\u01F0\u1FEE\0\u1FF3f;\uC000\u{1D557}\u0100ak\u05BF\u1FF7\u0100;v\u1FFC\u1FFD\u62D4;\u6AD9artint;\u6A0D\u0100ao\u200C\u2055\u0100cs\u2011\u2052\u03B1\u201A\u2030\u2038\u2045\u2048\0\u2050\u03B2\u2022\u2025\u2027\u202A\u202C\0\u202E\u803B\xBD\u40BD;\u6153\u803B\xBC\u40BC;\u6155;\u6159;\u615B\u01B3\u2034\0\u2036;\u6154;\u6156\u02B4\u203E\u2041\0\0\u2043\u803B\xBE\u40BE;\u6157;\u615C5;\u6158\u01B6\u204C\0\u204E;\u615A;\u615D8;\u615El;\u6044wn;\u6322cr;\uC000\u{1D4BB}\u0880Eabcdefgijlnorstv\u2082\u2089\u209F\u20A5\u20B0\u20B4\u20F0\u20F5\u20FA\u20FF\u2103\u2112\u2138\u0317\u213E\u2152\u219E\u0100;l\u064D\u2087;\u6A8C\u0180cmp\u2090\u2095\u209Dute;\u41F5ma\u0100;d\u209C\u1CDA\u43B3;\u6A86reve;\u411F\u0100iy\u20AA\u20AErc;\u411D;\u4433ot;\u4121\u0200;lqs\u063E\u0642\u20BD\u20C9\u0180;qs\u063E\u064C\u20C4lan\xF4\u0665\u0200;cdl\u0665\u20D2\u20D5\u20E5c;\u6AA9ot\u0100;o\u20DC\u20DD\u6A80\u0100;l\u20E2\u20E3\u6A82;\u6A84\u0100;e\u20EA\u20ED\uC000\u22DB\uFE00s;\u6A94r;\uC000\u{1D524}\u0100;g\u0673\u061Bmel;\u6137cy;\u4453\u0200;Eaj\u065A\u210C\u210E\u2110;\u6A92;\u6AA5;\u6AA4\u0200Eaes\u211B\u211D\u2129\u2134;\u6269p\u0100;p\u2123\u2124\u6A8Arox\xBB\u2124\u0100;q\u212E\u212F\u6A88\u0100;q\u212E\u211Bim;\u62E7pf;\uC000\u{1D558}\u0100ci\u2143\u2146r;\u610Am\u0180;el\u066B\u214E\u2150;\u6A8E;\u6A90\u8300>;cdlqr\u05EE\u2160\u216A\u216E\u2173\u2179\u0100ci\u2165\u2167;\u6AA7r;\u6A7Aot;\u62D7Par;\u6995uest;\u6A7C\u0280adels\u2184\u216A\u2190\u0656\u219B\u01F0\u2189\0\u218Epro\xF8\u209Er;\u6978q\u0100lq\u063F\u2196les\xF3\u2088i\xED\u066B\u0100en\u21A3\u21ADrtneqq;\uC000\u2269\uFE00\xC5\u21AA\u0500Aabcefkosy\u21C4\u21C7\u21F1\u21F5\u21FA\u2218\u221D\u222F\u2268\u227Dr\xF2\u03A0\u0200ilmr\u21D0\u21D4\u21D7\u21DBrs\xF0\u1484f\xBB\u2024il\xF4\u06A9\u0100dr\u21E0\u21E4cy;\u444A\u0180;cw\u08F4\u21EB\u21EFir;\u6948;\u61ADar;\u610Firc;\u4125\u0180alr\u2201\u220E\u2213rts\u0100;u\u2209\u220A\u6665it\xBB\u220Alip;\u6026con;\u62B9r;\uC000\u{1D525}s\u0100ew\u2223\u2229arow;\u6925arow;\u6926\u0280amopr\u223A\u223E\u2243\u225E\u2263rr;\u61FFtht;\u623Bk\u0100lr\u2249\u2253eftarrow;\u61A9ightarrow;\u61AAf;\uC000\u{1D559}bar;\u6015\u0180clt\u226F\u2274\u2278r;\uC000\u{1D4BD}as\xE8\u21F4rok;\u4127\u0100bp\u2282\u2287ull;\u6043hen\xBB\u1C5B\u0AE1\u22A3\0\u22AA\0\u22B8\u22C5\u22CE\0\u22D5\u22F3\0\0\u22F8\u2322\u2367\u2362\u237F\0\u2386\u23AA\u23B4cute\u803B\xED\u40ED\u0180;iy\u0771\u22B0\u22B5rc\u803B\xEE\u40EE;\u4438\u0100cx\u22BC\u22BFy;\u4435cl\u803B\xA1\u40A1\u0100fr\u039F\u22C9;\uC000\u{1D526}rave\u803B\xEC\u40EC\u0200;ino\u073E\u22DD\u22E9\u22EE\u0100in\u22E2\u22E6nt;\u6A0Ct;\u622Dfin;\u69DCta;\u6129lig;\u4133\u0180aop\u22FE\u231A\u231D\u0180cgt\u2305\u2308\u2317r;\u412B\u0180elp\u071F\u230F\u2313in\xE5\u078Ear\xF4\u0720h;\u4131f;\u62B7ed;\u41B5\u0280;cfot\u04F4\u232C\u2331\u233D\u2341are;\u6105in\u0100;t\u2338\u2339\u621Eie;\u69DDdo\xF4\u2319\u0280;celp\u0757\u234C\u2350\u235B\u2361al;\u62BA\u0100gr\u2355\u2359er\xF3\u1563\xE3\u234Darhk;\u6A17rod;\u6A3C\u0200cgpt\u236F\u2372\u2376\u237By;\u4451on;\u412Ff;\uC000\u{1D55A}a;\u43B9uest\u803B\xBF\u40BF\u0100ci\u238A\u238Fr;\uC000\u{1D4BE}n\u0280;Edsv\u04F4\u239B\u239D\u23A1\u04F3;\u62F9ot;\u62F5\u0100;v\u23A6\u23A7\u62F4;\u62F3\u0100;i\u0777\u23AElde;\u4129\u01EB\u23B8\0\u23BCcy;\u4456l\u803B\xEF\u40EF\u0300cfmosu\u23CC\u23D7\u23DC\u23E1\u23E7\u23F5\u0100iy\u23D1\u23D5rc;\u4135;\u4439r;\uC000\u{1D527}ath;\u4237pf;\uC000\u{1D55B}\u01E3\u23EC\0\u23F1r;\uC000\u{1D4BF}rcy;\u4458kcy;\u4454\u0400acfghjos\u240B\u2416\u2422\u2427\u242D\u2431\u2435\u243Bppa\u0100;v\u2413\u2414\u43BA;\u43F0\u0100ey\u241B\u2420dil;\u4137;\u443Ar;\uC000\u{1D528}reen;\u4138cy;\u4445cy;\u445Cpf;\uC000\u{1D55C}cr;\uC000\u{1D4C0}\u0B80ABEHabcdefghjlmnoprstuv\u2470\u2481\u2486\u248D\u2491\u250E\u253D\u255A\u2580\u264E\u265E\u2665\u2679\u267D\u269A\u26B2\u26D8\u275D\u2768\u278B\u27C0\u2801\u2812\u0180art\u2477\u247A\u247Cr\xF2\u09C6\xF2\u0395ail;\u691Barr;\u690E\u0100;g\u0994\u248B;\u6A8Bar;\u6962\u0963\u24A5\0\u24AA\0\u24B1\0\0\0\0\0\u24B5\u24BA\0\u24C6\u24C8\u24CD\0\u24F9ute;\u413Amptyv;\u69B4ra\xEE\u084Cbda;\u43BBg\u0180;dl\u088E\u24C1\u24C3;\u6991\xE5\u088E;\u6A85uo\u803B\xAB\u40ABr\u0400;bfhlpst\u0899\u24DE\u24E6\u24E9\u24EB\u24EE\u24F1\u24F5\u0100;f\u089D\u24E3s;\u691Fs;\u691D\xEB\u2252p;\u61ABl;\u6939im;\u6973l;\u61A2\u0180;ae\u24FF\u2500\u2504\u6AABil;\u6919\u0100;s\u2509\u250A\u6AAD;\uC000\u2AAD\uFE00\u0180abr\u2515\u2519\u251Drr;\u690Crk;\u6772\u0100ak\u2522\u252Cc\u0100ek\u2528\u252A;\u407B;\u405B\u0100es\u2531\u2533;\u698Bl\u0100du\u2539\u253B;\u698F;\u698D\u0200aeuy\u2546\u254B\u2556\u2558ron;\u413E\u0100di\u2550\u2554il;\u413C\xEC\u08B0\xE2\u2529;\u443B\u0200cqrs\u2563\u2566\u256D\u257Da;\u6936uo\u0100;r\u0E19\u1746\u0100du\u2572\u2577har;\u6967shar;\u694Bh;\u61B2\u0280;fgqs\u258B\u258C\u0989\u25F3\u25FF\u6264t\u0280ahlrt\u2598\u25A4\u25B7\u25C2\u25E8rrow\u0100;t\u0899\u25A1a\xE9\u24F6arpoon\u0100du\u25AF\u25B4own\xBB\u045Ap\xBB\u0966eftarrows;\u61C7ight\u0180ahs\u25CD\u25D6\u25DErrow\u0100;s\u08F4\u08A7arpoon\xF3\u0F98quigarro\xF7\u21F0hreetimes;\u62CB\u0180;qs\u258B\u0993\u25FAlan\xF4\u09AC\u0280;cdgs\u09AC\u260A\u260D\u261D\u2628c;\u6AA8ot\u0100;o\u2614\u2615\u6A7F\u0100;r\u261A\u261B\u6A81;\u6A83\u0100;e\u2622\u2625\uC000\u22DA\uFE00s;\u6A93\u0280adegs\u2633\u2639\u263D\u2649\u264Bppro\xF8\u24C6ot;\u62D6q\u0100gq\u2643\u2645\xF4\u0989gt\xF2\u248C\xF4\u099Bi\xED\u09B2\u0180ilr\u2655\u08E1\u265Asht;\u697C;\uC000\u{1D529}\u0100;E\u099C\u2663;\u6A91\u0161\u2669\u2676r\u0100du\u25B2\u266E\u0100;l\u0965\u2673;\u696Alk;\u6584cy;\u4459\u0280;acht\u0A48\u2688\u268B\u2691\u2696r\xF2\u25C1orne\xF2\u1D08ard;\u696Bri;\u65FA\u0100io\u269F\u26A4dot;\u4140ust\u0100;a\u26AC\u26AD\u63B0che\xBB\u26AD\u0200Eaes\u26BB\u26BD\u26C9\u26D4;\u6268p\u0100;p\u26C3\u26C4\u6A89rox\xBB\u26C4\u0100;q\u26CE\u26CF\u6A87\u0100;q\u26CE\u26BBim;\u62E6\u0400abnoptwz\u26E9\u26F4\u26F7\u271A\u272F\u2741\u2747\u2750\u0100nr\u26EE\u26F1g;\u67ECr;\u61FDr\xEB\u08C1g\u0180lmr\u26FF\u270D\u2714eft\u0100ar\u09E6\u2707ight\xE1\u09F2apsto;\u67FCight\xE1\u09FDparrow\u0100lr\u2725\u2729ef\xF4\u24EDight;\u61AC\u0180afl\u2736\u2739\u273Dr;\u6985;\uC000\u{1D55D}us;\u6A2Dimes;\u6A34\u0161\u274B\u274Fst;\u6217\xE1\u134E\u0180;ef\u2757\u2758\u1800\u65CAnge\xBB\u2758ar\u0100;l\u2764\u2765\u4028t;\u6993\u0280achmt\u2773\u2776\u277C\u2785\u2787r\xF2\u08A8orne\xF2\u1D8Car\u0100;d\u0F98\u2783;\u696D;\u600Eri;\u62BF\u0300achiqt\u2798\u279D\u0A40\u27A2\u27AE\u27BBquo;\u6039r;\uC000\u{1D4C1}m\u0180;eg\u09B2\u27AA\u27AC;\u6A8D;\u6A8F\u0100bu\u252A\u27B3o\u0100;r\u0E1F\u27B9;\u601Arok;\u4142\u8400<;cdhilqr\u082B\u27D2\u2639\u27DC\u27E0\u27E5\u27EA\u27F0\u0100ci\u27D7\u27D9;\u6AA6r;\u6A79re\xE5\u25F2mes;\u62C9arr;\u6976uest;\u6A7B\u0100Pi\u27F5\u27F9ar;\u6996\u0180;ef\u2800\u092D\u181B\u65C3r\u0100du\u2807\u280Dshar;\u694Ahar;\u6966\u0100en\u2817\u2821rtneqq;\uC000\u2268\uFE00\xC5\u281E\u0700Dacdefhilnopsu\u2840\u2845\u2882\u288E\u2893\u28A0\u28A5\u28A8\u28DA\u28E2\u28E4\u0A83\u28F3\u2902Dot;\u623A\u0200clpr\u284E\u2852\u2863\u287Dr\u803B\xAF\u40AF\u0100et\u2857\u2859;\u6642\u0100;e\u285E\u285F\u6720se\xBB\u285F\u0100;s\u103B\u2868to\u0200;dlu\u103B\u2873\u2877\u287Bow\xEE\u048Cef\xF4\u090F\xF0\u13D1ker;\u65AE\u0100oy\u2887\u288Cmma;\u6A29;\u443Cash;\u6014asuredangle\xBB\u1626r;\uC000\u{1D52A}o;\u6127\u0180cdn\u28AF\u28B4\u28C9ro\u803B\xB5\u40B5\u0200;acd\u1464\u28BD\u28C0\u28C4s\xF4\u16A7ir;\u6AF0ot\u80BB\xB7\u01B5us\u0180;bd\u28D2\u1903\u28D3\u6212\u0100;u\u1D3C\u28D8;\u6A2A\u0163\u28DE\u28E1p;\u6ADB\xF2\u2212\xF0\u0A81\u0100dp\u28E9\u28EEels;\u62A7f;\uC000\u{1D55E}\u0100ct\u28F8\u28FDr;\uC000\u{1D4C2}pos\xBB\u159D\u0180;lm\u2909\u290A\u290D\u43BCtimap;\u62B8\u0C00GLRVabcdefghijlmoprstuvw\u2942\u2953\u297E\u2989\u2998\u29DA\u29E9\u2A15\u2A1A\u2A58\u2A5D\u2A83\u2A95\u2AA4\u2AA8\u2B04\u2B07\u2B44\u2B7F\u2BAE\u2C34\u2C67\u2C7C\u2CE9\u0100gt\u2947\u294B;\uC000\u22D9\u0338\u0100;v\u2950\u0BCF\uC000\u226B\u20D2\u0180elt\u295A\u2972\u2976ft\u0100ar\u2961\u2967rrow;\u61CDightarrow;\u61CE;\uC000\u22D8\u0338\u0100;v\u297B\u0C47\uC000\u226A\u20D2ightarrow;\u61CF\u0100Dd\u298E\u2993ash;\u62AFash;\u62AE\u0280bcnpt\u29A3\u29A7\u29AC\u29B1\u29CCla\xBB\u02DEute;\u4144g;\uC000\u2220\u20D2\u0280;Eiop\u0D84\u29BC\u29C0\u29C5\u29C8;\uC000\u2A70\u0338d;\uC000\u224B\u0338s;\u4149ro\xF8\u0D84ur\u0100;a\u29D3\u29D4\u666El\u0100;s\u29D3\u0B38\u01F3\u29DF\0\u29E3p\u80BB\xA0\u0B37mp\u0100;e\u0BF9\u0C00\u0280aeouy\u29F4\u29FE\u2A03\u2A10\u2A13\u01F0\u29F9\0\u29FB;\u6A43on;\u4148dil;\u4146ng\u0100;d\u0D7E\u2A0Aot;\uC000\u2A6D\u0338p;\u6A42;\u443Dash;\u6013\u0380;Aadqsx\u0B92\u2A29\u2A2D\u2A3B\u2A41\u2A45\u2A50rr;\u61D7r\u0100hr\u2A33\u2A36k;\u6924\u0100;o\u13F2\u13F0ot;\uC000\u2250\u0338ui\xF6\u0B63\u0100ei\u2A4A\u2A4Ear;\u6928\xED\u0B98ist\u0100;s\u0BA0\u0B9Fr;\uC000\u{1D52B}\u0200Eest\u0BC5\u2A66\u2A79\u2A7C\u0180;qs\u0BBC\u2A6D\u0BE1\u0180;qs\u0BBC\u0BC5\u2A74lan\xF4\u0BE2i\xED\u0BEA\u0100;r\u0BB6\u2A81\xBB\u0BB7\u0180Aap\u2A8A\u2A8D\u2A91r\xF2\u2971rr;\u61AEar;\u6AF2\u0180;sv\u0F8D\u2A9C\u0F8C\u0100;d\u2AA1\u2AA2\u62FC;\u62FAcy;\u445A\u0380AEadest\u2AB7\u2ABA\u2ABE\u2AC2\u2AC5\u2AF6\u2AF9r\xF2\u2966;\uC000\u2266\u0338rr;\u619Ar;\u6025\u0200;fqs\u0C3B\u2ACE\u2AE3\u2AEFt\u0100ar\u2AD4\u2AD9rro\xF7\u2AC1ightarro\xF7\u2A90\u0180;qs\u0C3B\u2ABA\u2AEAlan\xF4\u0C55\u0100;s\u0C55\u2AF4\xBB\u0C36i\xED\u0C5D\u0100;r\u0C35\u2AFEi\u0100;e\u0C1A\u0C25i\xE4\u0D90\u0100pt\u2B0C\u2B11f;\uC000\u{1D55F}\u8180\xAC;in\u2B19\u2B1A\u2B36\u40ACn\u0200;Edv\u0B89\u2B24\u2B28\u2B2E;\uC000\u22F9\u0338ot;\uC000\u22F5\u0338\u01E1\u0B89\u2B33\u2B35;\u62F7;\u62F6i\u0100;v\u0CB8\u2B3C\u01E1\u0CB8\u2B41\u2B43;\u62FE;\u62FD\u0180aor\u2B4B\u2B63\u2B69r\u0200;ast\u0B7B\u2B55\u2B5A\u2B5Flle\xEC\u0B7Bl;\uC000\u2AFD\u20E5;\uC000\u2202\u0338lint;\u6A14\u0180;ce\u0C92\u2B70\u2B73u\xE5\u0CA5\u0100;c\u0C98\u2B78\u0100;e\u0C92\u2B7D\xF1\u0C98\u0200Aait\u2B88\u2B8B\u2B9D\u2BA7r\xF2\u2988rr\u0180;cw\u2B94\u2B95\u2B99\u619B;\uC000\u2933\u0338;\uC000\u219D\u0338ghtarrow\xBB\u2B95ri\u0100;e\u0CCB\u0CD6\u0380chimpqu\u2BBD\u2BCD\u2BD9\u2B04\u0B78\u2BE4\u2BEF\u0200;cer\u0D32\u2BC6\u0D37\u2BC9u\xE5\u0D45;\uC000\u{1D4C3}ort\u026D\u2B05\0\0\u2BD6ar\xE1\u2B56m\u0100;e\u0D6E\u2BDF\u0100;q\u0D74\u0D73su\u0100bp\u2BEB\u2BED\xE5\u0CF8\xE5\u0D0B\u0180bcp\u2BF6\u2C11\u2C19\u0200;Ees\u2BFF\u2C00\u0D22\u2C04\u6284;\uC000\u2AC5\u0338et\u0100;e\u0D1B\u2C0Bq\u0100;q\u0D23\u2C00c\u0100;e\u0D32\u2C17\xF1\u0D38\u0200;Ees\u2C22\u2C23\u0D5F\u2C27\u6285;\uC000\u2AC6\u0338et\u0100;e\u0D58\u2C2Eq\u0100;q\u0D60\u2C23\u0200gilr\u2C3D\u2C3F\u2C45\u2C47\xEC\u0BD7lde\u803B\xF1\u40F1\xE7\u0C43iangle\u0100lr\u2C52\u2C5Ceft\u0100;e\u0C1A\u2C5A\xF1\u0C26ight\u0100;e\u0CCB\u2C65\xF1\u0CD7\u0100;m\u2C6C\u2C6D\u43BD\u0180;es\u2C74\u2C75\u2C79\u4023ro;\u6116p;\u6007\u0480DHadgilrs\u2C8F\u2C94\u2C99\u2C9E\u2CA3\u2CB0\u2CB6\u2CD3\u2CE3ash;\u62ADarr;\u6904p;\uC000\u224D\u20D2ash;\u62AC\u0100et\u2CA8\u2CAC;\uC000\u2265\u20D2;\uC000>\u20D2nfin;\u69DE\u0180Aet\u2CBD\u2CC1\u2CC5rr;\u6902;\uC000\u2264\u20D2\u0100;r\u2CCA\u2CCD\uC000<\u20D2ie;\uC000\u22B4\u20D2\u0100At\u2CD8\u2CDCrr;\u6903rie;\uC000\u22B5\u20D2im;\uC000\u223C\u20D2\u0180Aan\u2CF0\u2CF4\u2D02rr;\u61D6r\u0100hr\u2CFA\u2CFDk;\u6923\u0100;o\u13E7\u13E5ear;\u6927\u1253\u1A95\0\0\0\0\0\0\0\0\0\0\0\0\0\u2D2D\0\u2D38\u2D48\u2D60\u2D65\u2D72\u2D84\u1B07\0\0\u2D8D\u2DAB\0\u2DC8\u2DCE\0\u2DDC\u2E19\u2E2B\u2E3E\u2E43\u0100cs\u2D31\u1A97ute\u803B\xF3\u40F3\u0100iy\u2D3C\u2D45r\u0100;c\u1A9E\u2D42\u803B\xF4\u40F4;\u443E\u0280abios\u1AA0\u2D52\u2D57\u01C8\u2D5Alac;\u4151v;\u6A38old;\u69BClig;\u4153\u0100cr\u2D69\u2D6Dir;\u69BF;\uC000\u{1D52C}\u036F\u2D79\0\0\u2D7C\0\u2D82n;\u42DBave\u803B\xF2\u40F2;\u69C1\u0100bm\u2D88\u0DF4ar;\u69B5\u0200acit\u2D95\u2D98\u2DA5\u2DA8r\xF2\u1A80\u0100ir\u2D9D\u2DA0r;\u69BEoss;\u69BBn\xE5\u0E52;\u69C0\u0180aei\u2DB1\u2DB5\u2DB9cr;\u414Dga;\u43C9\u0180cdn\u2DC0\u2DC5\u01CDron;\u43BF;\u69B6pf;\uC000\u{1D560}\u0180ael\u2DD4\u2DD7\u01D2r;\u69B7rp;\u69B9\u0380;adiosv\u2DEA\u2DEB\u2DEE\u2E08\u2E0D\u2E10\u2E16\u6228r\xF2\u1A86\u0200;efm\u2DF7\u2DF8\u2E02\u2E05\u6A5Dr\u0100;o\u2DFE\u2DFF\u6134f\xBB\u2DFF\u803B\xAA\u40AA\u803B\xBA\u40BAgof;\u62B6r;\u6A56lope;\u6A57;\u6A5B\u0180clo\u2E1F\u2E21\u2E27\xF2\u2E01ash\u803B\xF8\u40F8l;\u6298i\u016C\u2E2F\u2E34de\u803B\xF5\u40F5es\u0100;a\u01DB\u2E3As;\u6A36ml\u803B\xF6\u40F6bar;\u633D\u0AE1\u2E5E\0\u2E7D\0\u2E80\u2E9D\0\u2EA2\u2EB9\0\0\u2ECB\u0E9C\0\u2F13\0\0\u2F2B\u2FBC\0\u2FC8r\u0200;ast\u0403\u2E67\u2E72\u0E85\u8100\xB6;l\u2E6D\u2E6E\u40B6le\xEC\u0403\u0269\u2E78\0\0\u2E7Bm;\u6AF3;\u6AFDy;\u443Fr\u0280cimpt\u2E8B\u2E8F\u2E93\u1865\u2E97nt;\u4025od;\u402Eil;\u6030enk;\u6031r;\uC000\u{1D52D}\u0180imo\u2EA8\u2EB0\u2EB4\u0100;v\u2EAD\u2EAE\u43C6;\u43D5ma\xF4\u0A76ne;\u660E\u0180;tv\u2EBF\u2EC0\u2EC8\u43C0chfork\xBB\u1FFD;\u43D6\u0100au\u2ECF\u2EDFn\u0100ck\u2ED5\u2EDDk\u0100;h\u21F4\u2EDB;\u610E\xF6\u21F4s\u0480;abcdemst\u2EF3\u2EF4\u1908\u2EF9\u2EFD\u2F04\u2F06\u2F0A\u2F0E\u402Bcir;\u6A23ir;\u6A22\u0100ou\u1D40\u2F02;\u6A25;\u6A72n\u80BB\xB1\u0E9Dim;\u6A26wo;\u6A27\u0180ipu\u2F19\u2F20\u2F25ntint;\u6A15f;\uC000\u{1D561}nd\u803B\xA3\u40A3\u0500;Eaceinosu\u0EC8\u2F3F\u2F41\u2F44\u2F47\u2F81\u2F89\u2F92\u2F7E\u2FB6;\u6AB3p;\u6AB7u\xE5\u0ED9\u0100;c\u0ECE\u2F4C\u0300;acens\u0EC8\u2F59\u2F5F\u2F66\u2F68\u2F7Eppro\xF8\u2F43urlye\xF1\u0ED9\xF1\u0ECE\u0180aes\u2F6F\u2F76\u2F7Approx;\u6AB9qq;\u6AB5im;\u62E8i\xED\u0EDFme\u0100;s\u2F88\u0EAE\u6032\u0180Eas\u2F78\u2F90\u2F7A\xF0\u2F75\u0180dfp\u0EEC\u2F99\u2FAF\u0180als\u2FA0\u2FA5\u2FAAlar;\u632Eine;\u6312urf;\u6313\u0100;t\u0EFB\u2FB4\xEF\u0EFBrel;\u62B0\u0100ci\u2FC0\u2FC5r;\uC000\u{1D4C5};\u43C8ncsp;\u6008\u0300fiopsu\u2FDA\u22E2\u2FDF\u2FE5\u2FEB\u2FF1r;\uC000\u{1D52E}pf;\uC000\u{1D562}rime;\u6057cr;\uC000\u{1D4C6}\u0180aeo\u2FF8\u3009\u3013t\u0100ei\u2FFE\u3005rnion\xF3\u06B0nt;\u6A16st\u0100;e\u3010\u3011\u403F\xF1\u1F19\xF4\u0F14\u0A80ABHabcdefhilmnoprstux\u3040\u3051\u3055\u3059\u30E0\u310E\u312B\u3147\u3162\u3172\u318E\u3206\u3215\u3224\u3229\u3258\u326E\u3272\u3290\u32B0\u32B7\u0180art\u3047\u304A\u304Cr\xF2\u10B3\xF2\u03DDail;\u691Car\xF2\u1C65ar;\u6964\u0380cdenqrt\u3068\u3075\u3078\u307F\u308F\u3094\u30CC\u0100eu\u306D\u3071;\uC000\u223D\u0331te;\u4155i\xE3\u116Emptyv;\u69B3g\u0200;del\u0FD1\u3089\u308B\u308D;\u6992;\u69A5\xE5\u0FD1uo\u803B\xBB\u40BBr\u0580;abcfhlpstw\u0FDC\u30AC\u30AF\u30B7\u30B9\u30BC\u30BE\u30C0\u30C3\u30C7\u30CAp;\u6975\u0100;f\u0FE0\u30B4s;\u6920;\u6933s;\u691E\xEB\u225D\xF0\u272El;\u6945im;\u6974l;\u61A3;\u619D\u0100ai\u30D1\u30D5il;\u691Ao\u0100;n\u30DB\u30DC\u6236al\xF3\u0F1E\u0180abr\u30E7\u30EA\u30EEr\xF2\u17E5rk;\u6773\u0100ak\u30F3\u30FDc\u0100ek\u30F9\u30FB;\u407D;\u405D\u0100es\u3102\u3104;\u698Cl\u0100du\u310A\u310C;\u698E;\u6990\u0200aeuy\u3117\u311C\u3127\u3129ron;\u4159\u0100di\u3121\u3125il;\u4157\xEC\u0FF2\xE2\u30FA;\u4440\u0200clqs\u3134\u3137\u313D\u3144a;\u6937dhar;\u6969uo\u0100;r\u020E\u020Dh;\u61B3\u0180acg\u314E\u315F\u0F44l\u0200;ips\u0F78\u3158\u315B\u109Cn\xE5\u10BBar\xF4\u0FA9t;\u65AD\u0180ilr\u3169\u1023\u316Esht;\u697D;\uC000\u{1D52F}\u0100ao\u3177\u3186r\u0100du\u317D\u317F\xBB\u047B\u0100;l\u1091\u3184;\u696C\u0100;v\u318B\u318C\u43C1;\u43F1\u0180gns\u3195\u31F9\u31FCht\u0300ahlrst\u31A4\u31B0\u31C2\u31D8\u31E4\u31EErrow\u0100;t\u0FDC\u31ADa\xE9\u30C8arpoon\u0100du\u31BB\u31BFow\xEE\u317Ep\xBB\u1092eft\u0100ah\u31CA\u31D0rrow\xF3\u0FEAarpoon\xF3\u0551ightarrows;\u61C9quigarro\xF7\u30CBhreetimes;\u62CCg;\u42DAingdotse\xF1\u1F32\u0180ahm\u320D\u3210\u3213r\xF2\u0FEAa\xF2\u0551;\u600Foust\u0100;a\u321E\u321F\u63B1che\xBB\u321Fmid;\u6AEE\u0200abpt\u3232\u323D\u3240\u3252\u0100nr\u3237\u323Ag;\u67EDr;\u61FEr\xEB\u1003\u0180afl\u3247\u324A\u324Er;\u6986;\uC000\u{1D563}us;\u6A2Eimes;\u6A35\u0100ap\u325D\u3267r\u0100;g\u3263\u3264\u4029t;\u6994olint;\u6A12ar\xF2\u31E3\u0200achq\u327B\u3280\u10BC\u3285quo;\u603Ar;\uC000\u{1D4C7}\u0100bu\u30FB\u328Ao\u0100;r\u0214\u0213\u0180hir\u3297\u329B\u32A0re\xE5\u31F8mes;\u62CAi\u0200;efl\u32AA\u1059\u1821\u32AB\u65B9tri;\u69CEluhar;\u6968;\u611E\u0D61\u32D5\u32DB\u32DF\u332C\u3338\u3371\0\u337A\u33A4\0\0\u33EC\u33F0\0\u3428\u3448\u345A\u34AD\u34B1\u34CA\u34F1\0\u3616\0\0\u3633cute;\u415Bqu\xEF\u27BA\u0500;Eaceinpsy\u11ED\u32F3\u32F5\u32FF\u3302\u330B\u330F\u331F\u3326\u3329;\u6AB4\u01F0\u32FA\0\u32FC;\u6AB8on;\u4161u\xE5\u11FE\u0100;d\u11F3\u3307il;\u415Frc;\u415D\u0180Eas\u3316\u3318\u331B;\u6AB6p;\u6ABAim;\u62E9olint;\u6A13i\xED\u1204;\u4441ot\u0180;be\u3334\u1D47\u3335\u62C5;\u6A66\u0380Aacmstx\u3346\u334A\u3357\u335B\u335E\u3363\u336Drr;\u61D8r\u0100hr\u3350\u3352\xEB\u2228\u0100;o\u0A36\u0A34t\u803B\xA7\u40A7i;\u403Bwar;\u6929m\u0100in\u3369\xF0nu\xF3\xF1t;\u6736r\u0100;o\u3376\u2055\uC000\u{1D530}\u0200acoy\u3382\u3386\u3391\u33A0rp;\u666F\u0100hy\u338B\u338Fcy;\u4449;\u4448rt\u026D\u3399\0\0\u339Ci\xE4\u1464ara\xEC\u2E6F\u803B\xAD\u40AD\u0100gm\u33A8\u33B4ma\u0180;fv\u33B1\u33B2\u33B2\u43C3;\u43C2\u0400;deglnpr\u12AB\u33C5\u33C9\u33CE\u33D6\u33DE\u33E1\u33E6ot;\u6A6A\u0100;q\u12B1\u12B0\u0100;E\u33D3\u33D4\u6A9E;\u6AA0\u0100;E\u33DB\u33DC\u6A9D;\u6A9Fe;\u6246lus;\u6A24arr;\u6972ar\xF2\u113D\u0200aeit\u33F8\u3408\u340F\u3417\u0100ls\u33FD\u3404lsetm\xE9\u336Ahp;\u6A33parsl;\u69E4\u0100dl\u1463\u3414e;\u6323\u0100;e\u341C\u341D\u6AAA\u0100;s\u3422\u3423\u6AAC;\uC000\u2AAC\uFE00\u0180flp\u342E\u3433\u3442tcy;\u444C\u0100;b\u3438\u3439\u402F\u0100;a\u343E\u343F\u69C4r;\u633Ff;\uC000\u{1D564}a\u0100dr\u344D\u0402es\u0100;u\u3454\u3455\u6660it\xBB\u3455\u0180csu\u3460\u3479\u349F\u0100au\u3465\u346Fp\u0100;s\u1188\u346B;\uC000\u2293\uFE00p\u0100;s\u11B4\u3475;\uC000\u2294\uFE00u\u0100bp\u347F\u348F\u0180;es\u1197\u119C\u3486et\u0100;e\u1197\u348D\xF1\u119D\u0180;es\u11A8\u11AD\u3496et\u0100;e\u11A8\u349D\xF1\u11AE\u0180;af\u117B\u34A6\u05B0r\u0165\u34AB\u05B1\xBB\u117Car\xF2\u1148\u0200cemt\u34B9\u34BE\u34C2\u34C5r;\uC000\u{1D4C8}tm\xEE\xF1i\xEC\u3415ar\xE6\u11BE\u0100ar\u34CE\u34D5r\u0100;f\u34D4\u17BF\u6606\u0100an\u34DA\u34EDight\u0100ep\u34E3\u34EApsilo\xEE\u1EE0h\xE9\u2EAFs\xBB\u2852\u0280bcmnp\u34FB\u355E\u1209\u358B\u358E\u0480;Edemnprs\u350E\u350F\u3511\u3515\u351E\u3523\u352C\u3531\u3536\u6282;\u6AC5ot;\u6ABD\u0100;d\u11DA\u351Aot;\u6AC3ult;\u6AC1\u0100Ee\u3528\u352A;\u6ACB;\u628Alus;\u6ABFarr;\u6979\u0180eiu\u353D\u3552\u3555t\u0180;en\u350E\u3545\u354Bq\u0100;q\u11DA\u350Feq\u0100;q\u352B\u3528m;\u6AC7\u0100bp\u355A\u355C;\u6AD5;\u6AD3c\u0300;acens\u11ED\u356C\u3572\u3579\u357B\u3326ppro\xF8\u32FAurlye\xF1\u11FE\xF1\u11F3\u0180aes\u3582\u3588\u331Bppro\xF8\u331Aq\xF1\u3317g;\u666A\u0680123;Edehlmnps\u35A9\u35AC\u35AF\u121C\u35B2\u35B4\u35C0\u35C9\u35D5\u35DA\u35DF\u35E8\u35ED\u803B\xB9\u40B9\u803B\xB2\u40B2\u803B\xB3\u40B3;\u6AC6\u0100os\u35B9\u35BCt;\u6ABEub;\u6AD8\u0100;d\u1222\u35C5ot;\u6AC4s\u0100ou\u35CF\u35D2l;\u67C9b;\u6AD7arr;\u697Bult;\u6AC2\u0100Ee\u35E4\u35E6;\u6ACC;\u628Blus;\u6AC0\u0180eiu\u35F4\u3609\u360Ct\u0180;en\u121C\u35FC\u3602q\u0100;q\u1222\u35B2eq\u0100;q\u35E7\u35E4m;\u6AC8\u0100bp\u3611\u3613;\u6AD4;\u6AD6\u0180Aan\u361C\u3620\u362Drr;\u61D9r\u0100hr\u3626\u3628\xEB\u222E\u0100;o\u0A2B\u0A29war;\u692Alig\u803B\xDF\u40DF\u0BE1\u3651\u365D\u3660\u12CE\u3673\u3679\0\u367E\u36C2\0\0\0\0\0\u36DB\u3703\0\u3709\u376C\0\0\0\u3787\u0272\u3656\0\0\u365Bget;\u6316;\u43C4r\xEB\u0E5F\u0180aey\u3666\u366B\u3670ron;\u4165dil;\u4163;\u4442lrec;\u6315r;\uC000\u{1D531}\u0200eiko\u3686\u369D\u36B5\u36BC\u01F2\u368B\0\u3691e\u01004f\u1284\u1281a\u0180;sv\u3698\u3699\u369B\u43B8ym;\u43D1\u0100cn\u36A2\u36B2k\u0100as\u36A8\u36AEppro\xF8\u12C1im\xBB\u12ACs\xF0\u129E\u0100as\u36BA\u36AE\xF0\u12C1rn\u803B\xFE\u40FE\u01EC\u031F\u36C6\u22E7es\u8180\xD7;bd\u36CF\u36D0\u36D8\u40D7\u0100;a\u190F\u36D5r;\u6A31;\u6A30\u0180eps\u36E1\u36E3\u3700\xE1\u2A4D\u0200;bcf\u0486\u36EC\u36F0\u36F4ot;\u6336ir;\u6AF1\u0100;o\u36F9\u36FC\uC000\u{1D565}rk;\u6ADA\xE1\u3362rime;\u6034\u0180aip\u370F\u3712\u3764d\xE5\u1248\u0380adempst\u3721\u374D\u3740\u3751\u3757\u375C\u375Fngle\u0280;dlqr\u3730\u3731\u3736\u3740\u3742\u65B5own\xBB\u1DBBeft\u0100;e\u2800\u373E\xF1\u092E;\u625Cight\u0100;e\u32AA\u374B\xF1\u105Aot;\u65ECinus;\u6A3Alus;\u6A39b;\u69CDime;\u6A3Bezium;\u63E2\u0180cht\u3772\u377D\u3781\u0100ry\u3777\u377B;\uC000\u{1D4C9};\u4446cy;\u445Brok;\u4167\u0100io\u378B\u378Ex\xF4\u1777head\u0100lr\u3797\u37A0eftarro\xF7\u084Fightarrow\xBB\u0F5D\u0900AHabcdfghlmoprstuw\u37D0\u37D3\u37D7\u37E4\u37F0\u37FC\u380E\u381C\u3823\u3834\u3851\u385D\u386B\u38A9\u38CC\u38D2\u38EA\u38F6r\xF2\u03EDar;\u6963\u0100cr\u37DC\u37E2ute\u803B\xFA\u40FA\xF2\u1150r\u01E3\u37EA\0\u37EDy;\u445Eve;\u416D\u0100iy\u37F5\u37FArc\u803B\xFB\u40FB;\u4443\u0180abh\u3803\u3806\u380Br\xF2\u13ADlac;\u4171a\xF2\u13C3\u0100ir\u3813\u3818sht;\u697E;\uC000\u{1D532}rave\u803B\xF9\u40F9\u0161\u3827\u3831r\u0100lr\u382C\u382E\xBB\u0957\xBB\u1083lk;\u6580\u0100ct\u3839\u384D\u026F\u383F\0\0\u384Arn\u0100;e\u3845\u3846\u631Cr\xBB\u3846op;\u630Fri;\u65F8\u0100al\u3856\u385Acr;\u416B\u80BB\xA8\u0349\u0100gp\u3862\u3866on;\u4173f;\uC000\u{1D566}\u0300adhlsu\u114B\u3878\u387D\u1372\u3891\u38A0own\xE1\u13B3arpoon\u0100lr\u3888\u388Cef\xF4\u382Digh\xF4\u382Fi\u0180;hl\u3899\u389A\u389C\u43C5\xBB\u13FAon\xBB\u389Aparrows;\u61C8\u0180cit\u38B0\u38C4\u38C8\u026F\u38B6\0\0\u38C1rn\u0100;e\u38BC\u38BD\u631Dr\xBB\u38BDop;\u630Eng;\u416Fri;\u65F9cr;\uC000\u{1D4CA}\u0180dir\u38D9\u38DD\u38E2ot;\u62F0lde;\u4169i\u0100;f\u3730\u38E8\xBB\u1813\u0100am\u38EF\u38F2r\xF2\u38A8l\u803B\xFC\u40FCangle;\u69A7\u0780ABDacdeflnoprsz\u391C\u391F\u3929\u392D\u39B5\u39B8\u39BD\u39DF\u39E4\u39E8\u39F3\u39F9\u39FD\u3A01\u3A20r\xF2\u03F7ar\u0100;v\u3926\u3927\u6AE8;\u6AE9as\xE8\u03E1\u0100nr\u3932\u3937grt;\u699C\u0380eknprst\u34E3\u3946\u394B\u3952\u395D\u3964\u3996app\xE1\u2415othin\xE7\u1E96\u0180hir\u34EB\u2EC8\u3959op\xF4\u2FB5\u0100;h\u13B7\u3962\xEF\u318D\u0100iu\u3969\u396Dgm\xE1\u33B3\u0100bp\u3972\u3984setneq\u0100;q\u397D\u3980\uC000\u228A\uFE00;\uC000\u2ACB\uFE00setneq\u0100;q\u398F\u3992\uC000\u228B\uFE00;\uC000\u2ACC\uFE00\u0100hr\u399B\u399Fet\xE1\u369Ciangle\u0100lr\u39AA\u39AFeft\xBB\u0925ight\xBB\u1051y;\u4432ash\xBB\u1036\u0180elr\u39C4\u39D2\u39D7\u0180;be\u2DEA\u39CB\u39CFar;\u62BBq;\u625Alip;\u62EE\u0100bt\u39DC\u1468a\xF2\u1469r;\uC000\u{1D533}tr\xE9\u39AEsu\u0100bp\u39EF\u39F1\xBB\u0D1C\xBB\u0D59pf;\uC000\u{1D567}ro\xF0\u0EFBtr\xE9\u39B4\u0100cu\u3A06\u3A0Br;\uC000\u{1D4CB}\u0100bp\u3A10\u3A18n\u0100Ee\u3980\u3A16\xBB\u397En\u0100Ee\u3992\u3A1E\xBB\u3990igzag;\u699A\u0380cefoprs\u3A36\u3A3B\u3A56\u3A5B\u3A54\u3A61\u3A6Airc;\u4175\u0100di\u3A40\u3A51\u0100bg\u3A45\u3A49ar;\u6A5Fe\u0100;q\u15FA\u3A4F;\u6259erp;\u6118r;\uC000\u{1D534}pf;\uC000\u{1D568}\u0100;e\u1479\u3A66at\xE8\u1479cr;\uC000\u{1D4CC}\u0AE3\u178E\u3A87\0\u3A8B\0\u3A90\u3A9B\0\0\u3A9D\u3AA8\u3AAB\u3AAF\0\0\u3AC3\u3ACE\0\u3AD8\u17DC\u17DFtr\xE9\u17D1r;\uC000\u{1D535}\u0100Aa\u3A94\u3A97r\xF2\u03C3r\xF2\u09F6;\u43BE\u0100Aa\u3AA1\u3AA4r\xF2\u03B8r\xF2\u09EBa\xF0\u2713is;\u62FB\u0180dpt\u17A4\u3AB5\u3ABE\u0100fl\u3ABA\u17A9;\uC000\u{1D569}im\xE5\u17B2\u0100Aa\u3AC7\u3ACAr\xF2\u03CEr\xF2\u0A01\u0100cq\u3AD2\u17B8r;\uC000\u{1D4CD}\u0100pt\u17D6\u3ADCr\xE9\u17D4\u0400acefiosu\u3AF0\u3AFD\u3B08\u3B0C\u3B11\u3B15\u3B1B\u3B21c\u0100uy\u3AF6\u3AFBte\u803B\xFD\u40FD;\u444F\u0100iy\u3B02\u3B06rc;\u4177;\u444Bn\u803B\xA5\u40A5r;\uC000\u{1D536}cy;\u4457pf;\uC000\u{1D56A}cr;\uC000\u{1D4CE}\u0100cm\u3B26\u3B29y;\u444El\u803B\xFF\u40FF\u0500acdefhiosw\u3B42\u3B48\u3B54\u3B58\u3B64\u3B69\u3B6D\u3B74\u3B7A\u3B80cute;\u417A\u0100ay\u3B4D\u3B52ron;\u417E;\u4437ot;\u417C\u0100et\u3B5D\u3B61tr\xE6\u155Fa;\u43B6r;\uC000\u{1D537}cy;\u4436grarr;\u61DDpf;\uC000\u{1D56B}cr;\uC000\u{1D4CF}\u0100jn\u3B85\u3B87;\u600Dj;\u600C'.split("").map(e=>e.charCodeAt(0)));var Qe=new Uint16Array("\u0200aglq \x1B\u026D\0\0p;\u4026os;\u4027t;\u403Et;\u403Cuot;\u4022".split("").map(e=>e.charCodeAt(0)));var pu,bs=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),ce=(pu=String.fromCodePoint)!==null&&pu!==void 0?pu:function(e){let t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|e&1023),t+=String.fromCharCode(e),t};function _e(e){var t;return e>=55296&&e<=57343||e>1114111?65533:(t=bs.get(e))!==null&&t!==void 0?t:e}var _;(function(e){e[e.NUM=35]="NUM",e[e.SEMI=59]="SEMI",e[e.EQUALS=61]="EQUALS",e[e.ZERO=48]="ZERO",e[e.NINE=57]="NINE",e[e.LOWER_A=97]="LOWER_A",e[e.LOWER_F=102]="LOWER_F",e[e.LOWER_X=120]="LOWER_X",e[e.LOWER_Z=122]="LOWER_Z",e[e.UPPER_A=65]="UPPER_A",e[e.UPPER_F=70]="UPPER_F",e[e.UPPER_Z=90]="UPPER_Z"})(_||(_={}));var xs=32,P;(function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.BRANCH_LENGTH=16256]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"})(P||(P={}));function mu(e){return e>=_.ZERO&&e<=_.NINE}function ws(e){return e>=_.UPPER_A&&e<=_.UPPER_F||e>=_.LOWER_A&&e<=_.LOWER_F}function ys(e){return e>=_.UPPER_A&&e<=_.UPPER_Z||e>=_.LOWER_A&&e<=_.LOWER_Z||mu(e)}function vs(e){return e===_.EQUALS||ys(e)}var A;(function(e){e[e.EntityStart=0]="EntityStart",e[e.NumericStart=1]="NumericStart",e[e.NumericDecimal=2]="NumericDecimal",e[e.NumericHex=3]="NumericHex",e[e.NamedEntity=4]="NamedEntity"})(A||(A={}));var G;(function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"})(G||(G={}));var et=class{constructor(t,u,r){this.decodeTree=t,this.emitCodePoint=u,this.errors=r,this.state=A.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=G.Strict}startEntity(t){this.decodeMode=t,this.state=A.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(t,u){switch(this.state){case A.EntityStart:return t.charCodeAt(u)===_.NUM?(this.state=A.NumericStart,this.consumed+=1,this.stateNumericStart(t,u+1)):(this.state=A.NamedEntity,this.stateNamedEntity(t,u));case A.NumericStart:return this.stateNumericStart(t,u);case A.NumericDecimal:return this.stateNumericDecimal(t,u);case A.NumericHex:return this.stateNumericHex(t,u);case A.NamedEntity:return this.stateNamedEntity(t,u)}}stateNumericStart(t,u){return u>=t.length?-1:(t.charCodeAt(u)|xs)===_.LOWER_X?(this.state=A.NumericHex,this.consumed+=1,this.stateNumericHex(t,u+1)):(this.state=A.NumericDecimal,this.stateNumericDecimal(t,u))}addToNumericResult(t,u,r,i){if(u!==r){let a=r-u;this.result=this.result*Math.pow(i,a)+parseInt(t.substr(u,a),i),this.consumed+=a}}stateNumericHex(t,u){let r=u;for(;u<t.length;){let i=t.charCodeAt(u);if(mu(i)||ws(i))u+=1;else return this.addToNumericResult(t,r,u,16),this.emitNumericEntity(i,3)}return this.addToNumericResult(t,r,u,16),-1}stateNumericDecimal(t,u){let r=u;for(;u<t.length;){let i=t.charCodeAt(u);if(mu(i))u+=1;else return this.addToNumericResult(t,r,u,10),this.emitNumericEntity(i,2)}return this.addToNumericResult(t,r,u,10),-1}emitNumericEntity(t,u){var r;if(this.consumed<=u)return(r=this.errors)===null||r===void 0||r.absenceOfDigitsInNumericCharacterReference(this.consumed),0;if(t===_.SEMI)this.consumed+=1;else if(this.decodeMode===G.Strict)return 0;return this.emitCodePoint(_e(this.result),this.consumed),this.errors&&(t!==_.SEMI&&this.errors.missingSemicolonAfterCharacterReference(),this.errors.validateNumericCharacterReference(this.result)),this.consumed}stateNamedEntity(t,u){let{decodeTree:r}=this,i=r[this.treeIndex],a=(i&P.VALUE_LENGTH)>>14;for(;u<t.length;u++,this.excess++){let n=t.charCodeAt(u);if(this.treeIndex=gu(r,i,this.treeIndex+Math.max(1,a),n),this.treeIndex<0)return this.result===0||this.decodeMode===G.Attribute&&(a===0||vs(n))?0:this.emitNotTerminatedNamedEntity();if(i=r[this.treeIndex],a=(i&P.VALUE_LENGTH)>>14,a!==0){if(n===_.SEMI)return this.emitNamedEntityData(this.treeIndex,a,this.consumed+this.excess);this.decodeMode!==G.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1}emitNotTerminatedNamedEntity(){var t;let{result:u,decodeTree:r}=this,i=(r[u]&P.VALUE_LENGTH)>>14;return this.emitNamedEntityData(u,i,this.consumed),(t=this.errors)===null||t===void 0||t.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(t,u,r){let{decodeTree:i}=this;return this.emitCodePoint(u===1?i[t]&~P.VALUE_LENGTH:i[t+1],r),u===3&&this.emitCodePoint(i[t+2],r),r}end(){var t;switch(this.state){case A.NamedEntity:return this.result!==0&&(this.decodeMode!==G.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case A.NumericDecimal:return this.emitNumericEntity(0,2);case A.NumericHex:return this.emitNumericEntity(0,3);case A.NumericStart:return(t=this.errors)===null||t===void 0||t.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case A.EntityStart:return 0}}};function Ti(e){let t="",u=new et(e,r=>t+=ce(r));return function(i,a){let n=0,s=0;for(;(s=i.indexOf("&",s))>=0;){t+=i.slice(n,s),u.startEntity(a);let l=u.write(i,s+1);if(l<0){n=s+u.end();break}n=s+l,s=l===0?n+1:n}let c=t+i.slice(n);return t="",c}}function gu(e,t,u,r){let i=(t&P.BRANCH_LENGTH)>>7,a=t&P.JUMP_TABLE;if(i===0)return a!==0&&r===a?u:-1;if(a){let c=r-a;return c<0||c>=i?-1:e[u+c]-1}let n=u,s=n+i-1;for(;n<=s;){let c=n+s>>>1,l=e[c];if(l<r)n=c+1;else if(l>r)s=c-1;else return e[c+i]}return-1}var ac=Ti(Xe),nc=Ti(Qe);var h;(function(e){e[e.Tab=9]="Tab",e[e.NewLine=10]="NewLine",e[e.FormFeed=12]="FormFeed",e[e.CarriageReturn=13]="CarriageReturn",e[e.Space=32]="Space",e[e.ExclamationMark=33]="ExclamationMark",e[e.Number=35]="Number",e[e.Amp=38]="Amp",e[e.SingleQuote=39]="SingleQuote",e[e.DoubleQuote=34]="DoubleQuote",e[e.Dash=45]="Dash",e[e.Slash=47]="Slash",e[e.Zero=48]="Zero",e[e.Nine=57]="Nine",e[e.Semi=59]="Semi",e[e.Lt=60]="Lt",e[e.Eq=61]="Eq",e[e.Gt=62]="Gt",e[e.Questionmark=63]="Questionmark",e[e.UpperA=65]="UpperA",e[e.LowerA=97]="LowerA",e[e.UpperF=70]="UpperF",e[e.LowerF=102]="LowerF",e[e.UpperZ=90]="UpperZ",e[e.LowerZ=122]="LowerZ",e[e.LowerX=120]="LowerX",e[e.OpeningSquareBracket=91]="OpeningSquareBracket"})(h||(h={}));var d;(function(e){e[e.Text=1]="Text",e[e.BeforeTagName=2]="BeforeTagName",e[e.InTagName=3]="InTagName",e[e.InSelfClosingTag=4]="InSelfClosingTag",e[e.BeforeClosingTagName=5]="BeforeClosingTagName",e[e.InClosingTagName=6]="InClosingTagName",e[e.AfterClosingTagName=7]="AfterClosingTagName",e[e.BeforeAttributeName=8]="BeforeAttributeName",e[e.InAttributeName=9]="InAttributeName",e[e.AfterAttributeName=10]="AfterAttributeName",e[e.BeforeAttributeValue=11]="BeforeAttributeValue",e[e.InAttributeValueDq=12]="InAttributeValueDq",e[e.InAttributeValueSq=13]="InAttributeValueSq",e[e.InAttributeValueNq=14]="InAttributeValueNq",e[e.BeforeDeclaration=15]="BeforeDeclaration",e[e.InDeclaration=16]="InDeclaration",e[e.InProcessingInstruction=17]="InProcessingInstruction",e[e.BeforeComment=18]="BeforeComment",e[e.CDATASequence=19]="CDATASequence",e[e.InSpecialComment=20]="InSpecialComment",e[e.InCommentLike=21]="InCommentLike",e[e.BeforeSpecialS=22]="BeforeSpecialS",e[e.SpecialStartSequence=23]="SpecialStartSequence",e[e.InSpecialTag=24]="InSpecialTag",e[e.BeforeEntity=25]="BeforeEntity",e[e.BeforeNumericEntity=26]="BeforeNumericEntity",e[e.InNamedEntity=27]="InNamedEntity",e[e.InNumericEntity=28]="InNumericEntity",e[e.InHexEntity=29]="InHexEntity"})(d||(d={}));function z(e){return e===h.Space||e===h.NewLine||e===h.Tab||e===h.FormFeed||e===h.CarriageReturn}function tt(e){return e===h.Slash||e===h.Gt||z(e)}function Ei(e){return e>=h.Zero&&e<=h.Nine}function ks(e){return e>=h.LowerA&&e<=h.LowerZ||e>=h.UpperA&&e<=h.UpperZ}function Ss(e){return e>=h.UpperA&&e<=h.UpperF||e>=h.LowerA&&e<=h.LowerF}var H;(function(e){e[e.NoValue=0]="NoValue",e[e.Unquoted=1]="Unquoted",e[e.Single=2]="Single",e[e.Double=3]="Double"})(H||(H={}));var B={Cdata:new Uint8Array([67,68,65,84,65,91]),CdataEnd:new Uint8Array([93,93,62]),CommentEnd:new Uint8Array([45,45,62]),ScriptEnd:new Uint8Array([60,47,115,99,114,105,112,116]),StyleEnd:new Uint8Array([60,47,115,116,121,108,101]),TitleEnd:new Uint8Array([60,47,116,105,116,108,101])},le=class{constructor({xmlMode:t=!1,decodeEntities:u=!0},r){this.cbs=r,this.state=d.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=d.Text,this.isSpecial=!1,this.running=!0,this.offset=0,this.currentSequence=void 0,this.sequenceIndex=0,this.trieIndex=0,this.trieCurrent=0,this.entityResult=0,this.entityExcess=0,this.xmlMode=t,this.decodeEntities=u,this.entityTrie=t?Qe:Xe}reset(){this.state=d.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=d.Text,this.currentSequence=void 0,this.running=!0,this.offset=0}write(t){this.offset+=this.buffer.length,this.buffer=t,this.parse()}end(){this.running&&this.finish()}pause(){this.running=!1}resume(){this.running=!0,this.index<this.buffer.length+this.offset&&this.parse()}getIndex(){return this.index}getSectionStart(){return this.sectionStart}stateText(t){t===h.Lt||!this.decodeEntities&&this.fastForwardTo(h.Lt)?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=d.BeforeTagName,this.sectionStart=this.index):this.decodeEntities&&t===h.Amp&&(this.state=d.BeforeEntity)}stateSpecialStartSequence(t){let u=this.sequenceIndex===this.currentSequence.length;if(!(u?tt(t):(t|32)===this.currentSequence[this.sequenceIndex]))this.isSpecial=!1;else if(!u){this.sequenceIndex++;return}this.sequenceIndex=0,this.state=d.InTagName,this.stateInTagName(t)}stateInSpecialTag(t){if(this.sequenceIndex===this.currentSequence.length){if(t===h.Gt||z(t)){let u=this.index-this.currentSequence.length;if(this.sectionStart<u){let r=this.index;this.index=u,this.cbs.ontext(this.sectionStart,u),this.index=r}this.isSpecial=!1,this.sectionStart=u+2,this.stateInClosingTagName(t);return}this.sequenceIndex=0}(t|32)===this.currentSequence[this.sequenceIndex]?this.sequenceIndex+=1:this.sequenceIndex===0?this.currentSequence===B.TitleEnd?this.decodeEntities&&t===h.Amp&&(this.state=d.BeforeEntity):this.fastForwardTo(h.Lt)&&(this.sequenceIndex=1):this.sequenceIndex=+(t===h.Lt)}stateCDATASequence(t){t===B.Cdata[this.sequenceIndex]?++this.sequenceIndex===B.Cdata.length&&(this.state=d.InCommentLike,this.currentSequence=B.CdataEnd,this.sequenceIndex=0,this.sectionStart=this.index+1):(this.sequenceIndex=0,this.state=d.InDeclaration,this.stateInDeclaration(t))}fastForwardTo(t){for(;++this.index<this.buffer.length+this.offset;)if(this.buffer.charCodeAt(this.index-this.offset)===t)return!0;return this.index=this.buffer.length+this.offset-1,!1}stateInCommentLike(t){t===this.currentSequence[this.sequenceIndex]?++this.sequenceIndex===this.currentSequence.length&&(this.currentSequence===B.CdataEnd?this.cbs.oncdata(this.sectionStart,this.index,2):this.cbs.oncomment(this.sectionStart,this.index,2),this.sequenceIndex=0,this.sectionStart=this.index+1,this.state=d.Text):this.sequenceIndex===0?this.fastForwardTo(this.currentSequence[0])&&(this.sequenceIndex=1):t!==this.currentSequence[this.sequenceIndex-1]&&(this.sequenceIndex=0)}isTagStartChar(t){return this.xmlMode?!tt(t):ks(t)}startSpecial(t,u){this.isSpecial=!0,this.currentSequence=t,this.sequenceIndex=u,this.state=d.SpecialStartSequence}stateBeforeTagName(t){if(t===h.ExclamationMark)this.state=d.BeforeDeclaration,this.sectionStart=this.index+1;else if(t===h.Questionmark)this.state=d.InProcessingInstruction,this.sectionStart=this.index+1;else if(this.isTagStartChar(t)){let u=t|32;this.sectionStart=this.index,!this.xmlMode&&u===B.TitleEnd[2]?this.startSpecial(B.TitleEnd,3):this.state=!this.xmlMode&&u===B.ScriptEnd[2]?d.BeforeSpecialS:d.InTagName}else t===h.Slash?this.state=d.BeforeClosingTagName:(this.state=d.Text,this.stateText(t))}stateInTagName(t){tt(t)&&(this.cbs.onopentagname(this.sectionStart,this.index),this.sectionStart=-1,this.state=d.BeforeAttributeName,this.stateBeforeAttributeName(t))}stateBeforeClosingTagName(t){z(t)||(t===h.Gt?this.state=d.Text:(this.state=this.isTagStartChar(t)?d.InClosingTagName:d.InSpecialComment,this.sectionStart=this.index))}stateInClosingTagName(t){(t===h.Gt||z(t))&&(this.cbs.onclosetag(this.sectionStart,this.index),this.sectionStart=-1,this.state=d.AfterClosingTagName,this.stateAfterClosingTagName(t))}stateAfterClosingTagName(t){(t===h.Gt||this.fastForwardTo(h.Gt))&&(this.state=d.Text,this.baseState=d.Text,this.sectionStart=this.index+1)}stateBeforeAttributeName(t){t===h.Gt?(this.cbs.onopentagend(this.index),this.isSpecial?(this.state=d.InSpecialTag,this.sequenceIndex=0):this.state=d.Text,this.baseState=this.state,this.sectionStart=this.index+1):t===h.Slash?this.state=d.InSelfClosingTag:z(t)||(this.state=d.InAttributeName,this.sectionStart=this.index)}stateInSelfClosingTag(t){t===h.Gt?(this.cbs.onselfclosingtag(this.index),this.state=d.Text,this.baseState=d.Text,this.sectionStart=this.index+1,this.isSpecial=!1):z(t)||(this.state=d.BeforeAttributeName,this.stateBeforeAttributeName(t))}stateInAttributeName(t){(t===h.Eq||tt(t))&&(this.cbs.onattribname(this.sectionStart,this.index),this.sectionStart=-1,this.state=d.AfterAttributeName,this.stateAfterAttributeName(t))}stateAfterAttributeName(t){t===h.Eq?this.state=d.BeforeAttributeValue:t===h.Slash||t===h.Gt?(this.cbs.onattribend(H.NoValue,this.index),this.state=d.BeforeAttributeName,this.stateBeforeAttributeName(t)):z(t)||(this.cbs.onattribend(H.NoValue,this.index),this.state=d.InAttributeName,this.sectionStart=this.index)}stateBeforeAttributeValue(t){t===h.DoubleQuote?(this.state=d.InAttributeValueDq,this.sectionStart=this.index+1):t===h.SingleQuote?(this.state=d.InAttributeValueSq,this.sectionStart=this.index+1):z(t)||(this.sectionStart=this.index,this.state=d.InAttributeValueNq,this.stateInAttributeValueNoQuotes(t))}handleInAttributeValue(t,u){t===u||!this.decodeEntities&&this.fastForwardTo(u)?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(u===h.DoubleQuote?H.Double:H.Single,this.index),this.state=d.BeforeAttributeName):this.decodeEntities&&t===h.Amp&&(this.baseState=this.state,this.state=d.BeforeEntity)}stateInAttributeValueDoubleQuotes(t){this.handleInAttributeValue(t,h.DoubleQuote)}stateInAttributeValueSingleQuotes(t){this.handleInAttributeValue(t,h.SingleQuote)}stateInAttributeValueNoQuotes(t){z(t)||t===h.Gt?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(H.Unquoted,this.index),this.state=d.BeforeAttributeName,this.stateBeforeAttributeName(t)):this.decodeEntities&&t===h.Amp&&(this.baseState=this.state,this.state=d.BeforeEntity)}stateBeforeDeclaration(t){t===h.OpeningSquareBracket?(this.state=d.CDATASequence,this.sequenceIndex=0):this.state=t===h.Dash?d.BeforeComment:d.InDeclaration}stateInDeclaration(t){(t===h.Gt||this.fastForwardTo(h.Gt))&&(this.cbs.ondeclaration(this.sectionStart,this.index),this.state=d.Text,this.sectionStart=this.index+1)}stateInProcessingInstruction(t){(t===h.Gt||this.fastForwardTo(h.Gt))&&(this.cbs.onprocessinginstruction(this.sectionStart,this.index),this.state=d.Text,this.sectionStart=this.index+1)}stateBeforeComment(t){t===h.Dash?(this.state=d.InCommentLike,this.currentSequence=B.CommentEnd,this.sequenceIndex=2,this.sectionStart=this.index+1):this.state=d.InDeclaration}stateInSpecialComment(t){(t===h.Gt||this.fastForwardTo(h.Gt))&&(this.cbs.oncomment(this.sectionStart,this.index,0),this.state=d.Text,this.sectionStart=this.index+1)}stateBeforeSpecialS(t){let u=t|32;u===B.ScriptEnd[3]?this.startSpecial(B.ScriptEnd,4):u===B.StyleEnd[3]?this.startSpecial(B.StyleEnd,4):(this.state=d.InTagName,this.stateInTagName(t))}stateBeforeEntity(t){this.entityExcess=1,this.entityResult=0,t===h.Number?this.state=d.BeforeNumericEntity:t===h.Amp||(this.trieIndex=0,this.trieCurrent=this.entityTrie[0],this.state=d.InNamedEntity,this.stateInNamedEntity(t))}stateInNamedEntity(t){if(this.entityExcess+=1,this.trieIndex=gu(this.entityTrie,this.trieCurrent,this.trieIndex+1,t),this.trieIndex<0){this.emitNamedEntity(),this.index--;return}this.trieCurrent=this.entityTrie[this.trieIndex];let u=this.trieCurrent&P.VALUE_LENGTH;if(u){let r=(u>>14)-1;if(!this.allowLegacyEntity()&&t!==h.Semi)this.trieIndex+=r;else{let i=this.index-this.entityExcess+1;i>this.sectionStart&&this.emitPartial(this.sectionStart,i),this.entityResult=this.trieIndex,this.trieIndex+=r,this.entityExcess=0,this.sectionStart=this.index+1,r===0&&this.emitNamedEntity()}}}emitNamedEntity(){if(this.state=this.baseState,this.entityResult===0)return;switch((this.entityTrie[this.entityResult]&P.VALUE_LENGTH)>>14){case 1:{this.emitCodePoint(this.entityTrie[this.entityResult]&~P.VALUE_LENGTH);break}case 2:{this.emitCodePoint(this.entityTrie[this.entityResult+1]);break}case 3:this.emitCodePoint(this.entityTrie[this.entityResult+1]),this.emitCodePoint(this.entityTrie[this.entityResult+2])}}stateBeforeNumericEntity(t){(t|32)===h.LowerX?(this.entityExcess++,this.state=d.InHexEntity):(this.state=d.InNumericEntity,this.stateInNumericEntity(t))}emitNumericEntity(t){let u=this.index-this.entityExcess-1;u+2+ +(this.state===d.InHexEntity)!==this.index&&(u>this.sectionStart&&this.emitPartial(this.sectionStart,u),this.sectionStart=this.index+Number(t),this.emitCodePoint(_e(this.entityResult))),this.state=this.baseState}stateInNumericEntity(t){t===h.Semi?this.emitNumericEntity(!0):Ei(t)?(this.entityResult=this.entityResult*10+(t-h.Zero),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)}stateInHexEntity(t){t===h.Semi?this.emitNumericEntity(!0):Ei(t)?(this.entityResult=this.entityResult*16+(t-h.Zero),this.entityExcess++):Ss(t)?(this.entityResult=this.entityResult*16+((t|32)-h.LowerA+10),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)}allowLegacyEntity(){return!this.xmlMode&&(this.baseState===d.Text||this.baseState===d.InSpecialTag)}cleanup(){this.running&&this.sectionStart!==this.index&&(this.state===d.Text||this.state===d.InSpecialTag&&this.sequenceIndex===0?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):(this.state===d.InAttributeValueDq||this.state===d.InAttributeValueSq||this.state===d.InAttributeValueNq)&&(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=this.index))}shouldContinue(){return this.index<this.buffer.length+this.offset&&this.running}parse(){for(;this.shouldContinue();){let t=this.buffer.charCodeAt(this.index-this.offset);switch(this.state){case d.Text:{this.stateText(t);break}case d.SpecialStartSequence:{this.stateSpecialStartSequence(t);break}case d.InSpecialTag:{this.stateInSpecialTag(t);break}case d.CDATASequence:{this.stateCDATASequence(t);break}case d.InAttributeValueDq:{this.stateInAttributeValueDoubleQuotes(t);break}case d.InAttributeName:{this.stateInAttributeName(t);break}case d.InCommentLike:{this.stateInCommentLike(t);break}case d.InSpecialComment:{this.stateInSpecialComment(t);break}case d.BeforeAttributeName:{this.stateBeforeAttributeName(t);break}case d.InTagName:{this.stateInTagName(t);break}case d.InClosingTagName:{this.stateInClosingTagName(t);break}case d.BeforeTagName:{this.stateBeforeTagName(t);break}case d.AfterAttributeName:{this.stateAfterAttributeName(t);break}case d.InAttributeValueSq:{this.stateInAttributeValueSingleQuotes(t);break}case d.BeforeAttributeValue:{this.stateBeforeAttributeValue(t);break}case d.BeforeClosingTagName:{this.stateBeforeClosingTagName(t);break}case d.AfterClosingTagName:{this.stateAfterClosingTagName(t);break}case d.BeforeSpecialS:{this.stateBeforeSpecialS(t);break}case d.InAttributeValueNq:{this.stateInAttributeValueNoQuotes(t);break}case d.InSelfClosingTag:{this.stateInSelfClosingTag(t);break}case d.InDeclaration:{this.stateInDeclaration(t);break}case d.BeforeDeclaration:{this.stateBeforeDeclaration(t);break}case d.BeforeComment:{this.stateBeforeComment(t);break}case d.InProcessingInstruction:{this.stateInProcessingInstruction(t);break}case d.InNamedEntity:{this.stateInNamedEntity(t);break}case d.BeforeEntity:{this.stateBeforeEntity(t);break}case d.InHexEntity:{this.stateInHexEntity(t);break}case d.InNumericEntity:{this.stateInNumericEntity(t);break}default:this.stateBeforeNumericEntity(t)}this.index++}this.cleanup()}finish(){this.state===d.InNamedEntity&&this.emitNamedEntity(),this.sectionStart<this.index&&this.handleTrailingData(),this.cbs.onend()}handleTrailingData(){let t=this.buffer.length+this.offset;this.state===d.InCommentLike?this.currentSequence===B.CdataEnd?this.cbs.oncdata(this.sectionStart,t,0):this.cbs.oncomment(this.sectionStart,t,0):this.state===d.InNumericEntity&&this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state===d.InHexEntity&&this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state===d.InTagName||this.state===d.BeforeAttributeName||this.state===d.BeforeAttributeValue||this.state===d.AfterAttributeName||this.state===d.InAttributeName||this.state===d.InAttributeValueSq||this.state===d.InAttributeValueDq||this.state===d.InAttributeValueNq||this.state===d.InClosingTagName||this.cbs.ontext(this.sectionStart,t)}emitPartial(t,u){this.baseState!==d.Text&&this.baseState!==d.InSpecialTag?this.cbs.onattribdata(t,u):this.cbs.ontext(t,u)}emitCodePoint(t){this.baseState!==d.Text&&this.baseState!==d.InSpecialTag?this.cbs.onattribentity(t):this.cbs.ontextentity(t)}};var de=new Set(["input","option","optgroup","select","button","datalist","textarea"]),T=new Set(["p"]),Ai=new Set(["thead","tbody"]),_i=new Set(["dd","dt"]),Li=new Set(["rt","rp"]),Ts=new Map([["tr",new Set(["tr","th","td"])],["th",new Set(["th"])],["td",new Set(["thead","th","td"])],["body",new Set(["head","link","script"])],["li",new Set(["li"])],["p",T],["h1",T],["h2",T],["h3",T],["h4",T],["h5",T],["h6",T],["select",de],["input",de],["output",de],["button",de],["datalist",de],["textarea",de],["option",new Set(["option"])],["optgroup",new Set(["optgroup","option"])],["dd",_i],["dt",_i],["address",T],["article",T],["aside",T],["blockquote",T],["details",T],["div",T],["dl",T],["fieldset",T],["figcaption",T],["figure",T],["footer",T],["form",T],["header",T],["hr",T],["main",T],["nav",T],["ol",T],["pre",T],["section",T],["table",T],["ul",T],["rt",Li],["rp",Li],["tbody",Ai],["tfoot",Ai]]),Es=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]),Ii=new Set(["math","svg"]),Ni=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignobject","desc","title"]),As=/\s|\//,Le=class{constructor(t,u={}){var r,i,a,n,s;this.options=u,this.startIndex=0,this.endIndex=0,this.openTagStart=0,this.tagname="",this.attribname="",this.attribvalue="",this.attribs=null,this.stack=[],this.foreignContext=[],this.buffers=[],this.bufferOffset=0,this.writeIndex=0,this.ended=!1,this.cbs=t??{},this.lowerCaseTagNames=(r=u.lowerCaseTags)!==null&&r!==void 0?r:!u.xmlMode,this.lowerCaseAttributeNames=(i=u.lowerCaseAttributeNames)!==null&&i!==void 0?i:!u.xmlMode,this.tokenizer=new((a=u.Tokenizer)!==null&&a!==void 0?a:le)(this.options,this),(s=(n=this.cbs).onparserinit)===null||s===void 0||s.call(n,this)}ontext(t,u){var r,i;let a=this.getSlice(t,u);this.endIndex=u-1,(i=(r=this.cbs).ontext)===null||i===void 0||i.call(r,a),this.startIndex=u}ontextentity(t){var u,r;let i=this.tokenizer.getSectionStart();this.endIndex=i-1,(r=(u=this.cbs).ontext)===null||r===void 0||r.call(u,ce(t)),this.startIndex=i}isVoidElement(t){return!this.options.xmlMode&&Es.has(t)}onopentagname(t,u){this.endIndex=u;let r=this.getSlice(t,u);this.lowerCaseTagNames&&(r=r.toLowerCase()),this.emitOpenTag(r)}emitOpenTag(t){var u,r,i,a;this.openTagStart=this.startIndex,this.tagname=t;let n=!this.options.xmlMode&&Ts.get(t);if(n)for(;this.stack.length>0&&n.has(this.stack[this.stack.length-1]);){let s=this.stack.pop();(r=(u=this.cbs).onclosetag)===null||r===void 0||r.call(u,s,!0)}this.isVoidElement(t)||(this.stack.push(t),Ii.has(t)?this.foreignContext.push(!0):Ni.has(t)&&this.foreignContext.push(!1)),(a=(i=this.cbs).onopentagname)===null||a===void 0||a.call(i,t),this.cbs.onopentag&&(this.attribs={})}endOpenTag(t){var u,r;this.startIndex=this.openTagStart,this.attribs&&((r=(u=this.cbs).onopentag)===null||r===void 0||r.call(u,this.tagname,this.attribs,t),this.attribs=null),this.cbs.onclosetag&&this.isVoidElement(this.tagname)&&this.cbs.onclosetag(this.tagname,!0),this.tagname=""}onopentagend(t){this.endIndex=t,this.endOpenTag(!1),this.startIndex=t+1}onclosetag(t,u){var r,i,a,n,s,c;this.endIndex=u;let l=this.getSlice(t,u);if(this.lowerCaseTagNames&&(l=l.toLowerCase()),(Ii.has(l)||Ni.has(l))&&this.foreignContext.pop(),this.isVoidElement(l))!this.options.xmlMode&&l==="br"&&((i=(r=this.cbs).onopentagname)===null||i===void 0||i.call(r,"br"),(n=(a=this.cbs).onopentag)===null||n===void 0||n.call(a,"br",{},!0),(c=(s=this.cbs).onclosetag)===null||c===void 0||c.call(s,"br",!1));else{let f=this.stack.lastIndexOf(l);if(f!==-1)if(this.cbs.onclosetag){let g=this.stack.length-f;for(;g--;)this.cbs.onclosetag(this.stack.pop(),g!==0)}else this.stack.length=f;else!this.options.xmlMode&&l==="p"&&(this.emitOpenTag("p"),this.closeCurrentTag(!0))}this.startIndex=u+1}onselfclosingtag(t){this.endIndex=t,this.options.xmlMode||this.options.recognizeSelfClosing||this.foreignContext[this.foreignContext.length-1]?(this.closeCurrentTag(!1),this.startIndex=t+1):this.onopentagend(t)}closeCurrentTag(t){var u,r;let i=this.tagname;this.endOpenTag(t),this.stack[this.stack.length-1]===i&&((r=(u=this.cbs).onclosetag)===null||r===void 0||r.call(u,i,!t),this.stack.pop())}onattribname(t,u){this.startIndex=t;let r=this.getSlice(t,u);this.attribname=this.lowerCaseAttributeNames?r.toLowerCase():r}onattribdata(t,u){this.attribvalue+=this.getSlice(t,u)}onattribentity(t){this.attribvalue+=ce(t)}onattribend(t,u){var r,i;this.endIndex=u,(i=(r=this.cbs).onattribute)===null||i===void 0||i.call(r,this.attribname,this.attribvalue,t===H.Double?'"':t===H.Single?"'":t===H.NoValue?void 0:null),this.attribs&&!Object.prototype.hasOwnProperty.call(this.attribs,this.attribname)&&(this.attribs[this.attribname]=this.attribvalue),this.attribvalue=""}getInstructionName(t){let u=t.search(As),r=u<0?t:t.substr(0,u);return this.lowerCaseTagNames&&(r=r.toLowerCase()),r}ondeclaration(t,u){this.endIndex=u;let r=this.getSlice(t,u);if(this.cbs.onprocessinginstruction){let i=this.getInstructionName(r);this.cbs.onprocessinginstruction(`!${i}`,`!${r}`)}this.startIndex=u+1}onprocessinginstruction(t,u){this.endIndex=u;let r=this.getSlice(t,u);if(this.cbs.onprocessinginstruction){let i=this.getInstructionName(r);this.cbs.onprocessinginstruction(`?${i}`,`?${r}`)}this.startIndex=u+1}oncomment(t,u,r){var i,a,n,s;this.endIndex=u,(a=(i=this.cbs).oncomment)===null||a===void 0||a.call(i,this.getSlice(t,u-r)),(s=(n=this.cbs).oncommentend)===null||s===void 0||s.call(n),this.startIndex=u+1}oncdata(t,u,r){var i,a,n,s,c,l,f,g,x,b;this.endIndex=u;let m=this.getSlice(t,u-r);this.options.xmlMode||this.options.recognizeCDATA?((a=(i=this.cbs).oncdatastart)===null||a===void 0||a.call(i),(s=(n=this.cbs).ontext)===null||s===void 0||s.call(n,m),(l=(c=this.cbs).oncdataend)===null||l===void 0||l.call(c)):((g=(f=this.cbs).oncomment)===null||g===void 0||g.call(f,`[CDATA[${m}]]`),(b=(x=this.cbs).oncommentend)===null||b===void 0||b.call(x)),this.startIndex=u+1}onend(){var t,u;if(this.cbs.onclosetag){this.endIndex=this.startIndex;for(let r=this.stack.length;r>0;this.cbs.onclosetag(this.stack[--r],!0));}(u=(t=this.cbs).onend)===null||u===void 0||u.call(t)}reset(){var t,u,r,i;(u=(t=this.cbs).onreset)===null||u===void 0||u.call(t),this.tokenizer.reset(),this.tagname="",this.attribname="",this.attribs=null,this.stack.length=0,this.startIndex=0,this.endIndex=0,(i=(r=this.cbs).onparserinit)===null||i===void 0||i.call(r,this),this.buffers.length=0,this.bufferOffset=0,this.writeIndex=0,this.ended=!1}parseComplete(t){this.reset(),this.end(t)}getSlice(t,u){for(;t-this.bufferOffset>=this.buffers[0].length;)this.shiftBuffer();let r=this.buffers[0].slice(t-this.bufferOffset,u-this.bufferOffset);for(;u-this.bufferOffset>this.buffers[0].length;)this.shiftBuffer(),r+=this.buffers[0].slice(0,u-this.bufferOffset);return r}shiftBuffer(){this.bufferOffset+=this.buffers[0].length,this.writeIndex--,this.buffers.shift()}write(t){var u,r;if(this.ended){(r=(u=this.cbs).onerror)===null||r===void 0||r.call(u,new Error(".write() after done!"));return}this.buffers.push(t),this.tokenizer.running&&(this.tokenizer.write(t),this.writeIndex++)}end(t){var u,r;if(this.ended){(r=(u=this.cbs).onerror)===null||r===void 0||r.call(u,new Error(".end() after done!"));return}t&&this.write(t),this.ended=!0,this.tokenizer.end()}pause(){this.tokenizer.pause()}resume(){for(this.tokenizer.resume();this.tokenizer.running&&this.writeIndex<this.buffers.length;)this.tokenizer.write(this.buffers[this.writeIndex++]);this.ended&&this.tokenizer.end()}parseChunk(t){this.write(t)}done(t){this.end(t)}};function ut(e){for(let t=1;t<e.length;t++)e[t][0]+=e[t-1][0]+1;return e}var _s=new Map(ut([[9,"&Tab;"],[0,"&NewLine;"],[22,"&excl;"],[0,"&quot;"],[0,"&num;"],[0,"&dollar;"],[0,"&percnt;"],[0,"&amp;"],[0,"&apos;"],[0,"&lpar;"],[0,"&rpar;"],[0,"&ast;"],[0,"&plus;"],[0,"&comma;"],[1,"&period;"],[0,"&sol;"],[10,"&colon;"],[0,"&semi;"],[0,{v:"&lt;",n:8402,o:"&nvlt;"}],[0,{v:"&equals;",n:8421,o:"&bne;"}],[0,{v:"&gt;",n:8402,o:"&nvgt;"}],[0,"&quest;"],[0,"&commat;"],[26,"&lbrack;"],[0,"&bsol;"],[0,"&rbrack;"],[0,"&Hat;"],[0,"&lowbar;"],[0,"&DiacriticalGrave;"],[5,{n:106,o:"&fjlig;"}],[20,"&lbrace;"],[0,"&verbar;"],[0,"&rbrace;"],[34,"&nbsp;"],[0,"&iexcl;"],[0,"&cent;"],[0,"&pound;"],[0,"&curren;"],[0,"&yen;"],[0,"&brvbar;"],[0,"&sect;"],[0,"&die;"],[0,"&copy;"],[0,"&ordf;"],[0,"&laquo;"],[0,"&not;"],[0,"&shy;"],[0,"&circledR;"],[0,"&macr;"],[0,"&deg;"],[0,"&PlusMinus;"],[0,"&sup2;"],[0,"&sup3;"],[0,"&acute;"],[0,"&micro;"],[0,"&para;"],[0,"&centerdot;"],[0,"&cedil;"],[0,"&sup1;"],[0,"&ordm;"],[0,"&raquo;"],[0,"&frac14;"],[0,"&frac12;"],[0,"&frac34;"],[0,"&iquest;"],[0,"&Agrave;"],[0,"&Aacute;"],[0,"&Acirc;"],[0,"&Atilde;"],[0,"&Auml;"],[0,"&angst;"],[0,"&AElig;"],[0,"&Ccedil;"],[0,"&Egrave;"],[0,"&Eacute;"],[0,"&Ecirc;"],[0,"&Euml;"],[0,"&Igrave;"],[0,"&Iacute;"],[0,"&Icirc;"],[0,"&Iuml;"],[0,"&ETH;"],[0,"&Ntilde;"],[0,"&Ograve;"],[0,"&Oacute;"],[0,"&Ocirc;"],[0,"&Otilde;"],[0,"&Ouml;"],[0,"&times;"],[0,"&Oslash;"],[0,"&Ugrave;"],[0,"&Uacute;"],[0,"&Ucirc;"],[0,"&Uuml;"],[0,"&Yacute;"],[0,"&THORN;"],[0,"&szlig;"],[0,"&agrave;"],[0,"&aacute;"],[0,"&acirc;"],[0,"&atilde;"],[0,"&auml;"],[0,"&aring;"],[0,"&aelig;"],[0,"&ccedil;"],[0,"&egrave;"],[0,"&eacute;"],[0,"&ecirc;"],[0,"&euml;"],[0,"&igrave;"],[0,"&iacute;"],[0,"&icirc;"],[0,"&iuml;"],[0,"&eth;"],[0,"&ntilde;"],[0,"&ograve;"],[0,"&oacute;"],[0,"&ocirc;"],[0,"&otilde;"],[0,"&ouml;"],[0,"&div;"],[0,"&oslash;"],[0,"&ugrave;"],[0,"&uacute;"],[0,"&ucirc;"],[0,"&uuml;"],[0,"&yacute;"],[0,"&thorn;"],[0,"&yuml;"],[0,"&Amacr;"],[0,"&amacr;"],[0,"&Abreve;"],[0,"&abreve;"],[0,"&Aogon;"],[0,"&aogon;"],[0,"&Cacute;"],[0,"&cacute;"],[0,"&Ccirc;"],[0,"&ccirc;"],[0,"&Cdot;"],[0,"&cdot;"],[0,"&Ccaron;"],[0,"&ccaron;"],[0,"&Dcaron;"],[0,"&dcaron;"],[0,"&Dstrok;"],[0,"&dstrok;"],[0,"&Emacr;"],[0,"&emacr;"],[2,"&Edot;"],[0,"&edot;"],[0,"&Eogon;"],[0,"&eogon;"],[0,"&Ecaron;"],[0,"&ecaron;"],[0,"&Gcirc;"],[0,"&gcirc;"],[0,"&Gbreve;"],[0,"&gbreve;"],[0,"&Gdot;"],[0,"&gdot;"],[0,"&Gcedil;"],[1,"&Hcirc;"],[0,"&hcirc;"],[0,"&Hstrok;"],[0,"&hstrok;"],[0,"&Itilde;"],[0,"&itilde;"],[0,"&Imacr;"],[0,"&imacr;"],[2,"&Iogon;"],[0,"&iogon;"],[0,"&Idot;"],[0,"&imath;"],[0,"&IJlig;"],[0,"&ijlig;"],[0,"&Jcirc;"],[0,"&jcirc;"],[0,"&Kcedil;"],[0,"&kcedil;"],[0,"&kgreen;"],[0,"&Lacute;"],[0,"&lacute;"],[0,"&Lcedil;"],[0,"&lcedil;"],[0,"&Lcaron;"],[0,"&lcaron;"],[0,"&Lmidot;"],[0,"&lmidot;"],[0,"&Lstrok;"],[0,"&lstrok;"],[0,"&Nacute;"],[0,"&nacute;"],[0,"&Ncedil;"],[0,"&ncedil;"],[0,"&Ncaron;"],[0,"&ncaron;"],[0,"&napos;"],[0,"&ENG;"],[0,"&eng;"],[0,"&Omacr;"],[0,"&omacr;"],[2,"&Odblac;"],[0,"&odblac;"],[0,"&OElig;"],[0,"&oelig;"],[0,"&Racute;"],[0,"&racute;"],[0,"&Rcedil;"],[0,"&rcedil;"],[0,"&Rcaron;"],[0,"&rcaron;"],[0,"&Sacute;"],[0,"&sacute;"],[0,"&Scirc;"],[0,"&scirc;"],[0,"&Scedil;"],[0,"&scedil;"],[0,"&Scaron;"],[0,"&scaron;"],[0,"&Tcedil;"],[0,"&tcedil;"],[0,"&Tcaron;"],[0,"&tcaron;"],[0,"&Tstrok;"],[0,"&tstrok;"],[0,"&Utilde;"],[0,"&utilde;"],[0,"&Umacr;"],[0,"&umacr;"],[0,"&Ubreve;"],[0,"&ubreve;"],[0,"&Uring;"],[0,"&uring;"],[0,"&Udblac;"],[0,"&udblac;"],[0,"&Uogon;"],[0,"&uogon;"],[0,"&Wcirc;"],[0,"&wcirc;"],[0,"&Ycirc;"],[0,"&ycirc;"],[0,"&Yuml;"],[0,"&Zacute;"],[0,"&zacute;"],[0,"&Zdot;"],[0,"&zdot;"],[0,"&Zcaron;"],[0,"&zcaron;"],[19,"&fnof;"],[34,"&imped;"],[63,"&gacute;"],[65,"&jmath;"],[142,"&circ;"],[0,"&caron;"],[16,"&breve;"],[0,"&DiacriticalDot;"],[0,"&ring;"],[0,"&ogon;"],[0,"&DiacriticalTilde;"],[0,"&dblac;"],[51,"&DownBreve;"],[127,"&Alpha;"],[0,"&Beta;"],[0,"&Gamma;"],[0,"&Delta;"],[0,"&Epsilon;"],[0,"&Zeta;"],[0,"&Eta;"],[0,"&Theta;"],[0,"&Iota;"],[0,"&Kappa;"],[0,"&Lambda;"],[0,"&Mu;"],[0,"&Nu;"],[0,"&Xi;"],[0,"&Omicron;"],[0,"&Pi;"],[0,"&Rho;"],[1,"&Sigma;"],[0,"&Tau;"],[0,"&Upsilon;"],[0,"&Phi;"],[0,"&Chi;"],[0,"&Psi;"],[0,"&ohm;"],[7,"&alpha;"],[0,"&beta;"],[0,"&gamma;"],[0,"&delta;"],[0,"&epsi;"],[0,"&zeta;"],[0,"&eta;"],[0,"&theta;"],[0,"&iota;"],[0,"&kappa;"],[0,"&lambda;"],[0,"&mu;"],[0,"&nu;"],[0,"&xi;"],[0,"&omicron;"],[0,"&pi;"],[0,"&rho;"],[0,"&sigmaf;"],[0,"&sigma;"],[0,"&tau;"],[0,"&upsi;"],[0,"&phi;"],[0,"&chi;"],[0,"&psi;"],[0,"&omega;"],[7,"&thetasym;"],[0,"&Upsi;"],[2,"&phiv;"],[0,"&piv;"],[5,"&Gammad;"],[0,"&digamma;"],[18,"&kappav;"],[0,"&rhov;"],[3,"&epsiv;"],[0,"&backepsilon;"],[10,"&IOcy;"],[0,"&DJcy;"],[0,"&GJcy;"],[0,"&Jukcy;"],[0,"&DScy;"],[0,"&Iukcy;"],[0,"&YIcy;"],[0,"&Jsercy;"],[0,"&LJcy;"],[0,"&NJcy;"],[0,"&TSHcy;"],[0,"&KJcy;"],[1,"&Ubrcy;"],[0,"&DZcy;"],[0,"&Acy;"],[0,"&Bcy;"],[0,"&Vcy;"],[0,"&Gcy;"],[0,"&Dcy;"],[0,"&IEcy;"],[0,"&ZHcy;"],[0,"&Zcy;"],[0,"&Icy;"],[0,"&Jcy;"],[0,"&Kcy;"],[0,"&Lcy;"],[0,"&Mcy;"],[0,"&Ncy;"],[0,"&Ocy;"],[0,"&Pcy;"],[0,"&Rcy;"],[0,"&Scy;"],[0,"&Tcy;"],[0,"&Ucy;"],[0,"&Fcy;"],[0,"&KHcy;"],[0,"&TScy;"],[0,"&CHcy;"],[0,"&SHcy;"],[0,"&SHCHcy;"],[0,"&HARDcy;"],[0,"&Ycy;"],[0,"&SOFTcy;"],[0,"&Ecy;"],[0,"&YUcy;"],[0,"&YAcy;"],[0,"&acy;"],[0,"&bcy;"],[0,"&vcy;"],[0,"&gcy;"],[0,"&dcy;"],[0,"&iecy;"],[0,"&zhcy;"],[0,"&zcy;"],[0,"&icy;"],[0,"&jcy;"],[0,"&kcy;"],[0,"&lcy;"],[0,"&mcy;"],[0,"&ncy;"],[0,"&ocy;"],[0,"&pcy;"],[0,"&rcy;"],[0,"&scy;"],[0,"&tcy;"],[0,"&ucy;"],[0,"&fcy;"],[0,"&khcy;"],[0,"&tscy;"],[0,"&chcy;"],[0,"&shcy;"],[0,"&shchcy;"],[0,"&hardcy;"],[0,"&ycy;"],[0,"&softcy;"],[0,"&ecy;"],[0,"&yucy;"],[0,"&yacy;"],[1,"&iocy;"],[0,"&djcy;"],[0,"&gjcy;"],[0,"&jukcy;"],[0,"&dscy;"],[0,"&iukcy;"],[0,"&yicy;"],[0,"&jsercy;"],[0,"&ljcy;"],[0,"&njcy;"],[0,"&tshcy;"],[0,"&kjcy;"],[1,"&ubrcy;"],[0,"&dzcy;"],[7074,"&ensp;"],[0,"&emsp;"],[0,"&emsp13;"],[0,"&emsp14;"],[1,"&numsp;"],[0,"&puncsp;"],[0,"&ThinSpace;"],[0,"&hairsp;"],[0,"&NegativeMediumSpace;"],[0,"&zwnj;"],[0,"&zwj;"],[0,"&lrm;"],[0,"&rlm;"],[0,"&dash;"],[2,"&ndash;"],[0,"&mdash;"],[0,"&horbar;"],[0,"&Verbar;"],[1,"&lsquo;"],[0,"&CloseCurlyQuote;"],[0,"&lsquor;"],[1,"&ldquo;"],[0,"&CloseCurlyDoubleQuote;"],[0,"&bdquo;"],[1,"&dagger;"],[0,"&Dagger;"],[0,"&bull;"],[2,"&nldr;"],[0,"&hellip;"],[9,"&permil;"],[0,"&pertenk;"],[0,"&prime;"],[0,"&Prime;"],[0,"&tprime;"],[0,"&backprime;"],[3,"&lsaquo;"],[0,"&rsaquo;"],[3,"&oline;"],[2,"&caret;"],[1,"&hybull;"],[0,"&frasl;"],[10,"&bsemi;"],[7,"&qprime;"],[7,{v:"&MediumSpace;",n:8202,o:"&ThickSpace;"}],[0,"&NoBreak;"],[0,"&af;"],[0,"&InvisibleTimes;"],[0,"&ic;"],[72,"&euro;"],[46,"&tdot;"],[0,"&DotDot;"],[37,"&complexes;"],[2,"&incare;"],[4,"&gscr;"],[0,"&hamilt;"],[0,"&Hfr;"],[0,"&Hopf;"],[0,"&planckh;"],[0,"&hbar;"],[0,"&imagline;"],[0,"&Ifr;"],[0,"&lagran;"],[0,"&ell;"],[1,"&naturals;"],[0,"&numero;"],[0,"&copysr;"],[0,"&weierp;"],[0,"&Popf;"],[0,"&Qopf;"],[0,"&realine;"],[0,"&real;"],[0,"&reals;"],[0,"&rx;"],[3,"&trade;"],[1,"&integers;"],[2,"&mho;"],[0,"&zeetrf;"],[0,"&iiota;"],[2,"&bernou;"],[0,"&Cayleys;"],[1,"&escr;"],[0,"&Escr;"],[0,"&Fouriertrf;"],[1,"&Mellintrf;"],[0,"&order;"],[0,"&alefsym;"],[0,"&beth;"],[0,"&gimel;"],[0,"&daleth;"],[12,"&CapitalDifferentialD;"],[0,"&dd;"],[0,"&ee;"],[0,"&ii;"],[10,"&frac13;"],[0,"&frac23;"],[0,"&frac15;"],[0,"&frac25;"],[0,"&frac35;"],[0,"&frac45;"],[0,"&frac16;"],[0,"&frac56;"],[0,"&frac18;"],[0,"&frac38;"],[0,"&frac58;"],[0,"&frac78;"],[49,"&larr;"],[0,"&ShortUpArrow;"],[0,"&rarr;"],[0,"&darr;"],[0,"&harr;"],[0,"&updownarrow;"],[0,"&nwarr;"],[0,"&nearr;"],[0,"&LowerRightArrow;"],[0,"&LowerLeftArrow;"],[0,"&nlarr;"],[0,"&nrarr;"],[1,{v:"&rarrw;",n:824,o:"&nrarrw;"}],[0,"&Larr;"],[0,"&Uarr;"],[0,"&Rarr;"],[0,"&Darr;"],[0,"&larrtl;"],[0,"&rarrtl;"],[0,"&LeftTeeArrow;"],[0,"&mapstoup;"],[0,"&map;"],[0,"&DownTeeArrow;"],[1,"&hookleftarrow;"],[0,"&hookrightarrow;"],[0,"&larrlp;"],[0,"&looparrowright;"],[0,"&harrw;"],[0,"&nharr;"],[1,"&lsh;"],[0,"&rsh;"],[0,"&ldsh;"],[0,"&rdsh;"],[1,"&crarr;"],[0,"&cularr;"],[0,"&curarr;"],[2,"&circlearrowleft;"],[0,"&circlearrowright;"],[0,"&leftharpoonup;"],[0,"&DownLeftVector;"],[0,"&RightUpVector;"],[0,"&LeftUpVector;"],[0,"&rharu;"],[0,"&DownRightVector;"],[0,"&dharr;"],[0,"&dharl;"],[0,"&RightArrowLeftArrow;"],[0,"&udarr;"],[0,"&LeftArrowRightArrow;"],[0,"&leftleftarrows;"],[0,"&upuparrows;"],[0,"&rightrightarrows;"],[0,"&ddarr;"],[0,"&leftrightharpoons;"],[0,"&Equilibrium;"],[0,"&nlArr;"],[0,"&nhArr;"],[0,"&nrArr;"],[0,"&DoubleLeftArrow;"],[0,"&DoubleUpArrow;"],[0,"&DoubleRightArrow;"],[0,"&dArr;"],[0,"&DoubleLeftRightArrow;"],[0,"&DoubleUpDownArrow;"],[0,"&nwArr;"],[0,"&neArr;"],[0,"&seArr;"],[0,"&swArr;"],[0,"&lAarr;"],[0,"&rAarr;"],[1,"&zigrarr;"],[6,"&larrb;"],[0,"&rarrb;"],[15,"&DownArrowUpArrow;"],[7,"&loarr;"],[0,"&roarr;"],[0,"&hoarr;"],[0,"&forall;"],[0,"&comp;"],[0,{v:"&part;",n:824,o:"&npart;"}],[0,"&exist;"],[0,"&nexist;"],[0,"&empty;"],[1,"&Del;"],[0,"&Element;"],[0,"&NotElement;"],[1,"&ni;"],[0,"&notni;"],[2,"&prod;"],[0,"&coprod;"],[0,"&sum;"],[0,"&minus;"],[0,"&MinusPlus;"],[0,"&dotplus;"],[1,"&Backslash;"],[0,"&lowast;"],[0,"&compfn;"],[1,"&radic;"],[2,"&prop;"],[0,"&infin;"],[0,"&angrt;"],[0,{v:"&ang;",n:8402,o:"&nang;"}],[0,"&angmsd;"],[0,"&angsph;"],[0,"&mid;"],[0,"&nmid;"],[0,"&DoubleVerticalBar;"],[0,"&NotDoubleVerticalBar;"],[0,"&and;"],[0,"&or;"],[0,{v:"&cap;",n:65024,o:"&caps;"}],[0,{v:"&cup;",n:65024,o:"&cups;"}],[0,"&int;"],[0,"&Int;"],[0,"&iiint;"],[0,"&conint;"],[0,"&Conint;"],[0,"&Cconint;"],[0,"&cwint;"],[0,"&ClockwiseContourIntegral;"],[0,"&awconint;"],[0,"&there4;"],[0,"&becaus;"],[0,"&ratio;"],[0,"&Colon;"],[0,"&dotminus;"],[1,"&mDDot;"],[0,"&homtht;"],[0,{v:"&sim;",n:8402,o:"&nvsim;"}],[0,{v:"&backsim;",n:817,o:"&race;"}],[0,{v:"&ac;",n:819,o:"&acE;"}],[0,"&acd;"],[0,"&VerticalTilde;"],[0,"&NotTilde;"],[0,{v:"&eqsim;",n:824,o:"&nesim;"}],[0,"&sime;"],[0,"&NotTildeEqual;"],[0,"&cong;"],[0,"&simne;"],[0,"&ncong;"],[0,"&ap;"],[0,"&nap;"],[0,"&ape;"],[0,{v:"&apid;",n:824,o:"&napid;"}],[0,"&backcong;"],[0,{v:"&asympeq;",n:8402,o:"&nvap;"}],[0,{v:"&bump;",n:824,o:"&nbump;"}],[0,{v:"&bumpe;",n:824,o:"&nbumpe;"}],[0,{v:"&doteq;",n:824,o:"&nedot;"}],[0,"&doteqdot;"],[0,"&efDot;"],[0,"&erDot;"],[0,"&Assign;"],[0,"&ecolon;"],[0,"&ecir;"],[0,"&circeq;"],[1,"&wedgeq;"],[0,"&veeeq;"],[1,"&triangleq;"],[2,"&equest;"],[0,"&ne;"],[0,{v:"&Congruent;",n:8421,o:"&bnequiv;"}],[0,"&nequiv;"],[1,{v:"&le;",n:8402,o:"&nvle;"}],[0,{v:"&ge;",n:8402,o:"&nvge;"}],[0,{v:"&lE;",n:824,o:"&nlE;"}],[0,{v:"&gE;",n:824,o:"&ngE;"}],[0,{v:"&lnE;",n:65024,o:"&lvertneqq;"}],[0,{v:"&gnE;",n:65024,o:"&gvertneqq;"}],[0,{v:"&ll;",n:new Map(ut([[824,"&nLtv;"],[7577,"&nLt;"]]))}],[0,{v:"&gg;",n:new Map(ut([[824,"&nGtv;"],[7577,"&nGt;"]]))}],[0,"&between;"],[0,"&NotCupCap;"],[0,"&nless;"],[0,"&ngt;"],[0,"&nle;"],[0,"&nge;"],[0,"&lesssim;"],[0,"&GreaterTilde;"],[0,"&nlsim;"],[0,"&ngsim;"],[0,"&LessGreater;"],[0,"&gl;"],[0,"&NotLessGreater;"],[0,"&NotGreaterLess;"],[0,"&pr;"],[0,"&sc;"],[0,"&prcue;"],[0,"&sccue;"],[0,"&PrecedesTilde;"],[0,{v:"&scsim;",n:824,o:"&NotSucceedsTilde;"}],[0,"&NotPrecedes;"],[0,"&NotSucceeds;"],[0,{v:"&sub;",n:8402,o:"&NotSubset;"}],[0,{v:"&sup;",n:8402,o:"&NotSuperset;"}],[0,"&nsub;"],[0,"&nsup;"],[0,"&sube;"],[0,"&supe;"],[0,"&NotSubsetEqual;"],[0,"&NotSupersetEqual;"],[0,{v:"&subne;",n:65024,o:"&varsubsetneq;"}],[0,{v:"&supne;",n:65024,o:"&varsupsetneq;"}],[1,"&cupdot;"],[0,"&UnionPlus;"],[0,{v:"&sqsub;",n:824,o:"&NotSquareSubset;"}],[0,{v:"&sqsup;",n:824,o:"&NotSquareSuperset;"}],[0,"&sqsube;"],[0,"&sqsupe;"],[0,{v:"&sqcap;",n:65024,o:"&sqcaps;"}],[0,{v:"&sqcup;",n:65024,o:"&sqcups;"}],[0,"&CirclePlus;"],[0,"&CircleMinus;"],[0,"&CircleTimes;"],[0,"&osol;"],[0,"&CircleDot;"],[0,"&circledcirc;"],[0,"&circledast;"],[1,"&circleddash;"],[0,"&boxplus;"],[0,"&boxminus;"],[0,"&boxtimes;"],[0,"&dotsquare;"],[0,"&RightTee;"],[0,"&dashv;"],[0,"&DownTee;"],[0,"&bot;"],[1,"&models;"],[0,"&DoubleRightTee;"],[0,"&Vdash;"],[0,"&Vvdash;"],[0,"&VDash;"],[0,"&nvdash;"],[0,"&nvDash;"],[0,"&nVdash;"],[0,"&nVDash;"],[0,"&prurel;"],[1,"&LeftTriangle;"],[0,"&RightTriangle;"],[0,{v:"&LeftTriangleEqual;",n:8402,o:"&nvltrie;"}],[0,{v:"&RightTriangleEqual;",n:8402,o:"&nvrtrie;"}],[0,"&origof;"],[0,"&imof;"],[0,"&multimap;"],[0,"&hercon;"],[0,"&intcal;"],[0,"&veebar;"],[1,"&barvee;"],[0,"&angrtvb;"],[0,"&lrtri;"],[0,"&bigwedge;"],[0,"&bigvee;"],[0,"&bigcap;"],[0,"&bigcup;"],[0,"&diam;"],[0,"&sdot;"],[0,"&sstarf;"],[0,"&divideontimes;"],[0,"&bowtie;"],[0,"&ltimes;"],[0,"&rtimes;"],[0,"&leftthreetimes;"],[0,"&rightthreetimes;"],[0,"&backsimeq;"],[0,"&curlyvee;"],[0,"&curlywedge;"],[0,"&Sub;"],[0,"&Sup;"],[0,"&Cap;"],[0,"&Cup;"],[0,"&fork;"],[0,"&epar;"],[0,"&lessdot;"],[0,"&gtdot;"],[0,{v:"&Ll;",n:824,o:"&nLl;"}],[0,{v:"&Gg;",n:824,o:"&nGg;"}],[0,{v:"&leg;",n:65024,o:"&lesg;"}],[0,{v:"&gel;",n:65024,o:"&gesl;"}],[2,"&cuepr;"],[0,"&cuesc;"],[0,"&NotPrecedesSlantEqual;"],[0,"&NotSucceedsSlantEqual;"],[0,"&NotSquareSubsetEqual;"],[0,"&NotSquareSupersetEqual;"],[2,"&lnsim;"],[0,"&gnsim;"],[0,"&precnsim;"],[0,"&scnsim;"],[0,"&nltri;"],[0,"&NotRightTriangle;"],[0,"&nltrie;"],[0,"&NotRightTriangleEqual;"],[0,"&vellip;"],[0,"&ctdot;"],[0,"&utdot;"],[0,"&dtdot;"],[0,"&disin;"],[0,"&isinsv;"],[0,"&isins;"],[0,{v:"&isindot;",n:824,o:"&notindot;"}],[0,"&notinvc;"],[0,"&notinvb;"],[1,{v:"&isinE;",n:824,o:"&notinE;"}],[0,"&nisd;"],[0,"&xnis;"],[0,"&nis;"],[0,"&notnivc;"],[0,"&notnivb;"],[6,"&barwed;"],[0,"&Barwed;"],[1,"&lceil;"],[0,"&rceil;"],[0,"&LeftFloor;"],[0,"&rfloor;"],[0,"&drcrop;"],[0,"&dlcrop;"],[0,"&urcrop;"],[0,"&ulcrop;"],[0,"&bnot;"],[1,"&profline;"],[0,"&profsurf;"],[1,"&telrec;"],[0,"&target;"],[5,"&ulcorn;"],[0,"&urcorn;"],[0,"&dlcorn;"],[0,"&drcorn;"],[2,"&frown;"],[0,"&smile;"],[9,"&cylcty;"],[0,"&profalar;"],[7,"&topbot;"],[6,"&ovbar;"],[1,"&solbar;"],[60,"&angzarr;"],[51,"&lmoustache;"],[0,"&rmoustache;"],[2,"&OverBracket;"],[0,"&bbrk;"],[0,"&bbrktbrk;"],[37,"&OverParenthesis;"],[0,"&UnderParenthesis;"],[0,"&OverBrace;"],[0,"&UnderBrace;"],[2,"&trpezium;"],[4,"&elinters;"],[59,"&blank;"],[164,"&circledS;"],[55,"&boxh;"],[1,"&boxv;"],[9,"&boxdr;"],[3,"&boxdl;"],[3,"&boxur;"],[3,"&boxul;"],[3,"&boxvr;"],[7,"&boxvl;"],[7,"&boxhd;"],[7,"&boxhu;"],[7,"&boxvh;"],[19,"&boxH;"],[0,"&boxV;"],[0,"&boxdR;"],[0,"&boxDr;"],[0,"&boxDR;"],[0,"&boxdL;"],[0,"&boxDl;"],[0,"&boxDL;"],[0,"&boxuR;"],[0,"&boxUr;"],[0,"&boxUR;"],[0,"&boxuL;"],[0,"&boxUl;"],[0,"&boxUL;"],[0,"&boxvR;"],[0,"&boxVr;"],[0,"&boxVR;"],[0,"&boxvL;"],[0,"&boxVl;"],[0,"&boxVL;"],[0,"&boxHd;"],[0,"&boxhD;"],[0,"&boxHD;"],[0,"&boxHu;"],[0,"&boxhU;"],[0,"&boxHU;"],[0,"&boxvH;"],[0,"&boxVh;"],[0,"&boxVH;"],[19,"&uhblk;"],[3,"&lhblk;"],[3,"&block;"],[8,"&blk14;"],[0,"&blk12;"],[0,"&blk34;"],[13,"&square;"],[8,"&blacksquare;"],[0,"&EmptyVerySmallSquare;"],[1,"&rect;"],[0,"&marker;"],[2,"&fltns;"],[1,"&bigtriangleup;"],[0,"&blacktriangle;"],[0,"&triangle;"],[2,"&blacktriangleright;"],[0,"&rtri;"],[3,"&bigtriangledown;"],[0,"&blacktriangledown;"],[0,"&dtri;"],[2,"&blacktriangleleft;"],[0,"&ltri;"],[6,"&loz;"],[0,"&cir;"],[32,"&tridot;"],[2,"&bigcirc;"],[8,"&ultri;"],[0,"&urtri;"],[0,"&lltri;"],[0,"&EmptySmallSquare;"],[0,"&FilledSmallSquare;"],[8,"&bigstar;"],[0,"&star;"],[7,"&phone;"],[49,"&female;"],[1,"&male;"],[29,"&spades;"],[2,"&clubs;"],[1,"&hearts;"],[0,"&diamondsuit;"],[3,"&sung;"],[2,"&flat;"],[0,"&natural;"],[0,"&sharp;"],[163,"&check;"],[3,"&cross;"],[8,"&malt;"],[21,"&sext;"],[33,"&VerticalSeparator;"],[25,"&lbbrk;"],[0,"&rbbrk;"],[84,"&bsolhsub;"],[0,"&suphsol;"],[28,"&LeftDoubleBracket;"],[0,"&RightDoubleBracket;"],[0,"&lang;"],[0,"&rang;"],[0,"&Lang;"],[0,"&Rang;"],[0,"&loang;"],[0,"&roang;"],[7,"&longleftarrow;"],[0,"&longrightarrow;"],[0,"&longleftrightarrow;"],[0,"&DoubleLongLeftArrow;"],[0,"&DoubleLongRightArrow;"],[0,"&DoubleLongLeftRightArrow;"],[1,"&longmapsto;"],[2,"&dzigrarr;"],[258,"&nvlArr;"],[0,"&nvrArr;"],[0,"&nvHarr;"],[0,"&Map;"],[6,"&lbarr;"],[0,"&bkarow;"],[0,"&lBarr;"],[0,"&dbkarow;"],[0,"&drbkarow;"],[0,"&DDotrahd;"],[0,"&UpArrowBar;"],[0,"&DownArrowBar;"],[2,"&Rarrtl;"],[2,"&latail;"],[0,"&ratail;"],[0,"&lAtail;"],[0,"&rAtail;"],[0,"&larrfs;"],[0,"&rarrfs;"],[0,"&larrbfs;"],[0,"&rarrbfs;"],[2,"&nwarhk;"],[0,"&nearhk;"],[0,"&hksearow;"],[0,"&hkswarow;"],[0,"&nwnear;"],[0,"&nesear;"],[0,"&seswar;"],[0,"&swnwar;"],[8,{v:"&rarrc;",n:824,o:"&nrarrc;"}],[1,"&cudarrr;"],[0,"&ldca;"],[0,"&rdca;"],[0,"&cudarrl;"],[0,"&larrpl;"],[2,"&curarrm;"],[0,"&cularrp;"],[7,"&rarrpl;"],[2,"&harrcir;"],[0,"&Uarrocir;"],[0,"&lurdshar;"],[0,"&ldrushar;"],[2,"&LeftRightVector;"],[0,"&RightUpDownVector;"],[0,"&DownLeftRightVector;"],[0,"&LeftUpDownVector;"],[0,"&LeftVectorBar;"],[0,"&RightVectorBar;"],[0,"&RightUpVectorBar;"],[0,"&RightDownVectorBar;"],[0,"&DownLeftVectorBar;"],[0,"&DownRightVectorBar;"],[0,"&LeftUpVectorBar;"],[0,"&LeftDownVectorBar;"],[0,"&LeftTeeVector;"],[0,"&RightTeeVector;"],[0,"&RightUpTeeVector;"],[0,"&RightDownTeeVector;"],[0,"&DownLeftTeeVector;"],[0,"&DownRightTeeVector;"],[0,"&LeftUpTeeVector;"],[0,"&LeftDownTeeVector;"],[0,"&lHar;"],[0,"&uHar;"],[0,"&rHar;"],[0,"&dHar;"],[0,"&luruhar;"],[0,"&ldrdhar;"],[0,"&ruluhar;"],[0,"&rdldhar;"],[0,"&lharul;"],[0,"&llhard;"],[0,"&rharul;"],[0,"&lrhard;"],[0,"&udhar;"],[0,"&duhar;"],[0,"&RoundImplies;"],[0,"&erarr;"],[0,"&simrarr;"],[0,"&larrsim;"],[0,"&rarrsim;"],[0,"&rarrap;"],[0,"&ltlarr;"],[1,"&gtrarr;"],[0,"&subrarr;"],[1,"&suplarr;"],[0,"&lfisht;"],[0,"&rfisht;"],[0,"&ufisht;"],[0,"&dfisht;"],[5,"&lopar;"],[0,"&ropar;"],[4,"&lbrke;"],[0,"&rbrke;"],[0,"&lbrkslu;"],[0,"&rbrksld;"],[0,"&lbrksld;"],[0,"&rbrkslu;"],[0,"&langd;"],[0,"&rangd;"],[0,"&lparlt;"],[0,"&rpargt;"],[0,"&gtlPar;"],[0,"&ltrPar;"],[3,"&vzigzag;"],[1,"&vangrt;"],[0,"&angrtvbd;"],[6,"&ange;"],[0,"&range;"],[0,"&dwangle;"],[0,"&uwangle;"],[0,"&angmsdaa;"],[0,"&angmsdab;"],[0,"&angmsdac;"],[0,"&angmsdad;"],[0,"&angmsdae;"],[0,"&angmsdaf;"],[0,"&angmsdag;"],[0,"&angmsdah;"],[0,"&bemptyv;"],[0,"&demptyv;"],[0,"&cemptyv;"],[0,"&raemptyv;"],[0,"&laemptyv;"],[0,"&ohbar;"],[0,"&omid;"],[0,"&opar;"],[1,"&operp;"],[1,"&olcross;"],[0,"&odsold;"],[1,"&olcir;"],[0,"&ofcir;"],[0,"&olt;"],[0,"&ogt;"],[0,"&cirscir;"],[0,"&cirE;"],[0,"&solb;"],[0,"&bsolb;"],[3,"&boxbox;"],[3,"&trisb;"],[0,"&rtriltri;"],[0,{v:"&LeftTriangleBar;",n:824,o:"&NotLeftTriangleBar;"}],[0,{v:"&RightTriangleBar;",n:824,o:"&NotRightTriangleBar;"}],[11,"&iinfin;"],[0,"&infintie;"],[0,"&nvinfin;"],[4,"&eparsl;"],[0,"&smeparsl;"],[0,"&eqvparsl;"],[5,"&blacklozenge;"],[8,"&RuleDelayed;"],[1,"&dsol;"],[9,"&bigodot;"],[0,"&bigoplus;"],[0,"&bigotimes;"],[1,"&biguplus;"],[1,"&bigsqcup;"],[5,"&iiiint;"],[0,"&fpartint;"],[2,"&cirfnint;"],[0,"&awint;"],[0,"&rppolint;"],[0,"&scpolint;"],[0,"&npolint;"],[0,"&pointint;"],[0,"&quatint;"],[0,"&intlarhk;"],[10,"&pluscir;"],[0,"&plusacir;"],[0,"&simplus;"],[0,"&plusdu;"],[0,"&plussim;"],[0,"&plustwo;"],[1,"&mcomma;"],[0,"&minusdu;"],[2,"&loplus;"],[0,"&roplus;"],[0,"&Cross;"],[0,"&timesd;"],[0,"&timesbar;"],[1,"&smashp;"],[0,"&lotimes;"],[0,"&rotimes;"],[0,"&otimesas;"],[0,"&Otimes;"],[0,"&odiv;"],[0,"&triplus;"],[0,"&triminus;"],[0,"&tritime;"],[0,"&intprod;"],[2,"&amalg;"],[0,"&capdot;"],[1,"&ncup;"],[0,"&ncap;"],[0,"&capand;"],[0,"&cupor;"],[0,"&cupcap;"],[0,"&capcup;"],[0,"&cupbrcap;"],[0,"&capbrcup;"],[0,"&cupcup;"],[0,"&capcap;"],[0,"&ccups;"],[0,"&ccaps;"],[2,"&ccupssm;"],[2,"&And;"],[0,"&Or;"],[0,"&andand;"],[0,"&oror;"],[0,"&orslope;"],[0,"&andslope;"],[1,"&andv;"],[0,"&orv;"],[0,"&andd;"],[0,"&ord;"],[1,"&wedbar;"],[6,"&sdote;"],[3,"&simdot;"],[2,{v:"&congdot;",n:824,o:"&ncongdot;"}],[0,"&easter;"],[0,"&apacir;"],[0,{v:"&apE;",n:824,o:"&napE;"}],[0,"&eplus;"],[0,"&pluse;"],[0,"&Esim;"],[0,"&Colone;"],[0,"&Equal;"],[1,"&ddotseq;"],[0,"&equivDD;"],[0,"&ltcir;"],[0,"&gtcir;"],[0,"&ltquest;"],[0,"&gtquest;"],[0,{v:"&leqslant;",n:824,o:"&nleqslant;"}],[0,{v:"&geqslant;",n:824,o:"&ngeqslant;"}],[0,"&lesdot;"],[0,"&gesdot;"],[0,"&lesdoto;"],[0,"&gesdoto;"],[0,"&lesdotor;"],[0,"&gesdotol;"],[0,"&lap;"],[0,"&gap;"],[0,"&lne;"],[0,"&gne;"],[0,"&lnap;"],[0,"&gnap;"],[0,"&lEg;"],[0,"&gEl;"],[0,"&lsime;"],[0,"&gsime;"],[0,"&lsimg;"],[0,"&gsiml;"],[0,"&lgE;"],[0,"&glE;"],[0,"&lesges;"],[0,"&gesles;"],[0,"&els;"],[0,"&egs;"],[0,"&elsdot;"],[0,"&egsdot;"],[0,"&el;"],[0,"&eg;"],[2,"&siml;"],[0,"&simg;"],[0,"&simlE;"],[0,"&simgE;"],[0,{v:"&LessLess;",n:824,o:"&NotNestedLessLess;"}],[0,{v:"&GreaterGreater;",n:824,o:"&NotNestedGreaterGreater;"}],[1,"&glj;"],[0,"&gla;"],[0,"&ltcc;"],[0,"&gtcc;"],[0,"&lescc;"],[0,"&gescc;"],[0,"&smt;"],[0,"&lat;"],[0,{v:"&smte;",n:65024,o:"&smtes;"}],[0,{v:"&late;",n:65024,o:"&lates;"}],[0,"&bumpE;"],[0,{v:"&PrecedesEqual;",n:824,o:"&NotPrecedesEqual;"}],[0,{v:"&sce;",n:824,o:"&NotSucceedsEqual;"}],[2,"&prE;"],[0,"&scE;"],[0,"&precneqq;"],[0,"&scnE;"],[0,"&prap;"],[0,"&scap;"],[0,"&precnapprox;"],[0,"&scnap;"],[0,"&Pr;"],[0,"&Sc;"],[0,"&subdot;"],[0,"&supdot;"],[0,"&subplus;"],[0,"&supplus;"],[0,"&submult;"],[0,"&supmult;"],[0,"&subedot;"],[0,"&supedot;"],[0,{v:"&subE;",n:824,o:"&nsubE;"}],[0,{v:"&supE;",n:824,o:"&nsupE;"}],[0,"&subsim;"],[0,"&supsim;"],[2,{v:"&subnE;",n:65024,o:"&varsubsetneqq;"}],[0,{v:"&supnE;",n:65024,o:"&varsupsetneqq;"}],[2,"&csub;"],[0,"&csup;"],[0,"&csube;"],[0,"&csupe;"],[0,"&subsup;"],[0,"&supsub;"],[0,"&subsub;"],[0,"&supsup;"],[0,"&suphsub;"],[0,"&supdsub;"],[0,"&forkv;"],[0,"&topfork;"],[0,"&mlcp;"],[8,"&Dashv;"],[1,"&Vdashl;"],[0,"&Barv;"],[0,"&vBar;"],[0,"&vBarv;"],[1,"&Vbar;"],[0,"&Not;"],[0,"&bNot;"],[0,"&rnmid;"],[0,"&cirmid;"],[0,"&midcir;"],[0,"&topcir;"],[0,"&nhpar;"],[0,"&parsim;"],[9,{v:"&parsl;",n:8421,o:"&nparsl;"}],[44343,{n:new Map(ut([[56476,"&Ascr;"],[1,"&Cscr;"],[0,"&Dscr;"],[2,"&Gscr;"],[2,"&Jscr;"],[0,"&Kscr;"],[2,"&Nscr;"],[0,"&Oscr;"],[0,"&Pscr;"],[0,"&Qscr;"],[1,"&Sscr;"],[0,"&Tscr;"],[0,"&Uscr;"],[0,"&Vscr;"],[0,"&Wscr;"],[0,"&Xscr;"],[0,"&Yscr;"],[0,"&Zscr;"],[0,"&ascr;"],[0,"&bscr;"],[0,"&cscr;"],[0,"&dscr;"],[1,"&fscr;"],[1,"&hscr;"],[0,"&iscr;"],[0,"&jscr;"],[0,"&kscr;"],[0,"&lscr;"],[0,"&mscr;"],[0,"&nscr;"],[1,"&pscr;"],[0,"&qscr;"],[0,"&rscr;"],[0,"&sscr;"],[0,"&tscr;"],[0,"&uscr;"],[0,"&vscr;"],[0,"&wscr;"],[0,"&xscr;"],[0,"&yscr;"],[0,"&zscr;"],[52,"&Afr;"],[0,"&Bfr;"],[1,"&Dfr;"],[0,"&Efr;"],[0,"&Ffr;"],[0,"&Gfr;"],[2,"&Jfr;"],[0,"&Kfr;"],[0,"&Lfr;"],[0,"&Mfr;"],[0,"&Nfr;"],[0,"&Ofr;"],[0,"&Pfr;"],[0,"&Qfr;"],[1,"&Sfr;"],[0,"&Tfr;"],[0,"&Ufr;"],[0,"&Vfr;"],[0,"&Wfr;"],[0,"&Xfr;"],[0,"&Yfr;"],[1,"&afr;"],[0,"&bfr;"],[0,"&cfr;"],[0,"&dfr;"],[0,"&efr;"],[0,"&ffr;"],[0,"&gfr;"],[0,"&hfr;"],[0,"&ifr;"],[0,"&jfr;"],[0,"&kfr;"],[0,"&lfr;"],[0,"&mfr;"],[0,"&nfr;"],[0,"&ofr;"],[0,"&pfr;"],[0,"&qfr;"],[0,"&rfr;"],[0,"&sfr;"],[0,"&tfr;"],[0,"&ufr;"],[0,"&vfr;"],[0,"&wfr;"],[0,"&xfr;"],[0,"&yfr;"],[0,"&zfr;"],[0,"&Aopf;"],[0,"&Bopf;"],[1,"&Dopf;"],[0,"&Eopf;"],[0,"&Fopf;"],[0,"&Gopf;"],[1,"&Iopf;"],[0,"&Jopf;"],[0,"&Kopf;"],[0,"&Lopf;"],[0,"&Mopf;"],[1,"&Oopf;"],[3,"&Sopf;"],[0,"&Topf;"],[0,"&Uopf;"],[0,"&Vopf;"],[0,"&Wopf;"],[0,"&Xopf;"],[0,"&Yopf;"],[1,"&aopf;"],[0,"&bopf;"],[0,"&copf;"],[0,"&dopf;"],[0,"&eopf;"],[0,"&fopf;"],[0,"&gopf;"],[0,"&hopf;"],[0,"&iopf;"],[0,"&jopf;"],[0,"&kopf;"],[0,"&lopf;"],[0,"&mopf;"],[0,"&nopf;"],[0,"&oopf;"],[0,"&popf;"],[0,"&qopf;"],[0,"&ropf;"],[0,"&sopf;"],[0,"&topf;"],[0,"&uopf;"],[0,"&vopf;"],[0,"&wopf;"],[0,"&xopf;"],[0,"&yopf;"],[0,"&zopf;"]]))}],[8906,"&fflig;"],[0,"&filig;"],[0,"&fllig;"],[0,"&ffilig;"],[0,"&ffllig;"]]));var bu=/["&'<>$\x80-\uFFFF]/g,Di=new Map([[34,"&quot;"],[38,"&amp;"],[39,"&apos;"],[60,"&lt;"],[62,"&gt;"]]),Ci=String.prototype.codePointAt!=null?(e,t)=>e.codePointAt(t):(e,t)=>(e.charCodeAt(t)&64512)===55296?(e.charCodeAt(t)-55296)*1024+e.charCodeAt(t+1)-56320+65536:e.charCodeAt(t);function Ie(e){let t="",u=0,r;for(;(r=bu.exec(e))!==null;){let i=r.index,a=e.charCodeAt(i),n=Di.get(a);n!==void 0?(t+=e.substring(u,i)+n,u=i+1):(t+=`${e.substring(u,i)}&#x${Ci(e,i).toString(16)};`,u=bu.lastIndex+=+((a&64512)===55296))}return t+e.substr(u)}function xu(e,t){return function(r){let i,a=0,n="";for(;i=e.exec(r);)a!==i.index&&(n+=r.substring(a,i.index)),n+=t.get(i[0].charCodeAt(0)),a=i.index+1;return n+r.substring(a)}}var $i=xu(/[&<>'"]/g,Di),rt=xu(/["&\u00A0]/g,new Map([[34,"&quot;"],[38,"&amp;"],[160,"&nbsp;"]])),it=xu(/[&<>\u00A0]/g,new Map([[38,"&amp;"],[60,"&lt;"],[62,"&gt;"],[160,"&nbsp;"]]));var Bi;(function(e){e[e.XML=0]="XML",e[e.HTML=1]="HTML"})(Bi||(Bi={}));var Oi;(function(e){e[e.UTF8=0]="UTF8",e[e.ASCII=1]="ASCII",e[e.Extensive=2]="Extensive",e[e.Attribute=3]="Attribute",e[e.Text=4]="Text"})(Oi||(Oi={}));var qi=new Map(["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","textPath"].map(e=>[e.toLowerCase(),e])),Mi=new Map(["definitionURL","attributeName","attributeType","baseFrequency","baseProfile","calcMode","clipPathUnits","diffuseConstant","edgeMode","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector","zoomAndPan"].map(e=>[e.toLowerCase(),e]));var Is=new Set(["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"]);function Ns(e){return e.replace(/"/g,"&quot;")}function Ds(e,t){var u;if(!e)return;let r=((u=t.encodeEntities)!==null&&u!==void 0?u:t.decodeEntities)===!1?Ns:t.xmlMode||t.encodeEntities!=="utf8"?Ie:rt;return Object.keys(e).map(i=>{var a,n;let s=(a=e[i])!==null&&a!==void 0?a:"";return t.xmlMode==="foreign"&&(i=(n=Mi.get(i))!==null&&n!==void 0?n:i),!t.emptyAttrs&&!t.xmlMode&&s===""?i:`${i}="${r(s)}"`}).join(" ")}var Ui=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]);function Ne(e,t={}){let u="length"in e?e:[e],r="";for(let i=0;i<u.length;i++)r+=Cs(u[i],t);return r}function Cs(e,t){switch(e.type){case jr:return Ne(e.children,t);case Zr:case Wr:return Ps(e);case Gr:return Ms(e);case Yr:return qs(e);case zr:case Kr:case Jr:return Os(e,t);case Vr:return Rs(e,t)}}var $s=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignObject","desc","title"]),Bs=new Set(["svg","math"]);function Os(e,t){var u;t.xmlMode==="foreign"&&(e.name=(u=qi.get(e.name))!==null&&u!==void 0?u:e.name,e.parent&&$s.has(e.parent.name)&&(t={...t,xmlMode:!1})),!t.xmlMode&&Bs.has(e.name)&&(t={...t,xmlMode:"foreign"});let r=`<${e.name}`,i=Ds(e.attribs,t);return i&&(r+=` ${i}`),e.children.length===0&&(t.xmlMode?t.selfClosingTags!==!1:t.selfClosingTags&&Ui.has(e.name))?(t.xmlMode||(r+=" "),r+="/>"):(r+=">",e.children.length>0&&(r+=Ne(e.children,t)),(t.xmlMode||!Ui.has(e.name))&&(r+=`</${e.name}>`)),r}function Ps(e){return`<${e.data}>`}function Rs(e,t){var u;let r=e.data||"";return((u=t.encodeEntities)!==null&&u!==void 0?u:t.decodeEntities)!==!1&&!(!t.xmlMode&&e.parent&&Is.has(e.parent.name))&&(r=t.xmlMode||t.encodeEntities!=="utf8"?Ie(r):it(r)),r}function qs(e){return`<![CDATA[${e.children[0].data}]]>`}function Ms(e){return`<!--${e.data}-->`}var Hi;(function(e){e[e.DISCONNECTED=1]="DISCONNECTED",e[e.PRECEDING=2]="PRECEDING",e[e.FOLLOWING=4]="FOLLOWING",e[e.CONTAINS=8]="CONTAINS",e[e.CONTAINED_BY=16]="CONTAINED_BY"})(Hi||(Hi={}));function Fi(e,t){let u=new re(void 0,t);return new Le(u,t).end(e),u.root}var _u=Yu(Gi(),1);function Lu(e,t,u=()=>{}){if(e===void 0){let r=function(...i){return t(r,...i)};return r}return e>=0?function(...r){return t(Lu(e-1,t,u),...r)}:u}function Zi(e,t){let u=0,r=e.length;for(;u<r&&e[u]===t;)++u;for(;r>u&&e[r-1]===t;)--r;return u>0||r<e.length?e.substring(u,r):e}function to(e,t){let u=e.length;for(;u>0&&e[u-1]===t;)--u;return u<e.length?e.substring(0,u):e}function uo(e){return e.replace(/[\s\S]/g,t=>"\\u"+t.charCodeAt().toString(16).padStart(4,"0"))}function Xi(e,t){let u=new Map;for(let r=e.length;r-- >0;){let i=e[r],a=t(i);u.set(a,u.has(a)?(0,_u.default)(i,u.get(a),{arrayMerge:ro}):i)}return[...u.values()].reverse()}var ro=(e,t,u)=>[...t];function he(e,t){for(let u of t){if(!e)return;e=e[u]}return e}function zi(e,t="a",u=26){let r=[];do e-=1,r.push(e%u),e=e/u>>0;while(e>0);let i=t.charCodeAt(0);return r.reverse().map(a=>String.fromCharCode(i+a)).join("")}var vu=["I","X","C","M"],Ki=["V","L","D"];function Ji(e){return[...e+""].map(t=>+t).reverse().map((t,u)=>t%5<4?(t<5?"":Ki[u])+vu[u].repeat(t%5):vu[u]+(t<5?Ki[u]:vu[u+1])).reverse().join("")}var st=class{constructor(t,u=void 0){this.lines=[],this.nextLineWords=[],this.maxLineLength=u||t.wordwrap||Number.MAX_VALUE,this.nextLineAvailableChars=this.maxLineLength,this.wrapCharacters=he(t,["longWordSplit","wrapCharacters"])||[],this.forceWrapOnLimit=he(t,["longWordSplit","forceWrapOnLimit"])||!1,this.stashedSpace=!1,this.wordBreakOpportunity=!1}pushWord(t,u=!1){this.nextLineAvailableChars<=0&&!u&&this.startNewLine();let r=this.nextLineWords.length===0,i=t.length+(r?0:1);if(i<=this.nextLineAvailableChars||u)this.nextLineWords.push(t),this.nextLineAvailableChars-=i;else{let[a,...n]=this.splitLongWord(t);r||this.startNewLine(),this.nextLineWords.push(a),this.nextLineAvailableChars-=a.length;for(let s of n)this.startNewLine(),this.nextLineWords.push(s),this.nextLineAvailableChars-=s.length}}popWord(){let t=this.nextLineWords.pop();if(t!==void 0){let u=this.nextLineWords.length===0,r=t.length+(u?0:1);this.nextLineAvailableChars+=r}return t}concatWord(t,u=!1){if(this.wordBreakOpportunity&&t.length>this.nextLineAvailableChars)this.pushWord(t,u),this.wordBreakOpportunity=!1;else{let r=this.popWord();this.pushWord(r?r.concat(t):t,u)}}startNewLine(t=1){this.lines.push(this.nextLineWords),t>1&&this.lines.push(...Array.from({length:t-1},()=>[])),this.nextLineWords=[],this.nextLineAvailableChars=this.maxLineLength}isEmpty(){return this.lines.length===0&&this.nextLineWords.length===0}clear(){this.lines.length=0,this.nextLineWords.length=0,this.nextLineAvailableChars=this.maxLineLength}toString(){return[...this.lines,this.nextLineWords].map(t=>t.join(" ")).join(`
8
+ `)}splitLongWord(t){let u=[],r=0;for(;t.length>this.maxLineLength;){let i=t.substring(0,this.maxLineLength),a=t.substring(this.maxLineLength),n=i.lastIndexOf(this.wrapCharacters[r]);if(n>-1)t=i.substring(n+1)+a,u.push(i.substring(0,n+1));else if(r++,r<this.wrapCharacters.length)t=i+a;else{if(this.forceWrapOnLimit){if(u.push(i),t=a,t.length>this.maxLineLength)continue}else t=i+a;break}}return u.push(t),u}},ee=class{constructor(t=null){this.next=t}getRoot(){return this.next?this.next:this}},R=class extends ee{constructor(t,u=null,r=1,i=void 0){super(u),this.leadingLineBreaks=r,this.inlineTextBuilder=new st(t,i),this.rawText="",this.stashedLineBreaks=0,this.isPre=u&&u.isPre,this.isNoWrap=u&&u.isNoWrap}},ot=class extends R{constructor(t,u=null,{interRowLineBreaks:r=1,leadingLineBreaks:i=2,maxLineLength:a=void 0,maxPrefixLength:n=0,prefixAlign:s="left"}={}){super(t,u,i,a),this.maxPrefixLength=n,this.prefixAlign=s,this.interRowLineBreaks=r}},K=class extends R{constructor(t,u=null,{leadingLineBreaks:r=1,maxLineLength:i=void 0,prefix:a=""}={}){super(t,u,r,i),this.prefix=a}},ct=class extends ee{constructor(t=null){super(t),this.rows=[],this.isPre=t&&t.isPre,this.isNoWrap=t&&t.isNoWrap}},lt=class extends ee{constructor(t=null){super(t),this.cells=[],this.isPre=t&&t.isPre,this.isNoWrap=t&&t.isNoWrap}},J=class extends ee{constructor(t,u=null,r=void 0){super(u),this.inlineTextBuilder=new st(t,r),this.rawText="",this.stashedLineBreaks=0,this.isPre=u&&u.isPre,this.isNoWrap=u&&u.isNoWrap}},ku=class extends ee{constructor(t=null,u){super(t),this.transform=u}};function io(e){return[...e].map(t=>"\\u"+t.charCodeAt(0).toString(16).padStart(4,"0")).join("")}var Su=class{constructor(t){this.whitespaceChars=t.preserveNewlines?t.whitespaceCharacters.replace(/\n/g,""):t.whitespaceCharacters;let u=io(this.whitespaceChars);if(this.leadingWhitespaceRe=new RegExp(`^[${u}]`),this.trailingWhitespaceRe=new RegExp(`[${u}]$`),this.allWhitespaceOrEmptyRe=new RegExp(`^[${u}]*$`),this.newlineOrNonWhitespaceRe=new RegExp(`(\\n|[^\\n${u}])`,"g"),this.newlineOrNonNewlineStringRe=new RegExp("(\\n|[^\\n]+)","g"),t.preserveNewlines){let r=new RegExp(`\\n|[^\\n${u}]+`,"gm");this.shrinkWrapAdd=function(i,a,n=c=>c,s=!1){if(!i)return;let c=a.stashedSpace,l=!1,f=r.exec(i);if(f)for(l=!0,f[0]===`
9
+ `?a.startNewLine():c||this.testLeadingWhitespace(i)?a.pushWord(n(f[0]),s):a.concatWord(n(f[0]),s);(f=r.exec(i))!==null;)f[0]===`
10
+ `?a.startNewLine():a.pushWord(n(f[0]),s);a.stashedSpace=c&&!l||this.testTrailingWhitespace(i)}}else{let r=new RegExp(`[^${u}]+`,"g");this.shrinkWrapAdd=function(i,a,n=c=>c,s=!1){if(!i)return;let c=a.stashedSpace,l=!1,f=r.exec(i);if(f)for(l=!0,c||this.testLeadingWhitespace(i)?a.pushWord(n(f[0]),s):a.concatWord(n(f[0]),s);(f=r.exec(i))!==null;)a.pushWord(n(f[0]),s);a.stashedSpace=c&&!l||this.testTrailingWhitespace(i)}}}addLiteral(t,u,r=!0){if(!t)return;let i=u.stashedSpace,a=!1,n=this.newlineOrNonNewlineStringRe.exec(t);if(n)for(a=!0,n[0]===`
11
+ `?u.startNewLine():i?u.pushWord(n[0],r):u.concatWord(n[0],r);(n=this.newlineOrNonNewlineStringRe.exec(t))!==null;)n[0]===`
12
+ `?u.startNewLine():u.pushWord(n[0],r);u.stashedSpace=i&&!a}testLeadingWhitespace(t){return this.leadingWhitespaceRe.test(t)}testTrailingWhitespace(t){return this.trailingWhitespaceRe.test(t)}testContainsWords(t){return!this.allWhitespaceOrEmptyRe.test(t)}countNewlinesNoWords(t){this.newlineOrNonWhitespaceRe.lastIndex=0;let u=0,r;for(;(r=this.newlineOrNonWhitespaceRe.exec(t))!==null;)if(r[0]===`
13
+ `)u++;else return 0;return u}},Tu=class{constructor(t,u,r=void 0){this.options=t,this.picker=u,this.metadata=r,this.whitespaceProcessor=new Su(t),this._stackItem=new R(t),this._wordTransformer=void 0}pushWordTransform(t){this._wordTransformer=new ku(this._wordTransformer,t)}popWordTransform(){if(!this._wordTransformer)return;let t=this._wordTransformer.transform;return this._wordTransformer=this._wordTransformer.next,t}startNoWrap(){this._stackItem.isNoWrap=!0}stopNoWrap(){this._stackItem.isNoWrap=!1}_getCombinedWordTransformer(){let t=this._wordTransformer?r=>Qi(r,this._wordTransformer):void 0,u=this.options.encodeCharacters;return t?u?r=>u(t(r)):t:u}_popStackItem(){let t=this._stackItem;return this._stackItem=t.next,t}addLineBreak(){(this._stackItem instanceof R||this._stackItem instanceof K||this._stackItem instanceof J)&&(this._stackItem.isPre?this._stackItem.rawText+=`
14
+ `:this._stackItem.inlineTextBuilder.startNewLine())}addWordBreakOpportunity(){(this._stackItem instanceof R||this._stackItem instanceof K||this._stackItem instanceof J)&&(this._stackItem.inlineTextBuilder.wordBreakOpportunity=!0)}addInline(t,{noWordTransform:u=!1}={}){if(this._stackItem instanceof R||this._stackItem instanceof K||this._stackItem instanceof J){if(this._stackItem.isPre){this._stackItem.rawText+=t;return}if(!(t.length===0||this._stackItem.stashedLineBreaks&&!this.whitespaceProcessor.testContainsWords(t))){if(this.options.preserveNewlines){let r=this.whitespaceProcessor.countNewlinesNoWords(t);if(r>0){this._stackItem.inlineTextBuilder.startNewLine(r);return}}this._stackItem.stashedLineBreaks&&this._stackItem.inlineTextBuilder.startNewLine(this._stackItem.stashedLineBreaks),this.whitespaceProcessor.shrinkWrapAdd(t,this._stackItem.inlineTextBuilder,u?void 0:this._getCombinedWordTransformer(),this._stackItem.isNoWrap),this._stackItem.stashedLineBreaks=0}}}addLiteral(t){if((this._stackItem instanceof R||this._stackItem instanceof K||this._stackItem instanceof J)&&t.length!==0){if(this._stackItem.isPre){this._stackItem.rawText+=t;return}this._stackItem.stashedLineBreaks&&this._stackItem.inlineTextBuilder.startNewLine(this._stackItem.stashedLineBreaks),this.whitespaceProcessor.addLiteral(t,this._stackItem.inlineTextBuilder,this._stackItem.isNoWrap),this._stackItem.stashedLineBreaks=0}}openBlock({leadingLineBreaks:t=1,reservedLineLength:u=0,isPre:r=!1}={}){let i=Math.max(20,this._stackItem.inlineTextBuilder.maxLineLength-u);this._stackItem=new R(this.options,this._stackItem,t,i),r&&(this._stackItem.isPre=!0)}closeBlock({trailingLineBreaks:t=1,blockTransform:u=void 0}={}){let r=this._popStackItem(),i=u?u(Q(r)):Q(r);nt(this._stackItem,i,r.leadingLineBreaks,Math.max(r.stashedLineBreaks,t))}openList({maxPrefixLength:t=0,prefixAlign:u="left",interRowLineBreaks:r=1,leadingLineBreaks:i=2}={}){this._stackItem=new ot(this.options,this._stackItem,{interRowLineBreaks:r,leadingLineBreaks:i,maxLineLength:this._stackItem.inlineTextBuilder.maxLineLength,maxPrefixLength:t,prefixAlign:u})}openListItem({prefix:t=""}={}){if(!(this._stackItem instanceof ot))throw new Error("Can't add a list item to something that is not a list! Check the formatter.");let u=this._stackItem,r=Math.max(t.length,u.maxPrefixLength),i=Math.max(20,u.inlineTextBuilder.maxLineLength-r);this._stackItem=new K(this.options,u,{prefix:t,maxLineLength:i,leadingLineBreaks:u.interRowLineBreaks})}closeListItem(){let t=this._popStackItem(),u=t.next,r=Math.max(t.prefix.length,u.maxPrefixLength),i=`
15
+ `+" ".repeat(r),n=(u.prefixAlign==="right"?t.prefix.padStart(r):t.prefix.padEnd(r))+Q(t).replace(/\n/g,i);nt(u,n,t.leadingLineBreaks,Math.max(t.stashedLineBreaks,u.interRowLineBreaks))}closeList({trailingLineBreaks:t=2}={}){let u=this._popStackItem(),r=Q(u);r&&nt(this._stackItem,r,u.leadingLineBreaks,t)}openTable(){this._stackItem=new ct(this._stackItem)}openTableRow(){if(!(this._stackItem instanceof ct))throw new Error("Can't add a table row to something that is not a table! Check the formatter.");this._stackItem=new lt(this._stackItem)}openTableCell({maxColumnWidth:t=void 0}={}){if(!(this._stackItem instanceof lt))throw new Error("Can't add a table cell to something that is not a table row! Check the formatter.");this._stackItem=new J(this.options,this._stackItem,t)}closeTableCell({colspan:t=1,rowspan:u=1}={}){let r=this._popStackItem(),i=Zi(Q(r),`
16
+ `);r.next.cells.push({colspan:t,rowspan:u,text:i})}closeTableRow(){let t=this._popStackItem();t.next.rows.push(t.cells)}closeTable({tableToString:t,leadingLineBreaks:u=2,trailingLineBreaks:r=2}){let i=this._popStackItem(),a=t(i.rows);a&&nt(this._stackItem,a,u,r)}toString(){return Q(this._stackItem.getRoot())}};function Q(e){if(!(e instanceof R||e instanceof K||e instanceof J))throw new Error("Only blocks, list items and table cells can be requested for text contents.");return e.inlineTextBuilder.isEmpty()?e.rawText:e.rawText+e.inlineTextBuilder.toString()}function nt(e,t,u,r){if(!(e instanceof R||e instanceof K||e instanceof J))throw new Error("Only blocks, list items and table cells can contain text.");let i=Q(e),a=Math.max(e.stashedLineBreaks,u);e.inlineTextBuilder.clear(),i?e.rawText=i+`
17
+ `.repeat(a)+t:(e.rawText=t,e.leadingLineBreaks=a),e.stashedLineBreaks=r}function Qi(e,t){return t?Qi(t.transform(e),t.next):e}function ao(e={}){let t=e.selectors.filter(n=>!n.format);if(t.length)throw new Error("Following selectors have no specified format: "+t.map(n=>`\`${n.selector}\``).join(", "));let u=new Ae(e.selectors.map(n=>[n.selector,n])).build(hu);typeof e.encodeCharacters!="function"&&(e.encodeCharacters=co(e.encodeCharacters));let r=new Ae(e.baseElements.selectors.map((n,s)=>[n,s+1])).build(hu);function i(n){return so(n,e,r)}let a=Lu(e.limits.maxDepth,oo,function(n,s){s.addInline(e.limits.ellipsis||"")});return function(n,s=void 0){return no(n,s,e,u,i,a)}}function no(e,t,u,r,i,a){let n=u.limits.maxInputLength;n&&e&&e.length>n&&(console.warn(`Input length ${e.length} is above allowed limit of ${n}. Truncating without ellipsis.`),e=e.substring(0,n));let s=Fi(e,{decodeEntities:u.decodeEntities}),c=i(s.children),l=new Tu(u,r,t);return a(c,l),l.toString()}function so(e,t,u){let r=[];function i(n,s){s=s.slice(0,t.limits.maxChildNodes);for(let c of s){if(c.type!=="tag")continue;let l=u.pick1(c);if(l>0?r.push({selectorIndex:l,element:c}):c.children&&n(c.children),r.length>=t.limits.maxBaseElements)return}}return Lu(t.limits.maxDepth,i)(e),t.baseElements.orderBy!=="occurrence"&&r.sort((n,s)=>n.selectorIndex-s.selectorIndex),t.baseElements.returnDomByDefault&&r.length===0?e:r.map(n=>n.element)}function oo(e,t,u){if(!t)return;let r=u.options;t.length>r.limits.maxChildNodes&&(t=t.slice(0,r.limits.maxChildNodes),t.push({data:r.limits.ellipsis,type:"text"}));for(let a of t)switch(a.type){case"text":{u.addInline(a.data);break}case"tag":{let n=u.picker.pick1(a),s=r.formatters[n.format];s(a,e,u,n.options||{});break}}}function co(e){if(!e||Object.keys(e).length===0)return;let t=Object.entries(e).filter(([,a])=>a!==!1),u=new RegExp(t.map(([a])=>`(${uo([...a][0])})`).join("|"),"g"),r=t.map(([,a])=>a),i=(a,...n)=>r[n.findIndex(s=>s)];return a=>a.replace(u,i)}function lo(e,t,u,r){}function fo(e,t,u,r){u.addLiteral(r.string||"")}function ho(e,t,u,r){u.openBlock({leadingLineBreaks:r.leadingLineBreaks||2}),u.addLiteral(r.string||""),u.closeBlock({trailingLineBreaks:r.trailingLineBreaks||2})}function po(e,t,u,r){t(e.children,u)}function mo(e,t,u,r){u.openBlock({leadingLineBreaks:r.leadingLineBreaks||2}),t(e.children,u),u.closeBlock({trailingLineBreaks:r.trailingLineBreaks||2})}function ea(e){let t=e.attribs&&e.attribs.length?" "+Object.entries(e.attribs).map(([u,r])=>r===""?u:`${u}=${r.replace(/"/g,"&quot;")}`).join(" "):"";return`<${e.name}${t}>`}function ta(e){return`</${e.name}>`}function go(e,t,u,r){u.startNoWrap(),u.addLiteral(ea(e)),u.stopNoWrap(),t(e.children,u),u.startNoWrap(),u.addLiteral(ta(e)),u.stopNoWrap()}function bo(e,t,u,r){u.openBlock({leadingLineBreaks:r.leadingLineBreaks||2}),u.startNoWrap(),u.addLiteral(ea(e)),u.stopNoWrap(),t(e.children,u),u.startNoWrap(),u.addLiteral(ta(e)),u.stopNoWrap(),u.closeBlock({trailingLineBreaks:r.trailingLineBreaks||2})}function xo(e,t,u,r){u.startNoWrap(),u.addLiteral(Ne(e,{decodeEntities:u.options.decodeEntities})),u.stopNoWrap()}function wo(e,t,u,r){u.openBlock({leadingLineBreaks:r.leadingLineBreaks||2}),u.startNoWrap(),u.addLiteral(Ne(e,{decodeEntities:u.options.decodeEntities})),u.stopNoWrap(),u.closeBlock({trailingLineBreaks:r.trailingLineBreaks||2})}function yo(e,t,u,r){u.addLiteral(r.prefix||""),t(e.children,u),u.addLiteral(r.suffix||"")}var vo=Object.freeze({__proto__:null,block:mo,blockHtml:wo,blockString:ho,blockTag:bo,inline:po,inlineHtml:xo,inlineString:fo,inlineSurround:yo,inlineTag:go,skip:lo});function dt(e,t){return e[t]||(e[t]=[]),e[t]}function ko(e,t=0){for(;e[t];)t++;return t}function So(e,t){for(let u=0;u<t;u++){let r=dt(e,u);for(let i=0;i<u;i++){let a=dt(e,i);if(r[i]||a[u]){let n=r[i];r[i]=a[u],a[u]=n}}}}function To(e,t,u,r){for(let i=0;i<e.rowspan;i++){let a=dt(t,u+i);for(let n=0;n<e.colspan;n++)a[r+n]=e}}function Eu(e,t){return e[t]===void 0&&(e[t]=t===0?0:1+Eu(e,t-1)),e[t]}function Yi(e,t,u,r){e[t+u]=Math.max(Eu(e,t+u),Eu(e,t)+r)}function Eo(e,t,u){let r=[],i=0,a=e.length,n=[0];for(let l=0;l<a;l++){let f=dt(r,l),g=e[l],x=0;for(let b=0;b<g.length;b++){let m=g[b];x=ko(f,x),To(m,r,l,x),x+=m.colspan,m.lines=m.text.split(`
18
+ `);let y=m.lines.length;Yi(n,l,m.rowspan,y+t)}i=f.length>i?f.length:i}So(r,a>i?a:i);let s=[],c=[0];for(let l=0;l<i;l++){let f=0,g,x=Math.min(a,r[l].length);for(;f<x;)if(g=r[l][f],g){if(!g.rendered){let b=0;for(let m=0;m<g.lines.length;m++){let y=g.lines[m],w=n[f]+m;s[w]=(s[w]||"").padEnd(c[l])+y,b=y.length>b?y.length:b}Yi(c,l,g.colspan,b+u),g.rendered=!0}f+=g.rowspan}else{let b=n[f];s[b]=s[b]||"",f++}}return s.join(`
19
+ `)}function Ao(e,t,u,r){u.addLineBreak()}function _o(e,t,u,r){u.addWordBreakOpportunity()}function Lo(e,t,u,r){u.openBlock({leadingLineBreaks:r.leadingLineBreaks||2}),u.addInline("-".repeat(r.length||u.options.wordwrap||40)),u.closeBlock({trailingLineBreaks:r.trailingLineBreaks||2})}function Io(e,t,u,r){u.openBlock({leadingLineBreaks:r.leadingLineBreaks||2}),t(e.children,u),u.closeBlock({trailingLineBreaks:r.trailingLineBreaks||2})}function No(e,t,u,r){u.openBlock({isPre:!0,leadingLineBreaks:r.leadingLineBreaks||2}),t(e.children,u),u.closeBlock({trailingLineBreaks:r.trailingLineBreaks||2})}function Do(e,t,u,r){u.openBlock({leadingLineBreaks:r.leadingLineBreaks||2}),r.uppercase!==!1?(u.pushWordTransform(i=>i.toUpperCase()),t(e.children,u),u.popWordTransform()):t(e.children,u),u.closeBlock({trailingLineBreaks:r.trailingLineBreaks||2})}function Co(e,t,u,r){u.openBlock({leadingLineBreaks:r.leadingLineBreaks||2,reservedLineLength:2}),t(e.children,u),u.closeBlock({trailingLineBreaks:r.trailingLineBreaks||2,blockTransform:i=>(r.trimEmptyLines!==!1?Zi(i,`
20
+ `):i).split(`
21
+ `).map(a=>"> "+a).join(`
22
+ `)})}function Au(e,t){if(!t)return e;let u=typeof t[0]=="string"?t[0]:"[",r=typeof t[1]=="string"?t[1]:"]";return u+e+r}function ua(e,t,u,r,i){let a=typeof t=="function"?t(e,r,i):e;return a[0]==="/"&&u?to(u,"/")+a:a}function $o(e,t,u,r){let i=e.attribs||{},a=i.alt?i.alt:"",n=i.src?ua(i.src,r.pathRewrite,r.baseUrl,u.metadata,e):"",s=n?a?a+" "+Au(n,r.linkBrackets):Au(n,r.linkBrackets):a;u.addInline(s,{noWordTransform:!0})}function Bo(e,t,u,r){function i(){if(r.ignoreHref||!e.attribs||!e.attribs.href)return"";let n=e.attribs.href.replace(/^mailto:/,"");return r.noAnchorUrl&&n[0]==="#"?"":(n=ua(n,r.pathRewrite,r.baseUrl,u.metadata,e),n)}let a=i();if(!a)t(e.children,u);else{let n="";u.pushWordTransform(c=>(c&&(n+=c),c)),t(e.children,u),u.popWordTransform(),r.hideLinkHrefIfSameAsText&&a===n||u.addInline(n?" "+Au(a,r.linkBrackets):a,{noWordTransform:!0})}}function ra(e,t,u,r,i){let a=he(e,["parent","name"])==="li",n=0,s=(e.children||[]).filter(c=>c.type!=="text"||!/^\s*$/.test(c.data)).map(function(c){if(c.name!=="li")return{node:c,prefix:""};let l=a?i().trimStart():i();return l.length>n&&(n=l.length),{node:c,prefix:l}});if(s.length){u.openList({interRowLineBreaks:1,leadingLineBreaks:a?1:r.leadingLineBreaks||2,maxPrefixLength:n,prefixAlign:"left"});for(let{node:c,prefix:l}of s)u.openListItem({prefix:l}),t([c],u),u.closeListItem();u.closeList({trailingLineBreaks:a?1:r.trailingLineBreaks||2})}}function Oo(e,t,u,r){let i=r.itemPrefix||" * ";return ra(e,t,u,r,()=>i)}function Po(e,t,u,r){let i=Number(e.attribs.start||"1"),a=Ro(e.attribs.type);return ra(e,t,u,r,()=>" "+a(i++)+". ")}function Ro(e="1"){switch(e){case"a":return t=>zi(t,"a");case"A":return t=>zi(t,"A");case"i":return t=>Ji(t).toLowerCase();case"I":return t=>Ji(t);case"1":default:return t=>t.toString()}}function qo(e){let t=[],u=[];for(let r of e)r.startsWith(".")?t.push(r.substring(1)):r.startsWith("#")&&u.push(r.substring(1));return{classes:t,ids:u}}function Mo(e,t){if(t===!0)return!0;if(!e)return!1;let{classes:u,ids:r}=qo(t),i=(e.class||"").split(" "),a=(e.id||"").split(" ");return i.some(n=>u.includes(n))||a.some(n=>r.includes(n))}function Uo(e,t,u,r){return Mo(e.attribs,u.options.tables)?ia(e,t,u,r):Ho(e,t,u,r)}function Ho(e,t,u,r){u.openBlock({leadingLineBreaks:r.leadingLineBreaks}),t(e.children,u),u.closeBlock({trailingLineBreaks:r.trailingLineBreaks})}function ia(e,t,u,r){u.openTable(),e.children.forEach(a),u.closeTable({tableToString:n=>Eo(n,r.rowSpacing??0,r.colSpacing??3),leadingLineBreaks:r.leadingLineBreaks,trailingLineBreaks:r.trailingLineBreaks});function i(n){let s=+he(n,["attribs","colspan"])||1,c=+he(n,["attribs","rowspan"])||1;u.openTableCell({maxColumnWidth:r.maxColumnWidth}),t(n.children,u),u.closeTableCell({colspan:s,rowspan:c})}function a(n){if(n.type!=="tag")return;let s=r.uppercaseHeaderCells!==!1?c=>{u.pushWordTransform(l=>l.toUpperCase()),i(c),u.popWordTransform()}:i;switch(n.name){case"thead":case"tbody":case"tfoot":case"center":n.children.forEach(a);return;case"tr":{u.openTableRow();for(let c of n.children)if(c.type==="tag")switch(c.name){case"th":{s(c);break}case"td":{i(c);break}}u.closeTableRow();break}}}}var Fo=Object.freeze({__proto__:null,anchor:Bo,blockquote:Co,dataTable:ia,heading:Do,horizontalLine:Lo,image:$o,lineBreak:Ao,orderedList:Po,paragraph:Io,pre:No,table:Uo,unorderedList:Oo,wbr:_o}),jo={baseElements:{selectors:["body"],orderBy:"selectors",returnDomByDefault:!0},decodeEntities:!0,encodeCharacters:{},formatters:{},limits:{ellipsis:"...",maxBaseElements:void 0,maxChildNodes:void 0,maxDepth:void 0,maxInputLength:1<<24},longWordSplit:{forceWrapOnLimit:!1,wrapCharacters:[]},preserveNewlines:!1,selectors:[{selector:"*",format:"inline"},{selector:"a",format:"anchor",options:{baseUrl:null,hideLinkHrefIfSameAsText:!1,ignoreHref:!1,linkBrackets:["[","]"],noAnchorUrl:!0}},{selector:"article",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"aside",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"blockquote",format:"blockquote",options:{leadingLineBreaks:2,trailingLineBreaks:2,trimEmptyLines:!0}},{selector:"br",format:"lineBreak"},{selector:"div",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"footer",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"form",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"h1",format:"heading",options:{leadingLineBreaks:3,trailingLineBreaks:2,uppercase:!0}},{selector:"h2",format:"heading",options:{leadingLineBreaks:3,trailingLineBreaks:2,uppercase:!0}},{selector:"h3",format:"heading",options:{leadingLineBreaks:3,trailingLineBreaks:2,uppercase:!0}},{selector:"h4",format:"heading",options:{leadingLineBreaks:2,trailingLineBreaks:2,uppercase:!0}},{selector:"h5",format:"heading",options:{leadingLineBreaks:2,trailingLineBreaks:2,uppercase:!0}},{selector:"h6",format:"heading",options:{leadingLineBreaks:2,trailingLineBreaks:2,uppercase:!0}},{selector:"header",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"hr",format:"horizontalLine",options:{leadingLineBreaks:2,length:void 0,trailingLineBreaks:2}},{selector:"img",format:"image",options:{baseUrl:null,linkBrackets:["[","]"]}},{selector:"main",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"nav",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"ol",format:"orderedList",options:{leadingLineBreaks:2,trailingLineBreaks:2}},{selector:"p",format:"paragraph",options:{leadingLineBreaks:2,trailingLineBreaks:2}},{selector:"pre",format:"pre",options:{leadingLineBreaks:2,trailingLineBreaks:2}},{selector:"section",format:"block",options:{leadingLineBreaks:1,trailingLineBreaks:1}},{selector:"table",format:"table",options:{colSpacing:3,leadingLineBreaks:2,maxColumnWidth:60,rowSpacing:0,trailingLineBreaks:2,uppercaseHeaderCells:!0}},{selector:"ul",format:"unorderedList",options:{itemPrefix:" * ",leadingLineBreaks:2,trailingLineBreaks:2}},{selector:"wbr",format:"wbr"}],tables:[],whitespaceCharacters:` \r
23
+ \f\u200B`,wordwrap:80},Vo=(e,t,u)=>[...e,...t],aa=(e,t,u)=>[...t],Wo=(e,t,u)=>e.some(r=>typeof r=="object")?Vo(e,t):aa(e,t);function Go(e={}){return e=(0,_u.default)(jo,e,{arrayMerge:aa,customMerge:t=>t==="selectors"?Wo:void 0}),e.formatters=Object.assign({},vo,Fo,e.formatters),e.selectors=Xi(e.selectors,t=>t.selector),zo(e),ao(e)}function na(e,t={},u=void 0){return Go(t)(e,u)}function zo(e){if(e.tags){let u=Object.entries(e.tags).map(([r,i])=>({...i,selector:r||"*"}));e.selectors.push(...u),e.selectors=Xi(e.selectors,r=>r.selector)}function t(u,r,i){let a=r.pop();for(let n of r){let s=u[n];s||(s={},u[n]=s),u=s}u[a]=i}if(e.baseElement){let u=e.baseElement;t(e,["baseElements","selectors"],Array.isArray(u)?u:[u])}e.returnDomByDefault!==void 0&&t(e,["baseElements","returnDomByDefault"],e.returnDomByDefault);for(let u of e.selectors)u.format==="anchor"&&he(u,["options","noLinkBrackets"])&&t(u,["options","linkBrackets"],!1)}async function Ko(e,t,u){let{apiKey:r,domain:i}=e;if(!r||!i)throw new Error("Mailgun configuration missing. Please provide apiKey and domain");let a=[];try{let n=`https://api.mailgun.net/v3/${i}/events`,s={event:"accepted",limit:"10",ascending:"yes",recipient:t};if(u.from_email&&(s.from=u.from_email),u.since)s.begin=Math.floor(u.since/1e3).toString();else{let f=new Date(Date.now()-6e5);s.begin=Math.floor(f.getTime()/1e3).toString()}o.info(`Mailgun params: ${JSON.stringify(s)}`);let c=await fetch(n+"?"+new URLSearchParams(s),{method:"GET",headers:{Authorization:`Basic ${Buffer.from(`api:${r}`).toString("base64")}`}});if(!c.ok){let f=await c.text();throw new Error(`Mailgun events API error: ${f}`)}let l=(await c.json()).items||[];for(let f of l.slice(0,10)){if(f.event!=="accepted")continue;let g=(f.storage||{}).url;if(o.info(`message_url: ${g}`),!g){let m=(f.message||{}).headers||{},y=m.subject||"",w=m.from||"",v=m.to||"";if(u.from_email&&!w.toLowerCase().includes(u.from_email.toLowerCase())||u.to_email&&!v.toLowerCase().includes(u.to_email.toLowerCase())||u.subject&&!y.toLowerCase().includes(u.subject.toLowerCase()))continue;a.push({subject:y,from:w,to:v,date:new Date(f.timestamp*1e3).toUTCString(),body:"Message body not available (Mailgun storage disabled)",message_id:m["message-id"]||""});continue}let x=g.split("/"),b=x[x.length-1];if(o.info(`Storage key: ${b}`),b){let m=`https://api.mailgun.net/v3/domains/${i}/messages/${b}`;try{let y=await fetch(m,{method:"GET",headers:{Authorization:`Basic ${Buffer.from(`api:${r}`).toString("base64")}`,Accept:"application/json"}});if(y.ok){let w=await y.json(),v=w.Subject||"",I=w.From||"",$=w.To||"",q=w.Date||"",F=w["Message-Id"]||"";o.info(`subject: ${v}`),o.info(`from_addr: ${I}`),o.info(`to_addr: ${$}`),o.info(`date: ${q}`),o.info(`message_id: ${F}`);let M=w["body-html"]||w["body-plain"]||"";if(M&&M.includes("<")&&(M=na(M)),o.info(`Body: ${M.substring(0,200)}...`),u.subject&&!v.toLowerCase().includes(u.subject.toLowerCase())||u.body_contains&&!M.toLowerCase().includes(u.body_contains.toLowerCase()))continue;a.push({subject:v,from:I,to:$,date:q,body:M,message_id:F});continue}else o.warn(`Messages API returned ${y.status}`)}catch(y){o.warn(`Failed to parse JSON response: ${y}`)}}try{let m=await fetch(g,{method:"GET",headers:{Authorization:`Basic ${Buffer.from(`api:${r}`).toString("base64")}`}});if(!m.ok){o.warn(`Could not fetch stored message: ${m.status}`);continue}let y=await m.text();o.info(`Fallback: Raw email length: ${y.length}`);let w=y.split(`
24
+ `),v=!0,I={},$="";for(let qt=0;qt<w.length;qt++){let Mt=w[qt];if(Mt.trim()===""&&v){v=!1;continue}if(v){let Ut=Mt.match(/^([^:]+):\s*(.+)$/);Ut&&(I[Ut[1].toLowerCase()]=Ut[2])}else $+=Mt+`
25
+ `}let q=I.subject||"",F=I.from||"",M=I.to||"",Pt=I.date||"",Rt=I["message-id"]||"";if(u.subject&&!q.toLowerCase().includes(u.subject.toLowerCase())||u.body_contains&&!$.toLowerCase().includes(u.body_contains.toLowerCase()))continue;a.push({subject:q,from:F,to:M,date:Pt,body:$.trim(),message_id:Rt})}catch(m){o.warn(`Error fetching raw message: ${m}`)}}if(a.length>0){try{a.sort((g,x)=>{let b=new Date(g.date).getTime();return new Date(x.date).getTime()-b})}catch{}let f=a[0];return o.info(`Returning most recent email: ${f.subject}`),[f]}return a}catch(n){throw o.error(`Error fetching emails from Mailgun: ${n.message}`),new Error(`Error fetching emails from Mailgun: ${n.message}`)}}function Jo(e,t){if(e==="verification_code")return`You are analyzing an email to extract an OTP (One-Time Password) or verification code.
26
+
27
+ Please carefully examine the email content and look for:
28
+ 1. Numeric codes (usually 4-8 digits)
29
+ 2. Alphanumeric codes
30
+ 3. Verification codes, OTP codes, authentication codes
31
+ 4. Text like "Your code is", "Verification code:", "Enter this code", etc.
32
+
33
+ Extract the code exactly as shown in the email.
34
+ If you find a code, return just the code.
35
+ If you cannot find a code, return "NOT_FOUND".
36
+
37
+ Examples of what to extract:
38
+ - From: "Your verification code is: 123456"
39
+ Extract: 123456
40
+
41
+ - From: "Enter code: ABC123XYZ"
42
+ Extract: ABC123XYZ
43
+
44
+ - From: "OTP: 789012 (valid for 10 minutes)"
45
+ Extract: 789012
46
+
47
+ - From: "Use this code to verify: AB12-CD34-EF56"
48
+ Extract: AB12-CD34-EF56
49
+
50
+ Return ONLY the extracted code or "NOT_FOUND".`;if(e==="activation_link")return`You are analyzing an email to extract a magic link or verification link.
51
+
52
+ Please carefully examine the email content and look for:
53
+ 1. URLs that contain terms like "verify", "confirm", "activate", "login", "auth"
54
+ 2. Button links with text like "Verify Email", "Confirm Account", "Click Here"
55
+ 3. Links that appear to be for authentication or verification purposes
56
+
57
+ CRITICAL INSTRUCTIONS:
58
+ - Extract the COMPLETE URL from start to finish
59
+ - Include the ENTIRE URL starting with http:// or https://
60
+ - Include ALL query parameters, tokens, and path segments
61
+ - Do NOT truncate, shorten, or cut off any part of the URL
62
+ - Do NOT add ellipsis (...) or any other modifications
63
+ - Return the URL exactly as it appears in the email
64
+
65
+ If you find a magic link, return ONLY the complete URL with nothing else.
66
+ If you cannot find a magic link, return "NOT_FOUND".
67
+
68
+ Examples of what to extract:
69
+ - From: "Click here to verify: https://example.com/verify?token=abc123def456ghi789"
70
+ Extract: https://example.com/verify?token=abc123def456ghi789
71
+
72
+ - From: "Confirm your account: https://app.example.com/auth/confirm/xyz789?user_id=12345&redirect=/dashboard"
73
+ Extract: https://app.example.com/auth/confirm/xyz789?user_id=12345&redirect=/dashboard
74
+
75
+ - From: "[Verify Email](https://service.com/v/longtoken123456789abcdefghijklmnopqrstuvwxyz?param1=value1&param2=value2)"
76
+ Extract: https://service.com/v/longtoken123456789abcdefghijklmnopqrstuvwxyz?param1=value1&param2=value2
77
+
78
+ - From: "Verify Email [https://service.com/v/longtoken123456789abcdefghijklmnopqrstuvwxyz?param1=value1&param2=value2]"
79
+ Extract: https://service.com/v/longtoken123456789abcdefghijklmnopqrstuvwxyz?param1=value1&param2=value2
80
+
81
+ Return ONLY the complete extracted URL or "NOT_FOUND".`;if(e==="custom"){if(!t)throw new Error("Custom prompt is required when extraction_type is custom");return t+`
82
+ Return only the required content or 'NOT_FOUND'.`}else throw new Error(`Unsupported extraction type: ${e}`)}async function Yo(e,t,u){try{let r=`${t}
83
+ ---
84
+ Email Content:
85
+ ---
86
+ ${e}
87
+ ---
88
+ `,i=Ft(u);return(await Xu({model:i,messages:[{role:"user",content:r}],temperature:0,providerOptions:jt(u,0)})).text.trim()||"NOT_FOUND"}catch(r){throw o.error(`Error in LLM extraction: ${r.message}`),new Error(`Error in LLM extraction: ${r.message}`)}}async function sa(e,t){o.info(`extract_email_content:
89
+ forward_email: ${t.forward_email}
90
+ extraction_type: ${t.extraction_type}
91
+ filters: ${JSON.stringify(t.filters||{})}
92
+ timeout: ${t.timeout||60}
93
+ polling_interval: 10`);let u=t.timeout||60,r=10;try{if(t.extraction_type==="custom"&&!t.prompt)return{data:void 0,status:"error",message:"Custom prompt is required when extraction_type is custom"};let i=Jo(t.extraction_type,t.prompt),a=new Date,n=new Date(a.getTime()+u*1e3),s=0;for(o.info(`Starting email polling for ${u} seconds with ${r}s intervals`);new Date<n;){s++,o.info(`Polling attempt ${s}`);try{let l=t.filters||{},f=await Ko(e,t.forward_email,l);if(f.length>0){o.info(`Found ${f.length} emails matching criteria`);let g=[];for(let x of f){let b=`Subject: ${x.subject}
94
+ From: ${x.from}
95
+ To: ${x.to}
96
+ Date: ${x.date}
97
+
98
+ Body:
99
+ ${x.body}`,m=await Yo(b,i,t.model);o.info(`Extracted content: ${m}`),m&&m!=="NOT_FOUND"&&g.push({content:m,email_subject:x.subject,email_from:x.from,email_date:x.date})}if(g.length>0){let x=g[0],b=`$email_${t.extraction_type}`;t.extraction_type==="custom"?b="$email_extracted_content":t.extraction_type==="activation_link"?b="$email_magic_link":t.extraction_type==="verification_code"&&(b="$email_otp_code");let m=(new Date().getTime()-a.getTime())/1e3;return o.info(`Successfully extracted content after ${s} attempts in ${m.toFixed(1)} seconds`),{data:x.content,result_variable:b,status:"success",message:`Successfully extracted content from email: ${x.email_subject.substring(0,50)}... (attempts: ${s})`}}else o.info(`Found emails but no extractable content in attempt ${s}`)}else o.info(`No emails found in attempt ${s}`)}catch(l){o.warn(`Error in polling attempt ${s}: ${l.message}`)}if(new Date(Date.now()+r*1e3)>=n){o.info("Not enough time for another polling attempt");break}o.info(`Waiting ${r} seconds before next attempt...`),await new Promise(l=>setTimeout(l,r*1e3))}let c=(new Date().getTime()-a.getTime())/1e3;return{data:void 0,status:"error",message:`No emails with extractable content found after ${s} attempts over ${c.toFixed(1)} seconds`}}catch(i){return o.error(`Error extracting email content: ${i.message}`),{data:void 0,status:"error",message:`Error extracting email content: ${i.message}`}}}import{z as Y}from"zod";function oa(e){switch(e){case"verification_code":return"email_otp_code";case"activation_link":return"email_magic_link";case"custom":return"email_extracted_content";default:return"email_content"}}var ca=class{getMailgunConfig(){let e=Ht().env||{};if(e.MAILGUN_API_KEY)return{apiKey:e.MAILGUN_API_KEY,domain:e.MAILGUN_DOMAIN||""}}async execute(e,t,u){let r=t.action_data;if(!r)throw new Error("Action data not found");let i=this.getMailgunConfig();if(!i)throw new Error("Mailgun configuration not provided. Please configure MAILGUN_API_KEY and MAILGUN_DOMAIN in SDK config.");let a=r.kwargs,n=u.getModel?.()||"gemini-2.5-pro",s=await sa(i,{model:n,forward_email:a.forward_email,extraction_type:a.extraction_type,prompt:a.prompt,filters:{from_email:a.filter_from_email,to_email:a.filter_to_email,subject:a.filter_subject,body_contains:a.filter_body_contains},timeout:a.timeout});if(s.status==="success"&&s.data){let c=s.result_variable?.replace(/^\$/,"")||oa(a.extraction_type);u.variableStore.set(c,s.data),o.info(`[extract_email_content] Extracted and saved to ${c}`)}else throw new Error(s.message||"Failed to extract email content")}transpile(e){let t=e.action_data?.kwargs||{};return['await agent.execAction("extract_email_content", page, {',` action_data: { kwargs: ${JSON.stringify(t)} },`,"});"]}},Zo=Y.object({forward_email:Y.string().describe("Email address where emails are forwarded to (Mailgun inbox)"),extraction_type:Y.enum(["verification_code","activation_link","custom"]).describe("Type of content to extract: verification_code for OTP codes, activation_link for magic links, custom for custom prompts"),prompt:Y.string().optional().describe("Custom extraction prompt (required when extraction_type is custom)"),filter_from_email:Y.string().optional().describe("Filter emails by sender address"),filter_to_email:Y.string().optional().describe("Filter emails by recipient address"),filter_subject:Y.string().optional().describe("Filter emails by subject (partial match)"),filter_body_contains:Y.string().optional().describe("Filter emails by body content (partial match)"),timeout:Y.number().optional().describe("Timeout in seconds for polling (default: 60)")});function la(e,t){e.register({name:"extract_email_content",description:"Extract verification codes, magic links, or custom content from emails received via Mailgun. Polls the Mailgun inbox for matching emails and uses AI to extract the requested content.",schema:Zo,async execute(u,r){let{forward_email:i,extraction_type:a,prompt:n,filter_from_email:s,filter_to_email:c,filter_subject:l,filter_body_contains:f,timeout:g}=u,{page:x,agentServices:b}=r;o.info(`[extract_email_content] Extracting ${a} from ${i}`);try{let m={action_description:`Extract ${a} from email`,action_data:{action_name:"extract_email_content",kwargs:{forward_email:i,extraction_type:a,prompt:n,filter_from_email:s,filter_to_email:c,filter_subject:l,filter_body_contains:f,timeout:g}}};await t.execute(x,m,b);let y=oa(a);return{success:!0,actionEntity:m,message:`Extracted ${a} and saved to $${y}`}}catch(m){return{success:!1,error:m.message,actionEntity:{action_description:`Extract ${a} from email (failed)`,action_data:{action_name:"extract_email_content",kwargs:{forward_email:i,extraction_type:a,prompt:n,filter_from_email:s,filter_to_email:c,filter_subject:l,filter_body_contains:f,timeout:g}},feedback:m.message}}}}})}var ft=null;async function V(){if(ft)return ft;let e=(await import("./handler-SATFK5LZ.js")).default;return ft=new e,ft}async function ht(e){let t=await V(),u=t.getAction("click"),r=t.getAction("hover"),i=t.getAction("right_click"),a=t.getAction("double_click");return Ar(e,u),gr(e,r),sr(e,i),vr(e,a),"Click, hover, double-click, right-click, or drag elements"}async function pt(e){let t=await V(),u=t.getAction("go_to_url"),r=t.getAction("go_back"),i=t.getAction("reload_page");return mr(e,u),pr(e,r),nr(e,i),"Navigate to URLs, go back, or reload the page"}async function mt(e){let t=await V(),u=t.getAction("clear_input"),r=t.getAction("input_text"),i=t.getAction("press");return Er(e,u),br(e,r),xr(e,i),"Type text into inputs, clear input values, or press keyboard keys"}async function gt(e){let t=await V(),u=t.getAction("scroll_on_element"),r=t.getAction("scroll_to_text"),i=t.getAction("scroll");return lr(e,u),dr(e,r),cr(e,i),"Scroll the page or scroll to specific text/elements"}async function bt(e){let t=await V(),u=t.getAction("close_tab"),r=t.getAction("switch_tab");return wr(e,u),er(e,r),"Switch between browser tabs or close tabs"}async function xt(e){let t=await V(),u=t.getAction("upload_file"),r=t.getAction("wait_for_download_complete");return ur(e,u),ir(e,r),"Upload files or wait for downloads to complete"}async function wt(e){let t=await V(),u=t.getAction("get_dropdown_options"),r=t.getAction("select_dropdown_option"),i=t.getAction("set_date_for_native_date_picker");return hr(e,u),fr(e,r),Qu(e,i),"Get dropdown options, select dropdown values, or set date for native date picker input"}async function yt(e){let t=await V(),u=t.getAction("wait"),r=t.getAction("save_variable"),i=t.getAction("done");return rr(e,u),or(e,r),yr(e,i),Hr(e),"Wait for conditions, save variables, or complete tasks"}async function vt(e){let t=(await V()).getAction("generate_2fa_code");kr(e,t);let u=new ca;return(await import("./handler-SATFK5LZ.js")).default.registerAction("extract_email_content",u),la(e,u),"Generate 2FA codes or extract email/activation codes"}async function kt(e){let t=await V(),u=t.getAction("verify"),r=t.getAction("ai_extract"),i=t.getAction("ai_wait_until");return Sr(e,u),Tr(e,r),ar(e,i),"Perform AI-powered assertions, extractions, or wait conditions"}async function da(e){let[t,u,r,i,a,n,s,c,l,f]=await Promise.all([ht(e),pt(e),mt(e),gt(e),bt(e),xt(e),wt(e),yt(e),vt(e),kt(e)]);return{mouse:t,navigation:u,input:r,scroll:i,tabs:a,files:n,forms:s,utility:c,auth:l,ai:f}}function fa(e){return[`- Mouse: ${e.mouse}`,`- Navigation: ${e.navigation}`,`- Input: ${e.input}`,`- Scroll: ${e.scroll}`,`- Tabs: ${e.tabs}`,`- Files: ${e.files}`,`- Forms: ${e.forms}`,`- Utility: ${e.utility}`,`- Auth: ${e.auth}`,`- AI: ${e.ai}`].join(`
100
+ `)}var Xo=[ht(O),pt(O),mt(O),gt(O),bt(O),xt(O),wt(O),yt(O),kt(O),vt(O)],Qo=Promise.all(Xo);async function e0(){await Qo}function t0(){return O}function u0(e=!0){let t=new Pe;return e&&(ht(t),pt(t),mt(t),gt(t),bt(t),xt(t),wt(t),vt(t),yt(t),kt(t)),t}async function r0(){let e=new Pe,t=await da(e),u=fa(t);return{registry:e,capabilities:t,summary:u}}function i0(){return["- Mouse: Click, hover, double-click, right-click or drag on elements","- Navigation: Navigate to URLs, go back, or reload the page","- Input: Type text into inputs, clear input fields, or press keyboard keys","- Scroll: Scroll the page or scroll to specific text/elements","- Tabs: Switch between browser tabs or close tabs","- Files: Upload files or wait for downloads to complete","- Forms: Get dropdown options or select dropdown values","- Utility: Wait for conditions, save variables, or complete tasks","- Auth: Generate 2FA codes or extract email/activation codes","- AI: Perform AI-powered verifications, extractions, or wait conditions"].join(`
101
+ `)}var a0=class{constructor(e,t){this.registry=e,this.getContext=t}getToolDefinitions(){return this.registry.getTools().filter(e=>e.availability.mcp).map(e=>({name:e.name,description:e.description,inputSchema:Oe(e.schema)}))}getToolDefinitionsFiltered(e){let t=new Set(e);return this.registry.getTools().filter(u=>t.has(u.name)&&u.availability.mcp).map(u=>({name:u.name,description:u.description,inputSchema:Oe(u.schema)}))}async createServer(e="web-sdk-tools"){throw new Error("MCP server creation not yet implemented. Install and configure an MCP SDK like @modelcontextprotocol/sdk")}async executeTool(e,t){let u=await this.getContext(),r=await this.registry.execute(e,t,u);return{content:[{type:"text",text:r.success?r.message||"Tool executed successfully":r.error||"Tool execution failed"}]}}getToolCount(){return this.registry.size()}getToolNames(){return this.registry.getToolNames()}};function n0(e){return e.getTools().map(t=>({name:t.name,description:t.description,inputSchema:Oe(t.schema)}))}import Iu from"fs";import Nu from"path";import{chromium as s0,firefox as o0,webkit as c0}from"playwright";var l0=class{constructor(e={}){e.testDir&&(this.videoBasePath=Nu.join(e.testDir,"videos"),this.statesBasePath=Nu.join(e.testDir,"states"),this.downloadsBasePath=Nu.join(e.testDir,"downloads"),Iu.mkdirSync(this.videoBasePath,{recursive:!0}),Iu.mkdirSync(this.statesBasePath,{recursive:!0}),Iu.mkdirSync(this.downloadsBasePath,{recursive:!0})),this.terminationTimeout=e.terminationTimeout??null,this.defaultHeadless=e.headless??!1,this.additionalArgs=e.additionalArgs??[]}async launchBrowser(e={}){let t=e.debugPort,u=e.headless??this.defaultHeadless,r=Or(e.deviceName),i=Br(e.deviceName),a=r===pe.Chromium;o.info(`[BrowserManager] Launching ${r} browser for device: ${e.deviceName||"default"}${t?` on port ${t}`:""}`);let n={headless:u};if(a){let y=[];(e.enableCamera||e.enableMicrophone)&&(y.push("--use-fake-device-for-media-stream","--use-fake-ui-for-media-stream"),e.enableMicrophone&&e.fakeAudioCapturePath&&(y.push(`--use-file-for-fake-audio-capture=${e.fakeAudioCapturePath}`),o.info(`[BrowserManager] Using fake audio capture file: ${e.fakeAudioCapturePath}`))),n.args=[..._r(t,e.disableSecurity??!0,u),...y,...this.additionalArgs],i&&(n.channel=i,o.debug(`[BrowserManager] Launching browser with channel: ${i}`))}let s;switch(r){case pe.Firefox:s=await o0.launch(n);break;case pe.Webkit:s=await c0.launch(n);break;case pe.Chromium:default:s=await s0.launch(n);break}let c=Dr(e.deviceName),l=$r(e.deviceName),f={acceptDownloads:!0,...c,timezoneId:"America/Los_Angeles",locale:e.locale||"en-US"};e.localStorageStatePath&&(f.storageState=e.localStorageStatePath),e.recordVideo&&this.videoBasePath&&(f.recordVideo={dir:this.videoBasePath,size:{width:l.width,height:l.height}}),e.proxy&&(f.proxy=e.proxy);let g=await s.newContext(f);if(g.addInitScript(Vt),e.enableCamera||e.enableMicrophone)if(!a)o.warn("[BrowserManager] Camera/microphone enabled but browser is not Chromium; ignoring.");else{let y=[];e.enableCamera&&y.push("camera"),e.enableMicrophone&&y.push("microphone");try{await g.grantPermissions(y),o.info(`[BrowserManager] Granted permissions: ${y.join(", ")}`)}catch(w){o.warn("[BrowserManager] Failed to grant camera/microphone permissions:",w)}}if(e.cookies&&e.cookies.length>0){let y=(Date.now()+31536e6)/1e3,w=e.cookies.map(v=>({...v,expires:y}));await g.addCookies(w),o.info(`[BrowserManager] Added ${e.cookies.length} cookies to browser context with expires=${y}`)}let x=Cr(e.deviceName);o.info(`[BrowserManager] windowSize=${JSON.stringify(x)}`),a&&g.on("page",async y=>{try{await Gt(y,x.width,x.height)}catch(w){o.warn("[BrowserManager] Failed to set window bounds via CDP:",w)}});let b="";if(a&&t!==void 0)try{b=await Wt(t)}catch(y){o.warn("[BrowserManager] Failed to get CDP WebSocket URL:",y)}let m={debugPort:t,browser:s,context:g,startTime:new Date,timeout:null,browserWsUrl:b,downloadsBasePath:this.downloadsBasePath,browserType:r};if(this.terminationTimeout!==null){let y=setTimeout(()=>{o.info(`[BrowserManager] Browser auto-terminated after ${this.terminationTimeout}ms`),this.terminateBrowser(m).catch(w=>o.error("[BrowserManager] Error terminating browser:",w))},this.terminationTimeout);m.timeout=y}return m}async terminateBrowser(e){e.timeout&&clearTimeout(e.timeout),await e.context.close(),await e.browser.close()}getVideoBasePath(){return this.videoBasePath}getStatesBasePath(){return this.statesBasePath}getDownloadsBasePath(){return this.downloadsBasePath}};var d0=e=>{if(!e||e===Ir)return"desktop";let t=Nr(e);return t&&t.isMobile?"mobile":"desktop"};var f0=(e=>(e.Desktop="desktop",e.Mobile="mobile",e))(f0||{});var ha=class{constructor(e){this.currentPage=null,this.currentIndex=-1,this.context=e,this.initialize()}initialize(){this.context.on("page",async t=>{await this.handleNewPage(t)});let e=this.context.pages();e.length>0&&(this.currentPage=e[0],this.currentIndex=0);for(let t of e)this.setupPageListeners(t)}async handleNewPage(e){try{this.setupPageListeners(e);let t=this.context.pages().indexOf(e);await this.setCurrentPage(e,t)}catch{}}setupPageListeners(e){e.on("close",async()=>{await this.handlePageClose(e)})}async handlePageClose(e){try{if(this.currentPage===e){let t=this.context.pages(),u=t.slice().reverse().find(r=>!r.isClosed());u&&await this.setCurrentPage(u,t.indexOf(u))}}catch{}}async setCurrentPage(e,t){let u=this.currentPage!==e;this.currentPage=e,this.currentIndex=t,u&&await e.bringToFront()}async switchToPage(e){let t=this.context.pages();if(e<0||e>=t.length)throw new Error(`Invalid page index: ${e}. Available pages: 0-${t.length-1}`);let u=t[e];if(u.isClosed())throw new Error(`Page at index ${e} is closed`);return await this.setCurrentPage(u,e),u}async closePage(e){let t=this.context.pages();if(e<0||e>=t.length)throw new Error(`Invalid page index: ${e}. Available pages: 0-${t.length-1}`);let u=t[e];if(u.isClosed())throw new Error(`Page at index ${e} is already closed`);await u.close()}getCurrentPage(){return this.currentPage}getCurrentIndex(){return this.currentIndex}getAllPages(){return this.context.pages()}getPageCount(){return this.context.pages().length}};async function pa(e,t=3e3,u=1e3){try{await qe(e,t,u)}catch{}}async function ma(e,t,u){let r=u*1e3,i=100,a=Date.now();for(;!t.downloadStatus||t.downloadStatus.status==="inProgress";){if(Date.now()-a>r){let n;throw t.downloadStatus?n=`Timed out after ${r}ms waiting for download to complete`:n="No download in progress or completed",o.error(n),new Error(n)}await e.waitForTimeout(i)}if(t.downloadStatus.status==="failed"){let n=`Download failed: ${t.downloadStatus.error||"Unknown error"}`;throw o.error(n),new Error(n)}t.agentNote=`Download completed: ${t.downloadStatus.filename}`}async function ga(e,t,u,r=60,i){let a=Math.min(r,280),n=Math.max(10,a/10)*1e3,s=Date.now()+a*1e3;for(o.info(`Waiting for condition: "${t}" (timeout: ${a}s)`);;){let c=Date.now();try{if(await u(e,t,i))return o.info(`Condition met: "${t}"`),!0}catch(f){o.warn(`Error evaluating condition: ${f.message}`)}if(Date.now()>s)return o.warn(`Timeout waiting for condition: "${t}"`),!1;let l=n-(Date.now()-c);l>0&&await e.waitForTimeout(l)}}var Xa=Yu(Ya(),1);import*as Za from"fs";import*as $e from"path";var Ju=class{constructor(e){this.context=e,this.testDataFileNames=[]}setTestDataDownloader(e,t){this.testDataDownloader=e,this.testDataFileNames=t??[]}setupPageTracking(e){this.tabManager=new ha(e)}async switchTab(e){if(!this.tabManager)throw new Error("Tab manager not initialized");return await this.tabManager.switchToPage(e)}async closeTab(e){if(!this.tabManager)throw new Error("Tab manager not initialized");await this.tabManager.closePage(e)}getCurrentPage(){return this.tabManager?this.tabManager.getCurrentPage():null}validatePage(e){let t=this.getCurrentPage();if(t&&t!==e&&!t.isClosed())return o.info(`[validatePage] Page changed, switching to ${t.url()}`),t;if(e.isClosed()){let u=e.context().pages().filter(r=>!r.isClosed());if(u.length>0){let r=u[u.length-1];return o.info(`[validatePage] Page closed, switching to ${r.url()}`),r}o.error("[validatePage] No valid pages found")}return e}replaceVariables(e){return Kt(e,this.context.variableStore.getAll())}getTestDataFileNames(){return this.testDataFileNames}getTestDataFilePath(e){let t=this.context.testDataDir||process.cwd();return $e.join(t,e)}async downloadTestDataFiles(e){if(e.length===0){o.debug("[AgentServices] No file paths provided for download");return}let t=this.context.testDataDir||process.cwd(),u=e.filter(r=>{let i=$e.basename(r),a=$e.join(t,i),n=Za.existsSync(a);return n&&o.debug(`[AgentServices] File already exists locally: ${i}`),!n});if(u.length===0){o.debug("[AgentServices] All files exist locally, no download needed");return}if(!this.testDataDownloader){o.debug("[AgentServices] No test data downloader configured, assuming files are pre-populated");return}o.info(`[AgentServices] Downloading ${u.length} test data files: ${u.join(", ")}`),await this.testDataDownloader(u,t)}async waitForDownloadComplete(e,t){return ma(e,this.context,t)}getRecentDownloadedFilePath(){return this.context.downloadStatus?this.context.downloadStatus.status!=="completed"?(o.debug(`Download is ${this.context.downloadStatus.status}, not completed`),null):this.context.downloadStatus.filePath?(o.info(`Retrieved recent download path: ${this.context.downloadStatus.filePath}`),this.context.downloadStatus.filePath):(o.warn("Download completed but file path is missing"),null):(o.debug("No download found"),null)}addSensitive(e,t){this.context.variableStore.set(e,t,!0)}saveVariable(e,t){let u=e.startsWith("$")?e.slice(1):e;this.context.variableStore.set(u,t),o.debug(`Saved variable: ${u} = ${JSON.stringify(t)}`),this.context.agentNote=`A new value is saved to the variable "${u}".`}addNote(e){!e||e.trim()===""||(this.context.agentNote?this.context.agentNote+=`
102
+ ${e.trim()}`:this.context.agentNote=e.trim())}readVariable(e){let t=e.startsWith("$")?e.slice(1):e,u=this.context.variableStore.get(t);return o.debug(`Read variable: ${t} = ${JSON.stringify(u)}`),u}async generate2faCode(e){try{let t=Xa.authenticator.generate(e);return o.info(`Generated 2FA code: ${t}`),t}catch(t){throw o.error(`Failed to generate 2FA code: ${t.message}`),new Error(`Failed to generate 2FA code: ${t.message}`)}}async getDOMText(e){return await e.evaluate(()=>document.body.innerText)}async waitUntilStable(e,t){return qe(e,t)}setPage(e){this.context.setPage?(o.info("[AgentServices] Calling setPage callback"),this.context.setPage(e)):o.debug("[AgentServices] setPage callback not configured")}getModel(){if(!this.context.model)throw new Error("No LLM model configured. An LLM model is required for AI-powered actions (login, verify, ai_extract, ai_wait_until, etc.). Set GOOGLE_API_KEY or ANTHROPIC_API_KEY in your MCP server configuration.");return this.context.model}get variableStore(){return this.context.variableStore}getDownloadDir(){return this.context.downloadDir}getActionSettings(){return this.context.organizationSettings?.action_code_conversion_settings||{}}getInteractiveClassNames(){return this.context.organizationSettings?.agent_settings?.interactive_class_names||[]}isUseCleanScreenshotForAssertion(){return this.context.organizationSettings?.use_clean_screenshot_for_assertion||!1}isKnowledgeImagesEnabled(){return this.context.organizationSettings?.agent_settings?.enable_knowledge_images||!1}isSlicedScreenshotsEnabled(){return this.context.organizationSettings?.agent_settings?.use_sliced_screenshots||!1}isResizeSlicedScreenshotsEnabled(){return this.context.organizationSettings?.agent_settings?.resize_sliced_screenshots||!1}isAccessibilityTreeEnabled(){return this.context.organizationSettings?.agent_settings?.use_accessibility_tree||!1}isActionIntentFilteringEnabled(){return this.context.organizationSettings?.agent_settings?.use_action_intent_filtering||!1}isDomTreeTsEnabled(){let e=process.env.USE_DOM_TREE_TS;return e!==void 0?e==="true"||e==="1":this.context.organizationSettings?.agent_settings?.use_dom_tree_ts||!1}getDomServiceOptions(){return{useDomTreeTs:this.isDomTreeTsEnabled()}}setKnowledgeRetriever(e){this.knowledgeRetriever=e}hasKnowledgeRetriever(){return this.knowledgeRetriever!==void 0}async retrieveKnowledges(e,t,u,r){if(!this.knowledgeRetriever)return o.debug("[AgentServices] No knowledge retriever configured"),[];try{let i=await this.knowledgeRetriever(e,t,u,r);return o.debug(`[AgentServices] Retrieved ${i.length} knowledges for statement`),i}catch(i){return o.warn(`[AgentServices] Failed to retrieve knowledges: ${i.message}`),[]}}};import*as L from"fs";import*as C from"path";var E0=5,A0=3,_0=40;function Be(e,t){let u={};for(let[r,i]of Object.entries(e))u[r]=t.has(r)?"*****":i;return u}var Qa=class{constructor(e){this.context=e,this._newActionEntities=new Map,this.agentServices=new Ju(e),this.context.tokenUsages||(this.context.tokenUsages=[])}getNewActionEntities(){return this._newActionEntities}async getActionHandler(){if(!this._actionHandler){let{default:e}=await import("./handler-SATFK5LZ.js");this._actionHandler=new e}return this._actionHandler}async execAction(e,t,u){let r=(await this.getActionHandler()).getAction(e);if(!r)throw new Error(`Unknown action: ${e}`);await r.execute(t,u,this.agentServices)}async dismissModalIfPresent(e,t){try{let u=await this.execute(e,`TASK: Check if there is an INTRUSIVE POPUP blocking the page, and dismiss it if present.
103
+
104
+ ONLY dismiss intrusive popups such as:
105
+ - Cookie/GDPR consent banners
106
+ - Newsletter or email signup popups
107
+ - Promotional discount or upsell popups
108
+ - "Rate our app" or feedback request popups
109
+ - Push notification permission requests
110
+ - Age verification popups
111
+ - Or similar unwanted popups that interrupt the user experience
112
+
113
+ DO NOT dismiss or interact with:
114
+ - Normal UI elements, buttons, or controls on the page
115
+ - Dialogs that are part of the user's workflow (confirmations, form submissions, etc.)
116
+ - Dropdown menus, filters, or date pickers
117
+ ${t?`- Anything related to: "${t}"`:""}
118
+
119
+ If you find an intrusive popup, dismiss it by clicking its close/X button or "No thanks"/"Decline" button.
120
+
121
+ IMPORTANT: Only act with HIGH CONFIDENCE. If unsure whether something is an intrusive popup, do nothing.
122
+ It's better to miss a popup than to accidentally interact with normal page elements.
123
+
124
+ If NO intrusive popup is present, do nothing and report that no intrusive popup was found.`,void 0,!1,A0),r=!!(u.actions&&u.actions.length>0);return{success:u.success,modalDismissed:r,details:u.details||(r?"Modal dismissed":"No modal found")}}catch(u){return{success:!1,modalDismissed:!1,details:u.message||"Modal dismissal failed"}}}_getContext(){return this.context}setupDownloadTracking(e){o.info(`[Download Tracking] Setting up download tracking for page: ${e.url()}`),e.on("download",async t=>{let u=t.suggestedFilename();o.info(`[Download Tracking] Download event detected! File: ${u}`),this.context.downloadStatus={filename:u,status:"inProgress",startTime:Date.now()},o.info(`[Download Tracking] Download status set to inProgress: ${JSON.stringify(this.context.downloadStatus)}`);try{let r=this.context.downloadDir||C.join(process.cwd(),"downloads");L.existsSync(r)||L.mkdirSync(r,{recursive:!0});let i=C.join(r,u);o.info(`[Download Tracking] Downloading file to: ${i}`),await t.saveAs(i),this.context.downloadStatus={filename:u,status:"completed",startTime:this.context.downloadStatus.startTime,filePath:i,timestamp:Date.now()},o.info(`[Download Tracking] Download completed: ${i}`),o.info(`[Download Tracking] Download status set to completed: ${JSON.stringify(this.context.downloadStatus)}`)}catch(r){this.context.downloadStatus={filename:u,status:"failed",startTime:this.context.downloadStatus.startTime,error:r.message,timestamp:Date.now()},o.error(`[Download Tracking] Download failed for ${u}: ${r.message}`)}})}collectTokenUsages(e){let t;Array.isArray(e)?t=e:e?.tokenUsages&&(t=e.tokenUsages),t&&t.length>0?(this.context.tokenUsages||(this.context.tokenUsages=[]),this.context.tokenUsages.push(...t),o.debug(`[collectTokenUsages] Added ${t.length} token usage(s), total: ${this.context.tokenUsages.length}`)):o.debug("[collectTokenUsages] No token usages to collect (undefined or empty)")}trackAIAction(e,t,u,r=1,i,a){if(!e)return;let n=u?.tokenUsages||[];this.context.aiActionDetails||(this.context.aiActionDetails=[]);let s=this.context.aiActionDetails.find(c=>c.stepId===e&&c.actionType===t);s?(s.count+=r,n.length>0&&s.tokenUsages.push(...n),u?.userPrompt&&(s.userPrompt=u.userPrompt),u?.rawLlmResponse&&(s.rawLlmResponse=u.rawLlmResponse),u?.reasoningContent&&(s.reasoningContent=u.reasoningContent),u?.elementTree&&(s.elementTree=u.elementTree),u?.screenshotWithSom&&(s.screenshotWithSom=u.screenshotWithSom),a&&(s.explanation=a)):this.context.aiActionDetails.push({stepId:e,actionType:t,count:r,tokenUsages:[...n],statement:i,userPrompt:u?.userPrompt,rawLlmResponse:u?.rawLlmResponse,reasoningContent:u?.reasoningContent,explanation:a,elementTree:u?.elementTree,screenshotWithSom:u?.screenshotWithSom}),o.debug(`[trackAIAction] Tracked ${t} for step ${e}, count: ${r}`)}async assert(e,t,u){o.info(`Asserting statement: ${t}`),u&&this.context.stepTracking&&await this.createStepResult(e,u,t),await this.agentServices.waitUntilStable(e);try{let r=this.getCompletedExecutionHistory(),i=await Ue(t,e,this.agentServices,{executionHistory:r,useCleanScreenshotForAssertion:!0,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys()});this.collectTokenUsages(i.debugInfo),this.context.lastActionDebugInfo=i.debugInfo;let a=i.explanation||i.error||"No explanation";if(u&&this.trackAIAction(u,"assert",i.debugInfo,1,t,a),this.context.agentNote=a,u&&this.context.stepTracking&&await this.updateStepResult(u,i.success?"success":"failure",a,void 0,i.debugInfo),!i.success)throw this.addToExecutionHistory(`Assert: "${t}"`,`Failed: ${a}`),new Error(`Assertion failed: ${a}`);return this.addToExecutionHistory(`Assert: "${t}"`,`Passed: ${a}`),!0}catch(r){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",r.message),r}}async evaluate(e,t,u){u&&this.context.stepTracking&&await this.createStepResult(e,u,t),await this.agentServices.waitUntilStable(e);try{let r=this.getCompletedExecutionHistory(),i=await Ue(t,e,this.agentServices,{executionHistory:r,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys()});this.collectTokenUsages(i.debugInfo),this.context.lastActionDebugInfo=i.debugInfo;let a=i.explanation||i.error||"No explanation";return u&&this.trackAIAction(u,"evaluate",i.debugInfo,1,t,a),this.context.agentNote=a,u&&this.context.stepTracking&&await this.updateStepResult(u,"success",a,void 0,i.debugInfo),i.success?(this.addToExecutionHistory(`Evaluate: "${t}"`,`Result: true - ${a}`),!0):(o.warn(`AI evaluation returned false/unknown: ${a}`),this.addToExecutionHistory(`Evaluate: "${t}"`,`Unknown/False: ${a}`),!1)}catch(r){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",r.message),r}}async performAction(e,t){o.info(`Act: ${t}`);let u=this.getCompletedExecutionHistory(),r=await Me(t,e,this.agentServices,{executionHistory:u,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys()});if(this.collectTokenUsages(r.debugInfo),r.status!=="success"||r.actionEntities.length===0)return{success:!1,details:r.explanation||r.error||"Action failed"};let i=r.actionEntities[0]?.action_description||t;return this.addToExecutionHistory(t,i),{success:!0,details:r.explanation}}async execute(e,t,u,r,i){if(i!==void 0&&i<=0)throw new Error(`maxSteps must be >= 1, got ${i}`);let a=i!==void 0&&i>1;o.info(`Executing statement: ${t} (${a?`multi, maxSteps: ${i}`:"single"})`),u&&this.context.stepTracking&&await this.createStepResult(e,u,t);try{let n=this.getCompletedExecutionHistory();this.context.agentNote="";let s,c;if(a){let f=u&&this.context.stepTracking?.artifactsDir?g=>{if(g.type==="action"&&g.debugInfo){let x=`${u}-step${g.step}`;this.saveDebugInfoToFiles(x,g.debugInfo,this.context.model)}}:void 0;if(s=await He(t,e,this.agentServices,f,{executionHistory:n,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys(),maxSteps:i??_0}),c=s.completed,this.collectTokenUsages(s.tokenUsages),u&&s.tokenUsages){let g={tokenUsages:s.tokenUsages};this.trackAIAction(u,"execute",g,s.actionEntities?.length||1,t,s.explanation||"Multi-step execution completed")}}else if(s=await Me(t,e,this.agentServices,{executionHistory:n,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys(),usePureVision:r}),c=!0,this.collectTokenUsages(s.debugInfo),this.context.lastActionDebugInfo=s.debugInfo,u){let f=s.explanation||s.error||"No explanation";this.trackAIAction(u,"execute",s.debugInfo,1,t,f)}if(s.status!=="success"||s.actionEntities.length===0||!c){let f=s.explanation||s.error||"Goal not completed";throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",f,void 0,s.debugInfo),new Error(`Action failed: ${f}`)}let l=this.context.agentNote||s.explanation||"Action executed successfully";return u&&this.context.stepTracking&&await this.updateStepResult(u,"success",l,void 0,s.debugInfo),this.addToExecutionHistory(`Execute: "${t}"`,l),{success:!0,details:l,actions:s.actionEntities,debugInfo:s.debugInfo}}catch(n){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",n.message),this.addToExecutionHistory(`Execute: "${t}"`,`Failed: ${n.message}`),n}}async generate(e,t,u,r){u&&this.context.stepTracking&&await this.createStepResult(e,u,t);try{let i=this.getCompletedExecutionHistory(),a=await zt(t,e,this.agentServices,{executionHistory:i,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys(),usePureVision:r});if(this.collectTokenUsages(a.debugInfo),a.status!=="success"||a.actionEntities.length===0){let c=a.explanation||a.error||"No explanation";throw u&&this.trackAIAction(u,"generate",a.debugInfo,1,t,c),u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",c,void 0,a.debugInfo),new Error(c)}let n=a.completed,s=a.explanation||"Action generated successfully";return u&&this.trackAIAction(u,"generate",a.debugInfo,1,t,s),u&&this.context.stepTracking&&await this.updateStepResult(u,"success",s,void 0,a.debugInfo),o.info(`[generate] Generated action for "${t}": ${s}, goalAccomplished: ${a.completed}`),{success:n,details:s,actions:a.actionEntities,debugInfo:a.debugInfo}}catch(i){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",i.message),i}}async run(e,t,u,r){u&&this.context.stepTracking&&await this.createStepResult(e,u,t);try{let i=this.getCompletedExecutionHistory();this.context.agentNote="";let a=u&&this.context.stepTracking?.artifactsDir,n=r?.onAction||a?f=>{if(f.type==="action"&&f.action_entity&&(r?.onAction?.(f.action_entity),a&&f.debugInfo)){let g=`${u}-step${f.step}`;this.saveDebugInfoToFiles(g,f.debugInfo,this.context.model)}}:void 0,s=await He(t,e,this.agentServices,n,{executionHistory:i,variables:this.context.variableStore.getAll(),sensitiveKeys:this.context.variableStore.getAllSensitiveKeys(),abortSignal:r?.abortSignal,maxSteps:r?.maxSteps});k.log(`Run task result: status=${s.status}, completed=${s.completed}, actions=${s.actionEntities?.length||0}`),this.collectTokenUsages(s.tokenUsages);let c=s.status==="success"&&s.completed,l=this.context.agentNote?.trim()||s.explanation||s.error||(c?"Step completed":"Step failed");if(u&&s.tokenUsages){let f={tokenUsages:s.tokenUsages};this.trackAIAction(u,"run",f,s.actionEntities?.length||1,t,l)}if(u&&this.context.stepTracking&&await this.updateStepResult(u,c?"success":"failure",l,void 0,void 0),this.addToExecutionHistory(`Run: "${t}"`,l),s.status==="error")throw new Error(l);return k.log(`Run result: success=${c}, details=${l}`),{success:c,details:l,actions:s.actionEntities}}catch(i){throw u&&this.context.stepTracking&&await this.updateStepResult(u,"failure",i.message),this.addToExecutionHistory(`Run: "${t}"`,`Failed: ${i.message}`),i}}async step(e,t,u,r,i,a=!0,n){let s=Date.now();this.context.stepTracking&&await this.createStepResult(e,r,u),await this.agentServices.waitUntilStable(e),this.context.stepTracking&&(this.context.stepTracking.currentStepId=r);let c=e.url(),l=await this.captureDOMSnapshot(e),f=this.context.stepTracking?.captureVariables?Be(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{},g=this.context.stepTracking?.results[r]?.screenshot;try{o.info(`Executing step ${r}: ${u}`),this.addToExecutionHistory(u,""),this.context.agentNote="";let x=await t(),b=e.url(),m=await this.captureDOMSnapshot(e),y=this.context.stepTracking?.captureVariables?Be(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{};if(this.context.stepTracking&&await this.updateStepResult(r,"success",""),this.context.stepTracking?.captureStateTransitions&&this.context.stepTracking.stateTransitions){let v=Date.now()-s,I=this.context.stepTracking.results[r]?.screenshot,$=Date.now();this.context.stepTracking.stateTransitions.length===0&&this.context.stepTracking.stateTransitions.push({type:"state",url:c,domSnapshot:l||void 0,variables:f,screenshotPath:g,timestamp:s}),this.context.stepTracking.stateTransitions.push({type:"action",stepId:r,description:u,action:{playwrightCode:[t.toString()]},consoleLogs:this.getConsoleLogsForStep(r),durationMs:v,status:"success"}),this.context.stepTracking.stateTransitions.push({type:"state",url:b,domSnapshot:m||void 0,variables:y,screenshotPath:I,timestamp:$})}let w=this.context.agentNote;return(!w||w.trim()==="")&&(w="Execution successful"),this.context.executionHistory&&this.context.executionHistory.length>0&&(this.context.executionHistory[this.context.executionHistory.length-1][1]=w),this.context.stepTracking&&(this.context.stepTracking.currentStepId=void 0),x}catch(x){let b=a&&!this.context.isSelfHealing;if(b&&(this.context.stepTracking&&await this.updateStepResult(r,"failure",x.message),this.context.executionHistory&&this.context.executionHistory.length>0&&(this.context.executionHistory[this.context.executionHistory.length-1][1]=x.message)),!u||u.trim()==="")throw o.error("No description provided for self-healing"),this.context.stepTracking&&(this.context.stepTracking.currentStepId=void 0),x;if(!b){if(o.info(`Failed to heal at step ${r}. ${u}`),this.context.isSelfHealing=!1,this.context.stepTracking?.captureStateTransitions&&this.context.stepTracking.stateTransitions){let w=e.url(),v=await this.captureDOMSnapshot(e),I=this.context.stepTracking.captureVariables?Be(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{},$=Date.now()-s,q=Date.now();this.context.stepTracking.stateTransitions.length===0&&this.context.stepTracking.stateTransitions.push({type:"state",url:c,domSnapshot:l||void 0,variables:f,screenshotPath:g,timestamp:s}),this.context.stepTracking.stateTransitions.push({type:"action",stepId:r,description:u,action:{playwrightCode:[t.toString()]},consoleLogs:this.getConsoleLogsForStep(r),durationMs:$,status:"failure",errorMessage:x.message}),this.context.stepTracking.stateTransitions.push({type:"state",url:w,domSnapshot:v||void 0,variables:I,timestamp:q})}throw this.context.stepTracking&&(await this.updateStepResult(r,void 0,void 0),this.context.stepTracking.currentStepId=void 0),x}this.context.isSelfHealing=!0,o.info(`Action failed at step ${r}. ${u}`),o.info(`with error: ${x.message}`);let m;if(this.context.autoDisableModal){o.info("Attempting modal dismissal before self-healing...");let w=await this.dismissModalIfPresent(e,u);if(o.info(`Modal dismissal result: ${w.details}`),w.modalDismissed){m=`[Auto-dismissed modal: ${w.details}]`,o.info(`Modal dismissed, retrying original action for step ${r}`);try{let v=await t();return this.context.isSelfHealing=!1,this.context.executionHistory&&this.context.executionHistory.length>0&&(this.context.executionHistory[this.context.executionHistory.length-1][1]=m+" Retry successful"),this.context.stepTracking&&(await this.updateStepResult(r,"success",m),this.context.stepTracking.currentStepId=void 0),v}catch(v){o.info(`Retry after modal dismissal failed: ${v.message}, falling back to self-healing`)}}}let y=n??E0;o.info(`Calling execute() to self-heal (maxSteps: ${y})`);try{let w=await this.execute(e,u,r,!1,y);if(this.context.isSelfHealing=!1,!w.success)throw new Error(`Self-healing failed: ${w.details}`);let v=w.actions?.at(-1);i&&v&&(this._newActionEntities.set(i,v),o.info(`Stored new action entity for stmtUid: ${i} (last of ${w.actions?.length} actions)`));let I=e.url(),$=await this.captureDOMSnapshot(e),q=this.context.stepTracking?.captureVariables?Be(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{};if(this.context.stepTracking){let F=m||"";await this.updateStepResult(r,"success",F)}if(this.context.stepTracking?.captureStateTransitions&&this.context.stepTracking.stateTransitions){let F=Date.now()-s,M=this.context.stepTracking.results[r]?.screenshot,Pt=Date.now();this.context.stepTracking.stateTransitions.length===0&&this.context.stepTracking.stateTransitions.push({type:"state",url:c,domSnapshot:l||void 0,variables:f,screenshotPath:g,timestamp:s}),this.context.stepTracking.stateTransitions.push({type:"action",stepId:r,description:u,action:{actionEntity:v,playwrightCode:w.actions?.map(Rt=>Rt.locator||""),llmPrompt:w.debugInfo?.userPrompt,llmResponse:w.debugInfo?.rawLlmResponse,llmReasoning:w.debugInfo?.reasoningContent},consoleLogs:this.getConsoleLogsForStep(r),durationMs:F,status:"success"}),this.context.stepTracking.stateTransitions.push({type:"state",url:I,domSnapshot:$||void 0,variables:q,screenshotPath:M,timestamp:Pt})}return this.context.stepTracking&&(this.context.stepTracking.currentStepId=void 0),w}catch(w){if(this.context.isSelfHealing=!1,this.context.stepTracking?.captureStateTransitions&&this.context.stepTracking.stateTransitions){let v=e.url(),I=await this.captureDOMSnapshot(e),$=this.context.stepTracking.captureVariables?Be(this.context.variableStore.getAll(),this.context.variableStore.getAllSensitiveKeys()):{},q=Date.now()-s,F=Date.now();this.context.stepTracking.stateTransitions.length===0&&this.context.stepTracking.stateTransitions.push({type:"state",url:c,domSnapshot:l||void 0,variables:f,screenshotPath:g,timestamp:s}),this.context.stepTracking.stateTransitions.push({type:"action",stepId:r,description:u,action:{playwrightCode:[t.toString()]},consoleLogs:this.getConsoleLogsForStep(r),durationMs:q,status:"failure",errorMessage:w.message}),this.context.stepTracking.stateTransitions.push({type:"state",url:v,domSnapshot:I||void 0,variables:$,timestamp:F})}throw this.context.stepTracking&&(this.context.stepTracking.currentStepId=void 0),w}}}async extract(e,t,u,r){r&&this.context.stepTracking&&await this.createStepResult(e,r,`Extract ${t} into ${u}`);try{let i=`Extract ${t} and save to ${u}`,a=await this.execute(e,i,r);if(!a.success)throw new Error(`AI extraction failed: ${a.details}`);r&&this.context.stepTracking&&await this.updateStepResult(r,"success",`Extracted ${t} to ${u}`)}catch(i){throw r&&this.context.stepTracking&&await this.updateStepResult(r,"failure",i.message),i}}async getDOMText(e){let t=new Re(this.agentServices.getDomServiceOptions()),u=this.agentServices.getInteractiveClassNames();return(await t.getClickableElements(e,{interactiveClassNames:u})).elementTree.clickableElementsToString()}async captureDOMSnapshot(e){if(!this.context.stepTracking?.captureStateTransitions||!this.context.stepTracking?.captureDom)return null;try{let t=new Re(this.agentServices.getDomServiceOptions()),u=this.agentServices.getInteractiveClassNames(),r=await t.getClickableElements(e,{interactiveClassNames:u,highlightElements:!1,viewportExpansion:0});return{elementTreeText:r.elementTree.clickableElementsToString(),elementCount:r.selectorMap.size,timestamp:Date.now()}}catch(t){return o.warn("Failed to capture DOM snapshot:",t),null}}getConsoleLogsForStep(e){return this.context.stepTracking?.consoleLogs?this.context.stepTracking.consoleLogs.filter(t=>t.stepId===e).map(t=>({type:t.type,message:t.message,timestamp:t.timestamp})):[]}async waitUntilStable(e,t=3e3,u=1e3){return pa(e,t,u)}async waitUntilCondition(e,t,u=60,r){return ga(e,t,(i,a,n)=>this.evaluate(i,a,n),u,r)}async uploadFile(e,t,u={},r){return tr(e,t,u,this.context,(i,a,n)=>this.execute(i,a,n),r)}async loginPage(e,t,u){let{LoginType:r}=await import("./agentLogin-B2LX5FIY.js");if(o.info("Start login"),k.section("Login Flow"),k.log(`Site URL: ${t.site_url}`),k.log(`Account type: ${t.account.type}`),k.log(`Has cached actions: ${!!u?.cached_actions?.length}`),k.log(`Has validation exprs: ${!!u?.validation_exprs?.length}`),t.skip_verification)return o.info("Skipping login verification (skip_verification=true)"),{success:!0,page:e};if((t.account.type===r.PASSWORD||t.account.type===r.OAUTH2)&&(this.context.variableStore.set("username",t.account.username,!0),this.context.variableStore.set("password",t.account.password,!0)),t.account.two_factor_auth_config?.type==="totp"&&this.context.variableStore.set("otp_secret_key",t.account.two_factor_auth_config.data,!0),o.info(`Navigating to: ${t.site_url}`),await e.goto(t.site_url),await this.waitUntilStable(e,1e4,3e3),u?.validation_exprs&&u.validation_exprs.length>0){if(k.log("Level 1: Checking if already logged in via storage state..."),k.log(`Validation expressions: ${JSON.stringify(u.validation_exprs)}`),await Jt(e,u.validation_exprs)){k.log("Level 1 SUCCESS: Already logged in via storage state"),o.info("Login: Already logged in via storage state");let a=await e.context().storageState();return{success:!0,page:e,storage_state:a,cached_actions:u.cached_actions,validation_exprs:u.validation_exprs,alreadyLoggedIn:!0}}k.log("Level 1 FAILED: Storage state validation failed, trying Level 2")}if(u?.cached_actions&&u.cached_actions.length>0&&u?.validation_exprs&&u.validation_exprs.length>0){k.log(`Level 2: Attempting cached login with ${u.cached_actions.length} actions`);try{if((await this.executeCachedLogin(e,u.cached_actions,u.validation_exprs)).success){k.log("Level 2 SUCCESS: Cached login succeeded"),o.info("Login: Cached login succeeded");let a=await e.context().storageState();return{success:!0,page:e,storage_state:a,cached_actions:u.cached_actions,validation_exprs:u.validation_exprs}}k.log("Level 2 FAILED: Cached login failed, trying Level 3")}catch(a){k.log(`Level 2 ERROR: ${a.message}, trying Level 3`)}}else u?.cached_actions&&u.cached_actions.length>0&&k.log("Level 2 SKIPPED: Cached actions exist but no validation expressions, going to Level 3");let i=`First check if the page is already signed in. If it is, do nothing.
125
+ Use your best judgement to determine if the page is signed in.
126
+ `;if(t.verification_hint&&(i+=`
127
+ Signed in verification hint: ${t.verification_hint}
128
+ `),t.account.type===r.PASSWORD)i+=`
129
+ If the page is not signed in, sign in using provided credentials ($username, $password, etc).
130
+ `;else{let a=t.account;i+=`
131
+ If the page is not signed in, sign in with the OAuth provider "${a.provider_name}" using provided credentials
132
+ ($username, $password), and use $otp_secret_key to generate $otp_code for two-factor authentication. If you can't login with the provided credentials, just stop and report the failure.
133
+ `}t.additional_prompt&&(i+=`
134
+ Additional instructions: ${t.additional_prompt}
135
+ `);try{k.log("Level 3: Attempting agent-based login"),k.log(`Login prompt:
136
+ ${i}`);let a=this.agentServices.knowledgeRetriever,n=!1;this.agentServices.hasKnowledgeRetriever()&&a&&(k.log("Setting up login knowledge retriever..."),this.agentServices.setKnowledgeRetriever(async(x,b,m,y)=>await a(x,b,m,"login")),n=!0,k.log("Login knowledge retriever configured"));let s;try{if(s=await this.run(e,i,"login"),!s.success)return k.log("Level 3 FAILED: Agent login failed"),o.info("Login: Failed"),{success:!1,page:e}}finally{n&&a&&(this.agentServices.setKnowledgeRetriever(a),k.log("Restored original knowledge retriever"))}let c=await e.context().storageState(),l;if(t.num_verification_exprs!==0)try{k.log("Generating validation locators for future login verification...");let x=await Rr(e,t.site_url,{verification_hint:t.verification_hint,num_verification_exprs:t.num_verification_exprs},async(b,m)=>this.run(b,m),async b=>this.getDOMText(b));x?(l=x,k.log(`Generated ${l.length} validation locator(s): ${JSON.stringify(l)}`)):k.log("Failed to generate validation locators, login will still succeed")}catch(x){k.log(`Error generating validation locators: ${x.message}`)}else k.log("Skipping validation locator generation (num_verification_exprs=0)");k.log("Level 3 SUCCESS: Agent login succeeded"),o.info("Login: Agent login succeeded");let f=s.actions||[],g=f.length>0?f:u?.cached_actions;return{success:!0,page:e,storage_state:c,cached_actions:g,validation_exprs:l}}catch(a){return k.error(`Agent login failed: ${a.message}`),o.info("Login: Failed"),{success:!1,page:e}}}async executeCachedLogin(e,t,u){let r=(await import("./handler-SATFK5LZ.js")).default,i=new r;for(let a=0;a<t.length;a++){let n=t[a];k.log(`Executing cached action ${a+1}/${t.length}: ${n.action_description||n.action_data?.action_name}`);try{if(!n.action_data){k.log(`Action ${a+1} missing action_data, skipping`);continue}await i.execute(e,n,this.agentServices),await this.waitUntilStable(e,5e3)}catch(s){return k.error(`Cached action ${a+1} failed: ${s.message}`),{success:!1}}}return u&&u.length>0&&!await Jt(e,u)?{success:!1}:{success:!0}}getCompletedExecutionHistory(){if(!this.context.executionHistory||this.context.executionHistory.length===0)return[];let e=this.context.executionHistory[this.context.executionHistory.length-1];return!e[1]||e[1].trim()===""?this.context.executionHistory.slice(0,-1):this.context.executionHistory}addToExecutionHistory(e,t){this.context.executionHistory||(this.context.executionHistory=[]),this.context.executionHistory.push([e,t])}async createStepResult(e,t,u){if(!this.context.stepTracking||this.context.stepTracking.results[t])return;this.context.stepTracking.currentStepId=t,this.context.stepTracking.onStepChange&&this.context.stepTracking.onStepChange(t),e=await this.agentServices.validatePage(e),await this.waitUntilStable(e);let r={description:u,startTime:Date.now(),artifacts:[]};if(this.context.stepTracking.artifactsDir){let i=C.join(this.context.stepTracking.artifactsDir,t.replace(/\./g,"-"));L.mkdirSync(i,{recursive:!0});let a=C.join(i,"screenshot.png");await e.screenshot({type:"png",path:a}),r.screenshot=a}this.context.stepTracking.results[t]=r}saveDebugInfoToFiles(e,t,u){let r={};if(!this.context.stepTracking?.artifactsDir)return o.debug("[saveDebugInfoToFiles] No artifacts directory configured, skipping debug info save"),r;let i=C.join(this.context.stepTracking.artifactsDir,e.replace(/\./g,"-"));try{if(L.mkdirSync(i,{recursive:!0}),t.systemPrompt){let a=C.join(i,"system_prompt.txt");L.writeFileSync(a,t.systemPrompt),r.system_prompt_path=a,o.debug(`[saveDebugInfoToFiles] Saved system prompt to: ${a}`)}if(t.userPrompt)if(typeof t.userPrompt=="string"){let a=C.join(i,"user_prompt.txt");L.writeFileSync(a,t.userPrompt),r.user_prompt_path=a,o.debug(`[saveDebugInfoToFiles] Saved user prompt to: ${a}`)}else{let a=t.userPrompt.map(c=>Array.isArray(c.content)?{...c,content:c.content.map(l=>l.type==="image"&&l.file?.startsWith("data:")?{...l,file:"[base64 image data stripped]"}:l)}:c),n=C.join(i,"messages.json"),s={system:t.systemPrompt,messages:a};L.writeFileSync(n,JSON.stringify(s,null,2)),r.messages_path=n,o.debug(`[saveDebugInfoToFiles] Saved messages to: ${n}`)}if(t.rawLlmResponse){let a=u?u.replace(/[\/\\:]/g,"-"):"llm",n=C.join(i,`${a}_response.txt`);L.writeFileSync(n,t.rawLlmResponse),r.response_path=n,o.debug(`[saveDebugInfoToFiles] Saved LLM response to: ${n}`)}if(t.screenshotWithSom){let a=C.join(i,"screenshot.png");L.writeFileSync(a,Buffer.from(t.screenshotWithSom,"base64")),r.screenshot_path=a,o.debug(`[saveDebugInfoToFiles] Saved SOM screenshot to: ${a}`)}if(t.reasoningContent){let a=C.join(i,"reasoning.txt");L.writeFileSync(a,t.reasoningContent),r.reasoning_path=a,o.debug(`[saveDebugInfoToFiles] Saved reasoning to: ${a}`)}o.debug(`[saveDebugInfoToFiles] Saved ${Object.keys(r).length} artifacts for step ${e}`)}catch(a){o.error(`[saveDebugInfoToFiles] Failed to save debug info for step ${e}:`,a)}return r}async updateStepResult(e,t,u,r,i){if(!this.context.stepTracking)return;let a=this.context.stepTracking.results[e];if(a){if(t&&(a.status=t,this.context.stepTracking.currentStepId=void 0,this.context.stepTracking.onStepChange&&this.context.stepTracking.onStepChange(void 0)),u!==void 0&&(a.message=u),r&&a.artifacts.push(r),i){let n=i.tokenUsages?.[0]?.model,s=this.saveDebugInfoToFiles(e,i,n);Object.keys(s).length>0&&a.artifacts.push(s)}a.duration=Date.now()-a.startTime,this.context.stepTracking.onStepComplete&&this.context.stepTracking.onStepComplete(e,a)}}async writeExecutionResults(e,t){try{if(await L.promises.mkdir(e,{recursive:!0}),this.context.stepTracking?.results&&Object.keys(this.context.stepTracking.results).length>0){let u=C.join(e,"test-results.json");await L.promises.writeFile(u,JSON.stringify(this.context.stepTracking.results,null,2)),o.debug(`Test results written to: ${u}`)}if(t?.tokenUsages&&this.context.tokenUsages&&this.context.tokenUsages.length>0){let u=C.join(e,"token-usages.json");await L.promises.writeFile(u,JSON.stringify(this.context.tokenUsages,null,2)),o.debug(`Token usages written to: ${u}`)}if(this.context.aiActionDetails&&this.context.aiActionDetails.length>0){let u=C.join(e,"ai-actions.json");await L.promises.writeFile(u,JSON.stringify(this.context.aiActionDetails,null,2)),o.debug(`AI action details written to: ${u}`)}}catch(u){throw o.error("Failed to write execution results:",u),u}}};var en=(e=>(e.Started="started",e.Action="action",e.Completion="completion",e.Error="error",e.Aborted="aborted",e.Keepalive="keepalive",e))(en||{});function L0(){let e=new Date,t=new Intl.DateTimeFormat("en-US",{timeZone:"America/Los_Angeles",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).formatToParts(e),u=t.find(v=>v.type==="year").value,r=t.find(v=>v.type==="month").value,i=t.find(v=>v.type==="day").value,a=t.find(v=>v.type==="hour").value,n=t.find(v=>v.type==="minute").value,s=t.find(v=>v.type==="second").value,c=String(e.getMilliseconds()).padStart(3,"0"),l=`${u}-${r}-${i}T${a}:${n}:${s}.${c}`,f=e.toISOString().slice(0,-1),g=Date.parse(l+"Z"),x=Date.parse(f+"Z"),b=Math.round((x-g)/(1e3*60)),m=String(Math.floor(Math.abs(b)/60)).padStart(2,"0"),y=String(Math.abs(b)%60).padStart(2,"0"),w=b<=0?"+":"-";return`${u}-${r}-${i}T${a}:${n}:${s}.${c}${w}${m}:${y}`}function tn(e){let t=e.variableStore;return t.has("currentTime")||t.set("currentTime",L0()),{model:e.model,variableStore:t,organizationId:e.organizationId,organizationSettings:e.organizationSettings,executionHistory:e.executionHistory||[],testDataDir:e.testDataDir,downloadDir:e.downloadDir,useNativeGenerator:e.useNativeGenerator,autoDisableModal:e.autoDisableModal,tokenUsages:[],aiActionDetails:[]}}function p1(e){let t=new Pr,u=new Set(e.sensitiveKeys||[]);if(e.variables)for(let[i,a]of Object.entries(e.variables))t.set(i,a,u.has(i));let r=tn({model:e.model,variableStore:t,testDataDir:e.testDataDir,downloadDir:e.downloadDir});return new Qa(r)}var m1="1.0.0";export{Mr as a,rn as b,an as c,nn as d,sn as e,e0 as f,t0 as g,u0 as h,r0 as i,i0 as j,a0 as k,n0 as l,l0 as m,d0 as n,Ju as o,Qa as p,en as q,tn as r,p1 as s,m1 as t};
137
+ /*! Bundled license information:
138
+
139
+ @otplib/plugin-crypto/index.js:
140
+ (**
141
+ * @otplib/plugin-crypto
142
+ *
143
+ * @author Gerald Yeo <contact@fusedthought.com>
144
+ * @version: 12.0.1
145
+ * @license: MIT
146
+ **)
147
+
148
+ @otplib/plugin-thirty-two/index.js:
149
+ (**
150
+ * @otplib/plugin-thirty-two
151
+ *
152
+ * @author Gerald Yeo <contact@fusedthought.com>
153
+ * @version: 12.0.1
154
+ * @license: MIT
155
+ **)
156
+
157
+ @otplib/core/index.js:
158
+ (**
159
+ * @otplib/core
160
+ *
161
+ * @author Gerald Yeo <contact@fusedthought.com>
162
+ * @version: 12.0.1
163
+ * @license: MIT
164
+ **)
165
+
166
+ @otplib/preset-default/index.js:
167
+ (**
168
+ * @otplib/preset-default
169
+ *
170
+ * @author Gerald Yeo <contact@fusedthought.com>
171
+ * @version: 12.0.1
172
+ * @license: MIT
173
+ **)
174
+
175
+ otplib/index.js:
176
+ (**
177
+ * otplib
178
+ *
179
+ * @author Gerald Yeo <contact@fusedthought.com>
180
+ * @version: 12.0.1
181
+ * @license: MIT
182
+ **)
183
+ */