@phosphor-tools/phosphor-mcp 0.1.0-dev.8 → 0.1.0-dev.pr47.7

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.
Files changed (2) hide show
  1. package/dist/cli.mjs +2 -2
  2. package/package.json +8 -7
package/dist/cli.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import{createRequire as e}from"node:module";import{Command as t}from"@commander-js/extra-typings";import{homedir as n}from"node:os";import{dirname as r,join as i,relative as a,resolve as o}from"node:path";import{mkdir as s,readFile as c,rename as l,rm as u,writeFile as d}from"node:fs/promises";import{execFile as f,execFileSync as p}from"node:child_process";import{StdioServerTransport as m}from"@modelcontextprotocol/sdk/server/stdio.js";import{McpServer as h}from"@modelcontextprotocol/sdk/server/mcp.js";import{z as g}from"zod";import{createHash as _}from"node:crypto";import{accessSync as v,constants as y}from"node:fs";var b=Object.create,x=Object.defineProperty,S=Object.getOwnPropertyDescriptor,C=Object.getOwnPropertyNames,w=Object.getPrototypeOf,T=Object.prototype.hasOwnProperty,E=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),ee=(e,t)=>{let n={};for(var r in e)x(n,r,{get:e[r],enumerable:!0});return t||x(n,Symbol.toStringTag,{value:`Module`}),n},te=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=C(t),a=0,o=i.length,s;a<o;a++)s=i[a],!T.call(e,s)&&s!==n&&x(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=S(t,s))||r.enumerable});return e},ne=(e,t,n)=>(n=e==null?{}:b(w(e)),te(t||!e||!e.__esModule?x(n,`default`,{value:e,enumerable:!0}):n,e)),D=e(import.meta.url);function O(e){let t=e.split(`.`);if(t.length!==3)return null;try{return JSON.parse(Buffer.from(t[1],`base64url`).toString())}catch{return null}}function re(e){let t=O(e);return!t||typeof t.exp!=`number`?null:t.exp}function ie(e,t){let n=re(e.access_token),r=Number.isFinite(e.expires_in)?e.expires_in:3600,i=n??Math.floor(Date.now()/1e3)+r,a;if(e.id_token){let t=O(e.id_token);if(t){let e=`${typeof t.given_name==`string`?t.given_name:``} ${typeof t.family_name==`string`?t.family_name:``}`.trim(),n=typeof t.sub==`string`?t.sub:``;n&&(a={id:n,email:typeof t.email==`string`?t.email:``,name:e})}}return{accessToken:e.access_token,refreshToken:e.refresh_token??t??``,expiresAt:i,user:a}}async function ae(e,t,n){let r=new URLSearchParams({client_id:e,scope:`openid profile email offline_access`}),i=await fetch(`${t}/oauth2/device_authorization`,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:r.toString(),signal:n});if(!i.ok){let e=``;try{let t=await i.json();e=typeof t.error_description==`string`?t.error_description:typeof t.error==`string`?t.error:typeof t.message==`string`?t.message:``}catch{}let n=`${t}/oauth2/device_authorization`,r=e?`${e} (HTTP ${i.status} from ${n})`:`HTTP ${i.status} from ${n}`;throw Error(`Device authorization failed: ${r}`)}return await i.json()}async function k(e,t,n,r,i,a=(e,t)=>new Promise((n,r)=>{if(t?.aborted){r(Error(`Aborted`));return}let i=setTimeout(n,e);t?.addEventListener(`abort`,()=>{clearTimeout(i),r(Error(`Aborted`))},{once:!0})})){let o=`${t}/oauth2/token`,s=r;for(;;){await a(s*1e3,i);let t=new URLSearchParams({client_id:e,grant_type:`urn:ietf:params:oauth:grant-type:device_code`,device_code:n}),r=await fetch(o,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:t.toString(),signal:i});if(r.ok)return ie(await r.json());let c;try{c=await r.json()}catch{throw Error(`Token endpoint returned non-JSON error: HTTP ${r.status}`)}if(c.error!==`authorization_pending`){if(c.error===`slow_down`){s+=5;continue}throw c.error===`expired_token`?Error(`Device code expired. Please restart the login flow.`):c.error===`access_denied`?Error(`Authorization denied by the user.`):Error(`Unexpected error during polling: ${c.error??r.statusText}`)}}}async function oe(e,t,n){try{let r=new URLSearchParams({client_id:e,grant_type:`refresh_token`,refresh_token:n}),i=await fetch(`${t}/oauth2/token`,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:r.toString(),signal:AbortSignal.timeout(3e4)});if(i.ok)return{session:ie(await i.json(),n),permanent:!1};let a=i.status===400||i.status===401,o=``;try{o=await i.text()}catch{}return console.error(`[auth] Token refresh failed: HTTP ${i.status} (${a?`permanent`:`transient`})${o?`: ${o}`:``}`),{session:null,permanent:a}}catch(e){return console.error(`[auth] Token refresh failed:`,e instanceof Error?e.message:e),{session:null,permanent:!1}}}function se(){let e=process.env.XDG_CONFIG_HOME?.trim();return i(e||i(n(),`.config`),`phosphor`)}function ce(){let e=process.env.XDG_CACHE_HOME?.trim();return i(e||i(n(),`.cache`),`phosphor`)}function A(){return i(se(),`session.json`)}async function le(e){let t=e??A();try{let e=await c(t,`utf-8`),n=JSON.parse(e);return pe(n)?n:null}catch{return null}}async function ue(e,t){let n=t??A();await s(r(n),{recursive:!0}),await d(n,JSON.stringify(e,null,2),{encoding:`utf-8`,mode:384})}async function de(e){let t=e??A();try{await u(t)}catch(e){if(e.code!==`ENOENT`)throw e}}async function fe(e){let t=process.env.PHOSPHOR_TOKEN;if(t)return t;let n=e?.sessionPath,r=await le(n);if(!r)return null;let i=Math.floor(Date.now()/1e3);if(r.expiresAt>i)return r.accessToken;if(e?.clientId&&e.baseUrl){let{session:t}=await oe(e.clientId,e.baseUrl,r.refreshToken);if(t)return await ue(t,n),t.accessToken}return null}function pe(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.accessToken==`string`&&typeof t.refreshToken==`string`&&typeof t.expiresAt==`number`}async function me(e){let t=new AbortController,n=()=>{t.abort(),console.log(`
3
- Login cancelled.`),process.exit(0)};process.on(`SIGINT`,n);try{console.log(`Starting login...`);let n=await ae(e.clientId,e.baseUrl,t.signal);console.log(`\nOpen this URL in your browser:\n ${n.verification_uri_complete}`),console.log(`\nOr go to ${n.verification_uri} and enter code: ${n.user_code}\n`),console.log(`Waiting for authorization...`),ve(n.verification_uri_complete);let r=await k(e.clientId,e.baseUrl,n.device_code,n.interval,t.signal);await ue(r),console.log(`\nLogged in as ${r.user?.name??r.user?.email??`unknown`}.`)}finally{process.off(`SIGINT`,n)}}async function he(){await de(),console.log(`Session cleared.`)}async function ge(e){let t=process.env.PHOSPHOR_TOKEN;if(t){ye(t,`(from PHOSPHOR_TOKEN env var)`);return}let n=await le();n||(process.stderr.write(`Not authenticated. Run \`${e.cliName} login\`.\n`),process.exit(1));let{session:r}=await oe(e.clientId,e.baseUrl,n.refreshToken);r||(process.stderr.write(`Session expired and could not be refreshed. Run \`${e.cliName} login\`.\n`),process.exit(1)),await ue(r),console.log(`Authenticated as:`),r.user?.name&&console.log(` Name: ${r.user.name}`),r.user?.email&&console.log(` Email: ${r.user.email}`),r.user?.id&&console.log(` ID: ${r.user.id}`)}async function _e(e){return fe({clientId:e.clientId,baseUrl:e.baseUrl})}function ve(e){process.platform===`win32`?f(`cmd.exe`,[`/c`,`start`,``,e],()=>{}):f(process.platform===`darwin`?`open`:`xdg-open`,[e],()=>{})}function ye(e,t){let n=O(e);if(!n){console.log(`Authenticated ${t}`);return}console.log(`Authenticated ${t}:`),n.sub&&console.log(` User ID: ${String(n.sub)}`),n.email&&console.log(` Email: ${String(n.email)}`),n.org_id&&console.log(` Org ID: ${String(n.org_id)}`);let r=re(e);if(r){let e=new Date(r*1e3);console.log(` Expires: ${e.toISOString()}`)}}const be=`0.1.0-dev.8`,xe={cliName:`phosphor-mcp`,clientId:`client_01KND1JGQ6VQVJ9GMH9F12GM2A`,baseUrl:`https://merciful-precipice-37-staging.authkit.app`};function Se(){return me(xe)}function Ce(){return he()}function we(){return ge(xe)}function Te(){return _e(xe)}const Ee={"User-Agent":`Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36`,Accept:`text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8`,"Accept-Language":`en-US,en;q=0.9`,"Accept-Encoding":`gzip, deflate, br`,"Sec-Ch-Ua":`"Chromium";v="135", "Not(A:Brand";v="24", "Google Chrome";v="135"`,"Sec-Ch-Ua-Mobile":`?0`,"Sec-Ch-Ua-Platform":`"macOS"`,"Sec-Fetch-Dest":`document`,"Sec-Fetch-Mode":`navigate`,"Sec-Fetch-Site":`none`,"Sec-Fetch-User":`?1`,"Upgrade-Insecure-Requests":`1`};async function De(e,t){return fetch(e,{headers:t?.headers??Ee,signal:AbortSignal.timeout(3e4),redirect:t?.redirect??`follow`})}async function Oe(e,t){let n=e.body?.getReader();if(!n){let n=await e.arrayBuffer();return n.byteLength>t?null:new Uint8Array(n)}let r=[],i=0;try{for(;;){let{done:e,value:a}=await n.read();if(e)break;if(i+=a.byteLength,i>t)return await n.cancel(),null;r.push(a)}}catch(e){if(e instanceof DOMException&&(e.name===`AbortError`||e.name===`TimeoutError`))return null;throw e}let a=new Uint8Array(i),o=0;for(let e of r)a.set(e,o),o+=e.byteLength;return a}function ke(e,t){let n=o(t,e),r=a(t,n);if(r.startsWith(`..`)||o(t,r)!==n)throw Error(`Path escapes working directory: ${e}`)}const Ae=/^[0-9a-f]{64}$/;function je(e){if(!Ae.test(e))throw Error(`Invalid docId: expected 64-char lowercase hex string, got "${e.slice(0,80)}"`)}function Me(){return i(ce(),`documents`)}function Ne(e){return je(e),i(Me(),e)}async function Pe(e){try{let t=await c(i(Ne(e),`meta.json`),`utf-8`);return JSON.parse(t)}catch{return null}}async function Fe(e){let t=Ne(e.docId);await s(t,{recursive:!0});let n=i(t,`meta.json`),r=`${n}.${Date.now()}.tmp`;await d(r,JSON.stringify(e,null,2)),await l(r,n)}async function Ie(e,t){let n=Ne(e);await s(n,{recursive:!0}),await d(i(n,`source.pdf`),t)}async function Le(e){try{return await c(i(Ne(e),`source.pdf`))}catch{return null}}async function Re(e,t){try{let n=await c(i(i(Ne(e),`pages`),`${t}.json`),`utf-8`);return JSON.parse(n)}catch{return null}}async function j(e,t){let n=i(Ne(e),`pages`);await s(n,{recursive:!0}),await d(i(n,`${t.page}.json`),JSON.stringify(t))}function ze(e){return _(`sha256`).update(e).digest(`hex`)}function Be(){let e=globalThis;if(e.DOMMatrix!==void 0)return;class t{a;b;c;d;e;f;constructor(e){this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0,Array.isArray(e)&&e.length===6&&([this.a,this.b,this.c,this.d,this.e,this.f]=e)}get m11(){return this.a}set m11(e){this.a=e}get m12(){return this.b}set m12(e){this.b=e}get m21(){return this.c}set m21(e){this.c=e}get m22(){return this.d}set m22(e){this.d=e}get m41(){return this.e}set m41(e){this.e=e}get m42(){return this.f}set m42(e){this.f=e}get is2D(){return!0}get isIdentity(){return this.a===1&&this.b===0&&this.c===0&&this.d===1&&this.e===0&&this.f===0}multiply(e){return new t([this.a*e.a+this.c*e.b,this.b*e.a+this.d*e.b,this.a*e.c+this.c*e.d,this.b*e.c+this.d*e.d,this.a*e.e+this.c*e.f+this.e,this.b*e.e+this.d*e.f+this.f])}multiplySelf(e){let t=this.multiply(e);return this.a=t.a,this.b=t.b,this.c=t.c,this.d=t.d,this.e=t.e,this.f=t.f,this}preMultiplySelf(e){let t=e.multiply(this);return this.a=t.a,this.b=t.b,this.c=t.c,this.d=t.d,this.e=t.e,this.f=t.f,this}invertSelf(){let e=this.a*this.d-this.b*this.c;if(e!==0){let t=this.d/e,n=-this.b/e,r=-this.c/e,i=this.a/e,a=(this.c*this.f-this.d*this.e)/e,o=(this.b*this.e-this.a*this.f)/e;this.a=t,this.b=n,this.c=r,this.d=i,this.e=a,this.f=o}return this}translate(e,n){return new t([this.a,this.b,this.c,this.d,this.a*e+this.c*n+this.e,this.b*e+this.d*n+this.f])}scale(e,n=e){return new t([this.a*e,this.b*e,this.c*n,this.d*n,this.e,this.f])}transformPoint(e){return{x:this.a*e.x+this.c*e.y+this.e,y:this.b*e.x+this.d*e.y+this.f,z:0,w:1}}toString(){return`matrix(${this.a}, ${this.b}, ${this.c}, ${this.d}, ${this.e}, ${this.f})`}static fromMatrix(e){return new t([e.a??1,e.b??0,e.c??0,e.d??1,e.e??0,e.f??0])}}e.DOMMatrix=t}async function Ve(){return Be(),await import(`pdfjs-dist/legacy/build/pdf.mjs`)}async function He(e){return(await Ve()).getDocument({data:e,verbosity:0}).promise}async function Ue(e){let t=await e.getOutline();if(!t||t.length===0)return[];let n=[];async function r(t,i){for(let a of t){let t=null;try{if(a.dest){let n=typeof a.dest==`string`?await e.getDestination(a.dest):a.dest;n&&n[0]&&(t=await e.getPageIndex(n[0]))}}catch{}n.push({title:a.title,page:t,depth:i}),a.items?.length&&await r(a.items,i+1)}}await r(t,0);let i=e.numPages-1;return n.map((e,t)=>{let r=i;for(let i=t+1;i<n.length;i++)if(n[i].depth<=e.depth&&n[i].page!==null){r=n[i].page-1;break}return e.page!==null&&r<e.page&&(r=e.page),{title:e.title,pageStart:e.page,pageEnd:r,depth:e.depth}})}function We(e){if(e.length===0)return``;let t=e[0].str;for(let n=1;n<e.length;n++){let r=e[n-1],i=e[n];if(`hasEOL`in r&&r.hasEOL)t+=`
3
+ Login cancelled.`),process.exit(0)};process.on(`SIGINT`,n);try{console.log(`Starting login...`);let n=await ae(e.clientId,e.baseUrl,t.signal);console.log(`\nOpen this URL in your browser:\n ${n.verification_uri_complete}`),console.log(`\nOr go to ${n.verification_uri} and enter code: ${n.user_code}\n`),console.log(`Waiting for authorization...`),ve(n.verification_uri_complete);let r=await k(e.clientId,e.baseUrl,n.device_code,n.interval,t.signal);await ue(r),console.log(`\nLogged in as ${r.user?.name??r.user?.email??`unknown`}.`)}finally{process.off(`SIGINT`,n)}}async function he(){await de(),console.log(`Session cleared.`)}async function ge(e){let t=process.env.PHOSPHOR_TOKEN;if(t){ye(t,`(from PHOSPHOR_TOKEN env var)`);return}let n=await le();n||(process.stderr.write(`Not authenticated. Run \`${e.cliName} login\`.\n`),process.exit(1));let{session:r}=await oe(e.clientId,e.baseUrl,n.refreshToken);r||(process.stderr.write(`Session expired and could not be refreshed. Run \`${e.cliName} login\`.\n`),process.exit(1)),await ue(r),console.log(`Authenticated as:`),r.user?.name&&console.log(` Name: ${r.user.name}`),r.user?.email&&console.log(` Email: ${r.user.email}`),r.user?.id&&console.log(` ID: ${r.user.id}`)}async function _e(e){return fe({clientId:e.clientId,baseUrl:e.baseUrl})}function ve(e){process.platform===`win32`?f(`cmd.exe`,[`/c`,`start`,``,e],()=>{}):f(process.platform===`darwin`?`open`:`xdg-open`,[e],()=>{})}function ye(e,t){let n=O(e);if(!n){console.log(`Authenticated ${t}`);return}console.log(`Authenticated ${t}:`),n.sub&&console.log(` User ID: ${String(n.sub)}`),n.email&&console.log(` Email: ${String(n.email)}`),n.org_id&&console.log(` Org ID: ${String(n.org_id)}`);let r=re(e);if(r){let e=new Date(r*1e3);console.log(` Expires: ${e.toISOString()}`)}}const be=`0.1.0-dev.pr47.7`,xe={cliName:`phosphor-mcp`,clientId:`client_01KND1JGQ6VQVJ9GMH9F12GM2A`,baseUrl:`https://merciful-precipice-37-staging.authkit.app`};function Se(){return me(xe)}function Ce(){return he()}function we(){return ge(xe)}function Te(){return _e(xe)}const Ee={"User-Agent":`Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36`,Accept:`text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8`,"Accept-Language":`en-US,en;q=0.9`,"Accept-Encoding":`gzip, deflate, br`,"Sec-Ch-Ua":`"Chromium";v="135", "Not(A:Brand";v="24", "Google Chrome";v="135"`,"Sec-Ch-Ua-Mobile":`?0`,"Sec-Ch-Ua-Platform":`"macOS"`,"Sec-Fetch-Dest":`document`,"Sec-Fetch-Mode":`navigate`,"Sec-Fetch-Site":`none`,"Sec-Fetch-User":`?1`,"Upgrade-Insecure-Requests":`1`};async function De(e,t){return fetch(e,{headers:t?.headers??Ee,signal:AbortSignal.timeout(3e4),redirect:t?.redirect??`follow`})}async function Oe(e,t){let n=e.body?.getReader();if(!n){let n=await e.arrayBuffer();return n.byteLength>t?null:new Uint8Array(n)}let r=[],i=0;try{for(;;){let{done:e,value:a}=await n.read();if(e)break;if(i+=a.byteLength,i>t)return await n.cancel(),null;r.push(a)}}catch(e){if(e instanceof DOMException&&(e.name===`AbortError`||e.name===`TimeoutError`))return null;throw e}let a=new Uint8Array(i),o=0;for(let e of r)a.set(e,o),o+=e.byteLength;return a}function ke(e,t){let n=o(t,e),r=a(t,n);if(r.startsWith(`..`)||o(t,r)!==n)throw Error(`Path escapes working directory: ${e}`)}const Ae=/^[0-9a-f]{64}$/;function je(e){if(!Ae.test(e))throw Error(`Invalid docId: expected 64-char lowercase hex string, got "${e.slice(0,80)}"`)}function Me(){return i(ce(),`documents`)}function Ne(e){return je(e),i(Me(),e)}async function Pe(e){try{let t=await c(i(Ne(e),`meta.json`),`utf-8`);return JSON.parse(t)}catch{return null}}async function Fe(e){let t=Ne(e.docId);await s(t,{recursive:!0});let n=i(t,`meta.json`),r=`${n}.${Date.now()}.tmp`;await d(r,JSON.stringify(e,null,2)),await l(r,n)}async function Ie(e,t){let n=Ne(e);await s(n,{recursive:!0}),await d(i(n,`source.pdf`),t)}async function Le(e){try{return await c(i(Ne(e),`source.pdf`))}catch{return null}}async function Re(e,t){try{let n=await c(i(i(Ne(e),`pages`),`${t}.json`),`utf-8`);return JSON.parse(n)}catch{return null}}async function j(e,t){let n=i(Ne(e),`pages`);await s(n,{recursive:!0}),await d(i(n,`${t.page}.json`),JSON.stringify(t))}function ze(e){return _(`sha256`).update(e).digest(`hex`)}function Be(){let e=globalThis;if(e.DOMMatrix!==void 0)return;class t{a;b;c;d;e;f;constructor(e){this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0,Array.isArray(e)&&e.length===6&&([this.a,this.b,this.c,this.d,this.e,this.f]=e)}get m11(){return this.a}set m11(e){this.a=e}get m12(){return this.b}set m12(e){this.b=e}get m21(){return this.c}set m21(e){this.c=e}get m22(){return this.d}set m22(e){this.d=e}get m41(){return this.e}set m41(e){this.e=e}get m42(){return this.f}set m42(e){this.f=e}get is2D(){return!0}get isIdentity(){return this.a===1&&this.b===0&&this.c===0&&this.d===1&&this.e===0&&this.f===0}multiply(e){return new t([this.a*e.a+this.c*e.b,this.b*e.a+this.d*e.b,this.a*e.c+this.c*e.d,this.b*e.c+this.d*e.d,this.a*e.e+this.c*e.f+this.e,this.b*e.e+this.d*e.f+this.f])}multiplySelf(e){let t=this.multiply(e);return this.a=t.a,this.b=t.b,this.c=t.c,this.d=t.d,this.e=t.e,this.f=t.f,this}preMultiplySelf(e){let t=e.multiply(this);return this.a=t.a,this.b=t.b,this.c=t.c,this.d=t.d,this.e=t.e,this.f=t.f,this}invertSelf(){let e=this.a*this.d-this.b*this.c;if(e!==0){let t=this.d/e,n=-this.b/e,r=-this.c/e,i=this.a/e,a=(this.c*this.f-this.d*this.e)/e,o=(this.b*this.e-this.a*this.f)/e;this.a=t,this.b=n,this.c=r,this.d=i,this.e=a,this.f=o}return this}translate(e,n){return new t([this.a,this.b,this.c,this.d,this.a*e+this.c*n+this.e,this.b*e+this.d*n+this.f])}scale(e,n=e){return new t([this.a*e,this.b*e,this.c*n,this.d*n,this.e,this.f])}transformPoint(e){return{x:this.a*e.x+this.c*e.y+this.e,y:this.b*e.x+this.d*e.y+this.f,z:0,w:1}}toString(){return`matrix(${this.a}, ${this.b}, ${this.c}, ${this.d}, ${this.e}, ${this.f})`}static fromMatrix(e){return new t([e.a??1,e.b??0,e.c??0,e.d??1,e.e??0,e.f??0])}}e.DOMMatrix=t}async function Ve(){return Be(),await import(`pdfjs-dist/legacy/build/pdf.mjs`)}async function He(e){return(await Ve()).getDocument({data:e,verbosity:0}).promise}async function Ue(e){let t=await e.getOutline();if(!t||t.length===0)return[];let n=[];async function r(t,i){for(let a of t){let t=null;try{if(a.dest){let n=typeof a.dest==`string`?await e.getDestination(a.dest):a.dest;n&&n[0]&&(t=await e.getPageIndex(n[0]))}}catch{}n.push({title:a.title,page:t,depth:i}),a.items?.length&&await r(a.items,i+1)}}await r(t,0);let i=e.numPages-1;return n.map((e,t)=>{let r=i;for(let i=t+1;i<n.length;i++)if(n[i].depth<=e.depth&&n[i].page!==null){r=n[i].page-1;break}return e.page!==null&&r<e.page&&(r=e.page),{title:e.title,pageStart:e.page,pageEnd:r,depth:e.depth}})}function We(e){if(e.length===0)return``;let t=e[0].str;for(let n=1;n<e.length;n++){let r=e[n-1],i=e[n];if(`hasEOL`in r&&r.hasEOL)t+=`
4
4
  `;else if(`transform`in r&&`transform`in i&&`width`in r&&Array.isArray(r.transform)&&Array.isArray(i.transform)&&typeof r.width==`number`){let e=r.transform[4]+r.width,n=i.transform[4],a=Math.abs(i.transform[0]);(Math.abs(r.transform[5]-i.transform[5])>a*.5||n-e>a*.25)&&(t+=` `)}else t+=` `;t+=i.str}return t.trim()}async function Ge(e,t,n){let r=[],i=Math.max(1,Math.min(t,e.numPages)),a=Math.max(1,Math.min(n,e.numPages));for(let t=i;t<=a;t++){let n=await e.getPage(t),i=We((await n.getTextContent()).items.filter(e=>`str`in e&&typeof e.str==`string`));r.push({pageNum:t-1,text:i}),n.cleanup(),t%100==0&&e.cleanup()}return r}function Ke(e,t){let n=qe(e),r=new Map;for(let e=0;e<t;e++){let i=null,a=-1;for(let r of n)r.pageStart!==null&&e>=r.pageStart&&e<=(r.pageEnd??t-1)&&r.depth>a&&(a=r.depth,i=r.path);i&&r.set(e,i)}return r}function qe(e){let t=[],n=[];for(let r of e){for(;n.length>r.depth;)n.pop();let e=n.length>0?`${n.join(` > `)} > ${r.title}`:r.title;t.push({path:e,pageStart:r.pageStart,pageEnd:r.pageEnd,depth:r.depth}),n.push(r.title)}return t}const Je=100*1024*1024;async function Ye(e){let t=new URL(e);if(![`http:`,`https:`].includes(t.protocol))throw Error(`Unsupported protocol: ${t.protocol}`);let n=await De(e,{headers:{...Ee,Accept:`application/pdf,*/*`}});if(!n.ok)throw Error(`HTTP ${n.status} ${n.statusText}`);let r=n.headers.get(`content-length`);if(r&&parseInt(r,10)>Je)throw Error(`PDF exceeds ${Je/1024/1024}MB size limit`);let i=await Oe(n,Je);if(i===null)throw Error(`PDF exceeds ${Je/1024/1024}MB size limit`);return i}async function Xe(e,t){if(!t.url&&!t.filePath)throw Error(`Either url or filePath is required`);if(t.url&&t.filePath)throw Error(`Provide exactly one of url or filePath`);let n;if(t.url)n=await Ye(t.url);else{if(!e)throw Error(`cwd is required when filePath is provided`);let r=o(e,t.filePath);ke(r,e);let i=await c(r);if(n=new Uint8Array(i),n.byteLength>Je)throw Error(`PDF exceeds ${Je/1024/1024}MB size limit`)}let r=ze(n),i=await Pe(r);if(i){let e=!1;return t.url&&!i.sourceUrl&&(i.sourceUrl=t.url,e=!0),t.filePath&&!i.filePath&&(i.filePath=t.filePath,e=!0),e&&await Fe(i),{docId:i.docId,pageCount:i.pageCount,outline:i.outline.map(e=>({title:e.title,pageStart:e.pageStart,depth:e.depth}))}}let a=new Uint8Array(n),s=await He(n);try{let e=await Ue(s),n=await Ge(s,1,s.numPages),i=Ke(e,s.numPages),o=n.map(e=>({page:e.pageNum,text:e.text,section:i.get(e.pageNum)??null})),c={docId:r,sourceUrl:t.url??null,filePath:t.filePath??null,pageCount:s.numPages,outline:e,pages:o};return await Ie(r,a),await Fe(c),{docId:c.docId,pageCount:c.pageCount,outline:c.outline.map(e=>({title:e.title,pageStart:e.pageStart,depth:e.depth}))}}finally{s.destroy()}}const Ze={name:`open_document`,description:`Open a PDF from a URL or local file path. Extracts text and table of contents. Returns a doc_id for use with grep_document and read_document.`,inputSchema:g.object({url:g.string().url().max(4096).optional().describe(`URL of the PDF to open`),filePath:g.string().max(4096).optional().describe(`Local file path of the PDF to open`)})};async function M(e,t){let n=await He(new Uint8Array(e));try{return await n.extractPages([{document:null,includePages:t}])}finally{await n.destroy()}}function Qe(e){let t=e.split(`-`),n=parseInt(t[0],10),r=t.length>1?parseInt(t[1],10):n;if(Number.isNaN(n)||Number.isNaN(r))throw Error(`Invalid page range format: "${e}"`);return{start:n,end:r}}async function $e(e,t,n){return{pages:(await P(e,await M(t,n),n.length===1?`0`:`0-${n.length-1}`)).pages.map(e=>({...e,page:n[e.page],blocks:e.blocks.map(e=>({...e,page:n[e.page]}))}))}}async function N(e,t){let n=await Pe(t.docId);if(!n)throw Error(`Unknown document: ${t.docId}`);let{start:r,end:i}=Qe(t.pageRange);if(r<0||i>=n.pageCount||r>i)throw Error(`Invalid page range "${t.pageRange}" for document with ${n.pageCount} pages (0-indexed)`);let a=Array.from({length:i-r+1},(e,t)=>r+t),o=[],s=[];for(let e of a){let n=await Re(t.docId,e);n?o.push(n):s.push(e)}if(s.length===0)return{pages:o};let c=await Le(t.docId);if(!c)throw Error(`Cached PDF not found for document ${t.docId}. Re-open the document.`);let l=await $e(e,c,s);for(let e of l.pages)await j(t.docId,e);return{pages:[...o,...l.pages].sort((e,t)=>e.page-t.page)}}async function P(e,t,n){let r=new FormData;r.append(`file`,new Blob([t],{type:`application/pdf`}),`document.pdf`),r.append(`pageRange`,n);let i=await e.resolveToken(),a=await fetch(`${e.proxyUrl}/proxy/read_pdf`,{method:`POST`,headers:{authorization:`Bearer ${i}`},body:r,signal:AbortSignal.timeout(12e4)});if(!a.ok){let e=await a.text().catch(()=>``);throw Error(`Proxy read_pdf failed (${a.status}): ${e.slice(0,500)}`)}return await a.json()}const et={name:`read_document`,description:`Extract structured content (tables, formatted text) from specific pages of an opened document. Returns HTML blocks per page. Use open_document first to get a doc_id.`,inputSchema:g.object({docId:g.string().regex(/^[0-9a-f]{64}$/).describe(`Document ID returned by open_document`),pageRange:g.string().max(20).regex(/^\d+(-\d+)?$/).describe(`Page range to read (0-indexed, e.g. '0' for first page, '0-4' for first 5 pages)`)})};var tt=E((e=>{Object.defineProperty(e,`__esModule`,{value:!0})})),nt=E((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.types=void 0,(function(e){e[e.ROOT=0]=`ROOT`,e[e.GROUP=1]=`GROUP`,e[e.POSITION=2]=`POSITION`,e[e.SET=3]=`SET`,e[e.RANGE=4]=`RANGE`,e[e.REPETITION=5]=`REPETITION`,e[e.REFERENCE=6]=`REFERENCE`,e[e.CHAR=7]=`CHAR`})(e.types||={})})),rt=E((e=>{Object.defineProperty(e,`__esModule`,{value:!0})})),it=E((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__exportStar||function(e,n){for(var r in e)r!==`default`&&!Object.prototype.hasOwnProperty.call(n,r)&&t(n,e,r)};Object.defineProperty(e,`__esModule`,{value:!0}),n(tt(),e),n(nt(),e),n(rt(),e)})),at=E((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.anyChar=e.notWhitespace=e.whitespace=e.notInts=e.ints=e.notWords=e.words=void 0;let t=it(),n=()=>[{type:t.types.RANGE,from:48,to:57}],r=()=>[{type:t.types.CHAR,value:95},{type:t.types.RANGE,from:97,to:122},{type:t.types.RANGE,from:65,to:90},{type:t.types.RANGE,from:48,to:57}],i=()=>[{type:t.types.CHAR,value:9},{type:t.types.CHAR,value:10},{type:t.types.CHAR,value:11},{type:t.types.CHAR,value:12},{type:t.types.CHAR,value:13},{type:t.types.CHAR,value:32},{type:t.types.CHAR,value:160},{type:t.types.CHAR,value:5760},{type:t.types.RANGE,from:8192,to:8202},{type:t.types.CHAR,value:8232},{type:t.types.CHAR,value:8233},{type:t.types.CHAR,value:8239},{type:t.types.CHAR,value:8287},{type:t.types.CHAR,value:12288},{type:t.types.CHAR,value:65279}],a=()=>[{type:t.types.CHAR,value:10},{type:t.types.CHAR,value:13},{type:t.types.CHAR,value:8232},{type:t.types.CHAR,value:8233}];e.words=()=>({type:t.types.SET,set:r(),not:!1}),e.notWords=()=>({type:t.types.SET,set:r(),not:!0}),e.ints=()=>({type:t.types.SET,set:n(),not:!1}),e.notInts=()=>({type:t.types.SET,set:n(),not:!0}),e.whitespace=()=>({type:t.types.SET,set:i(),not:!1}),e.notWhitespace=()=>({type:t.types.SET,set:i(),not:!0}),e.anyChar=()=>({type:t.types.SET,set:a(),not:!0})})),ot=E((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,`default`,{enumerable:!0,value:t})}):function(e,t){e.default=t}),r=e&&e.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var i in e)i!==`default`&&Object.prototype.hasOwnProperty.call(e,i)&&t(r,e,i);return n(r,e),r};Object.defineProperty(e,`__esModule`,{value:!0}),e.tokenizeClass=e.strToChars=void 0;let i=it(),a=r(at());e.strToChars=e=>e.replace(/(\[\\b\])|(\\)?\\(?:u([A-F0-9]{4})|x([A-F0-9]{2})|c([@A-Z[\\\]^?])|([0tnvfr]))/g,(e,t,n,r,i,a,o)=>{if(n)return e;let s=t?8:r?parseInt(r,16):i?parseInt(i,16):a?`@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^ ?`.indexOf(a):{0:0,t:9,n:10,v:11,f:12,r:13}[o],c=String.fromCharCode(s);return/[[\]{}^$.|?*+()]/.test(c)?`\\${c}`:c}),e.tokenizeClass=(e,t)=>{let n=[],r,o,s=/\\(?:(w)|(d)|(s)|(W)|(D)|(S))|((?:(?:\\)(.)|([^\]\\]))-(((?:\\)])|(((?:\\)?([^\]])))))|(\])|(?:\\)?([^])/g;for(;(r=s.exec(e))!==null;){let e=(r[1]&&a.words())??(r[2]&&a.ints())??(r[3]&&a.whitespace())??(r[4]&&a.notWords())??(r[5]&&a.notInts())??(r[6]&&a.notWhitespace())??(r[7]&&{type:i.types.RANGE,from:(r[8]||r[9]).charCodeAt(0),to:(o=r[10]).charCodeAt(o.length-1)})??((o=r[16])&&{type:i.types.CHAR,value:o.charCodeAt(0)});if(e)n.push(e);else return[n,s.lastIndex]}throw SyntaxError(`Invalid regular expression: /${t}/: Unterminated character class`)}})),st=E((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,`default`,{enumerable:!0,value:t})}):function(e,t){e.default=t}),r=e&&e.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var i in e)i!==`default`&&Object.prototype.hasOwnProperty.call(e,i)&&t(r,e,i);return n(r,e),r};Object.defineProperty(e,`__esModule`,{value:!0}),e.tokenizer=void 0;let i=r(ot()),a=it(),o=r(at()),s=/^[a-zA-Z_$]$/i,c=/^[a-zA-Z0-9_$]$/i,l=/\d/;e.tokenizer=e=>{let t=0,n,r={type:a.types.ROOT,stack:[]},d=r,f=r.stack,p=[],m=[],h=0,g=t=>{throw SyntaxError(`Invalid regular expression: /${e}/: Nothing to repeat at column ${t-1}`)},_=i.strToChars(e);for(;t<_.length;)switch(n=_[t++]){case`\\`:if(t===_.length)throw SyntaxError(`Invalid regular expression: /${e}/: \\ at end of pattern`);switch(n=_[t++]){case`b`:f.push({type:a.types.POSITION,value:`b`});break;case`B`:f.push({type:a.types.POSITION,value:`B`});break;case`w`:f.push(o.words());break;case`W`:f.push(o.notWords());break;case`d`:f.push(o.ints());break;case`D`:f.push(o.notInts());break;case`s`:f.push(o.whitespace());break;case`S`:f.push(o.notWhitespace());break;default:if(l.test(n)){let e=n;for(;t<_.length&&l.test(_[t]);)e+=_[t++];let r=parseInt(e,10),i={type:a.types.REFERENCE,value:r};f.push(i),m.push({reference:i,stack:f,index:f.length-1})}else f.push({type:a.types.CHAR,value:n.charCodeAt(0)})}break;case`^`:f.push({type:a.types.POSITION,value:`^`});break;case`$`:f.push({type:a.types.POSITION,value:`$`});break;case`[`:{let n;_[t]===`^`?(n=!0,t++):n=!1;let r=i.tokenizeClass(_.slice(t),e);t+=r[1],f.push({type:a.types.SET,set:r[0],not:n});break}case`.`:f.push(o.anyChar());break;case`(`:{let r={type:a.types.GROUP,stack:[],remember:!0};if(_[t]===`?`)if(n=_[t+1],t+=2,n===`=`)r.followedBy=!0,r.remember=!1;else if(n===`!`)r.notFollowedBy=!0,r.remember=!1;else if(n===`<`){let n=``;if(s.test(_[t]))n+=_[t],t++;else throw SyntaxError(`Invalid regular expression: /${e}/: Invalid capture group name, character '${_[t]}' after '<' at column ${t+1}`);for(;t<_.length&&c.test(_[t]);)n+=_[t],t++;if(!n)throw SyntaxError(`Invalid regular expression: /${e}/: Invalid capture group name, character '${_[t]}' after '<' at column ${t+1}`);if(_[t]!==`>`)throw SyntaxError(`Invalid regular expression: /${e}/: Unclosed capture group name, expected '>', found '${_[t]}' at column ${t+1}`);r.name=n,t++}else if(n===`:`)r.remember=!1;else throw SyntaxError(`Invalid regular expression: /${e}/: Invalid group, character '${n}' after '?' at column ${t-1}`);else h+=1;f.push(r),p.push(d),d=r,f=r.stack;break}case`)`:if(p.length===0)throw SyntaxError(`Invalid regular expression: /${e}/: Unmatched ) at column ${t-1}`);d=p.pop(),f=d.options?d.options[d.options.length-1]:d.stack;break;case`|`:{d.options||(d.options=[d.stack],delete d.stack);let e=[];d.options.push(e),f=e;break}case`{`:{let e=/^(\d+)(,(\d+)?)?\}/.exec(_.slice(t)),n,r;e===null?f.push({type:a.types.CHAR,value:123}):(f.length===0&&g(t),n=parseInt(e[1],10),r=e[2]?e[3]?parseInt(e[3],10):1/0:n,t+=e[0].length,f.push({type:a.types.REPETITION,min:n,max:r,value:f.pop()}));break}case`?`:f.length===0&&g(t),f.push({type:a.types.REPETITION,min:0,max:1,value:f.pop()});break;case`+`:f.length===0&&g(t),f.push({type:a.types.REPETITION,min:1,max:1/0,value:f.pop()});break;case`*`:f.length===0&&g(t),f.push({type:a.types.REPETITION,min:0,max:1/0,value:f.pop()});break;default:f.push({type:a.types.CHAR,value:n.charCodeAt(0)})}if(p.length!==0)throw SyntaxError(`Invalid regular expression: /${e}/: Unterminated group`);return u(m,h),r};function u(e,t){for(let n of e.reverse())if(t<n.reference.value){n.reference.type=a.types.CHAR;let e=n.reference.value.toString();if(n.reference.value=parseInt(e,8),!/^[0-7]+$/.test(e)){let t=0;for(;e[t]!==`8`&&e[t]!==`9`;)t+=1;if(t===0?(n.reference.value=e.charCodeAt(0),t+=1):n.reference.value=parseInt(e.slice(0,t),8),e.length>t){let r=n.stack.splice(n.index+1);for(let r of e.slice(t))n.stack.push({type:a.types.CHAR,value:r.charCodeAt(0)});n.stack.push(...r)}}}}})),F=E((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,`default`,{enumerable:!0,value:t})}):function(e,t){e.default=t}),r=e&&e.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var i in e)i!==`default`&&Object.prototype.hasOwnProperty.call(e,i)&&t(r,e,i);return n(r,e),r};Object.defineProperty(e,`__esModule`,{value:!0}),e.NOTANYCHAR=e.WHITESPACE=e.WORDS=e.INTS=void 0;let i=r(at()),a=it();function o(e){let t={},n=0;for(let r of e)r.type===a.types.CHAR&&(t[r.value]=!0),r.type===a.types.RANGE&&(t[`${r.from}-${r.to}`]=!0),n+=1;return{lookup:()=>Object.assign({},t),len:n}}e.INTS=o(i.ints().set),e.WORDS=o(i.words().set),e.WHITESPACE=o(i.whitespace().set),e.NOTANYCHAR=o(i.anyChar().set)})),ct=E((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,`default`,{enumerable:!0,value:t})}):function(e,t){e.default=t}),r=e&&e.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var i in e)i!==`default`&&Object.prototype.hasOwnProperty.call(e,i)&&t(r,e,i);return n(r,e),r};Object.defineProperty(e,`__esModule`,{value:!0}),e.writeSetTokens=e.setChar=void 0;let i=it(),a=r(F());function o(e){return e===94?`\\^`:e===92?`\\\\`:e===93?`\\]`:e===45?`\\-`:String.fromCharCode(e)}e.setChar=o;function s(e,{lookup:t,len:n}){if(n!==e.length)return!1;let r=t();for(let t of e){if(t.type===i.types.SET)return!1;let e=t.type===i.types.CHAR?t.value:`${t.from}-${t.to}`;if(r[e])r[e]=!1;else return!1}return!0}function c(e,t=!1){if(s(e.set,a.INTS))return e.not?`\\D`:`\\d`;if(s(e.set,a.WORDS))return e.not?`\\W`:`\\w`;if(e.not&&s(e.set,a.NOTANYCHAR))return`.`;if(s(e.set,a.WHITESPACE))return e.not?`\\S`:`\\s`;let n=``;for(let t=0;t<e.set.length;t++){let r=e.set[t];n+=l(r)}let r=`${e.not?`^`:``}${n}`;return t?r:`[${r}]`}e.writeSetTokens=c;function l(e){return e.type===i.types.CHAR?o(e.value):e.type===i.types.RANGE?`${o(e.from)}-${o(e.to)}`:c(e,!0)}})),lt=E((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.reconstruct=void 0;let t=it(),n=ct(),r=t=>t.map(e.reconstruct).join(``),i=e=>{if(`options`in e)return e.options.map(r).join(`|`);if(`stack`in e)return r(e.stack);throw Error(`options or stack must be Root or Group token`)};e.reconstruct=r=>{switch(r.type){case t.types.ROOT:return i(r);case t.types.CHAR:{let e=String.fromCharCode(r.value);return(/[[\\{}$^.|?*+()]/.test(e)?`\\`:``)+e}case t.types.POSITION:return r.value===`^`||r.value===`$`?r.value:`\\${r.value}`;case t.types.REFERENCE:return`\\${r.value}`;case t.types.SET:return n.writeSetTokens(r);case t.types.GROUP:return`(${r.name?`?<${r.name}>`:r.remember?``:r.followedBy?`?=`:r.notFollowedBy?`?!`:`?:`}${i(r)})`;case t.types.REPETITION:{let{min:t,max:n}=r,i;return i=t===0&&n===1?`?`:t===1&&n===1/0?`+`:t===0&&n===1/0?`*`:n===1/0?`{${t},}`:t===n?`{${t}}`:`{${t},${n}}`,`${e.reconstruct(r.value)}${i}`}case t.types.RANGE:return`${n.setChar(r.from)}-${n.setChar(r.to)}`;default:throw Error(`Invalid token type ${r}`)}}})),ut=E(((e,t)=>{var n=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),r=e&&e.__exportStar||function(e,t){for(var r in e)r!==`default`&&!Object.prototype.hasOwnProperty.call(t,r)&&n(t,e,r)};Object.defineProperty(e,`__esModule`,{value:!0}),e.types=void 0;let i=it();Object.defineProperty(e,`types`,{enumerable:!0,get:function(){return i.types}}),r(st(),e),r(lt(),e);let a=st(),o=lt();r(it(),e),e.default=a.tokenizer,t.exports=a.tokenizer,t.exports.types=i.types,t.exports.reconstruct=o.reconstruct})),I=ne(E(((e,t)=>{let n=ut(),{types:r}=ut();function i(e,t,n){let a,o,s;if(e.type===r.REPETITION&&(n++,t.reps++,n>1||t.reps>t.limit))return!1;if(e.options){for(a=0,s=e.options.length;a<s;a++)if(o=i({stack:e.options[a]},t,n),!o)return!1}let c=e.stack||e.value?.stack;if(!c)return!0;for(a=0,s=c.length;a<s;a++)if(o=i(c[a],t,n),!o)return!1;return!0}function a(e,t){let r={reps:0,limit:t?.limit??25};o(e)?e=e.source:typeof e!=`string`&&(e=String(e));try{return i(n(e),r,0)}catch{return!1}}function o(e){return Object.prototype.toString.call(e)===`[object RegExp]`}t.exports=a,t.exports.default=a,t.exports.safeRegex=a}))(),1);async function dt(e){let t=await Pe(e.docId);if(!t)throw Error(`Unknown document: ${e.docId}`);let n=e.pattern.trim();if(!n)return{hits:[]};if(n.length>500)throw Error(`Pattern too long (${n.length} chars, max 500)`);let r;try{r=new RegExp(n,`i`)}catch(e){throw Error(`Invalid regex pattern: ${e.message}`)}if(!(0,I.default)(r))throw Error(`Regex pattern rejected: potentially vulnerable to ReDoS. Simplify the pattern.`);if(e.pageStart!==void 0&&e.pageEnd!==void 0&&e.pageStart>e.pageEnd)throw Error(`pageEnd (${e.pageEnd}) must be >= pageStart (${e.pageStart})`);let i=e.limit??20,a=[];for(let n of t.pages){if(e.pageStart!==void 0&&n.page<e.pageStart||e.pageEnd!==void 0&&n.page>e.pageEnd)continue;let t=n.text.replace(/\s+/g,` `),o=0;for(;o<t.length;){let e=t.slice(o),s=r.exec(e);if(!s)break;let c=o+s.index,l=s[0].length,u=Math.max(0,c-80),d=Math.min(t.length,c+l+80),f=t.slice(u,d);if(u>0&&(f=`...${f}`),d<t.length&&(f=`${f}...`),a.push({page:n.page,snippet:f,section:n.section}),a.length>=i)break;o=c+Math.max(1,l)}if(a.length>=i)break}return{hits:a}}const ft={name:`grep_document`,description:`Search within an opened document using a regex pattern. Returns matching pages with snippets and section context. Use open_document first to get a doc_id.`,inputSchema:g.object({docId:g.string().regex(/^[0-9a-f]{64}$/).describe(`Document ID returned by open_document`),pattern:g.string().trim().min(1).max(500).describe(`Regex pattern to search for (case-insensitive)`),pageStart:g.number().int().min(0).optional().describe(`Start page (0-indexed, inclusive)`),pageEnd:g.number().int().min(0).optional().describe(`End page (0-indexed, inclusive)`),limit:g.number().int().min(1).max(100).optional().describe(`Maximum number of results (default 20)`)})};var pt=E(((e,t)=>{function n(e,t){if(t&&t.documentElement)e=t,t=arguments[2];else if(!e||!e.documentElement)throw Error(`First argument to Readability constructor should be a document object.`);if(t||={},this._doc=e,this._docJSDOMParser=this._doc.firstChild.__JSDOMParser__,this._articleTitle=null,this._articleByline=null,this._articleDir=null,this._articleSiteName=null,this._attempts=[],this._metadata={},this._debug=!!t.debug,this._maxElemsToParse=t.maxElemsToParse||this.DEFAULT_MAX_ELEMS_TO_PARSE,this._nbTopCandidates=t.nbTopCandidates||this.DEFAULT_N_TOP_CANDIDATES,this._charThreshold=t.charThreshold||this.DEFAULT_CHAR_THRESHOLD,this._classesToPreserve=this.CLASSES_TO_PRESERVE.concat(t.classesToPreserve||[]),this._keepClasses=!!t.keepClasses,this._serializer=t.serializer||function(e){return e.innerHTML},this._disableJSONLD=!!t.disableJSONLD,this._allowedVideoRegex=t.allowedVideoRegex||this.REGEXPS.videos,this._linkDensityModifier=t.linkDensityModifier||0,this._flags=this.FLAG_STRIP_UNLIKELYS|this.FLAG_WEIGHT_CLASSES|this.FLAG_CLEAN_CONDITIONALLY,this._debug){let e=function(e){if(e.nodeType==e.TEXT_NODE)return`${e.nodeName} ("${e.textContent}")`;let t=Array.from(e.attributes||[],function(e){return`${e.name}="${e.value}"`}).join(` `);return`<${e.localName} ${t}>`};this.log=function(){if(typeof console<`u`){let t=Array.from(arguments,t=>t&&t.nodeType==this.ELEMENT_NODE?e(t):t);t.unshift(`Reader: (Readability)`),console.log(...t)}else if(typeof dump<`u`){var t=Array.prototype.map.call(arguments,function(t){return t&&t.nodeName?e(t):t}).join(` `);dump(`Reader: (Readability) `+t+`
5
5
  `)}}}else this.log=function(){}}n.prototype={FLAG_STRIP_UNLIKELYS:1,FLAG_WEIGHT_CLASSES:2,FLAG_CLEAN_CONDITIONALLY:4,ELEMENT_NODE:1,TEXT_NODE:3,DEFAULT_MAX_ELEMS_TO_PARSE:0,DEFAULT_N_TOP_CANDIDATES:5,DEFAULT_TAGS_TO_SCORE:`SECTION,H2,H3,H4,H5,H6,P,TD,PRE`.split(`,`),DEFAULT_CHAR_THRESHOLD:500,REGEXPS:{unlikelyCandidates:/-ad-|ai2html|banner|breadcrumbs|combx|comment|community|cover-wrap|disqus|extra|footer|gdpr|header|legends|menu|related|remark|replies|rss|shoutbox|sidebar|skyscraper|social|sponsor|supplemental|ad-break|agegate|pagination|pager|popup|yom-remote/i,okMaybeItsACandidate:/and|article|body|column|content|main|shadow/i,positive:/article|body|content|entry|hentry|h-entry|main|page|pagination|post|text|blog|story/i,negative:/-ad-|hidden|^hid$| hid$| hid |^hid |banner|combx|comment|com-|contact|footer|gdpr|masthead|media|meta|outbrain|promo|related|scroll|share|shoutbox|sidebar|skyscraper|sponsor|shopping|tags|widget/i,extraneous:/print|archive|comment|discuss|e[\-]?mail|share|reply|all|login|sign|single|utility/i,byline:/byline|author|dateline|writtenby|p-author/i,replaceFonts:/<(\/?)font[^>]*>/gi,normalize:/\s{2,}/g,videos:/\/\/(www\.)?((dailymotion|youtube|youtube-nocookie|player\.vimeo|v\.qq)\.com|(archive|upload\.wikimedia)\.org|player\.twitch\.tv)/i,shareElements:/(\b|_)(share|sharedaddy)(\b|_)/i,nextLink:/(next|weiter|continue|>([^\|]|$)|»([^\|]|$))/i,prevLink:/(prev|earl|old|new|<|«)/i,tokenize:/\W+/g,whitespace:/^\s*$/,hasContent:/\S$/,hashUrl:/^#.+/,srcsetUrl:/(\S+)(\s+[\d.]+[xw])?(\s*(?:,|$))/g,b64DataUrl:/^data:\s*([^\s;,]+)\s*;\s*base64\s*,/i,commas:/\u002C|\u060C|\uFE50|\uFE10|\uFE11|\u2E41|\u2E34|\u2E32|\uFF0C/g,jsonLdArticleTypes:/^Article|AdvertiserContentArticle|NewsArticle|AnalysisNewsArticle|AskPublicNewsArticle|BackgroundNewsArticle|OpinionNewsArticle|ReportageNewsArticle|ReviewNewsArticle|Report|SatiricalArticle|ScholarlyArticle|MedicalScholarlyArticle|SocialMediaPosting|BlogPosting|LiveBlogPosting|DiscussionForumPosting|TechArticle|APIReference$/,adWords:/^(ad(vertising|vertisement)?|pub(licité)?|werb(ung)?|广告|Реклама|Anuncio)$/iu,loadingWords:/^((loading|正在加载|Загрузка|chargement|cargando)(…|\.\.\.)?)$/iu},UNLIKELY_ROLES:[`menu`,`menubar`,`complementary`,`navigation`,`alert`,`alertdialog`,`dialog`],DIV_TO_P_ELEMS:new Set([`BLOCKQUOTE`,`DL`,`DIV`,`IMG`,`OL`,`P`,`PRE`,`TABLE`,`UL`]),ALTER_TO_DIV_EXCEPTIONS:[`DIV`,`ARTICLE`,`SECTION`,`P`,`OL`,`UL`],PRESENTATIONAL_ATTRIBUTES:[`align`,`background`,`bgcolor`,`border`,`cellpadding`,`cellspacing`,`frame`,`hspace`,`rules`,`style`,`valign`,`vspace`],DEPRECATED_SIZE_ATTRIBUTE_ELEMS:[`TABLE`,`TH`,`TD`,`HR`,`PRE`],PHRASING_ELEMS:`ABBR.AUDIO.B.BDO.BR.BUTTON.CITE.CODE.DATA.DATALIST.DFN.EM.EMBED.I.IMG.INPUT.KBD.LABEL.MARK.MATH.METER.NOSCRIPT.OBJECT.OUTPUT.PROGRESS.Q.RUBY.SAMP.SCRIPT.SELECT.SMALL.SPAN.STRONG.SUB.SUP.TEXTAREA.TIME.VAR.WBR`.split(`.`),CLASSES_TO_PRESERVE:[`page`],HTML_ESCAPE_MAP:{lt:`<`,gt:`>`,amp:`&`,quot:`"`,apos:`'`},_postProcessContent(e){this._fixRelativeUris(e),this._simplifyNestedElements(e),this._keepClasses||this._cleanClasses(e)},_removeNodes(e,t){if(this._docJSDOMParser&&e._isLiveNodeList)throw Error(`Do not pass live node lists to _removeNodes`);for(var n=e.length-1;n>=0;n--){var r=e[n],i=r.parentNode;i&&(!t||t.call(this,r,n,e))&&i.removeChild(r)}},_replaceNodeTags(e,t){if(this._docJSDOMParser&&e._isLiveNodeList)throw Error(`Do not pass live node lists to _replaceNodeTags`);for(let n of e)this._setNodeTag(n,t)},_forEachNode(e,t){Array.prototype.forEach.call(e,t,this)},_findNode(e,t){return Array.prototype.find.call(e,t,this)},_someNode(e,t){return Array.prototype.some.call(e,t,this)},_everyNode(e,t){return Array.prototype.every.call(e,t,this)},_getAllNodesWithTag(e,t){return e.querySelectorAll?e.querySelectorAll(t.join(`,`)):[].concat.apply([],t.map(function(t){var n=e.getElementsByTagName(t);return Array.isArray(n)?n:Array.from(n)}))},_cleanClasses(e){var t=this._classesToPreserve,n=(e.getAttribute(`class`)||``).split(/\s+/).filter(e=>t.includes(e)).join(` `);for(n?e.setAttribute(`class`,n):e.removeAttribute(`class`),e=e.firstElementChild;e;e=e.nextElementSibling)this._cleanClasses(e)},_isUrl(e){try{return new URL(e),!0}catch{return!1}},_fixRelativeUris(e){var t=this._doc.baseURI,n=this._doc.documentURI;function r(e){if(t==n&&e.charAt(0)==`#`)return e;try{return new URL(e,t).href}catch{}return e}var i=this._getAllNodesWithTag(e,[`a`]);this._forEachNode(i,function(e){var t=e.getAttribute(`href`);if(t)if(t.indexOf(`javascript:`)===0)if(e.childNodes.length===1&&e.childNodes[0].nodeType===this.TEXT_NODE){var n=this._doc.createTextNode(e.textContent);e.parentNode.replaceChild(n,e)}else{for(var i=this._doc.createElement(`span`);e.firstChild;)i.appendChild(e.firstChild);e.parentNode.replaceChild(i,e)}else e.setAttribute(`href`,r(t))});var a=this._getAllNodesWithTag(e,[`img`,`picture`,`figure`,`video`,`audio`,`source`]);this._forEachNode(a,function(e){var t=e.getAttribute(`src`),n=e.getAttribute(`poster`),i=e.getAttribute(`srcset`);if(t&&e.setAttribute(`src`,r(t)),n&&e.setAttribute(`poster`,r(n)),i){var a=i.replace(this.REGEXPS.srcsetUrl,function(e,t,n,i){return r(t)+(n||``)+i});e.setAttribute(`srcset`,a)}})},_simplifyNestedElements(e){for(var t=e;t;){if(t.parentNode&&[`DIV`,`SECTION`].includes(t.tagName)&&!(t.id&&t.id.startsWith(`readability`))){if(this._isElementWithoutContent(t)){t=this._removeAndGetNext(t);continue}else if(this._hasSingleTagInsideElement(t,`DIV`)||this._hasSingleTagInsideElement(t,`SECTION`)){for(var n=t.children[0],r=0;r<t.attributes.length;r++)n.setAttributeNode(t.attributes[r].cloneNode());t.parentNode.replaceChild(n,t),t=n;continue}}t=this._getNextNode(t)}},_getArticleTitle(){var e=this._doc,t=``,n=``;try{t=n=e.title.trim(),typeof t!=`string`&&(t=n=this._getInnerText(e.getElementsByTagName(`title`)[0]))}catch{}var r=!1;function i(e){return e.split(/\s+/).length}if(/ [\|\-\\\/>»] /.test(t)){r=/ [\\\/>»] /.test(t);let e=Array.from(n.matchAll(/ [\|\-\\\/>»] /gi));t=n.substring(0,e.pop().index),i(t)<3&&(t=n.replace(/^[^\|\-\\\/>»]*[\|\-\\\/>»]/gi,``))}else if(t.includes(`: `)){var a=this._getAllNodesWithTag(e,[`h1`,`h2`]),o=t.trim();this._someNode(a,function(e){return e.textContent.trim()===o})||(t=n.substring(n.lastIndexOf(`:`)+1),i(t)<3?t=n.substring(n.indexOf(`:`)+1):i(n.substr(0,n.indexOf(`:`)))>5&&(t=n))}else if(t.length>150||t.length<15){var s=e.getElementsByTagName(`h1`);s.length===1&&(t=this._getInnerText(s[0]))}t=t.trim().replace(this.REGEXPS.normalize,` `);var c=i(t);return c<=4&&(!r||c!=i(n.replace(/[\|\-\\\/>»]+/g,``))-1)&&(t=n),t},_prepDocument(){var e=this._doc;this._removeNodes(this._getAllNodesWithTag(e,[`style`])),e.body&&this._replaceBrs(e.body),this._replaceNodeTags(this._getAllNodesWithTag(e,[`font`]),`SPAN`)},_nextNode(e){for(var t=e;t&&t.nodeType!=this.ELEMENT_NODE&&this.REGEXPS.whitespace.test(t.textContent);)t=t.nextSibling;return t},_replaceBrs(e){this._forEachNode(this._getAllNodesWithTag(e,[`br`]),function(e){for(var t=e.nextSibling,n=!1;(t=this._nextNode(t))&&t.tagName==`BR`;){n=!0;var r=t.nextSibling;t.remove(),t=r}if(n){var i=this._doc.createElement(`p`);for(e.parentNode.replaceChild(i,e),t=i.nextSibling;t;){if(t.tagName==`BR`){var a=this._nextNode(t.nextSibling);if(a&&a.tagName==`BR`)break}if(!this._isPhrasingContent(t))break;var o=t.nextSibling;i.appendChild(t),t=o}for(;i.lastChild&&this._isWhitespace(i.lastChild);)i.lastChild.remove();i.parentNode.tagName===`P`&&this._setNodeTag(i.parentNode,`DIV`)}})},_setNodeTag(e,t){if(this.log(`_setNodeTag`,e,t),this._docJSDOMParser)return e.localName=t.toLowerCase(),e.tagName=t.toUpperCase(),e;for(var n=e.ownerDocument.createElement(t);e.firstChild;)n.appendChild(e.firstChild);e.parentNode.replaceChild(n,e),e.readability&&(n.readability=e.readability);for(var r=0;r<e.attributes.length;r++)n.setAttributeNode(e.attributes[r].cloneNode());return n},_prepArticle(e){this._cleanStyles(e),this._markDataTables(e),this._fixLazyImages(e),this._cleanConditionally(e,`form`),this._cleanConditionally(e,`fieldset`),this._clean(e,`object`),this._clean(e,`embed`),this._clean(e,`footer`),this._clean(e,`link`),this._clean(e,`aside`);var t=this.DEFAULT_CHAR_THRESHOLD;this._forEachNode(e.children,function(e){this._cleanMatchedNodes(e,function(e,n){return this.REGEXPS.shareElements.test(n)&&e.textContent.length<t})}),this._clean(e,`iframe`),this._clean(e,`input`),this._clean(e,`textarea`),this._clean(e,`select`),this._clean(e,`button`),this._cleanHeaders(e),this._cleanConditionally(e,`table`),this._cleanConditionally(e,`ul`),this._cleanConditionally(e,`div`),this._replaceNodeTags(this._getAllNodesWithTag(e,[`h1`]),`h2`),this._removeNodes(this._getAllNodesWithTag(e,[`p`]),function(e){return this._getAllNodesWithTag(e,[`img`,`embed`,`object`,`iframe`]).length===0&&!this._getInnerText(e,!1)}),this._forEachNode(this._getAllNodesWithTag(e,[`br`]),function(e){var t=this._nextNode(e.nextSibling);t&&t.tagName==`P`&&e.remove()}),this._forEachNode(this._getAllNodesWithTag(e,[`table`]),function(e){var t=this._hasSingleTagInsideElement(e,`TBODY`)?e.firstElementChild:e;if(this._hasSingleTagInsideElement(t,`TR`)){var n=t.firstElementChild;if(this._hasSingleTagInsideElement(n,`TD`)){var r=n.firstElementChild;r=this._setNodeTag(r,this._everyNode(r.childNodes,this._isPhrasingContent)?`P`:`DIV`),e.parentNode.replaceChild(r,e)}}})},_initializeNode(e){switch(e.readability={contentScore:0},e.tagName){case`DIV`:e.readability.contentScore+=5;break;case`PRE`:case`TD`:case`BLOCKQUOTE`:e.readability.contentScore+=3;break;case`ADDRESS`:case`OL`:case`UL`:case`DL`:case`DD`:case`DT`:case`LI`:case`FORM`:e.readability.contentScore-=3;break;case`H1`:case`H2`:case`H3`:case`H4`:case`H5`:case`H6`:case`TH`:e.readability.contentScore-=5;break}e.readability.contentScore+=this._getClassWeight(e)},_removeAndGetNext(e){var t=this._getNextNode(e,!0);return e.remove(),t},_getNextNode(e,t){if(!t&&e.firstElementChild)return e.firstElementChild;if(e.nextElementSibling)return e.nextElementSibling;do e=e.parentNode;while(e&&!e.nextElementSibling);return e&&e.nextElementSibling},_textSimilarity(e,t){var n=e.toLowerCase().split(this.REGEXPS.tokenize).filter(Boolean),r=t.toLowerCase().split(this.REGEXPS.tokenize).filter(Boolean);return!n.length||!r.length?0:1-r.filter(e=>!n.includes(e)).join(` `).length/r.join(` `).length},_isValidByline(e,t){var n=e.getAttribute(`rel`),r=e.getAttribute(`itemprop`),i=e.textContent.trim().length;return(n===`author`||r&&r.includes(`author`)||this.REGEXPS.byline.test(t))&&!!i&&i<100},_getNodeAncestors(e,t){t||=0;for(var n=0,r=[];e.parentNode&&(r.push(e.parentNode),!(t&&++n===t));)e=e.parentNode;return r},_grabArticle(e){this.log(`**** grabArticle ****`);var t=this._doc,n=e!==null;if(e||=this._doc.body,!e)return this.log(`No body found in document. Abort.`),null;for(var r=e.innerHTML;;){this.log(`Starting grabArticle loop`);var i=this._flagIsActive(this.FLAG_STRIP_UNLIKELYS),a=[],o=this._doc.documentElement;let ye=!0;for(;o;){o.tagName===`HTML`&&(this._articleLang=o.getAttribute(`lang`));var s=o.className+` `+o.id;if(!this._isProbablyVisible(o)){this.log(`Removing hidden node - `+s),o=this._removeAndGetNext(o);continue}if(o.getAttribute(`aria-modal`)==`true`&&o.getAttribute(`role`)==`dialog`){o=this._removeAndGetNext(o);continue}if(!this._articleByline&&!this._metadata.byline&&this._isValidByline(o,s)){for(var c=this._getNextNode(o,!0),l=this._getNextNode(o),u=null;l&&l!=c;){var d=l.getAttribute(`itemprop`);if(d&&d.includes(`name`)){u=l;break}else l=this._getNextNode(l)}this._articleByline=(u??o).textContent.trim(),o=this._removeAndGetNext(o);continue}if(ye&&this._headerDuplicatesTitle(o)){this.log(`Removing header: `,o.textContent.trim(),this._articleTitle.trim()),ye=!1,o=this._removeAndGetNext(o);continue}if(i){if(this.REGEXPS.unlikelyCandidates.test(s)&&!this.REGEXPS.okMaybeItsACandidate.test(s)&&!this._hasAncestorTag(o,`table`)&&!this._hasAncestorTag(o,`code`)&&o.tagName!==`BODY`&&o.tagName!==`A`){this.log(`Removing unlikely candidate - `+s),o=this._removeAndGetNext(o);continue}if(this.UNLIKELY_ROLES.includes(o.getAttribute(`role`))){this.log(`Removing content with role `+o.getAttribute(`role`)+` - `+s),o=this._removeAndGetNext(o);continue}}if((o.tagName===`DIV`||o.tagName===`SECTION`||o.tagName===`HEADER`||o.tagName===`H1`||o.tagName===`H2`||o.tagName===`H3`||o.tagName===`H4`||o.tagName===`H5`||o.tagName===`H6`)&&this._isElementWithoutContent(o)){o=this._removeAndGetNext(o);continue}if(this.DEFAULT_TAGS_TO_SCORE.includes(o.tagName)&&a.push(o),o.tagName===`DIV`){for(var f=null,p=o.firstChild;p;){var m=p.nextSibling;if(this._isPhrasingContent(p))f===null?this._isWhitespace(p)||(f=t.createElement(`p`),o.replaceChild(f,p),f.appendChild(p)):f.appendChild(p);else if(f!==null){for(;f.lastChild&&this._isWhitespace(f.lastChild);)f.lastChild.remove();f=null}p=m}if(this._hasSingleTagInsideElement(o,`P`)&&this._getLinkDensity(o)<.25){var h=o.children[0];o.parentNode.replaceChild(h,o),o=h,a.push(o)}else this._hasChildBlockElement(o)||(o=this._setNodeTag(o,`P`),a.push(o))}o=this._getNextNode(o)}var g=[];this._forEachNode(a,function(e){if(!(!e.parentNode||e.parentNode.tagName===void 0)){var t=this._getInnerText(e);if(!(t.length<25)){var n=this._getNodeAncestors(e,5);if(n.length!==0){var r=0;r+=1,r+=t.split(this.REGEXPS.commas).length,r+=Math.min(Math.floor(t.length/100),3),this._forEachNode(n,function(e,t){if(!(!e.tagName||!e.parentNode||e.parentNode.tagName===void 0)){if(e.readability===void 0&&(this._initializeNode(e),g.push(e)),t===0)var n=1;else n=t===1?2:t*3;e.readability.contentScore+=r/n}})}}}});for(var _=[],v=0,y=g.length;v<y;v+=1){var b=g[v],x=b.readability.contentScore*(1-this._getLinkDensity(b));b.readability.contentScore=x,this.log(`Candidate:`,b,`with score `+x);for(var S=0;S<this._nbTopCandidates;S++){var C=_[S];if(!C||x>C.readability.contentScore){_.splice(S,0,b),_.length>this._nbTopCandidates&&_.pop();break}}}var w=_[0]||null,T=!1,E;if(w===null||w.tagName===`BODY`){for(w=t.createElement(`DIV`),T=!0;e.firstChild;)this.log(`Moving child out:`,e.firstChild),w.appendChild(e.firstChild);e.appendChild(w),this._initializeNode(w)}else if(w){for(var ee=[],te=1;te<_.length;te++)_[te].readability.contentScore/w.readability.contentScore>=.75&&ee.push(this._getNodeAncestors(_[te]));var ne=3;if(ee.length>=ne)for(E=w.parentNode;E.tagName!==`BODY`;){for(var D=0,O=0;O<ee.length&&D<ne;O++)D+=Number(ee[O].includes(E));if(D>=ne){w=E;break}E=E.parentNode}w.readability||this._initializeNode(w),E=w.parentNode;for(var re=w.readability.contentScore,ie=re/3;E.tagName!==`BODY`;){if(!E.readability){E=E.parentNode;continue}var ae=E.readability.contentScore;if(ae<ie)break;if(ae>re){w=E;break}re=E.readability.contentScore,E=E.parentNode}for(E=w.parentNode;E.tagName!=`BODY`&&E.children.length==1;)w=E,E=w.parentNode;w.readability||this._initializeNode(w)}var k=t.createElement(`DIV`);n&&(k.id=`readability-content`);var oe=Math.max(10,w.readability.contentScore*.2);E=w.parentNode;for(var se=E.children,ce=0,A=se.length;ce<A;ce++){var le=se[ce],ue=!1;if(this.log(`Looking at sibling node:`,le,le.readability?`with score `+le.readability.contentScore:``),this.log(`Sibling has score`,le.readability?le.readability.contentScore:`Unknown`),le===w)ue=!0;else{var de=0;if(le.className===w.className&&w.className!==``&&(de+=w.readability.contentScore*.2),le.readability&&le.readability.contentScore+de>=oe)ue=!0;else if(le.nodeName===`P`){var fe=this._getLinkDensity(le),pe=this._getInnerText(le),me=pe.length;(me>80&&fe<.25||me<80&&me>0&&fe===0&&pe.search(/\.( |$)/)!==-1)&&(ue=!0)}}ue&&(this.log(`Appending node:`,le),this.ALTER_TO_DIV_EXCEPTIONS.includes(le.nodeName)||(this.log(`Altering sibling:`,le,`to div.`),le=this._setNodeTag(le,`DIV`)),k.appendChild(le),se=E.children,--ce,--A)}if(this._debug&&this.log(`Article content pre-prep: `+k.innerHTML),this._prepArticle(k),this._debug&&this.log(`Article content post-prep: `+k.innerHTML),T)w.id=`readability-page-1`,w.className=`page`;else{var he=t.createElement(`DIV`);for(he.id=`readability-page-1`,he.className=`page`;k.firstChild;)he.appendChild(k.firstChild);k.appendChild(he)}this._debug&&this.log(`Article content after paging: `+k.innerHTML);var ge=!0,_e=this._getInnerText(k,!0).length;if(_e<this._charThreshold)if(ge=!1,e.innerHTML=r,this._attempts.push({articleContent:k,textLength:_e}),this._flagIsActive(this.FLAG_STRIP_UNLIKELYS))this._removeFlag(this.FLAG_STRIP_UNLIKELYS);else if(this._flagIsActive(this.FLAG_WEIGHT_CLASSES))this._removeFlag(this.FLAG_WEIGHT_CLASSES);else if(this._flagIsActive(this.FLAG_CLEAN_CONDITIONALLY))this._removeFlag(this.FLAG_CLEAN_CONDITIONALLY);else{if(this._attempts.sort(function(e,t){return t.textLength-e.textLength}),!this._attempts[0].textLength)return null;k=this._attempts[0].articleContent,ge=!0}if(ge){var ve=[E,w].concat(this._getNodeAncestors(E));return this._someNode(ve,function(e){if(!e.tagName)return!1;var t=e.getAttribute(`dir`);return t?(this._articleDir=t,!0):!1}),k}}},_unescapeHtmlEntities(e){if(!e)return e;var t=this.HTML_ESCAPE_MAP;return e.replace(/&(quot|amp|apos|lt|gt);/g,function(e,n){return t[n]}).replace(/&#(?:x([0-9a-f]+)|([0-9]+));/gi,function(e,t,n){var r=parseInt(t||n,t?16:10);return(r==0||r>1114111||r>=55296&&r<=57343)&&(r=65533),String.fromCodePoint(r)})},_getJSONLD(e){var t=this._getAllNodesWithTag(e,[`script`]),n;return this._forEachNode(t,function(e){if(!n&&e.getAttribute(`type`)===`application/ld+json`)try{var t=e.textContent.replace(/^\s*<!\[CDATA\[|\]\]>\s*$/g,``),r=JSON.parse(t);if(Array.isArray(r)&&(r=r.find(e=>e[`@type`]&&e[`@type`].match(this.REGEXPS.jsonLdArticleTypes)),!r))return;var i=/^https?\:\/\/schema\.org\/?$/;if(!(typeof r[`@context`]==`string`&&r[`@context`].match(i)||typeof r[`@context`]==`object`&&typeof r[`@context`][`@vocab`]==`string`&&r[`@context`][`@vocab`].match(i))||(!r[`@type`]&&Array.isArray(r[`@graph`])&&(r=r[`@graph`].find(e=>(e[`@type`]||``).match(this.REGEXPS.jsonLdArticleTypes))),!r||!r[`@type`]||!r[`@type`].match(this.REGEXPS.jsonLdArticleTypes)))return;if(n={},typeof r.name==`string`&&typeof r.headline==`string`&&r.name!==r.headline){var a=this._getArticleTitle(),o=this._textSimilarity(r.name,a)>.75;this._textSimilarity(r.headline,a)>.75&&!o?n.title=r.headline:n.title=r.name}else typeof r.name==`string`?n.title=r.name.trim():typeof r.headline==`string`&&(n.title=r.headline.trim());r.author&&(typeof r.author.name==`string`?n.byline=r.author.name.trim():Array.isArray(r.author)&&r.author[0]&&typeof r.author[0].name==`string`&&(n.byline=r.author.filter(function(e){return e&&typeof e.name==`string`}).map(function(e){return e.name.trim()}).join(`, `))),typeof r.description==`string`&&(n.excerpt=r.description.trim()),r.publisher&&typeof r.publisher.name==`string`&&(n.siteName=r.publisher.name.trim()),typeof r.datePublished==`string`&&(n.datePublished=r.datePublished.trim())}catch(e){this.log(e.message)}}),n||{}},_getArticleMetadata(e){var t={},n={},r=this._doc.getElementsByTagName(`meta`),i=/\s*(article|dc|dcterm|og|twitter)\s*:\s*(author|creator|description|published_time|title|site_name)\s*/gi,a=/^\s*(?:(dc|dcterm|og|twitter|parsely|weibo:(article|webpage))\s*[-\.:]\s*)?(author|creator|pub-date|description|title|site_name)\s*$/i;this._forEachNode(r,function(e){var t=e.getAttribute(`name`),r=e.getAttribute(`property`),o=e.getAttribute(`content`);if(o){var s=null,c=null;r&&(s=r.match(i),s&&(c=s[0].toLowerCase().replace(/\s/g,``),n[c]=o.trim())),!s&&t&&a.test(t)&&(c=t,o&&(c=c.toLowerCase().replace(/\s/g,``).replace(/\./g,`:`),n[c]=o.trim()))}}),t.title=e.title||n[`dc:title`]||n[`dcterm:title`]||n[`og:title`]||n[`weibo:article:title`]||n[`weibo:webpage:title`]||n.title||n[`twitter:title`]||n[`parsely-title`],t.title||=this._getArticleTitle();let o=typeof n[`article:author`]==`string`&&!this._isUrl(n[`article:author`])?n[`article:author`]:void 0;return t.byline=e.byline||n[`dc:creator`]||n[`dcterm:creator`]||n.author||n[`parsely-author`]||o,t.excerpt=e.excerpt||n[`dc:description`]||n[`dcterm:description`]||n[`og:description`]||n[`weibo:article:description`]||n[`weibo:webpage:description`]||n.description||n[`twitter:description`],t.siteName=e.siteName||n[`og:site_name`],t.publishedTime=e.datePublished||n[`article:published_time`]||n[`parsely-pub-date`]||null,t.title=this._unescapeHtmlEntities(t.title),t.byline=this._unescapeHtmlEntities(t.byline),t.excerpt=this._unescapeHtmlEntities(t.excerpt),t.siteName=this._unescapeHtmlEntities(t.siteName),t.publishedTime=this._unescapeHtmlEntities(t.publishedTime),t},_isSingleImage(e){for(;e;){if(e.tagName===`IMG`)return!0;if(e.children.length!==1||e.textContent.trim()!==``)return!1;e=e.children[0]}return!1},_unwrapNoscriptImages(e){var t=Array.from(e.getElementsByTagName(`img`));this._forEachNode(t,function(e){for(var t=0;t<e.attributes.length;t++){var n=e.attributes[t];switch(n.name){case`src`:case`srcset`:case`data-src`:case`data-srcset`:return}if(/\.(jpg|jpeg|png|webp)/i.test(n.value))return}e.remove()});var n=Array.from(e.getElementsByTagName(`noscript`));this._forEachNode(n,function(t){if(this._isSingleImage(t)){var n=e.createElement(`div`);n.innerHTML=t.innerHTML;var r=t.previousElementSibling;if(r&&this._isSingleImage(r)){var i=r;i.tagName!==`IMG`&&(i=r.getElementsByTagName(`img`)[0]);for(var a=n.getElementsByTagName(`img`)[0],o=0;o<i.attributes.length;o++){var s=i.attributes[o];if(s.value!==``&&(s.name===`src`||s.name===`srcset`||/\.(jpg|jpeg|png|webp)/i.test(s.value))){if(a.getAttribute(s.name)===s.value)continue;var c=s.name;a.hasAttribute(c)&&(c=`data-old-`+c),a.setAttribute(c,s.value)}}t.parentNode.replaceChild(n.firstElementChild,r)}}})},_removeScripts(e){this._removeNodes(this._getAllNodesWithTag(e,[`script`,`noscript`]))},_hasSingleTagInsideElement(e,t){return e.children.length!=1||e.children[0].tagName!==t?!1:!this._someNode(e.childNodes,function(e){return e.nodeType===this.TEXT_NODE&&this.REGEXPS.hasContent.test(e.textContent)})},_isElementWithoutContent(e){return e.nodeType===this.ELEMENT_NODE&&!e.textContent.trim().length&&(!e.children.length||e.children.length==e.getElementsByTagName(`br`).length+e.getElementsByTagName(`hr`).length)},_hasChildBlockElement(e){return this._someNode(e.childNodes,function(e){return this.DIV_TO_P_ELEMS.has(e.tagName)||this._hasChildBlockElement(e)})},_isPhrasingContent(e){return e.nodeType===this.TEXT_NODE||this.PHRASING_ELEMS.includes(e.tagName)||(e.tagName===`A`||e.tagName===`DEL`||e.tagName===`INS`)&&this._everyNode(e.childNodes,this._isPhrasingContent)},_isWhitespace(e){return e.nodeType===this.TEXT_NODE&&e.textContent.trim().length===0||e.nodeType===this.ELEMENT_NODE&&e.tagName===`BR`},_getInnerText(e,t){t=t===void 0?!0:t;var n=e.textContent.trim();return t?n.replace(this.REGEXPS.normalize,` `):n},_getCharCount(e,t){return t||=`,`,this._getInnerText(e).split(t).length-1},_cleanStyles(e){if(!(!e||e.tagName.toLowerCase()===`svg`)){for(var t=0;t<this.PRESENTATIONAL_ATTRIBUTES.length;t++)e.removeAttribute(this.PRESENTATIONAL_ATTRIBUTES[t]);this.DEPRECATED_SIZE_ATTRIBUTE_ELEMS.includes(e.tagName)&&(e.removeAttribute(`width`),e.removeAttribute(`height`));for(var n=e.firstElementChild;n!==null;)this._cleanStyles(n),n=n.nextElementSibling}},_getLinkDensity(e){var t=this._getInnerText(e).length;if(t===0)return 0;var n=0;return this._forEachNode(e.getElementsByTagName(`a`),function(e){var t=e.getAttribute(`href`),r=t&&this.REGEXPS.hashUrl.test(t)?.3:1;n+=this._getInnerText(e).length*r}),n/t},_getClassWeight(e){if(!this._flagIsActive(this.FLAG_WEIGHT_CLASSES))return 0;var t=0;return typeof e.className==`string`&&e.className!==``&&(this.REGEXPS.negative.test(e.className)&&(t-=25),this.REGEXPS.positive.test(e.className)&&(t+=25)),typeof e.id==`string`&&e.id!==``&&(this.REGEXPS.negative.test(e.id)&&(t-=25),this.REGEXPS.positive.test(e.id)&&(t+=25)),t},_clean(e,t){var n=[`object`,`embed`,`iframe`].includes(t);this._removeNodes(this._getAllNodesWithTag(e,[t]),function(e){if(n){for(var t=0;t<e.attributes.length;t++)if(this._allowedVideoRegex.test(e.attributes[t].value))return!1;if(e.tagName===`object`&&this._allowedVideoRegex.test(e.innerHTML))return!1}return!0})},_hasAncestorTag(e,t,n,r){n||=3,t=t.toUpperCase();for(var i=0;e.parentNode;){if(n>0&&i>n)return!1;if(e.parentNode.tagName===t&&(!r||r(e.parentNode)))return!0;e=e.parentNode,i++}return!1},_getRowAndColumnCount(e){for(var t=0,n=0,r=e.getElementsByTagName(`tr`),i=0;i<r.length;i++){var a=r[i].getAttribute(`rowspan`)||0;a&&=parseInt(a,10),t+=a||1;for(var o=0,s=r[i].getElementsByTagName(`td`),c=0;c<s.length;c++){var l=s[c].getAttribute(`colspan`)||0;l&&=parseInt(l,10),o+=l||1}n=Math.max(n,o)}return{rows:t,columns:n}},_markDataTables(e){for(var t=e.getElementsByTagName(`table`),n=0;n<t.length;n++){var r=t[n];if(r.getAttribute(`role`)==`presentation`){r._readabilityDataTable=!1;continue}if(r.getAttribute(`datatable`)==`0`){r._readabilityDataTable=!1;continue}if(r.getAttribute(`summary`)){r._readabilityDataTable=!0;continue}var i=r.getElementsByTagName(`caption`)[0];if(i&&i.childNodes.length){r._readabilityDataTable=!0;continue}if([`col`,`colgroup`,`tfoot`,`thead`,`th`].some(function(e){return!!r.getElementsByTagName(e)[0]})){this.log(`Data table because found data-y descendant`),r._readabilityDataTable=!0;continue}if(r.getElementsByTagName(`table`)[0]){r._readabilityDataTable=!1;continue}var a=this._getRowAndColumnCount(r);if(a.columns==1||a.rows==1){r._readabilityDataTable=!1;continue}if(a.rows>=10||a.columns>4){r._readabilityDataTable=!0;continue}r._readabilityDataTable=a.rows*a.columns>10}},_fixLazyImages(e){this._forEachNode(this._getAllNodesWithTag(e,[`img`,`picture`,`figure`]),function(e){if(e.src&&this.REGEXPS.b64DataUrl.test(e.src)){var t=this.REGEXPS.b64DataUrl.exec(e.src);if(t[1]===`image/svg+xml`)return;for(var n=!1,r=0;r<e.attributes.length;r++){var i=e.attributes[r];if(i.name!==`src`&&/\.(jpg|jpeg|png|webp)/i.test(i.value)){n=!0;break}}if(n){var a=t[0].length;e.src.length-a<133&&e.removeAttribute(`src`)}}if(!((e.src||e.srcset&&e.srcset!=`null`)&&!e.className.toLowerCase().includes(`lazy`))){for(var o=0;o<e.attributes.length;o++)if(i=e.attributes[o],!(i.name===`src`||i.name===`srcset`||i.name===`alt`)){var s=null;if(/\.(jpg|jpeg|png|webp)\s+\d/.test(i.value)?s=`srcset`:/^\s*\S+\.(jpg|jpeg|png|webp)\S*\s*$/.test(i.value)&&(s=`src`),s){if(e.tagName===`IMG`||e.tagName===`PICTURE`)e.setAttribute(s,i.value);else if(e.tagName===`FIGURE`&&!this._getAllNodesWithTag(e,[`img`,`picture`]).length){var c=this._doc.createElement(`img`);c.setAttribute(s,i.value),e.appendChild(c)}}}}})},_getTextDensity(e,t){var n=this._getInnerText(e,!0).length;if(n===0)return 0;var r=0,i=this._getAllNodesWithTag(e,t);return this._forEachNode(i,e=>r+=this._getInnerText(e,!0).length),r/n},_cleanConditionally(e,t){this._flagIsActive(this.FLAG_CLEAN_CONDITIONALLY)&&this._removeNodes(this._getAllNodesWithTag(e,[t]),function(e){var n=function(e){return e._readabilityDataTable},r=t===`ul`||t===`ol`;if(!r){var i=0,a=this._getAllNodesWithTag(e,[`ul`,`ol`]);this._forEachNode(a,e=>i+=this._getInnerText(e).length),r=i/this._getInnerText(e).length>.9}if(t===`table`&&n(e)||this._hasAncestorTag(e,`table`,-1,n)||this._hasAncestorTag(e,`code`)||[...e.getElementsByTagName(`table`)].some(e=>e._readabilityDataTable))return!1;var o=this._getClassWeight(e);if(this.log(`Cleaning Conditionally`,e),o+0<0)return!0;if(this._getCharCount(e,`,`)<10){for(var s=e.getElementsByTagName(`p`).length,c=e.getElementsByTagName(`img`).length,l=e.getElementsByTagName(`li`).length-100,u=e.getElementsByTagName(`input`).length,d=this._getTextDensity(e,[`h1`,`h2`,`h3`,`h4`,`h5`,`h6`]),f=0,p=this._getAllNodesWithTag(e,[`object`,`embed`,`iframe`]),m=0;m<p.length;m++){for(var h=0;h<p[m].attributes.length;h++)if(this._allowedVideoRegex.test(p[m].attributes[h].value))return!1;if(p[m].tagName===`object`&&this._allowedVideoRegex.test(p[m].innerHTML))return!1;f++}var g=this._getInnerText(e);if(this.REGEXPS.adWords.test(g)||this.REGEXPS.loadingWords.test(g))return!0;var _=g.length,v=this._getLinkDensity(e),y=[`SPAN`,`LI`,`TD`].concat(Array.from(this.DIV_TO_P_ELEMS)),b=this._getTextDensity(e,y),x=this._hasAncestorTag(e,`figure`),S=(()=>{let e=[];return!x&&c>1&&s/c<.5&&e.push(`Bad p to img ratio (img=${c}, p=${s})`),!r&&l>s&&e.push(`Too many li's outside of a list. (li=${l} > p=${s})`),u>Math.floor(s/3)&&e.push(`Too many inputs per p. (input=${u}, p=${s})`),!r&&!x&&d<.9&&_<25&&(c===0||c>2)&&v>0&&e.push(`Suspiciously short. (headingDensity=${d}, img=${c}, linkDensity=${v})`),!r&&o<25&&v>.2+this._linkDensityModifier&&e.push(`Low weight and a little linky. (linkDensity=${v})`),o>=25&&v>.5+this._linkDensityModifier&&e.push(`High weight and mostly links. (linkDensity=${v})`),(f===1&&_<75||f>1)&&e.push(`Suspicious embed. (embedCount=${f}, contentLength=${_})`),c===0&&b===0&&e.push(`No useful content. (img=${c}, textDensity=${b})`),e.length?(this.log(`Checks failed`,e),!0):!1})();if(r&&S){for(var C=0;C<e.children.length;C++)if(e.children[C].children.length>1)return S;if(c==e.getElementsByTagName(`li`).length)return!1}return S}return!1})},_cleanMatchedNodes(e,t){for(var n=this._getNextNode(e,!0),r=this._getNextNode(e);r&&r!=n;)r=t.call(this,r,r.className+` `+r.id)?this._removeAndGetNext(r):this._getNextNode(r)},_cleanHeaders(e){let t=this._getAllNodesWithTag(e,[`h1`,`h2`]);this._removeNodes(t,function(e){let t=this._getClassWeight(e)<0;return t&&this.log(`Removing header with low class weight:`,e),t})},_headerDuplicatesTitle(e){if(e.tagName!=`H1`&&e.tagName!=`H2`)return!1;var t=this._getInnerText(e,!1);return this.log(`Evaluating similarity of header:`,t,this._articleTitle),this._textSimilarity(this._articleTitle,t)>.75},_flagIsActive(e){return(this._flags&e)>0},_removeFlag(e){this._flags&=~e},_isProbablyVisible(e){return(!e.style||e.style.display!=`none`)&&(!e.style||e.style.visibility!=`hidden`)&&!e.hasAttribute(`hidden`)&&(!e.hasAttribute(`aria-hidden`)||e.getAttribute(`aria-hidden`)!=`true`||e.className&&e.className.includes&&e.className.includes(`fallback-image`))},parse(){if(this._maxElemsToParse>0){var e=this._doc.getElementsByTagName(`*`).length;if(e>this._maxElemsToParse)throw Error(`Aborting parsing document; `+e+` elements found`)}this._unwrapNoscriptImages(this._doc);var t=this._disableJSONLD?{}:this._getJSONLD(this._doc);this._removeScripts(this._doc),this._prepDocument();var n=this._getArticleMetadata(t);this._metadata=n,this._articleTitle=n.title;var r=this._grabArticle();if(!r)return null;if(this.log(`Grabbed: `+r.innerHTML),this._postProcessContent(r),!n.excerpt){var i=r.getElementsByTagName(`p`);i.length&&(n.excerpt=i[0].textContent.trim())}var a=r.textContent;return{title:this._articleTitle,byline:n.byline||this._articleByline,dir:this._articleDir,lang:this._articleLang,content:this._serializer(r),textContent:a,length:a.length,excerpt:n.excerpt,siteName:n.siteName||this._articleSiteName,publishedTime:n.publishedTime}}},typeof t==`object`&&(t.exports=n)})),mt=E(((e,t)=>{var n={unlikelyCandidates:/-ad-|ai2html|banner|breadcrumbs|combx|comment|community|cover-wrap|disqus|extra|footer|gdpr|header|legends|menu|related|remark|replies|rss|shoutbox|sidebar|skyscraper|social|sponsor|supplemental|ad-break|agegate|pagination|pager|popup|yom-remote/i,okMaybeItsACandidate:/and|article|body|column|content|main|shadow/i};function r(e){return(!e.style||e.style.display!=`none`)&&!e.hasAttribute(`hidden`)&&(!e.hasAttribute(`aria-hidden`)||e.getAttribute(`aria-hidden`)!=`true`||e.className&&e.className.includes&&e.className.includes(`fallback-image`))}function i(e,t={}){typeof t==`function`&&(t={visibilityChecker:t}),t=Object.assign({minScore:20,minContentLength:140,visibilityChecker:r},t);var i=e.querySelectorAll(`p, pre, article`),a=e.querySelectorAll(`div > br`);if(a.length){var o=new Set(i);[].forEach.call(a,function(e){o.add(e.parentNode)}),i=Array.from(o)}var s=0;return[].some.call(i,function(e){if(!t.visibilityChecker(e))return!1;var r=e.className+` `+e.id;if(n.unlikelyCandidates.test(r)&&!n.okMaybeItsACandidate.test(r)||e.matches(`li p`))return!1;var i=e.textContent.trim().length;return i<t.minContentLength?!1:(s+=Math.sqrt(i-t.minContentLength),s>t.minScore)})}typeof t==`object`&&(t.exports=i)}));E(((e,t)=>{t.exports={Readability:pt(),isProbablyReaderable:mt()}}))();const ht=Symbol(`changed`),gt=Symbol(`classList`),_t=Symbol(`CustomElements`),vt=Symbol(`content`),yt=Symbol(`dataset`),bt=Symbol(`doctype`),xt=Symbol(`DOMParser`),L=Symbol(`end`),St=Symbol(`EventTarget`),Ct=Symbol(`globals`),R=Symbol(`image`),wt=Symbol(`mime`),Tt=Symbol(`MutationObserver`),z=Symbol(`next`),Et=Symbol(`ownerElement`),Dt=Symbol(`prev`),Ot=Symbol(`private`),kt=Symbol(`sheet`),At=Symbol(`start`),jt=Symbol(`style`),B=Symbol(`upgrade`),V=Symbol(`value`),Mt=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]]),Nt=String.fromCodePoint??(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 Pt(e){return e>=55296&&e<=57343||e>1114111?65533:Mt.get(e)??e}function Ft(e){let t=typeof atob==`function`?atob(e):typeof Buffer.from==`function`?Buffer.from(e,`base64`).toString(`binary`):new Buffer(e,`base64`).toString(`binary`),n=t.length&-2,r=new Uint16Array(n/2);for(let e=0,i=0;e<n;e+=2){let n=t.charCodeAt(e),a=t.charCodeAt(e+1);r[i++]=n|a<<8}return r}const It=Ft(`QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IA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YwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWls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ZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg`),H=Ft(`AAJhZ2xxBwARABMAFQBtAg0AAAAAAA8AcAAmYG8AcwAnYHQAPmB0ADxg9SFvdCJg`);var Lt;(function(e){e[e.VALUE_LENGTH=49152]=`VALUE_LENGTH`,e[e.FLAG13=8192]=`FLAG13`,e[e.BRANCH_LENGTH=8064]=`BRANCH_LENGTH`,e[e.JUMP_TABLE=127]=`JUMP_TABLE`})(Lt||={});var Rt;(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`})(Rt||={});function zt(e){return e>=Rt.ZERO&&e<=Rt.NINE}function Bt(e){return e>=Rt.UPPER_A&&e<=Rt.UPPER_F||e>=Rt.LOWER_A&&e<=Rt.LOWER_F}function Vt(e){return e>=Rt.UPPER_A&&e<=Rt.UPPER_Z||e>=Rt.LOWER_A&&e<=Rt.LOWER_Z||zt(e)}function Ht(e){return e===Rt.EQUALS||Vt(e)}var Ut;(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`})(Ut||={});var Wt;(function(e){e[e.Legacy=0]=`Legacy`,e[e.Strict=1]=`Strict`,e[e.Attribute=2]=`Attribute`})(Wt||={});var Gt=class{constructor(e,t,n){this.decodeTree=e,this.emitCodePoint=t,this.errors=n,this.state=Ut.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=Wt.Strict,this.runConsumed=0}startEntity(e){this.decodeMode=e,this.state=Ut.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1,this.runConsumed=0}write(e,t){switch(this.state){case Ut.EntityStart:return e.charCodeAt(t)===Rt.NUM?(this.state=Ut.NumericStart,this.consumed+=1,this.stateNumericStart(e,t+1)):(this.state=Ut.NamedEntity,this.stateNamedEntity(e,t));case Ut.NumericStart:return this.stateNumericStart(e,t);case Ut.NumericDecimal:return this.stateNumericDecimal(e,t);case Ut.NumericHex:return this.stateNumericHex(e,t);case Ut.NamedEntity:return this.stateNamedEntity(e,t)}}stateNumericStart(e,t){return t>=e.length?-1:(e.charCodeAt(t)|32)===Rt.LOWER_X?(this.state=Ut.NumericHex,this.consumed+=1,this.stateNumericHex(e,t+1)):(this.state=Ut.NumericDecimal,this.stateNumericDecimal(e,t))}stateNumericHex(e,t){for(;t<e.length;){let n=e.charCodeAt(t);if(zt(n)||Bt(n)){let e=n<=Rt.NINE?n-Rt.ZERO:(n|32)-Rt.LOWER_A+10;this.result=this.result*16+e,this.consumed++,t++}else return this.emitNumericEntity(n,3)}return-1}stateNumericDecimal(e,t){for(;t<e.length;){let n=e.charCodeAt(t);if(zt(n))this.result=this.result*10+(n-Rt.ZERO),this.consumed++,t++;else return this.emitNumericEntity(n,2)}return-1}emitNumericEntity(e,t){var n;if(this.consumed<=t)return(n=this.errors)==null||n.absenceOfDigitsInNumericCharacterReference(this.consumed),0;if(e===Rt.SEMI)this.consumed+=1;else if(this.decodeMode===Wt.Strict)return 0;return this.emitCodePoint(Pt(this.result),this.consumed),this.errors&&(e!==Rt.SEMI&&this.errors.missingSemicolonAfterCharacterReference(),this.errors.validateNumericCharacterReference(this.result)),this.consumed}stateNamedEntity(e,t){let{decodeTree:n}=this,r=n[this.treeIndex],i=(r&Lt.VALUE_LENGTH)>>14;for(;t<e.length;){if(i===0&&(r&Lt.FLAG13)!==0){let a=(r&Lt.BRANCH_LENGTH)>>7;if(this.runConsumed===0){let n=r&Lt.JUMP_TABLE;if(e.charCodeAt(t)!==n)return this.result===0?0:this.emitNotTerminatedNamedEntity();t++,this.excess++,this.runConsumed++}for(;this.runConsumed<a;){if(t>=e.length)return-1;let r=this.runConsumed-1,i=n[this.treeIndex+1+(r>>1)],a=r%2==0?i&255:i>>8&255;if(e.charCodeAt(t)!==a)return this.runConsumed=0,this.result===0?0:this.emitNotTerminatedNamedEntity();t++,this.excess++,this.runConsumed++}this.runConsumed=0,this.treeIndex+=1+(a>>1),r=n[this.treeIndex],i=(r&Lt.VALUE_LENGTH)>>14}if(t>=e.length)break;let a=e.charCodeAt(t);if(a===Rt.SEMI&&i!==0&&(r&Lt.FLAG13)!==0)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);if(this.treeIndex=Kt(n,r,this.treeIndex+Math.max(1,i),a),this.treeIndex<0)return this.result===0||this.decodeMode===Wt.Attribute&&(i===0||Ht(a))?0:this.emitNotTerminatedNamedEntity();if(r=n[this.treeIndex],i=(r&Lt.VALUE_LENGTH)>>14,i!==0){if(a===Rt.SEMI)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);this.decodeMode!==Wt.Strict&&(r&Lt.FLAG13)===0&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}t++,this.excess++}return-1}emitNotTerminatedNamedEntity(){var e;let{result:t,decodeTree:n}=this,r=(n[t]&Lt.VALUE_LENGTH)>>14;return this.emitNamedEntityData(t,r,this.consumed),(e=this.errors)==null||e.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(e,t,n){let{decodeTree:r}=this;return this.emitCodePoint(t===1?r[e]&~(Lt.VALUE_LENGTH|Lt.FLAG13):r[e+1],n),t===3&&this.emitCodePoint(r[e+2],n),n}end(){var e;switch(this.state){case Ut.NamedEntity:return this.result!==0&&(this.decodeMode!==Wt.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case Ut.NumericDecimal:return this.emitNumericEntity(0,2);case Ut.NumericHex:return this.emitNumericEntity(0,3);case Ut.NumericStart:return(e=this.errors)==null||e.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case Ut.EntityStart:return 0}}};function Kt(e,t,n,r){let i=(t&Lt.BRANCH_LENGTH)>>7,a=t&Lt.JUMP_TABLE;if(i===0)return a!==0&&r===a?n:-1;if(a){let t=r-a;return t<0||t>=i?-1:e[n+t]-1}let o=i+1>>1,s=0,c=i-1;for(;s<=c;){let t=s+c>>>1,i=e[n+(t>>1)]>>(t&1)*8&255;if(i<r)s=t+1;else if(i>r)c=t-1;else return e[n+o+t]}return-1}var U;(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`})(U||={});var W;(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.BeforeSpecialT=23]=`BeforeSpecialT`,e[e.SpecialStartSequence=24]=`SpecialStartSequence`,e[e.InSpecialTag=25]=`InSpecialTag`,e[e.InEntity=26]=`InEntity`})(W||={});function qt(e){return e===U.Space||e===U.NewLine||e===U.Tab||e===U.FormFeed||e===U.CarriageReturn}function G(e){return e===U.Slash||e===U.Gt||qt(e)}function K(e){return e>=U.LowerA&&e<=U.LowerZ||e>=U.UpperA&&e<=U.UpperZ}var Jt;(function(e){e[e.NoValue=0]=`NoValue`,e[e.Unquoted=1]=`Unquoted`,e[e.Single=2]=`Single`,e[e.Double=3]=`Double`})(Jt||={});const Yt={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]),TextareaEnd:new Uint8Array([60,47,116,101,120,116,97,114,101,97]),XmpEnd:new Uint8Array([60,47,120,109,112])};var Xt=class{constructor({xmlMode:e=!1,decodeEntities:t=!0},n){this.cbs=n,this.state=W.Text,this.buffer=``,this.sectionStart=0,this.index=0,this.entityStart=0,this.baseState=W.Text,this.isSpecial=!1,this.running=!0,this.offset=0,this.currentSequence=void 0,this.sequenceIndex=0,this.xmlMode=e,this.decodeEntities=t,this.entityDecoder=new Gt(e?H:It,(e,t)=>this.emitCodePoint(e,t))}reset(){this.state=W.Text,this.buffer=``,this.sectionStart=0,this.index=0,this.baseState=W.Text,this.currentSequence=void 0,this.running=!0,this.offset=0}write(e){this.offset+=this.buffer.length,this.buffer=e,this.parse()}end(){this.running&&this.finish()}pause(){this.running=!1}resume(){this.running=!0,this.index<this.buffer.length+this.offset&&this.parse()}stateText(e){e===U.Lt||!this.decodeEntities&&this.fastForwardTo(U.Lt)?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=W.BeforeTagName,this.sectionStart=this.index):this.decodeEntities&&e===U.Amp&&this.startEntity()}stateSpecialStartSequence(e){let t=this.sequenceIndex===this.currentSequence.length;if(!(t?G(e):(e|32)===this.currentSequence[this.sequenceIndex]))this.isSpecial=!1;else if(!t){this.sequenceIndex++;return}this.sequenceIndex=0,this.state=W.InTagName,this.stateInTagName(e)}stateInSpecialTag(e){if(this.sequenceIndex===this.currentSequence.length){if(e===U.Gt||qt(e)){let t=this.index-this.currentSequence.length;if(this.sectionStart<t){let e=this.index;this.index=t,this.cbs.ontext(this.sectionStart,t),this.index=e}this.isSpecial=!1,this.sectionStart=t+2,this.stateInClosingTagName(e);return}this.sequenceIndex=0}(e|32)===this.currentSequence[this.sequenceIndex]?this.sequenceIndex+=1:this.sequenceIndex===0?this.currentSequence===Yt.TitleEnd?this.decodeEntities&&e===U.Amp&&this.startEntity():this.fastForwardTo(U.Lt)&&(this.sequenceIndex=1):this.sequenceIndex=Number(e===U.Lt)}stateCDATASequence(e){e===Yt.Cdata[this.sequenceIndex]?++this.sequenceIndex===Yt.Cdata.length&&(this.state=W.InCommentLike,this.currentSequence=Yt.CdataEnd,this.sequenceIndex=0,this.sectionStart=this.index+1):(this.sequenceIndex=0,this.state=W.InDeclaration,this.stateInDeclaration(e))}fastForwardTo(e){for(;++this.index<this.buffer.length+this.offset;)if(this.buffer.charCodeAt(this.index-this.offset)===e)return!0;return this.index=this.buffer.length+this.offset-1,!1}stateInCommentLike(e){e===this.currentSequence[this.sequenceIndex]?++this.sequenceIndex===this.currentSequence.length&&(this.currentSequence===Yt.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=W.Text):this.sequenceIndex===0?this.fastForwardTo(this.currentSequence[0])&&(this.sequenceIndex=1):e!==this.currentSequence[this.sequenceIndex-1]&&(this.sequenceIndex=0)}isTagStartChar(e){return this.xmlMode?!G(e):K(e)}startSpecial(e,t){this.isSpecial=!0,this.currentSequence=e,this.sequenceIndex=t,this.state=W.SpecialStartSequence}stateBeforeTagName(e){if(e===U.ExclamationMark)this.state=W.BeforeDeclaration,this.sectionStart=this.index+1;else if(e===U.Questionmark)this.state=W.InProcessingInstruction,this.sectionStart=this.index+1;else if(this.isTagStartChar(e)){let t=e|32;this.sectionStart=this.index,this.xmlMode?this.state=W.InTagName:t===Yt.ScriptEnd[2]?this.state=W.BeforeSpecialS:t===Yt.TitleEnd[2]||t===Yt.XmpEnd[2]?this.state=W.BeforeSpecialT:this.state=W.InTagName}else e===U.Slash?this.state=W.BeforeClosingTagName:(this.state=W.Text,this.stateText(e))}stateInTagName(e){G(e)&&(this.cbs.onopentagname(this.sectionStart,this.index),this.sectionStart=-1,this.state=W.BeforeAttributeName,this.stateBeforeAttributeName(e))}stateBeforeClosingTagName(e){qt(e)||(e===U.Gt?this.state=W.Text:(this.state=this.isTagStartChar(e)?W.InClosingTagName:W.InSpecialComment,this.sectionStart=this.index))}stateInClosingTagName(e){(e===U.Gt||qt(e))&&(this.cbs.onclosetag(this.sectionStart,this.index),this.sectionStart=-1,this.state=W.AfterClosingTagName,this.stateAfterClosingTagName(e))}stateAfterClosingTagName(e){(e===U.Gt||this.fastForwardTo(U.Gt))&&(this.state=W.Text,this.sectionStart=this.index+1)}stateBeforeAttributeName(e){e===U.Gt?(this.cbs.onopentagend(this.index),this.isSpecial?(this.state=W.InSpecialTag,this.sequenceIndex=0):this.state=W.Text,this.sectionStart=this.index+1):e===U.Slash?this.state=W.InSelfClosingTag:qt(e)||(this.state=W.InAttributeName,this.sectionStart=this.index)}stateInSelfClosingTag(e){e===U.Gt?(this.cbs.onselfclosingtag(this.index),this.state=W.Text,this.sectionStart=this.index+1,this.isSpecial=!1):qt(e)||(this.state=W.BeforeAttributeName,this.stateBeforeAttributeName(e))}stateInAttributeName(e){(e===U.Eq||G(e))&&(this.cbs.onattribname(this.sectionStart,this.index),this.sectionStart=this.index,this.state=W.AfterAttributeName,this.stateAfterAttributeName(e))}stateAfterAttributeName(e){e===U.Eq?this.state=W.BeforeAttributeValue:e===U.Slash||e===U.Gt?(this.cbs.onattribend(Jt.NoValue,this.sectionStart),this.sectionStart=-1,this.state=W.BeforeAttributeName,this.stateBeforeAttributeName(e)):qt(e)||(this.cbs.onattribend(Jt.NoValue,this.sectionStart),this.state=W.InAttributeName,this.sectionStart=this.index)}stateBeforeAttributeValue(e){e===U.DoubleQuote?(this.state=W.InAttributeValueDq,this.sectionStart=this.index+1):e===U.SingleQuote?(this.state=W.InAttributeValueSq,this.sectionStart=this.index+1):qt(e)||(this.sectionStart=this.index,this.state=W.InAttributeValueNq,this.stateInAttributeValueNoQuotes(e))}handleInAttributeValue(e,t){e===t||!this.decodeEntities&&this.fastForwardTo(t)?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(t===U.DoubleQuote?Jt.Double:Jt.Single,this.index+1),this.state=W.BeforeAttributeName):this.decodeEntities&&e===U.Amp&&this.startEntity()}stateInAttributeValueDoubleQuotes(e){this.handleInAttributeValue(e,U.DoubleQuote)}stateInAttributeValueSingleQuotes(e){this.handleInAttributeValue(e,U.SingleQuote)}stateInAttributeValueNoQuotes(e){qt(e)||e===U.Gt?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(Jt.Unquoted,this.index),this.state=W.BeforeAttributeName,this.stateBeforeAttributeName(e)):this.decodeEntities&&e===U.Amp&&this.startEntity()}stateBeforeDeclaration(e){e===U.OpeningSquareBracket?(this.state=W.CDATASequence,this.sequenceIndex=0):this.state=e===U.Dash?W.BeforeComment:W.InDeclaration}stateInDeclaration(e){(e===U.Gt||this.fastForwardTo(U.Gt))&&(this.cbs.ondeclaration(this.sectionStart,this.index),this.state=W.Text,this.sectionStart=this.index+1)}stateInProcessingInstruction(e){(e===U.Gt||this.fastForwardTo(U.Gt))&&(this.cbs.onprocessinginstruction(this.sectionStart,this.index),this.state=W.Text,this.sectionStart=this.index+1)}stateBeforeComment(e){e===U.Dash?(this.state=W.InCommentLike,this.currentSequence=Yt.CommentEnd,this.sequenceIndex=2,this.sectionStart=this.index+1):this.state=W.InDeclaration}stateInSpecialComment(e){(e===U.Gt||this.fastForwardTo(U.Gt))&&(this.cbs.oncomment(this.sectionStart,this.index,0),this.state=W.Text,this.sectionStart=this.index+1)}stateBeforeSpecialS(e){let t=e|32;t===Yt.ScriptEnd[3]?this.startSpecial(Yt.ScriptEnd,4):t===Yt.StyleEnd[3]?this.startSpecial(Yt.StyleEnd,4):(this.state=W.InTagName,this.stateInTagName(e))}stateBeforeSpecialT(e){switch(e|32){case Yt.TitleEnd[3]:this.startSpecial(Yt.TitleEnd,4);break;case Yt.TextareaEnd[3]:this.startSpecial(Yt.TextareaEnd,4);break;case Yt.XmpEnd[3]:this.startSpecial(Yt.XmpEnd,4);break;default:this.state=W.InTagName,this.stateInTagName(e)}}startEntity(){this.baseState=this.state,this.state=W.InEntity,this.entityStart=this.index,this.entityDecoder.startEntity(this.xmlMode?Wt.Strict:this.baseState===W.Text||this.baseState===W.InSpecialTag?Wt.Legacy:Wt.Attribute)}stateInEntity(){let e=this.index-this.offset,t=this.entityDecoder.write(this.buffer,e);if(t>=0)this.state=this.baseState,t===0&&--this.index;else{if(e<this.buffer.length&&this.buffer.charCodeAt(e)===U.Amp){this.state=this.baseState,--this.index;return}this.index=this.offset+this.buffer.length-1}}cleanup(){this.running&&this.sectionStart!==this.index&&(this.state===W.Text||this.state===W.InSpecialTag&&this.sequenceIndex===0?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):(this.state===W.InAttributeValueDq||this.state===W.InAttributeValueSq||this.state===W.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 e=this.buffer.charCodeAt(this.index-this.offset);switch(this.state){case W.Text:this.stateText(e);break;case W.SpecialStartSequence:this.stateSpecialStartSequence(e);break;case W.InSpecialTag:this.stateInSpecialTag(e);break;case W.CDATASequence:this.stateCDATASequence(e);break;case W.InAttributeValueDq:this.stateInAttributeValueDoubleQuotes(e);break;case W.InAttributeName:this.stateInAttributeName(e);break;case W.InCommentLike:this.stateInCommentLike(e);break;case W.InSpecialComment:this.stateInSpecialComment(e);break;case W.BeforeAttributeName:this.stateBeforeAttributeName(e);break;case W.InTagName:this.stateInTagName(e);break;case W.InClosingTagName:this.stateInClosingTagName(e);break;case W.BeforeTagName:this.stateBeforeTagName(e);break;case W.AfterAttributeName:this.stateAfterAttributeName(e);break;case W.InAttributeValueSq:this.stateInAttributeValueSingleQuotes(e);break;case W.BeforeAttributeValue:this.stateBeforeAttributeValue(e);break;case W.BeforeClosingTagName:this.stateBeforeClosingTagName(e);break;case W.AfterClosingTagName:this.stateAfterClosingTagName(e);break;case W.BeforeSpecialS:this.stateBeforeSpecialS(e);break;case W.BeforeSpecialT:this.stateBeforeSpecialT(e);break;case W.InAttributeValueNq:this.stateInAttributeValueNoQuotes(e);break;case W.InSelfClosingTag:this.stateInSelfClosingTag(e);break;case W.InDeclaration:this.stateInDeclaration(e);break;case W.BeforeDeclaration:this.stateBeforeDeclaration(e);break;case W.BeforeComment:this.stateBeforeComment(e);break;case W.InProcessingInstruction:this.stateInProcessingInstruction(e);break;case W.InEntity:this.stateInEntity();break}this.index++}this.cleanup()}finish(){this.state===W.InEntity&&(this.entityDecoder.end(),this.state=this.baseState),this.handleTrailingData(),this.cbs.onend()}handleTrailingData(){let e=this.buffer.length+this.offset;this.sectionStart>=e||(this.state===W.InCommentLike?this.currentSequence===Yt.CdataEnd?this.cbs.oncdata(this.sectionStart,e,0):this.cbs.oncomment(this.sectionStart,e,0):this.state===W.InTagName||this.state===W.BeforeAttributeName||this.state===W.BeforeAttributeValue||this.state===W.AfterAttributeName||this.state===W.InAttributeName||this.state===W.InAttributeValueSq||this.state===W.InAttributeValueDq||this.state===W.InAttributeValueNq||this.state===W.InClosingTagName||this.cbs.ontext(this.sectionStart,e))}emitCodePoint(e,t){this.baseState!==W.Text&&this.baseState!==W.InSpecialTag?(this.sectionStart<this.entityStart&&this.cbs.onattribdata(this.sectionStart,this.entityStart),this.sectionStart=this.entityStart+t,this.index=this.sectionStart-1,this.cbs.onattribentity(e)):(this.sectionStart<this.entityStart&&this.cbs.ontext(this.sectionStart,this.entityStart),this.sectionStart=this.entityStart+t,this.index=this.sectionStart-1,this.cbs.ontextentity(e,this.sectionStart))}};const Zt=new Set([`input`,`option`,`optgroup`,`select`,`button`,`datalist`,`textarea`]),Qt=new Set([`p`]),$t=new Set([`thead`,`tbody`]),en=new Set([`dd`,`dt`]),tn=new Set([`rt`,`rp`]),nn=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`,Qt],[`h1`,Qt],[`h2`,Qt],[`h3`,Qt],[`h4`,Qt],[`h5`,Qt],[`h6`,Qt],[`select`,Zt],[`input`,Zt],[`output`,Zt],[`button`,Zt],[`datalist`,Zt],[`textarea`,Zt],[`option`,new Set([`option`])],[`optgroup`,new Set([`optgroup`,`option`])],[`dd`,en],[`dt`,en],[`address`,Qt],[`article`,Qt],[`aside`,Qt],[`blockquote`,Qt],[`details`,Qt],[`div`,Qt],[`dl`,Qt],[`fieldset`,Qt],[`figcaption`,Qt],[`figure`,Qt],[`footer`,Qt],[`form`,Qt],[`header`,Qt],[`hr`,Qt],[`main`,Qt],[`nav`,Qt],[`ol`,Qt],[`pre`,Qt],[`section`,Qt],[`table`,Qt],[`ul`,Qt],[`rt`,tn],[`rp`,tn],[`tbody`,$t],[`tfoot`,$t]]),rn=new Set([`area`,`base`,`basefont`,`br`,`col`,`command`,`embed`,`frame`,`hr`,`img`,`input`,`isindex`,`keygen`,`link`,`meta`,`param`,`source`,`track`,`wbr`]),an=new Set([`math`,`svg`]),on=new Set([`mi`,`mo`,`mn`,`ms`,`mtext`,`annotation-xml`,`foreignobject`,`desc`,`title`]),sn=/\s|\//;var cn=class{constructor(e,t={}){var n,r;this.options=t,this.startIndex=0,this.endIndex=0,this.openTagStart=0,this.tagname=``,this.attribname=``,this.attribvalue=``,this.attribs=null,this.stack=[],this.buffers=[],this.bufferOffset=0,this.writeIndex=0,this.ended=!1,this.cbs=e??{},this.htmlMode=!this.options.xmlMode,this.lowerCaseTagNames=t.lowerCaseTags??this.htmlMode,this.lowerCaseAttributeNames=t.lowerCaseAttributeNames??this.htmlMode,this.recognizeSelfClosing=t.recognizeSelfClosing??!this.htmlMode,this.tokenizer=new(t.Tokenizer??Xt)(this.options,this),this.foreignContext=[!this.htmlMode],(r=(n=this.cbs).onparserinit)==null||r.call(n,this)}ontext(e,t){var n,r;let i=this.getSlice(e,t);this.endIndex=t-1,(r=(n=this.cbs).ontext)==null||r.call(n,i),this.startIndex=t}ontextentity(e,t){var n,r;this.endIndex=t-1,(r=(n=this.cbs).ontext)==null||r.call(n,Nt(e)),this.startIndex=t}isVoidElement(e){return this.htmlMode&&rn.has(e)}onopentagname(e,t){this.endIndex=t;let n=this.getSlice(e,t);this.lowerCaseTagNames&&(n=n.toLowerCase()),this.emitOpenTag(n)}emitOpenTag(e){var t,n,r,i;this.openTagStart=this.startIndex,this.tagname=e;let a=this.htmlMode&&nn.get(e);if(a)for(;this.stack.length>0&&a.has(this.stack[0]);){let e=this.stack.shift();(n=(t=this.cbs).onclosetag)==null||n.call(t,e,!0)}this.isVoidElement(e)||(this.stack.unshift(e),this.htmlMode&&(an.has(e)?this.foreignContext.unshift(!0):on.has(e)&&this.foreignContext.unshift(!1))),(i=(r=this.cbs).onopentagname)==null||i.call(r,e),this.cbs.onopentag&&(this.attribs={})}endOpenTag(e){var t,n;this.startIndex=this.openTagStart,this.attribs&&=((n=(t=this.cbs).onopentag)==null||n.call(t,this.tagname,this.attribs,e),null),this.cbs.onclosetag&&this.isVoidElement(this.tagname)&&this.cbs.onclosetag(this.tagname,!0),this.tagname=``}onopentagend(e){this.endIndex=e,this.endOpenTag(!1),this.startIndex=e+1}onclosetag(e,t){var n,r,i,a,o,s,c,l;this.endIndex=t;let u=this.getSlice(e,t);if(this.lowerCaseTagNames&&(u=u.toLowerCase()),this.htmlMode&&(an.has(u)||on.has(u))&&this.foreignContext.shift(),this.isVoidElement(u))this.htmlMode&&u===`br`&&((a=(i=this.cbs).onopentagname)==null||a.call(i,`br`),(s=(o=this.cbs).onopentag)==null||s.call(o,`br`,{},!0),(l=(c=this.cbs).onclosetag)==null||l.call(c,`br`,!1));else{let e=this.stack.indexOf(u);if(e!==-1)for(let t=0;t<=e;t++){let i=this.stack.shift();(r=(n=this.cbs).onclosetag)==null||r.call(n,i,t!==e)}else this.htmlMode&&u===`p`&&(this.emitOpenTag(`p`),this.closeCurrentTag(!0))}this.startIndex=t+1}onselfclosingtag(e){this.endIndex=e,this.recognizeSelfClosing||this.foreignContext[0]?(this.closeCurrentTag(!1),this.startIndex=e+1):this.onopentagend(e)}closeCurrentTag(e){var t,n;let r=this.tagname;this.endOpenTag(e),this.stack[0]===r&&((n=(t=this.cbs).onclosetag)==null||n.call(t,r,!e),this.stack.shift())}onattribname(e,t){this.startIndex=e;let n=this.getSlice(e,t);this.attribname=this.lowerCaseAttributeNames?n.toLowerCase():n}onattribdata(e,t){this.attribvalue+=this.getSlice(e,t)}onattribentity(e){this.attribvalue+=Nt(e)}onattribend(e,t){var n,r;this.endIndex=t,(r=(n=this.cbs).onattribute)==null||r.call(n,this.attribname,this.attribvalue,e===Jt.Double?`"`:e===Jt.Single?`'`:e===Jt.NoValue?void 0:null),this.attribs&&!Object.prototype.hasOwnProperty.call(this.attribs,this.attribname)&&(this.attribs[this.attribname]=this.attribvalue),this.attribvalue=``}getInstructionName(e){let t=e.search(sn),n=t<0?e:e.substr(0,t);return this.lowerCaseTagNames&&(n=n.toLowerCase()),n}ondeclaration(e,t){this.endIndex=t;let n=this.getSlice(e,t);if(this.cbs.onprocessinginstruction){let e=this.getInstructionName(n);this.cbs.onprocessinginstruction(`!${e}`,`!${n}`)}this.startIndex=t+1}onprocessinginstruction(e,t){this.endIndex=t;let n=this.getSlice(e,t);if(this.cbs.onprocessinginstruction){let e=this.getInstructionName(n);this.cbs.onprocessinginstruction(`?${e}`,`?${n}`)}this.startIndex=t+1}oncomment(e,t,n){var r,i,a,o;this.endIndex=t,(i=(r=this.cbs).oncomment)==null||i.call(r,this.getSlice(e,t-n)),(o=(a=this.cbs).oncommentend)==null||o.call(a),this.startIndex=t+1}oncdata(e,t,n){var r,i,a,o,s,c,l,u,d,f;this.endIndex=t;let p=this.getSlice(e,t-n);!this.htmlMode||this.options.recognizeCDATA?((i=(r=this.cbs).oncdatastart)==null||i.call(r),(o=(a=this.cbs).ontext)==null||o.call(a,p),(c=(s=this.cbs).oncdataend)==null||c.call(s)):((u=(l=this.cbs).oncomment)==null||u.call(l,`[CDATA[${p}]]`),(f=(d=this.cbs).oncommentend)==null||f.call(d)),this.startIndex=t+1}onend(){var e,t;if(this.cbs.onclosetag){this.endIndex=this.startIndex;for(let e=0;e<this.stack.length;e++)this.cbs.onclosetag(this.stack[e],!0)}(t=(e=this.cbs).onend)==null||t.call(e)}reset(){var e,t,n,r;(t=(e=this.cbs).onreset)==null||t.call(e),this.tokenizer.reset(),this.tagname=``,this.attribname=``,this.attribs=null,this.stack.length=0,this.startIndex=0,this.endIndex=0,(r=(n=this.cbs).onparserinit)==null||r.call(n,this),this.buffers.length=0,this.foreignContext.length=0,this.foreignContext.unshift(!this.htmlMode),this.bufferOffset=0,this.writeIndex=0,this.ended=!1}parseComplete(e){this.reset(),this.end(e)}getSlice(e,t){for(;e-this.bufferOffset>=this.buffers[0].length;)this.shiftBuffer();let n=this.buffers[0].slice(e-this.bufferOffset,t-this.bufferOffset);for(;t-this.bufferOffset>this.buffers[0].length;)this.shiftBuffer(),n+=this.buffers[0].slice(0,t-this.bufferOffset);return n}shiftBuffer(){this.bufferOffset+=this.buffers[0].length,this.writeIndex--,this.buffers.shift()}write(e){var t,n;if(this.ended){(n=(t=this.cbs).onerror)==null||n.call(t,Error(`.write() after done!`));return}this.buffers.push(e),this.tokenizer.running&&(this.tokenizer.write(e),this.writeIndex++)}end(e){var t,n;if(this.ended){(n=(t=this.cbs).onerror)==null||n.call(t,Error(`.end() after done!`));return}e&&this.write(e),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(e){this.write(e)}done(e){this.end(e)}},ln=ee({CDATA:()=>vn,Comment:()=>mn,Directive:()=>pn,Doctype:()=>yn,ElementType:()=>q,Root:()=>dn,Script:()=>hn,Style:()=>gn,Tag:()=>_n,Text:()=>fn,isTag:()=>un}),q;(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`})(q||={});function un(e){return e.type===q.Tag||e.type===q.Script||e.type===q.Style}const dn=q.Root,fn=q.Text,pn=q.Directive,mn=q.Comment,hn=q.Script,gn=q.Style,_n=q.Tag,vn=q.CDATA,yn=q.Doctype;var bn=class{constructor(){this.parent=null,this.prev=null,this.next=null,this.startIndex=null,this.endIndex=null}get parentNode(){return this.parent}set parentNode(e){this.parent=e}get previousSibling(){return this.prev}set previousSibling(e){this.prev=e}get nextSibling(){return this.next}set nextSibling(e){this.next=e}cloneNode(e=!1){return In(this,e)}},xn=class extends bn{constructor(e){super(),this.data=e}get nodeValue(){return this.data}set nodeValue(e){this.data=e}},Sn=class extends xn{constructor(){super(...arguments),this.type=q.Text}get nodeType(){return 3}},Cn=class extends xn{constructor(){super(...arguments),this.type=q.Comment}get nodeType(){return 8}},wn=class extends xn{constructor(e,t){super(t),this.name=e,this.type=q.Directive}get nodeType(){return 1}},Tn=class extends bn{constructor(e){super(),this.children=e}get firstChild(){return this.children[0]??null}get lastChild(){return this.children.length>0?this.children[this.children.length-1]:null}get childNodes(){return this.children}set childNodes(e){this.children=e}},En=class extends Tn{constructor(){super(...arguments),this.type=q.CDATA}get nodeType(){return 4}},Dn=class extends Tn{constructor(){super(...arguments),this.type=q.Root}get nodeType(){return 9}},On=class extends Tn{constructor(e,t,n=[],r=e===`script`?q.Script:e===`style`?q.Style:q.Tag){super(n),this.name=e,this.attribs=t,this.type=r}get nodeType(){return 1}get tagName(){return this.name}set tagName(e){this.name=e}get attributes(){return Object.keys(this.attribs).map(e=>({name:e,value:this.attribs[e],namespace:this[`x-attribsNamespace`]?.[e],prefix:this[`x-attribsPrefix`]?.[e]}))}};function kn(e){return un(e)}function An(e){return e.type===q.CDATA}function jn(e){return e.type===q.Text}function Mn(e){return e.type===q.Comment}function Nn(e){return e.type===q.Directive}function Pn(e){return e.type===q.Root}function Fn(e){return Object.prototype.hasOwnProperty.call(e,`children`)}function In(e,t=!1){let n;if(jn(e))n=new Sn(e.data);else if(Mn(e))n=new Cn(e.data);else if(kn(e)){let r=t?Ln(e.children):[],i=new On(e.name,{...e.attribs},r);r.forEach(e=>e.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`]}),n=i}else if(An(e)){let r=t?Ln(e.children):[],i=new En(r);r.forEach(e=>e.parent=i),n=i}else if(Pn(e)){let r=t?Ln(e.children):[],i=new Dn(r);r.forEach(e=>e.parent=i),e[`x-mode`]&&(i[`x-mode`]=e[`x-mode`]),n=i}else if(Nn(e)){let t=new wn(e.name,e.data);e[`x-name`]!=null&&(t[`x-name`]=e[`x-name`],t[`x-publicId`]=e[`x-publicId`],t[`x-systemId`]=e[`x-systemId`]),n=t}else throw Error(`Not implemented yet: ${e.type}`);return n.startIndex=e.startIndex,n.endIndex=e.endIndex,e.sourceCodeLocation!=null&&(n.sourceCodeLocation=e.sourceCodeLocation),n}function Ln(e){let t=e.map(e=>In(e,!0));for(let e=1;e<t.length;e++)t[e].prev=t[e-1],t[e-1].next=t[e];return t}const Rn={withStartIndices:!1,withEndIndices:!1,xmlMode:!1};var zn=class{constructor(e,t,n){this.dom=[],this.root=new Dn(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null,typeof t==`function`&&(n=t,t=Rn),typeof e==`object`&&(t=e,e=void 0),this.callback=e??null,this.options=t??Rn,this.elementCB=n??null}onparserinit(e){this.parser=e}onreset(){this.dom=[],this.root=new Dn(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(e){this.handleCallback(e)}onclosetag(){this.lastNode=null;let e=this.tagStack.pop();this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),this.elementCB&&this.elementCB(e)}onopentag(e,t){let n=new On(e,t,void 0,this.options.xmlMode?q.Tag:void 0);this.addNode(n),this.tagStack.push(n)}ontext(e){let{lastNode:t}=this;if(t&&t.type===q.Text)t.data+=e,this.options.withEndIndices&&(t.endIndex=this.parser.endIndex);else{let t=new Sn(e);this.addNode(t),this.lastNode=t}}oncomment(e){if(this.lastNode&&this.lastNode.type===q.Comment){this.lastNode.data+=e;return}let t=new Cn(e);this.addNode(t),this.lastNode=t}oncommentend(){this.lastNode=null}oncdatastart(){let e=new Sn(``),t=new En([e]);this.addNode(t),e.parent=t,this.lastNode=e}oncdataend(){this.lastNode=null}onprocessinginstruction(e,t){let n=new wn(e,t);this.addNode(n)}handleCallback(e){if(typeof this.callback==`function`)this.callback(e,this.dom);else if(e)throw e}addNode(e){let t=this.tagStack[this.tagStack.length-1],n=t.children[t.children.length-1];this.options.withStartIndices&&(e.startIndex=this.parser.startIndex),this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),t.children.push(e),n&&(e.prev=n,n.next=e),e.parent=t,this.lastNode=null}};const Bn=/["&'<>$\x80-\uFFFF]/g,Vn=new Map([[34,`&quot;`],[38,`&amp;`],[39,`&apos;`],[60,`&lt;`],[62,`&gt;`]]),Hn=String.prototype.codePointAt==null?(e,t)=>(e.charCodeAt(t)&64512)==55296?(e.charCodeAt(t)-55296)*1024+e.charCodeAt(t+1)-56320+65536:e.charCodeAt(t):(e,t)=>e.codePointAt(t);function Un(e){let t=``,n=0,r;for(;(r=Bn.exec(e))!==null;){let i=r.index,a=e.charCodeAt(i),o=Vn.get(a);o===void 0?(t+=`${e.substring(n,i)}&#x${Hn(e,i).toString(16)};`,n=Bn.lastIndex+=Number((a&64512)==55296)):(t+=e.substring(n,i)+o,n=i+1)}return t+e.substr(n)}function Wn(e,t){return function(n){let r,i=0,a=``;for(;r=e.exec(n);)i!==r.index&&(a+=n.substring(i,r.index)),a+=t.get(r[0].charCodeAt(0)),i=r.index+1;return a+n.substring(i)}}const Gn=Wn(/["&\u00A0]/g,new Map([[34,`&quot;`],[38,`&amp;`],[160,`&nbsp;`]])),Kn=Wn(/[&<>\u00A0]/g,new Map([[38,`&amp;`],[60,`&lt;`],[62,`&gt;`],[160,`&nbsp;`]])),qn=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`.split(`.`).map(e=>[e.toLowerCase(),e])),Jn=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`.split(`.`).map(e=>[e.toLowerCase(),e])),Yn=new Set([`style`,`script`,`xmp`,`iframe`,`noembed`,`noframes`,`plaintext`,`noscript`]);function Xn(e){return e.replace(/"/g,`&quot;`)}function Zn(e,t){if(!e)return;let n=(t.encodeEntities??t.decodeEntities)===!1?Xn:t.xmlMode||t.encodeEntities!==`utf8`?Un:Gn;return Object.keys(e).map(r=>{let i=e[r]??``;return t.xmlMode===`foreign`&&(r=Jn.get(r)??r),!t.emptyAttrs&&!t.xmlMode&&i===``?r:`${r}="${n(i)}"`}).join(` `)}const Qn=new Set([`area`,`base`,`basefont`,`br`,`col`,`command`,`embed`,`frame`,`hr`,`img`,`input`,`isindex`,`keygen`,`link`,`meta`,`param`,`source`,`track`,`wbr`]);function $n(e,t={}){let n=`length`in e?e:[e],r=``;for(let e=0;e<n.length;e++)r+=er(n[e],t);return r}function er(e,t){switch(e.type){case dn:return $n(e.children,t);case yn:case pn:return ir(e);case mn:return sr(e);case vn:return or(e);case hn:case gn:case _n:return rr(e,t);case fn:return ar(e,t)}}const tr=new Set([`mi`,`mo`,`mn`,`ms`,`mtext`,`annotation-xml`,`foreignObject`,`desc`,`title`]),nr=new Set([`svg`,`math`]);function rr(e,t){t.xmlMode===`foreign`&&(e.name=qn.get(e.name)??e.name,e.parent&&tr.has(e.parent.name)&&(t={...t,xmlMode:!1})),!t.xmlMode&&nr.has(e.name)&&(t={...t,xmlMode:`foreign`});let n=`<${e.name}`,r=Zn(e.attribs,t);return r&&(n+=` ${r}`),e.children.length===0&&(t.xmlMode?t.selfClosingTags!==!1:t.selfClosingTags&&Qn.has(e.name))?(t.xmlMode||(n+=` `),n+=`/>`):(n+=`>`,e.children.length>0&&(n+=$n(e.children,t)),(t.xmlMode||!Qn.has(e.name))&&(n+=`</${e.name}>`)),n}function ir(e){return`<${e.data}>`}function ar(e,t){let n=e.data||``;return(t.encodeEntities??t.decodeEntities)!==!1&&!(!t.xmlMode&&e.parent&&Yn.has(e.parent.name))&&(n=t.xmlMode||t.encodeEntities!==`utf8`?Un(n):Kn(n)),n}function or(e){return`<![CDATA[${e.children[0].data}]]>`}function sr(e){return`<!--${e.data}-->`}function cr(e,t){return $n(e,t)}function lr(e,t){return Fn(e)?e.children.map(e=>cr(e,t)).join(``):``}function ur(e){return Array.isArray(e)?e.map(ur).join(``):kn(e)?e.name===`br`?`
6
6
  `:ur(e.children):An(e)?ur(e.children):jn(e)?e.data:``}function dr(e){return Array.isArray(e)?e.map(dr).join(``):Fn(e)&&!Mn(e)?dr(e.children):jn(e)?e.data:``}function fr(e){return Array.isArray(e)?e.map(fr).join(``):Fn(e)&&(e.type===q.Tag||An(e))?fr(e.children):jn(e)?e.data:``}function pr(e){return Fn(e)?e.children:[]}function mr(e){return e.parent||null}function hr(e){let t=mr(e);if(t!=null)return pr(t);let n=[e],{prev:r,next:i}=e;for(;r!=null;)n.unshift(r),{prev:r}=r;for(;i!=null;)n.push(i),{next:i}=i;return n}function gr(e,t){return e.attribs?.[t]}function _r(e,t){return e.attribs!=null&&Object.prototype.hasOwnProperty.call(e.attribs,t)&&e.attribs[t]!=null}function vr(e){return e.name}function yr(e){let{next:t}=e;for(;t!==null&&!kn(t);)({next:t}=t);return t}function br(e){let{prev:t}=e;for(;t!==null&&!kn(t);)({prev:t}=t);return t}function xr(e){if(e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev),e.parent){let t=e.parent.children,n=t.lastIndexOf(e);n>=0&&t.splice(n,1)}e.next=null,e.prev=null,e.parent=null}function Sr(e,t){let n=t.prev=e.prev;n&&(n.next=t);let r=t.next=e.next;r&&(r.prev=t);let i=t.parent=e.parent;if(i){let n=i.children;n[n.lastIndexOf(e)]=t,e.parent=null}}function Cr(e,t){if(xr(t),t.next=null,t.parent=e,e.children.push(t)>1){let n=e.children[e.children.length-2];n.next=t,t.prev=n}else t.prev=null}function wr(e,t){xr(t);let{parent:n}=e,r=e.next;if(t.next=r,t.prev=e,e.next=t,t.parent=n,r){if(r.prev=t,n){let e=n.children;e.splice(e.lastIndexOf(r),0,t)}}else n&&n.children.push(t)}function J(e,t){if(xr(t),t.parent=e,t.prev=null,e.children.unshift(t)!==1){let n=e.children[1];n.prev=t,t.next=n}else t.next=null}function Tr(e,t){xr(t);let{parent:n}=e;if(n){let r=n.children;r.splice(r.indexOf(e),0,t)}e.prev&&(e.prev.next=t),t.parent=n,t.prev=e.prev,t.next=e,e.prev=t}function Er(e,t,n=!0,r=1/0){return Dr(e,Array.isArray(t)?t:[t],n,r)}function Dr(e,t,n,r){let i=[],a=[Array.isArray(t)?t:[t]],o=[0];for(;;){if(o[0]>=a[0].length){if(o.length===1)return i;a.shift(),o.shift();continue}let t=a[0][o[0]++];if(e(t)&&(i.push(t),--r<=0))return i;n&&Fn(t)&&t.children.length>0&&(o.unshift(0),a.unshift(t.children))}}function Or(e,t){return t.find(e)}function kr(e,t,n=!0){let r=Array.isArray(t)?t:[t];for(let t=0;t<r.length;t++){let i=r[t];if(kn(i)&&e(i))return i;if(n&&Fn(i)&&i.children.length>0){let t=kr(e,i.children,!0);if(t)return t}}return null}function Ar(e,t){return(Array.isArray(t)?t:[t]).some(t=>kn(t)&&e(t)||Fn(t)&&Ar(e,t.children))}function jr(e,t){let n=[],r=[Array.isArray(t)?t:[t]],i=[0];for(;;){if(i[0]>=r[0].length){if(r.length===1)return n;r.shift(),i.shift();continue}let t=r[0][i[0]++];kn(t)&&e(t)&&n.push(t),Fn(t)&&t.children.length>0&&(i.unshift(0),r.unshift(t.children))}}const Mr={tag_name(e){return typeof e==`function`?t=>kn(t)&&e(t.name):e===`*`?kn:t=>kn(t)&&t.name===e},tag_type(e){return typeof e==`function`?t=>e(t.type):t=>t.type===e},tag_contains(e){return typeof e==`function`?t=>jn(t)&&e(t.data):t=>jn(t)&&t.data===e}};function Nr(e,t){return typeof t==`function`?n=>kn(n)&&t(n.attribs[e]):n=>kn(n)&&n.attribs[e]===t}function Pr(e,t){return n=>e(n)||t(n)}function Fr(e){let t=Object.keys(e).map(t=>{let n=e[t];return Object.prototype.hasOwnProperty.call(Mr,t)?Mr[t](n):Nr(t,n)});return t.length===0?null:t.reduce(Pr)}function Ir(e,t){let n=Fr(e);return n?n(t):!0}function Lr(e,t,n,r=1/0){let i=Fr(e);return i?Er(i,t,n,r):[]}function Rr(e,t,n=!0){return Array.isArray(t)||(t=[t]),kr(Nr(`id`,e),t,n)}function zr(e,t,n=!0,r=1/0){return Er(Mr.tag_name(e),t,n,r)}function Br(e,t,n=!0,r=1/0){return Er(Nr(`class`,e),t,n,r)}function Vr(e,t,n=!0,r=1/0){return Er(Mr.tag_type(e),t,n,r)}function Hr(e){let t=e.length;for(;--t>=0;){let n=e[t];if(t>0&&e.lastIndexOf(n,t-1)>=0){e.splice(t,1);continue}for(let r=n.parent;r;r=r.parent)if(e.includes(r)){e.splice(t,1);break}}return e}var Ur;(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`})(Ur||={});function Wr(e,t){let n=[],r=[];if(e===t)return 0;let i=Fn(e)?e:e.parent;for(;i;)n.unshift(i),i=i.parent;for(i=Fn(t)?t:t.parent;i;)r.unshift(i),i=i.parent;let a=Math.min(n.length,r.length),o=0;for(;o<a&&n[o]===r[o];)o++;if(o===0)return Ur.DISCONNECTED;let s=n[o-1],c=s.children,l=n[o],u=r[o];return c.indexOf(l)>c.indexOf(u)?s===t?Ur.FOLLOWING|Ur.CONTAINED_BY:Ur.FOLLOWING:s===e?Ur.PRECEDING|Ur.CONTAINS:Ur.PRECEDING}function Gr(e){return e=e.filter((e,t,n)=>!n.includes(e,t+1)),e.sort((e,t)=>{let n=Wr(e,t);return n&Ur.PRECEDING?-1:n&Ur.FOLLOWING?1:0}),e}function Kr(e){let t=Qr(ti,e);return t?t.name===`feed`?qr(t):Jr(t):null}function qr(e){let t=e.children,n={type:`atom`,items:zr(`entry`,t).map(e=>{let{children:t}=e,n={media:Zr(t)};ei(n,`id`,`id`,t),ei(n,`title`,`title`,t);let r=Qr(`link`,t)?.attribs.href;r&&(n.link=r);let i=$r(`summary`,t)||$r(`content`,t);i&&(n.description=i);let a=$r(`updated`,t);return a&&(n.pubDate=new Date(a)),n})};ei(n,`id`,`id`,t),ei(n,`title`,`title`,t);let r=Qr(`link`,t)?.attribs.href;r&&(n.link=r),ei(n,`description`,`subtitle`,t);let i=$r(`updated`,t);return i&&(n.updated=new Date(i)),ei(n,`author`,`email`,t,!0),n}function Jr(e){let t=Qr(`channel`,e.children)?.children??[],n={type:e.name.substr(0,3),id:``,items:zr(`item`,e.children).map(e=>{let{children:t}=e,n={media:Zr(t)};ei(n,`id`,`guid`,t),ei(n,`title`,`title`,t),ei(n,`link`,`link`,t),ei(n,`description`,`description`,t);let r=$r(`pubDate`,t)||$r(`dc:date`,t);return r&&(n.pubDate=new Date(r)),n})};ei(n,`title`,`title`,t),ei(n,`link`,`link`,t),ei(n,`description`,`description`,t);let r=$r(`lastBuildDate`,t);return r&&(n.updated=new Date(r)),ei(n,`author`,`managingEditor`,t,!0),n}const Yr=[`url`,`type`,`lang`],Xr=[`fileSize`,`bitrate`,`framerate`,`samplingrate`,`channels`,`duration`,`height`,`width`];function Zr(e){return zr(`media:content`,e).map(e=>{let{attribs:t}=e,n={medium:t.medium,isDefault:!!t.isDefault};for(let e of Yr)t[e]&&(n[e]=t[e]);for(let e of Xr)t[e]&&(n[e]=parseInt(t[e],10));return t.expression&&(n.expression=t.expression),n})}function Qr(e,t){return zr(e,t,!0,1)[0]}function $r(e,t,n=!1){return dr(zr(e,t,n,1)).trim()}function ei(e,t,n,r,i=!1){let a=$r(n,r,i);a&&(e[t]=a)}function ti(e){return e===`rss`||e===`feed`||e===`rdf:RDF`}var ni=ee({DocumentPosition:()=>Ur,append:()=>wr,appendChild:()=>Cr,compareDocumentPosition:()=>Wr,existsOne:()=>Ar,filter:()=>Er,find:()=>Dr,findAll:()=>jr,findOne:()=>kr,findOneChild:()=>Or,getAttributeValue:()=>gr,getChildren:()=>pr,getElementById:()=>Rr,getElements:()=>Lr,getElementsByClassName:()=>Br,getElementsByTagName:()=>zr,getElementsByTagType:()=>Vr,getFeed:()=>Kr,getInnerHTML:()=>lr,getName:()=>vr,getOuterHTML:()=>cr,getParent:()=>mr,getSiblings:()=>hr,getText:()=>ur,hasAttrib:()=>_r,hasChildren:()=>Fn,innerText:()=>fr,isCDATA:()=>An,isComment:()=>Mn,isDocument:()=>Pn,isTag:()=>kn,isText:()=>jn,nextElementSibling:()=>yr,prepend:()=>Tr,prependChild:()=>J,prevElementSibling:()=>br,removeElement:()=>xr,removeSubsets:()=>Hr,replaceElement:()=>Sr,testElement:()=>Ir,textContent:()=>dr,uniqueSort:()=>Gr}),ri=ee({DefaultHandler:()=>zn,DomHandler:()=>zn,DomUtils:()=>ni,ElementType:()=>ln,Parser:()=>cn,QuoteType:()=>Jt,Tokenizer:()=>Xt,createDocumentStream:()=>oi,createDomStream:()=>si,getFeed:()=>Kr,parseDOM:()=>ai,parseDocument:()=>ii,parseFeed:()=>li});function ii(e,t){let n=new zn(void 0,t);return new cn(n,t).end(e),n.root}function ai(e,t){return ii(e,t).children}function oi(e,t,n){let r=new zn(t=>e(t,r.root),t,n);return new cn(r,t)}function si(e,t,n){return new cn(new zn(e,t,n),t)}const ci={xmlMode:!0};function li(e,t=ci){return Kr(ai(e,t))}const ui=new Set(`ARTICLE.ASIDE.BLOCKQUOTE.BODY.BR.BUTTON.CANVAS.CAPTION.COL.COLGROUP.DD.DIV.DL.DT.EMBED.FIELDSET.FIGCAPTION.FIGURE.FOOTER.FORM.H1.H2.H3.H4.H5.H6.LI.UL.OL.P`.split(`.`)),di=`http://www.w3.org/2000/svg`,{assign:fi,create:pi,defineProperties:mi,entries:hi,getOwnPropertyDescriptors:gi,keys:_i,setPrototypeOf:vi}=Object,yi=String,bi=e=>e.nodeType===1?e[L]:e,xi=({ownerDocument:e})=>e[wt].ignoreCase,Si=(e,t)=>{e[z]=t,t[Dt]=e},Ci=(e,t,n)=>{Si(e,t),Si(bi(t),n)},wi=(e,t,n,r)=>{Si(e,t),Si(bi(n),r)},Ti=(e,t,n)=>{Si(e,t),Si(t,n)},Ei=({localName:e,ownerDocument:t})=>t[wt].ignoreCase?e.toUpperCase():e,Di=(e,t)=>{e&&(e[z]=t),t&&(t[Dt]=e)},Oi=(e,t)=>{let n=e.createDocumentFragment(),r=e.createElement(``);r.innerHTML=t;let{firstChild:i,lastChild:a}=r;if(i){wi(n,i,a,n[L]);let e=i;do e.parentNode=n;while(e!==a&&(e=bi(e)[z]))}return n},ki=new WeakMap;let Ai=!1;const ji=new WeakMap,Mi=new WeakMap,Ni=(e,t,n,r)=>{Ai&&Mi.has(e)&&e.attributeChangedCallback&&e.constructor.observedAttributes.includes(t)&&e.attributeChangedCallback(t,n,r)},Pi=(e,t)=>n=>{if(Mi.has(n)){let r=Mi.get(n);r.connected!==t&&n.isConnected===t&&(r.connected=t,e in n&&n[e]())}},Fi=Pi(`connectedCallback`,!0),Ii=e=>{if(Ai){Fi(e),ki.has(e)&&(e=ki.get(e).shadowRoot);let{[z]:t,[L]:n}=e;for(;t!==n;)t.nodeType===1&&Fi(t),t=t[z]}},Li=Pi(`disconnectedCallback`,!1),Ri=e=>{if(Ai){Li(e),ki.has(e)&&(e=ki.get(e).shadowRoot);let{[z]:t,[L]:n}=e;for(;t!==n;)t.nodeType===1&&Li(t),t=t[z]}};var zi=class{constructor(e){this.ownerDocument=e,this.registry=new Map,this.waiting=new Map,this.active=!1}define(e,t,n={}){let{ownerDocument:r,registry:i,waiting:a}=this;if(i.has(e))throw Error(`unable to redefine `+e);if(ji.has(t))throw Error(`unable to redefine the same class: `+t);this.active=Ai=!0;let{extends:o}=n;ji.set(t,{ownerDocument:r,options:{is:o?e:``},localName:o||e});let s=o?t=>t.localName===o&&t.getAttribute(`is`)===e:t=>t.localName===e;if(i.set(e,{Class:t,check:s}),a.has(e)){for(let n of a.get(e))n(t);a.delete(e)}r.querySelectorAll(o?`${o}[is="${e}"]`:e).forEach(this.upgrade,this)}upgrade(e){if(Mi.has(e))return;let{ownerDocument:t,registry:n}=this,r=e.getAttribute(`is`)||e.localName;if(n.has(r)){let{Class:i,check:a}=n.get(r);if(a(e)){let{attributes:n,isConnected:a}=e;for(let t of n)e.removeAttributeNode(t);let o=hi(e);for(let[t]of o)delete e[t];vi(e,i.prototype),t[B]={element:e,values:o},new i(t,r),Mi.set(e,{connected:a});for(let t of n)e.setAttributeNode(t);a&&e.connectedCallback&&e.connectedCallback()}}}whenDefined(e){let{registry:t,waiting:n}=this;return new Promise(r=>{t.has(e)?r(t.get(e).Class):(n.has(e)||n.set(e,[]),n.get(e).push(r))})}get(e){let t=this.registry.get(e);return t&&t.Class}getName(e){if(ji.has(e)){let{localName:t}=ji.get(e);return t}return null}};const{Parser:Bi}=ri,Vi=(e,t,n)=>{let r=e[L];return t.parentNode=e,Ci(r[Dt],t,r),n&&t.nodeType===1&&Ii(t),t},Hi=(e,t,n,r,i)=>{n[V]=r,n.ownerElement=e,Ti(t[Dt],n,t),n.name===`class`&&(e.className=r),i&&Ni(e,n.name,null,r)},Ui=(e,t,n)=>{let{active:r,registry:i}=e[_t],a=e,o=null,s=!1,c=new Bi({onprocessinginstruction(t,n){t.toLowerCase()===`!doctype`&&(e.doctype=n.slice(t.length).trim())},onopentag(n,s){let c=!0;if(t){if(o)a=Vi(a,e.createElementNS(di,n),r),a.ownerSVGElement=o,c=!1;else if(n===`svg`||n===`SVG`)o=e.createElementNS(di,n),a=Vi(a,o,r),c=!1;else if(r){let e=n.includes(`-`)?n:s.is||``;if(e&&i.has(e)){let{Class:t}=i.get(e);a=Vi(a,new t,r),delete s.is,c=!1}}}c&&(a=Vi(a,e.createElement(n),!1));let l=a[L];for(let t of _i(s))Hi(a,l,e.createAttribute(t),s[t],r)},oncomment(t){Vi(a,e.createComment(t),r)},ontext(t){s?Vi(a,e.createCDATASection(t),r):Vi(a,e.createTextNode(t),r)},oncdatastart(){s=!0},oncdataend(){s=!1},onclosetag(){t&&a===o&&(o=null),a=a.parentNode}},{lowerCaseAttributeNames:!1,decodeEntities:!0,xmlMode:!t});return c.write(n),c.end(),e},Wi=new Map,Gi=(e,t)=>{for(let n of[].concat(e))Wi.set(n,t),Wi.set(n.toUpperCase(),t)},Ki=({[z]:e,[L]:t},n)=>{for(;e!==t;){switch(e.nodeType){case 2:qi(e,n);break;case 3:case 8:case 4:Ji(e,n);break;case 1:Zi(e,n),e=bi(e);break;case 10:Xi(e,n);break}e=e[z]}let r=n.length-1,i=n[r];typeof i==`number`&&i<0?n[r]+=-1:n.push(-1)},qi=(e,t)=>{t.push(2,e.name);let n=e[V].trim();n&&t.push(n)},Ji=(e,t)=>{let n=e[V];n.trim()&&t.push(e.nodeType,n)},Yi=(e,t)=>{t.push(e.nodeType),Ki(e,t)},Xi=({name:e,publicId:t,systemId:n},r)=>{r.push(10,e),t&&r.push(t),n&&r.push(n)},Zi=(e,t)=>{t.push(1,e.localName),Ki(e,t)},Qi=(e,t,n,r,i,a,o)=>({type:e,target:t,addedNodes:r,removedNodes:i,attributeName:a,oldValue:o,previousSibling:n?.previousSibling||null,nextSibling:n?.nextSibling||null}),$i=(e,t,n,r,i,a)=>{if(!r||r.includes(n)){let{callback:r,records:o,scheduled:s}=e;o.push(Qi(`attributes`,t,null,[],[],n,i?a:void 0)),s||(e.scheduled=!0,Promise.resolve().then(()=>{e.scheduled=!1,r(o.splice(0),e)}))}},ea=(e,t,n)=>{let{ownerDocument:r}=e,{active:i,observers:a}=r[Tt];if(i){for(let i of a)for(let[a,{childList:o,subtree:s,attributes:c,attributeFilter:l,attributeOldValue:u}]of i.nodes)if(o){if(s&&(a===r||a.contains(e))||!s&&a.children.includes(e)){$i(i,e,t,l,u,n);break}}else if(c&&a===e){$i(i,e,t,l,u,n);break}}},ta=(e,t)=>{let{ownerDocument:n}=e,{active:r,observers:i}=n[Tt];if(r){for(let r of i)for(let[i,{subtree:a,childList:o,characterData:s}]of r.nodes)if(o&&(t&&(i===t||a&&i.contains(t))||!t&&(a&&(i===n||i.contains(e))||!a&&i[s?`childNodes`:`children`].includes(e)))){let{callback:n,records:a,scheduled:o}=r;a.push(Qi(`childList`,i,e,t?[]:[e],t?[e]:[])),o||(r.scheduled=!0,Promise.resolve().then(()=>{r.scheduled=!1,n(a.splice(0),r)}));break}}};var na=class{constructor(e){let t=new Set;this.observers=t,this.active=!1,this.class=class{constructor(e){this.callback=e,this.nodes=new Map,this.records=[],this.scheduled=!1}disconnect(){this.records.splice(0),this.nodes.clear(),t.delete(this),e[Tt].active=!!t.size}observe(n,r={subtree:!1,childList:!1,attributes:!1,attributeFilter:null,attributeOldValue:!1,characterData:!1}){(`attributeOldValue`in r||`attributeFilter`in r)&&(r.attributes=!0),r.childList=!!r.childList,r.subtree=!!r.subtree,this.nodes.set(n,r),t.add(this),e[Tt].active=!0}takeRecords(){return this.records.splice(0)}}}};const ra=new Set(`allowfullscreen.allowpaymentrequest.async.autofocus.autoplay.checked.class.contenteditable.controls.default.defer.disabled.draggable.formnovalidate.hidden.id.ismap.itemscope.loop.multiple.muted.nomodule.novalidate.open.playsinline.readonly.required.reversed.selected.style.truespeed`.split(`.`)),ia=(e,t)=>{let{[V]:n,name:r}=t;t.ownerElement=e,Ti(e,t,e[z]),r===`class`&&(e.className=n),ea(e,r,null),Ni(e,r,null,n)},aa=(e,t)=>{let{[V]:n,name:r}=t;Si(t[Dt],t[z]),t.ownerElement=t[Dt]=t[z]=null,r===`class`&&(e[gt]=null),ea(e,r,n),Ni(e,r,n,null)},oa={get(e,t){return e.hasAttribute(t)},set(e,t,n){n?e.setAttribute(t,``):e.removeAttribute(t)}},sa={get(e,t){return parseFloat(e.getAttribute(t)||0)},set(e,t,n){e.setAttribute(t,n)}},Y={get(e,t){return e.getAttribute(t)||``},set(e,t,n){e.setAttribute(t,n)}},ca=new WeakMap;function la(e,t){return typeof t==`function`?t.call(e.target,e):t.handleEvent(e),e._stopImmediatePropagationFlag}function ua({currentTarget:e,target:t}){let n=ca.get(e);if(n&&n.has(this.type)){let r=n.get(this.type);e===t?this.eventPhase=this.AT_TARGET:this.eventPhase=this.BUBBLING_PHASE,this.currentTarget=e,this.target=t;for(let[e,t]of r)if(t&&t.once&&r.delete(e),la(this,e))break;return delete this.currentTarget,delete this.target,this.cancelBubble}}var da=class{constructor(){ca.set(this,new Map)}_getParent(){return null}addEventListener(e,t,n){let r=ca.get(this);r.has(e)||r.set(e,new Map),r.get(e).set(t,n)}removeEventListener(e,t){let n=ca.get(this);if(n.has(e)){let r=n.get(e);r.delete(t)&&!r.size&&n.delete(e)}}dispatchEvent(e){let t=this;for(e.eventPhase=e.CAPTURING_PHASE;t;)t.dispatchEvent&&e._path.push({currentTarget:t,target:this}),t=e.bubbles&&t._getParent&&t._getParent();return e._path.some(ua,e),e._path=[],e.eventPhase=e.NONE,!e.defaultPrevented}},fa=class extends Array{item(e){return e<this.length?this[e]:null}};const pa=({parentNode:e})=>{let t=0;for(;e;)t++,e=e.parentNode;return t};var ma=class extends da{static get ELEMENT_NODE(){return 1}static get ATTRIBUTE_NODE(){return 2}static get TEXT_NODE(){return 3}static get CDATA_SECTION_NODE(){return 4}static get COMMENT_NODE(){return 8}static get DOCUMENT_NODE(){return 9}static get DOCUMENT_FRAGMENT_NODE(){return 11}static get DOCUMENT_TYPE_NODE(){return 10}constructor(e,t,n){super(),this.ownerDocument=e,this.localName=t,this.nodeType=n,this.parentNode=null,this[z]=null,this[Dt]=null}get ELEMENT_NODE(){return 1}get ATTRIBUTE_NODE(){return 2}get TEXT_NODE(){return 3}get CDATA_SECTION_NODE(){return 4}get COMMENT_NODE(){return 8}get DOCUMENT_NODE(){return 9}get DOCUMENT_FRAGMENT_NODE(){return 11}get DOCUMENT_TYPE_NODE(){return 10}get baseURI(){let e=this.nodeType===9?this:this.ownerDocument;if(e){let t=e.querySelector(`base`);if(t)return t.getAttribute(`href`);let{location:n}=e.defaultView;if(n)return n.href}return null}get isConnected(){return!1}get nodeName(){return this.localName}get parentElement(){return null}get previousSibling(){return null}get previousElementSibling(){return null}get nextSibling(){return null}get nextElementSibling(){return null}get childNodes(){return new fa}get firstChild(){return null}get lastChild(){return null}get nodeValue(){return null}set nodeValue(e){}get textContent(){return null}set textContent(e){}normalize(){}cloneNode(){return null}contains(){return!1}insertBefore(e,t){return e}appendChild(e){return e}replaceChild(e,t){return t}removeChild(e){return e}toString(){return``}hasChildNodes(){return!!this.lastChild}isSameNode(e){return this===e}compareDocumentPosition(e){let t=0;if(this!==e){let n=pa(this),r=pa(e);if(n<r)t+=4,this.contains(e)&&(t+=16);else if(r<n)t+=2,e.contains(this)&&(t+=8);else if(n&&r){let{childNodes:n}=this.parentNode;n.indexOf(this)<n.indexOf(e)?t+=4:t+=2}(!n||!r)&&(t+=32,t+=1)}return t}isEqualNode(e){if(this===e)return!0;if(this.nodeType===e.nodeType){switch(this.nodeType){case 9:case 11:{let t=this.childNodes,n=e.childNodes;return t.length===n.length&&t.every((e,t)=>e.isEqualNode(n[t]))}}return this.toString()===e.toString()}return!1}_getParent(){return this.parentNode}getRootNode(){let e=this;for(;e.parentNode;)e=e.parentNode;return e}};const{replace:ha}=``,ga=/[<>&\xA0]/g,_a={"\xA0":`&#160;`,"&":`&amp;`,"<":`&lt;`,">":`&gt;`},va=e=>_a[e],ya=e=>ha.call(e,ga,va),ba=/"/g;var xa=class e extends ma{constructor(e,t,n=``){super(e,t,2),this.ownerElement=null,this.name=yi(t),this[V]=yi(n),this[ht]=!1}get value(){return this[V]}set value(e){let{[V]:t,name:n,ownerElement:r}=this;this[V]=yi(e),this[ht]=!0,r&&(ea(r,n,t),Ni(r,n,t,this[V]))}cloneNode(){let{ownerDocument:t,name:n,[V]:r}=this;return new e(t,n,r)}toString(){let{name:e,[V]:t}=this;return ra.has(e)&&!t?xi(this)?e:`${e}=""`:`${e}="${(xi(this)?t:ya(t)).replace(ba,`&quot;`)}"`}toJSON(){let e=[];return qi(this,e),e}};const Sa=({ownerDocument:e,parentNode:t})=>{for(;t;){if(t===e)return!0;t=t.parentNode||t.host}return!1},Ca=({parentNode:e})=>{if(e)switch(e.nodeType){case 9:case 11:return null}return e},wa=({[Dt]:e})=>{switch(e?e.nodeType:0){case-1:return e[At];case 3:case 8:case 4:return e}return null},Ta=e=>{let t=bi(e)[z];return t&&(t.nodeType===-1?null:t)},Ea=e=>{let t=Ta(e);for(;t&&t.nodeType!==1;)t=Ta(t);return t},Da=e=>{let t=wa(e);for(;t&&t.nodeType!==1;)t=wa(t);return t},Oa=(e,t)=>{let n=e.createDocumentFragment();return n.append(...t),n},ka=(e,t)=>{let{ownerDocument:n,parentNode:r}=e;r&&r.insertBefore(Oa(n,t),e)},Aa=(e,t)=>{let{ownerDocument:n,parentNode:r}=e;r&&r.insertBefore(Oa(n,t),bi(e)[z])},ja=(e,t)=>{let{ownerDocument:n,parentNode:r}=e;r&&(t.includes(e)&&ja(e,[e=e.cloneNode()]),r.insertBefore(Oa(n,t),e),e.remove())},Ma=(e,t,n)=>{let{parentNode:r,nodeType:i}=t;(e||n)&&(Di(e,n),t[Dt]=null,bi(t)[z]=null),r&&(t.parentNode=null,ta(t,r),i===1&&Ri(t))};var Na=class extends ma{constructor(e,t,n,r){super(e,t,n),this[V]=yi(r)}get isConnected(){return Sa(this)}get parentElement(){return Ca(this)}get previousSibling(){return wa(this)}get nextSibling(){return Ta(this)}get previousElementSibling(){return Da(this)}get nextElementSibling(){return Ea(this)}before(...e){ka(this,e)}after(...e){Aa(this,e)}replaceWith(...e){ja(this,e)}remove(){Ma(this[Dt],this,this[z])}get data(){return this[V]}set data(e){this[V]=yi(e),ta(this,this.parentNode)}get nodeValue(){return this.data}set nodeValue(e){this.data=e}get textContent(){return this.data}set textContent(e){this.data=e}get length(){return this.data.length}substringData(e,t){return this.data.substr(e,t)}appendData(e){this.data+=e}insertData(e,t){let{data:n}=this;this.data=n.slice(0,e)+t+n.slice(e)}deleteData(e,t){let{data:n}=this;this.data=n.slice(0,e)+n.slice(e+t)}replaceData(e,t,n){let{data:r}=this;this.data=r.slice(0,e)+n+r.slice(e+t)}toJSON(){let e=[];return Ji(this,e),e}},Pa=class e extends Na{constructor(e,t=``){super(e,`#cdatasection`,4,t)}cloneNode(){let{ownerDocument:t,[V]:n}=this;return new e(t,n)}toString(){return`<![CDATA[${this[V]}]]>`}},Fa=class e extends Na{constructor(e,t=``){super(e,`#comment`,8,t)}cloneNode(){let{ownerDocument:t,[V]:n}=this;return new e(t,n)}toString(){return`<!--${this[V]}-->`}},Ia=E(((e,t)=>{t.exports={trueFunc:function(){return!0},falseFunc:function(){return!1}}})),La=E((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.AttributeAction=e.IgnoreCaseMode=e.SelectorType=void 0,(function(e){e.Attribute=`attribute`,e.Pseudo=`pseudo`,e.PseudoElement=`pseudo-element`,e.Tag=`tag`,e.Universal=`universal`,e.Adjacent=`adjacent`,e.Child=`child`,e.Descendant=`descendant`,e.Parent=`parent`,e.Sibling=`sibling`,e.ColumnCombinator=`column-combinator`})(e.SelectorType||={}),e.IgnoreCaseMode={Unknown:null,QuirksMode:`quirks`,IgnoreCase:!0,CaseSensitive:!1},(function(e){e.Any=`any`,e.Element=`element`,e.End=`end`,e.Equals=`equals`,e.Exists=`exists`,e.Hyphen=`hyphen`,e.Not=`not`,e.Start=`start`})(e.AttributeAction||={})})),Ra=E((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.parse=e.isTraversal=void 0;var t=La(),n=/^[^\\#]?(?:\\(?:[\da-f]{1,6}\s?|.)|[\w\-\u00b0-\uFFFF])+/,r=/\\([\da-f]{1,6}\s?|(\s)|.)/gi,i=new Map([[126,t.AttributeAction.Element],[94,t.AttributeAction.Start],[36,t.AttributeAction.End],[42,t.AttributeAction.Any],[33,t.AttributeAction.Not],[124,t.AttributeAction.Hyphen]]),a=new Set([`has`,`not`,`matches`,`is`,`where`,`host`,`host-context`]);function o(e){switch(e.type){case t.SelectorType.Adjacent:case t.SelectorType.Child:case t.SelectorType.Descendant:case t.SelectorType.Parent:case t.SelectorType.Sibling:case t.SelectorType.ColumnCombinator:return!0;default:return!1}}e.isTraversal=o;var s=new Set([`contains`,`icontains`]);function c(e,t,n){var r=parseInt(t,16)-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,r&1023|56320)}function l(e){return e.replace(r,c)}function u(e){return e===39||e===34}function d(e){return e===32||e===9||e===10||e===12||e===13}function f(e){var t=[],n=p(t,`${e}`,0);if(n<e.length)throw Error(`Unmatched selector: ${e.slice(n)}`);return t}e.parse=f;function p(e,r,c){var f=[];function m(e){var t=r.slice(c+e).match(n);if(!t)throw Error(`Expected name, found ${r.slice(c)}`);var i=t[0];return c+=e+i.length,l(i)}function h(e){for(c+=e;c<r.length&&d(r.charCodeAt(c));)c++}function g(){c+=1;for(var e=c,t=1;t>0&&c<r.length;c++)r.charCodeAt(c)===40&&!_(c)?t++:r.charCodeAt(c)===41&&!_(c)&&t--;if(t)throw Error(`Parenthesis not matched`);return l(r.slice(e,c-1))}function _(e){for(var t=0;r.charCodeAt(--e)===92;)t++;return(t&1)==1}function v(){if(f.length>0&&o(f[f.length-1]))throw Error(`Did not expect successive traversals.`)}function y(e){if(f.length>0&&f[f.length-1].type===t.SelectorType.Descendant){f[f.length-1].type=e;return}v(),f.push({type:e})}function b(e,n){f.push({type:t.SelectorType.Attribute,name:e,action:n,value:m(1),namespace:null,ignoreCase:`quirks`})}function x(){if(f.length&&f[f.length-1].type===t.SelectorType.Descendant&&f.pop(),f.length===0)throw Error(`Empty sub-selector`);e.push(f)}if(h(0),r.length===c)return c;loop:for(;c<r.length;){var S=r.charCodeAt(c);switch(S){case 32:case 9:case 10:case 12:case 13:(f.length===0||f[0].type!==t.SelectorType.Descendant)&&(v(),f.push({type:t.SelectorType.Descendant})),h(1);break;case 62:y(t.SelectorType.Child),h(1);break;case 60:y(t.SelectorType.Parent),h(1);break;case 126:y(t.SelectorType.Sibling),h(1);break;case 43:y(t.SelectorType.Adjacent),h(1);break;case 46:b(`class`,t.AttributeAction.Element);break;case 35:b(`id`,t.AttributeAction.Equals);break;case 91:h(1);var C=void 0,w=null;r.charCodeAt(c)===124?C=m(1):r.startsWith(`*|`,c)?(w=`*`,C=m(2)):(C=m(0),r.charCodeAt(c)===124&&r.charCodeAt(c+1)!==61&&(w=C,C=m(1))),h(0);var T=t.AttributeAction.Exists,E=i.get(r.charCodeAt(c));if(E){if(T=E,r.charCodeAt(c+1)!==61)throw Error("Expected `=`");h(2)}else r.charCodeAt(c)===61&&(T=t.AttributeAction.Equals,h(1));var ee=``,te=null;if(T!==`exists`){if(u(r.charCodeAt(c))){for(var ne=r.charCodeAt(c),D=c+1;D<r.length&&(r.charCodeAt(D)!==ne||_(D));)D+=1;if(r.charCodeAt(D)!==ne)throw Error(`Attribute value didn't end`);ee=l(r.slice(c+1,D)),c=D+1}else{for(var O=c;c<r.length&&(!d(r.charCodeAt(c))&&r.charCodeAt(c)!==93||_(c));)c+=1;ee=l(r.slice(O,c))}h(0);var re=r.charCodeAt(c)|32;re===115?(te=!1,h(1)):re===105&&(te=!0,h(1))}if(r.charCodeAt(c)!==93)throw Error(`Attribute selector didn't terminate`);c+=1;var ie={type:t.SelectorType.Attribute,name:C,action:T,value:ee,namespace:w,ignoreCase:te};f.push(ie);break;case 58:if(r.charCodeAt(c+1)===58){f.push({type:t.SelectorType.PseudoElement,name:m(2).toLowerCase(),data:r.charCodeAt(c)===40?g():null});continue}var ae=m(1).toLowerCase(),k=null;if(r.charCodeAt(c)===40)if(a.has(ae)){if(u(r.charCodeAt(c+1)))throw Error(`Pseudo-selector ${ae} cannot be quoted`);if(k=[],c=p(k,r,c+1),r.charCodeAt(c)!==41)throw Error(`Missing closing parenthesis in :${ae} (${r})`);c+=1}else{if(k=g(),s.has(ae)){var oe=k.charCodeAt(0);oe===k.charCodeAt(k.length-1)&&u(oe)&&(k=k.slice(1,-1))}k=l(k)}f.push({type:t.SelectorType.Pseudo,name:ae,data:k});break;case 44:x(),f=[],h(1);break;default:if(r.startsWith(`/*`,c)){var se=r.indexOf(`*/`,c+2);if(se<0)throw Error(`Comment was not terminated`);c=se+2,f.length===0&&h(0);break}var w=null,ce=void 0;if(S===42)c+=1,ce=`*`;else if(S===124){if(ce=``,r.charCodeAt(c+1)===124){y(t.SelectorType.ColumnCombinator),h(2);break}}else if(n.test(r.slice(c)))ce=m(0);else break loop;r.charCodeAt(c)===124&&r.charCodeAt(c+1)!==124&&(w=ce,r.charCodeAt(c+1)===42?(ce=`*`,c+=2):ce=m(1)),f.push(ce===`*`?{type:t.SelectorType.Universal,namespace:w}:{type:t.SelectorType.Tag,name:ce,namespace:w})}}return x(),c}})),za=E((e=>{var t=e&&e.__spreadArray||function(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,a;r<i;r++)(a||!(r in t))&&(a||=Array.prototype.slice.call(t,0,r),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))};Object.defineProperty(e,`__esModule`,{value:!0}),e.stringify=void 0;var n=La(),r=[`\\`,`"`],i=t(t([],r,!0),[`(`,`)`],!1),a=new Set(r.map(function(e){return e.charCodeAt(0)})),o=new Set(i.map(function(e){return e.charCodeAt(0)})),s=new Set(t(t([],i,!0),[`~`,`^`,`$`,`*`,`+`,`!`,`|`,`:`,`[`,`]`,` `,`.`],!1).map(function(e){return e.charCodeAt(0)}));function c(e){return e.map(function(e){return e.map(l).join(``)}).join(`, `)}e.stringify=c;function l(e,t,r){switch(e.type){case n.SelectorType.Child:return t===0?`> `:` > `;case n.SelectorType.Parent:return t===0?`< `:` < `;case n.SelectorType.Sibling:return t===0?`~ `:` ~ `;case n.SelectorType.Adjacent:return t===0?`+ `:` + `;case n.SelectorType.Descendant:return` `;case n.SelectorType.ColumnCombinator:return t===0?`|| `:` || `;case n.SelectorType.Universal:return e.namespace===`*`&&t+1<r.length&&`name`in r[t+1]?``:`${f(e.namespace)}*`;case n.SelectorType.Tag:return d(e);case n.SelectorType.PseudoElement:return`::${p(e.name,s)}${e.data===null?``:`(${p(e.data,o)})`}`;case n.SelectorType.Pseudo:return`:${p(e.name,s)}${e.data===null?``:`(${typeof e.data==`string`?p(e.data,o):c(e.data)})`}`;case n.SelectorType.Attribute:if(e.name===`id`&&e.action===n.AttributeAction.Equals&&e.ignoreCase===`quirks`&&!e.namespace)return`#${p(e.value,s)}`;if(e.name===`class`&&e.action===n.AttributeAction.Element&&e.ignoreCase===`quirks`&&!e.namespace)return`.${p(e.value,s)}`;var i=d(e);return e.action===n.AttributeAction.Exists?`[${i}]`:`[${i}${u(e.action)}="${p(e.value,a)}"${e.ignoreCase===null?``:e.ignoreCase?` i`:` s`}]`}}function u(e){switch(e){case n.AttributeAction.Equals:return``;case n.AttributeAction.Element:return`~`;case n.AttributeAction.Start:return`^`;case n.AttributeAction.End:return`$`;case n.AttributeAction.Any:return`*`;case n.AttributeAction.Not:return`!`;case n.AttributeAction.Hyphen:return`|`;case n.AttributeAction.Exists:throw Error(`Shouldn't be here`)}}function d(e){return`${f(e.namespace)}${p(e.name,s)}`}function f(e){return e===null?``:`${e===`*`?`*`:p(e,s)}|`}function p(e,t){for(var n=0,r=``,i=0;i<e.length;i++)t.has(e.charCodeAt(i))&&(r+=`${e.slice(n,i)}\\${e.charAt(i)}`,n=i+1);return r.length>0?r+e.slice(n):e}})),Ba=E((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__exportStar||function(e,n){for(var r in e)r!==`default`&&!Object.prototype.hasOwnProperty.call(n,r)&&t(n,e,r)};Object.defineProperty(e,`__esModule`,{value:!0}),e.stringify=e.parse=e.isTraversal=void 0,n(La(),e);var r=Ra();Object.defineProperty(e,`isTraversal`,{enumerable:!0,get:function(){return r.isTraversal}}),Object.defineProperty(e,`parse`,{enumerable:!0,get:function(){return r.parse}});var i=za();Object.defineProperty(e,`stringify`,{enumerable:!0,get:function(){return i.stringify}})})),X=ne(Ia(),1),Z=Ba();const Va=new Map([[Z.SelectorType.Universal,50],[Z.SelectorType.Tag,30],[Z.SelectorType.Attribute,1],[Z.SelectorType.Pseudo,0]]);function Ha(e){return!Va.has(e.type)}const Ua=new Map([[Z.AttributeAction.Exists,10],[Z.AttributeAction.Equals,8],[Z.AttributeAction.Not,7],[Z.AttributeAction.Start,6],[Z.AttributeAction.End,6],[Z.AttributeAction.Any,5]]);function Wa(e){let t=e.map(Ga);for(let n=1;n<e.length;n++){let r=t[n];if(!(r<0))for(let i=n-1;i>=0&&r<t[i];i--){let n=e[i+1];e[i+1]=e[i],e[i]=n,t[i+1]=t[i],t[i]=r}}}function Ga(e){let t=Va.get(e.type)??-1;return e.type===Z.SelectorType.Attribute?(t=Ua.get(e.action)??4,e.action===Z.AttributeAction.Equals&&e.name===`id`&&(t=9),e.ignoreCase&&(t>>=1)):e.type===Z.SelectorType.Pseudo&&(e.data?e.name===`has`||e.name===`contains`?t=0:Array.isArray(e.data)?(t=Math.min(...e.data.map(e=>Math.min(...e.map(Ga)))),t<0&&(t=0)):t=2:t=3),t}const Ka=/[-[\]{}()*+?.,\\^$|#\s]/g;function qa(e){return e.replace(Ka,`\\$&`)}const Ja=new Set(`accept.accept-charset.align.alink.axis.bgcolor.charset.checked.clear.codetype.color.compact.declare.defer.dir.direction.disabled.enctype.face.frame.hreflang.http-equiv.lang.language.link.media.method.multiple.nohref.noresize.noshade.nowrap.readonly.rel.rev.rules.scope.scrolling.selected.shape.target.text.type.valign.valuetype.vlink`.split(`.`));function Ya(e,t){return typeof e.ignoreCase==`boolean`?e.ignoreCase:e.ignoreCase===`quirks`?!!t.quirksMode:!t.xmlMode&&Ja.has(e.name)}const Xa={equals(e,t,n){let{adapter:r}=n,{name:i}=t,{value:a}=t;return Ya(t,n)?(a=a.toLowerCase(),t=>{let n=r.getAttributeValue(t,i);return n!=null&&n.length===a.length&&n.toLowerCase()===a&&e(t)}):t=>r.getAttributeValue(t,i)===a&&e(t)},hyphen(e,t,n){let{adapter:r}=n,{name:i}=t,{value:a}=t,o=a.length;return Ya(t,n)?(a=a.toLowerCase(),function(t){let n=r.getAttributeValue(t,i);return n!=null&&(n.length===o||n.charAt(o)===`-`)&&n.substr(0,o).toLowerCase()===a&&e(t)}):function(t){let n=r.getAttributeValue(t,i);return n!=null&&(n.length===o||n.charAt(o)===`-`)&&n.substr(0,o)===a&&e(t)}},element(e,t,n){let{adapter:r}=n,{name:i,value:a}=t;if(/\s/.test(a))return X.default.falseFunc;let o=RegExp(`(?:^|\\s)${qa(a)}(?:$|\\s)`,Ya(t,n)?`i`:``);return function(t){let n=r.getAttributeValue(t,i);return n!=null&&n.length>=a.length&&o.test(n)&&e(t)}},exists(e,{name:t},{adapter:n}){return r=>n.hasAttrib(r,t)&&e(r)},start(e,t,n){let{adapter:r}=n,{name:i}=t,{value:a}=t,o=a.length;return o===0?X.default.falseFunc:Ya(t,n)?(a=a.toLowerCase(),t=>{let n=r.getAttributeValue(t,i);return n!=null&&n.length>=o&&n.substr(0,o).toLowerCase()===a&&e(t)}):t=>!!r.getAttributeValue(t,i)?.startsWith(a)&&e(t)},end(e,t,n){let{adapter:r}=n,{name:i}=t,{value:a}=t,o=-a.length;return o===0?X.default.falseFunc:Ya(t,n)?(a=a.toLowerCase(),t=>r.getAttributeValue(t,i)?.substr(o).toLowerCase()===a&&e(t)):t=>!!r.getAttributeValue(t,i)?.endsWith(a)&&e(t)},any(e,t,n){let{adapter:r}=n,{name:i,value:a}=t;if(a===``)return X.default.falseFunc;if(Ya(t,n)){let t=new RegExp(qa(a),`i`);return function(n){let o=r.getAttributeValue(n,i);return o!=null&&o.length>=a.length&&t.test(o)&&e(n)}}return t=>!!r.getAttributeValue(t,i)?.includes(a)&&e(t)},not(e,t,n){let{adapter:r}=n,{name:i}=t,{value:a}=t;return a===``?t=>!!r.getAttributeValue(t,i)&&e(t):Ya(t,n)?(a=a.toLowerCase(),t=>{let n=r.getAttributeValue(t,i);return(n==null||n.length!==a.length||n.toLowerCase()!==a)&&e(t)}):t=>r.getAttributeValue(t,i)!==a&&e(t)}},Za=new Set([9,10,12,13,32]);function Qa(e){if(e=e.trim().toLowerCase(),e===`even`)return[2,0];if(e===`odd`)return[2,1];let t=0,n=0,r=a(),i=o();if(t<e.length&&e.charAt(t)===`n`&&(t++,n=r*(i??1),s(),t<e.length?(r=a(),s(),i=o()):r=i=0),i===null||t<e.length)throw Error(`n-th rule couldn't be parsed ('${e}')`);return[n,r*i];function a(){return e.charAt(t)===`-`?(t++,-1):(e.charAt(t)===`+`&&t++,1)}function o(){let n=t,r=0;for(;t<e.length&&e.charCodeAt(t)>=48&&e.charCodeAt(t)<=57;)r=r*10+(e.charCodeAt(t)-48),t++;return t===n?null:r}function s(){for(;t<e.length&&Za.has(e.charCodeAt(t));)t++}}function $a(e){let t=e[0],n=e[1]-1;if(n<0&&t<=0)return X.default.falseFunc;if(t===-1)return e=>e<=n;if(t===0)return e=>e===n;if(t===1)return n<0?X.default.trueFunc:e=>e>=n;let r=Math.abs(t),i=(n%r+r)%r;return t>1?e=>e>=n&&e%r===i:e=>e<=n&&e%r===i}function eo(e){return $a(Qa(e))}function to(e,t){return n=>{let r=t.getParent(n);return r!=null&&t.isTag(r)&&e(n)}}const no={contains(e,t,{adapter:n}){return function(r){return e(r)&&n.getText(r).includes(t)}},icontains(e,t,{adapter:n}){let r=t.toLowerCase();return function(t){return e(t)&&n.getText(t).toLowerCase().includes(r)}},"nth-child"(e,t,{adapter:n,equals:r}){let i=eo(t);return i===X.default.falseFunc?X.default.falseFunc:i===X.default.trueFunc?to(e,n):function(t){let a=n.getSiblings(t),o=0;for(let e=0;e<a.length&&!r(t,a[e]);e++)n.isTag(a[e])&&o++;return i(o)&&e(t)}},"nth-last-child"(e,t,{adapter:n,equals:r}){let i=eo(t);return i===X.default.falseFunc?X.default.falseFunc:i===X.default.trueFunc?to(e,n):function(t){let a=n.getSiblings(t),o=0;for(let e=a.length-1;e>=0&&!r(t,a[e]);e--)n.isTag(a[e])&&o++;return i(o)&&e(t)}},"nth-of-type"(e,t,{adapter:n,equals:r}){let i=eo(t);return i===X.default.falseFunc?X.default.falseFunc:i===X.default.trueFunc?to(e,n):function(t){let a=n.getSiblings(t),o=0;for(let e=0;e<a.length;e++){let i=a[e];if(r(t,i))break;n.isTag(i)&&n.getName(i)===n.getName(t)&&o++}return i(o)&&e(t)}},"nth-last-of-type"(e,t,{adapter:n,equals:r}){let i=eo(t);return i===X.default.falseFunc?X.default.falseFunc:i===X.default.trueFunc?to(e,n):function(t){let a=n.getSiblings(t),o=0;for(let e=a.length-1;e>=0;e--){let i=a[e];if(r(t,i))break;n.isTag(i)&&n.getName(i)===n.getName(t)&&o++}return i(o)&&e(t)}},root(e,t,{adapter:n}){return t=>{let r=n.getParent(t);return(r==null||!n.isTag(r))&&e(t)}},scope(e,t,n,r){let{equals:i}=n;return!r||r.length===0?no.root(e,t,n):r.length===1?t=>i(r[0],t)&&e(t):t=>r.includes(t)&&e(t)},hover:ro(`isHovered`),visited:ro(`isVisited`),active:ro(`isActive`)};function ro(e){return function(t,n,{adapter:r}){let i=r[e];return typeof i==`function`?function(e){return i(e)&&t(e)}:X.default.falseFunc}}const io={empty(e,{adapter:t}){return!t.getChildren(e).some(e=>t.isTag(e)||t.getText(e)!==``)},"first-child"(e,{adapter:t,equals:n}){if(t.prevElementSibling)return t.prevElementSibling(e)==null;let r=t.getSiblings(e).find(e=>t.isTag(e));return r!=null&&n(e,r)},"last-child"(e,{adapter:t,equals:n}){let r=t.getSiblings(e);for(let i=r.length-1;i>=0;i--){if(n(e,r[i]))return!0;if(t.isTag(r[i]))break}return!1},"first-of-type"(e,{adapter:t,equals:n}){let r=t.getSiblings(e),i=t.getName(e);for(let a=0;a<r.length;a++){let o=r[a];if(n(e,o))return!0;if(t.isTag(o)&&t.getName(o)===i)break}return!1},"last-of-type"(e,{adapter:t,equals:n}){let r=t.getSiblings(e),i=t.getName(e);for(let a=r.length-1;a>=0;a--){let o=r[a];if(n(e,o))return!0;if(t.isTag(o)&&t.getName(o)===i)break}return!1},"only-of-type"(e,{adapter:t,equals:n}){let r=t.getName(e);return t.getSiblings(e).every(i=>n(e,i)||!t.isTag(i)||t.getName(i)!==r)},"only-child"(e,{adapter:t,equals:n}){return t.getSiblings(e).every(r=>n(e,r)||!t.isTag(r))}};function ao(e,t,n,r){if(n===null){if(e.length>r)throw Error(`Pseudo-class :${t} requires an argument`)}else if(e.length===r)throw Error(`Pseudo-class :${t} doesn't have any arguments`)}const oo={"any-link":`:is(a, area, link)[href]`,link:`:any-link:not(:visited)`,disabled:`:is(
@@ -317,7 +317,7 @@ diff /tmp/a.txt /tmp/b.txt
317
317
  \`\`\`
318
318
 
319
319
  Focus on nets touching the component of interest: \`list nets -c U1\` on each.
320
- `;const bd={"darwin-arm64":`@phosphor-tools/cli-darwin-arm64`,"darwin-x64":`@phosphor-tools/cli-darwin-x64`,"linux-arm64":`@phosphor-tools/cli-linux-arm64`,"linux-x64":`@phosphor-tools/cli-linux-x64`};function xd(e=!0){return Sd()??(e?Cd():null)}function Sd(){let t=bd[`${process.platform}-${process.arch}`];if(!t)return null;try{let n=i(r(e(import.meta.url).resolve(`${t}/package.json`)),`bin`,`phosphor-eda`);return v(n,y.X_OK),n}catch{return null}}function Cd(){try{return p(process.platform===`win32`?`where`:`which`,[`phosphor-eda`],{encoding:`utf-8`,timeout:5e3}).trim()}catch{return null}}async function wd(e,t,n,r){let i=`${e}/proxy/${n}`,a;try{a=await fetch(i,{method:`POST`,signal:AbortSignal.timeout(3e4),headers:{"content-type":`application/json`,authorization:`Bearer ${t}`},body:JSON.stringify(r)})}catch(t){let n=t instanceof Error?t.message:String(t);throw Error(`Could not connect to Phosphor proxy at ${e}: ${n}`)}if(!a.ok){let e=await a.text().catch(()=>``);throw a.status===401?Error("Session expired or invalid. Run `phosphor-mcp login` to re-authenticate."):a.status===429?Error(`Rate limit exceeded. Please wait and try again.`):Error(`Proxy ${n} failed (${a.status}): ${e.slice(0,500)}`)}return a.json()}function Td(e,t,n){e.tool(t.name,t.description,t.inputSchema.shape,async e=>{try{let t=await n(e);return{content:[{type:`text`,text:JSON.stringify(t,null,2)}]}}catch(e){return{isError:!0,content:[{type:`text`,text:`${t.name} failed: ${e instanceof Error?e.message:String(e)}`}]}}})}function Ed(e){e.tool(`install_schematic_tools`,`Check if the phosphor-eda CLI is installed for querying electronic schematics (Altium, KiCad, Eagle, OrCAD). Call this FIRST when the user asks about schematic connectivity, components, nets, or pin assignments. Returns the CLI path and reference guide.`,async()=>{let e=xd(!1);return e?{content:[{type:`text`,text:[`phosphor-eda CLI found at: ${e}`,``,`---`,``,yd].join(`
320
+ `;const bd={"darwin-arm64":`@phosphor-tools/cli-darwin-arm64`,"darwin-x64":`@phosphor-tools/cli-darwin-x64`,"linux-arm64":`@phosphor-tools/cli-linux-arm64`,"linux-x64":`@phosphor-tools/cli-linux-x64`,"win32-x64":`@phosphor-tools/cli-windows-x64`};function xd(e=!0){return Sd()??(e?Cd():null)}function Sd(){let t=bd[`${process.platform}-${process.arch}`];if(!t)return null;try{let n=e(import.meta.url).resolve(`${t}/package.json`),a=process.platform===`win32`?`phosphor-eda.exe`:`phosphor-eda`,o=i(r(n),`bin`,a);return v(o,y.X_OK),o}catch{return null}}function Cd(){try{return p(process.platform===`win32`?`where`:`which`,[`phosphor-eda`],{encoding:`utf-8`,timeout:5e3}).trim()}catch{return null}}async function wd(e,t,n,r){let i=`${e}/proxy/${n}`,a;try{a=await fetch(i,{method:`POST`,signal:AbortSignal.timeout(3e4),headers:{"content-type":`application/json`,authorization:`Bearer ${t}`},body:JSON.stringify(r)})}catch(t){let n=t instanceof Error?t.message:String(t);throw Error(`Could not connect to Phosphor proxy at ${e}: ${n}`)}if(!a.ok){let e=await a.text().catch(()=>``);throw a.status===401?Error("Session expired or invalid. Run `phosphor-mcp login` to re-authenticate."):a.status===429?Error(`Rate limit exceeded. Please wait and try again.`):Error(`Proxy ${n} failed (${a.status}): ${e.slice(0,500)}`)}return a.json()}function Td(e,t,n){e.tool(t.name,t.description,t.inputSchema.shape,async e=>{try{let t=await n(e);return{content:[{type:`text`,text:JSON.stringify(t,null,2)}]}}catch(e){return{isError:!0,content:[{type:`text`,text:`${t.name} failed: ${e instanceof Error?e.message:String(e)}`}]}}})}function Ed(e){e.tool(`install_schematic_tools`,`Check if the phosphor-eda CLI is installed for querying electronic schematics (Altium, KiCad, Eagle, OrCAD). Call this FIRST when the user asks about schematic connectivity, components, nets, or pin assignments. Returns the CLI path and reference guide.`,async()=>{let e=xd(!1);return e?{content:[{type:`text`,text:[`phosphor-eda CLI found at: ${e}`,``,`---`,``,yd].join(`
321
321
  `)}]}:{isError:!0,content:[{type:`text`,text:[`The phosphor-eda CLI binary was not found in the expected location.`,`It should be bundled inside the @phosphor-tools/cli-* platform`,`package installed as an optional dependency of this MCP server.`,``,`This usually means the platform package failed to install or`,`is missing for this OS/architecture.`].join(`
322
322
  `)}]}})}function Dd(e,t){let n=async()=>{let e=await t.resolveToken();if(!e)throw Error("Not authenticated. Run `phosphor-mcp login` to sign in.");return e},r=async(e,r)=>{let i=await n();return wd(t.proxyUrl,i,e,r)};Td(e,Ze,e=>Xe(process.cwd(),e)),Td(e,ft,dt),Td(e,et,async e=>N({proxyUrl:t.proxyUrl,resolveToken:n},e)),Td(e,hd,e=>r(`datasheet_search`,e)),Td(e,gd,e=>r(`part_search`,e)),Td(e,_d,e=>r(`part_lookup`,e)),Td(e,vd,e=>r(`part_alternatives`,e)),Ed(e)}function Od(e){let t=new h({name:`phosphor-mcp`,version:be},{instructions:`phosphor-mcp: tools for electronic hardware design — schematics, datasheets, and documents.
323
323
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@phosphor-tools/phosphor-mcp",
3
- "version": "0.1.0-dev.8",
3
+ "version": "0.1.0-dev.pr47.7",
4
4
  "description": "MCP server for electronic hardware design — datasheets, parts, schematics",
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",
@@ -22,10 +22,11 @@
22
22
  "zod": "^3.25.67"
23
23
  },
24
24
  "optionalDependencies": {
25
- "@phosphor-tools/cli-darwin-arm64": "0.1.0-dev.8",
26
- "@phosphor-tools/cli-darwin-x64": "0.1.0-dev.8",
27
- "@phosphor-tools/cli-linux-arm64": "0.1.0-dev.8",
28
- "@phosphor-tools/cli-linux-x64": "0.1.0-dev.8"
25
+ "@phosphor-tools/cli-darwin-arm64": "0.1.0-dev.pr47.7",
26
+ "@phosphor-tools/cli-darwin-x64": "0.1.0-dev.pr47.7",
27
+ "@phosphor-tools/cli-linux-arm64": "0.1.0-dev.pr47.7",
28
+ "@phosphor-tools/cli-linux-x64": "0.1.0-dev.pr47.7",
29
+ "@phosphor-tools/cli-windows-x64": "0.1.0-dev.pr47.7"
29
30
  },
30
31
  "devDependencies": {
31
32
  "@types/node": "^24.0.0",
@@ -35,10 +36,10 @@
35
36
  "tsx": "^4.19.0",
36
37
  "typescript": "^5.9.3",
37
38
  "vitest": "^4.0.0",
38
- "@phosphor-tools/tsconfig": "0.0.0",
39
39
  "@phosphor-tools/agent": "0.0.0",
40
+ "@phosphor-tools/shared": "0.0.0",
40
41
  "@phosphor-tools/eslint-config": "0.0.0",
41
- "@phosphor-tools/shared": "0.0.0"
42
+ "@phosphor-tools/tsconfig": "0.0.0"
42
43
  },
43
44
  "scripts": {
44
45
  "lint": "eslint --fix src/",